##// END OF EJS Templates
Systematic test of ipynb -> * conversion...
Matthias BUSSONNIER -
Show More
This diff has been collapsed as it changes many lines, (29430 lines changed) Show them Hide them
@@ -0,0 +1,29430 b''
1 <html>
2 <head>
3 <style type="text/css">
4 /**
5 * HTML5 ✰ Boilerplate
6 *
7 * style.css contains a reset, font normalization and some base styles.
8 *
9 * Credit is left where credit is due.
10 * Much inspiration was taken from these projects:
11 * - yui.yahooapis.com/2.8.1/build/base/base.css
12 * - camendesign.com/design/
13 * - praegnanz.de/weblog/htmlcssjs-kickstart
14 */
15
16
17 /**
18 * html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
19 * v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark
20 * html5doctor.com/html-5-reset-stylesheet/
21 */
22
23 html, body, div, span, object, iframe,
24 h1, h2, h3, h4, h5, h6, p, blockquote, pre,
25 abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
26 small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
27 fieldset, form, label, legend,
28 table, caption, tbody, tfoot, thead, tr, th, td,
29 article, aside, canvas, details, figcaption, figure,
30 footer, header, hgroup, menu, nav, section, summary,
31 time, mark, audio, video {
32 margin: 0;
33 padding: 0;
34 border: 0;
35 font-size: 100%;
36 font: inherit;
37 vertical-align: baseline;
38 }
39
40 sup { vertical-align: super; }
41 sub { vertical-align: sub; }
42
43 article, aside, details, figcaption, figure,
44 footer, header, hgroup, menu, nav, section {
45 display: block;
46 }
47
48 blockquote, q { quotes: none; }
49
50 blockquote:before, blockquote:after,
51 q:before, q:after { content: ""; content: none; }
52
53 ins { background-color: #ff9; color: #000; text-decoration: none; }
54
55 mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
56
57 del { text-decoration: line-through; }
58
59 abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
60
61 table { border-collapse: collapse; border-spacing: 0; }
62
63 hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
64
65 input, select { vertical-align: middle; }
66
67
68 /**
69 * Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/
70 */
71
72 body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */
73 select, input, textarea, button { font:99% sans-serif; }
74
75 /* Normalize monospace sizing:
76 en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome */
77 pre, code, kbd, samp { font-family: monospace, sans-serif; }
78
79 em,i { font-style: italic; }
80 b,strong { font-weight: bold; }
81
82 </style>
83 <style type="text/css">
84
85 /* Flexible box model classes */
86 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
87
88 .hbox {
89 display: -webkit-box;
90 -webkit-box-orient: horizontal;
91 -webkit-box-align: stretch;
92
93 display: -moz-box;
94 -moz-box-orient: horizontal;
95 -moz-box-align: stretch;
96
97 display: box;
98 box-orient: horizontal;
99 box-align: stretch;
100 }
101
102 .hbox > * {
103 -webkit-box-flex: 0;
104 -moz-box-flex: 0;
105 box-flex: 0;
106 }
107
108 .vbox {
109 display: -webkit-box;
110 -webkit-box-orient: vertical;
111 -webkit-box-align: stretch;
112
113 display: -moz-box;
114 -moz-box-orient: vertical;
115 -moz-box-align: stretch;
116
117 display: box;
118 box-orient: vertical;
119 box-align: stretch;
120 }
121
122 .vbox > * {
123 -webkit-box-flex: 0;
124 -moz-box-flex: 0;
125 box-flex: 0;
126 }
127
128 .reverse {
129 -webkit-box-direction: reverse;
130 -moz-box-direction: reverse;
131 box-direction: reverse;
132 }
133
134 .box-flex0 {
135 -webkit-box-flex: 0;
136 -moz-box-flex: 0;
137 box-flex: 0;
138 }
139
140 .box-flex1, .box-flex {
141 -webkit-box-flex: 1;
142 -moz-box-flex: 1;
143 box-flex: 1;
144 }
145
146 .box-flex2 {
147 -webkit-box-flex: 2;
148 -moz-box-flex: 2;
149 box-flex: 2;
150 }
151
152 .box-group1 {
153 -webkit-box-flex-group: 1;
154 -moz-box-flex-group: 1;
155 box-flex-group: 1;
156 }
157
158 .box-group2 {
159 -webkit-box-flex-group: 2;
160 -moz-box-flex-group: 2;
161 box-flex-group: 2;
162 }
163
164 .start {
165 -webkit-box-pack: start;
166 -moz-box-pack: start;
167 box-pack: start;
168 }
169
170 .end {
171 -webkit-box-pack: end;
172 -moz-box-pack: end;
173 box-pack: end;
174 }
175
176 .center {
177 -webkit-box-pack: center;
178 -moz-box-pack: center;
179 box-pack: center;
180 }
181
182 </style>
183 <style type="text/css">
184 /**
185 * Primary styles
186 *
187 * Author: IPython Development Team
188 */
189
190
191 body {
192 overflow: hidden;
193 }
194
195 span#save_widget {
196 padding: 5px;
197 margin: 0px 0px 0px 300px;
198 display:inline-block;
199 }
200
201 span#notebook_name {
202 height: 1em;
203 line-height: 1em;
204 padding: 3px;
205 border: none;
206 font-size: 146.5%;
207 }
208
209 .ui-menubar-item .ui-button .ui-button-text {
210 padding: 0.4em 1.0em;
211 font-size: 100%;
212 }
213
214 .ui-menu {
215 -moz-box-shadow: 0px 6px 10px -1px #adadad;
216 -webkit-box-shadow: 0px 6px 10px -1px #adadad;
217 box-shadow: 0px 6px 10px -1px #adadad;
218 }
219
220 .ui-menu .ui-menu-item a {
221 border: 1px solid transparent;
222 padding: 2px 1.6em;
223 }
224
225 .ui-menu .ui-menu-item a.ui-state-focus {
226 margin: 0;
227 }
228
229 .ui-menu hr {
230 margin: 0.3em 0;
231 }
232
233 #menubar_container {
234 position: relative;
235 }
236
237 #notification_area {
238 position: absolute;
239 right: 0px;
240 top: 0px;
241 height: 25px;
242 padding: 3px 0px;
243 padding-right: 3px;
244 z-index: 10;
245 }
246
247 .notification_widget{
248 float : right;
249 right: 0px;
250 top: 1px;
251 height: 25px;
252 padding: 3px 6px;
253 z-index: 10;
254 }
255
256 .toolbar {
257 padding: 3px 15px;
258 }
259
260 #cell_type {
261 font-size: 85%;
262 }
263
264
265 div#main_app {
266 width: 100%;
267 position: relative;
268 }
269
270 span#quick_help_area {
271 position: static;
272 padding: 5px 0px;
273 margin: 0px 0px 0px 0px;
274 }
275
276 .help_string {
277 float: right;
278 width: 170px;
279 padding: 0px 5px;
280 text-align: left;
281 font-size: 85%;
282 }
283
284 .help_string_label {
285 float: right;
286 font-size: 85%;
287 }
288
289 div#notebook_panel {
290 margin: 0px 0px 0px 0px;
291 padding: 0px;
292 }
293
294 div#notebook {
295 overflow-y: scroll;
296 overflow-x: auto;
297 width: 100%;
298 /* This spaces the cell away from the edge of the notebook area */
299 padding: 5px 5px 15px 5px;
300 margin: 0px;
301 background-color: white;
302 }
303
304 div#pager_splitter {
305 height: 8px;
306 }
307
308 #pager_container {
309 position : relative;
310 }
311
312 div#pager {
313 padding: 15px;
314 overflow: auto;
315 display: none;
316 }
317
318 div.ui-widget-content {
319 border: 1px solid #aaa;
320 outline: none;
321 }
322
323 .cell {
324 border: 1px solid transparent;
325 }
326
327 div.cell {
328 width: 100%;
329 padding: 5px 5px 5px 0px;
330 /* This acts as a spacer between cells, that is outside the border */
331 margin: 2px 0px 2px 0px;
332 }
333
334 div.code_cell {
335 background-color: white;
336 }
337
338 /* any special styling for code cells that are currently running goes here */
339 div.code_cell.running {
340 }
341
342 div.prompt {
343 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
344 width: 11ex;
345 /* This 0.4em is tuned to match the padding on the CodeMirror editor. */
346 padding: 0.4em;
347 margin: 0px;
348 font-family: monospace;
349 text-align:right;
350 }
351
352 div.input {
353 page-break-inside: avoid;
354 }
355
356 /* input_area and input_prompt must match in top border and margin for alignment */
357 div.input_area {
358 color: black;
359 border: 1px solid #ddd;
360 border-radius: 3px;
361 background: #f7f7f7;
362 }
363
364 div.input_prompt {
365 color: navy;
366 border-top: 1px solid transparent;
367 }
368
369 div.output_wrapper {
370 /* This is a spacer between the input and output of each cell */
371 margin-top: 5px;
372 margin-left: 5px;
373 /* FF needs explicit width to stretch */
374 width: 100%;
375 /* this position must be relative to enable descendents to be absolute within it */
376 position: relative;
377 }
378
379 /* class for the output area when it should be height-limited */
380 div.output_scroll {
381 /* ideally, this would be max-height, but FF barfs all over that */
382 height: 24em;
383 /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
384 width: 100%;
385
386 overflow: auto;
387 border-radius: 3px;
388 box-shadow: inset 0 2px 8px rgba(0, 0, 0, .8);
389 }
390
391 /* output div while it is collapsed */
392 div.output_collapsed {
393 margin-right: 5px;
394 }
395
396 div.out_prompt_overlay {
397 height: 100%;
398 padding: 0px;
399 position: absolute;
400 border-radius: 3px;
401 }
402
403 div.out_prompt_overlay:hover {
404 /* use inner shadow to get border that is computed the same on WebKit/FF */
405 box-shadow: inset 0 0 1px #000;
406 background: rgba(240, 240, 240, 0.5);
407 }
408
409 div.output_prompt {
410 color: darkred;
411 /* 5px right shift to account for margin in parent container */
412 margin: 0 5px 0 -5px;
413 }
414
415 /* This class is the outer container of all output sections. */
416 div.output_area {
417 padding: 0px;
418 page-break-inside: avoid;
419 }
420
421 /* This class is for the output subarea inside the output_area and after
422 the prompt div. */
423 div.output_subarea {
424 padding: 0.44em 0.4em 0.4em 1px;
425 }
426
427 /* The rest of the output_* classes are for special styling of the different
428 output types */
429
430 /* all text output has this class: */
431 div.output_text {
432 text-align: left;
433 color: black;
434 font-family: monospace;
435 }
436
437 /* stdout/stderr are 'text' as well as 'stream', but pyout/pyerr are *not* streams */
438 div.output_stream {
439 padding-top: 0.0em;
440 padding-bottom: 0.0em;
441 }
442 div.output_stdout {
443 }
444 div.output_stderr {
445 background: #fdd; /* very light red background for stderr */
446 }
447
448 div.output_latex {
449 text-align: left;
450 color: black;
451 }
452
453 div.output_html {
454 }
455
456 div.output_png {
457 }
458
459 div.output_jpeg {
460 }
461
462 div.text_cell {
463 background-color: white;
464 padding: 5px 5px 5px 5px;
465 }
466
467 div.text_cell_input {
468 color: black;
469 border: 1px solid #ddd;
470 border-radius: 3px;
471 background: #f7f7f7;
472 }
473
474 div.text_cell_render {
475 font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
476 outline: none;
477 resize: none;
478 width: inherit;
479 border-style: none;
480 padding: 5px;
481 color: black;
482 }
483
484 /* The following gets added to the <head> if it is detected that the user has a
485 * monospace font with inconsistent normal/bold/italic height. See
486 * notebookmain.js. Such fonts will have keywords vertically offset with
487 * respect to the rest of the text. The user should select a better font.
488 * See: https://github.com/ipython/ipython/issues/1503
489 *
490 * .CodeMirror span {
491 * vertical-align: bottom;
492 * }
493 */
494
495 .CodeMirror {
496 line-height: 1.231; /* Changed from 1em to our global default */
497 }
498
499 .CodeMirror-scroll {
500 height: auto; /* Changed to auto to autogrow */
501 /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
502 /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
503 overflow-y: hidden;
504 overflow-x: auto; /* Changed from auto to remove scrollbar */
505 }
506
507 /* CSS font colors for translated ANSI colors. */
508
509
510 .ansiblack {color: black;}
511 .ansired {color: darkred;}
512 .ansigreen {color: darkgreen;}
513 .ansiyellow {color: brown;}
514 .ansiblue {color: darkblue;}
515 .ansipurple {color: darkviolet;}
516 .ansicyan {color: steelblue;}
517 .ansigrey {color: grey;}
518 .ansibold {font-weight: bold;}
519
520 .completions {
521 position: absolute;
522 z-index: 10;
523 overflow: hidden;
524 border: 1px solid grey;
525 }
526
527 .completions select {
528 background: white;
529 outline: none;
530 border: none;
531 padding: 0px;
532 margin: 0px;
533 overflow: auto;
534 font-family: monospace;
535 }
536
537 option.context {
538 background-color: #DEF7FF;
539 }
540 option.introspection {
541 background-color: #EBF4EB;
542 }
543
544 /*fixed part of the completion*/
545 .completions p b {
546 font-weight:bold;
547 }
548
549 .completions p {
550 background: #DDF;
551 /*outline: none;
552 padding: 0px;*/
553 border-bottom: black solid 1px;
554 padding: 1px;
555 font-family: monospace;
556 }
557
558 pre.dialog {
559 background-color: #f7f7f7;
560 border: 1px solid #ddd;
561 border-radius: 3px;
562 padding: 0.4em;
563 padding-left: 2em;
564 }
565
566 p.dialog {
567 padding : 0.2em;
568 }
569
570 .shortcut_key {
571 display: inline-block;
572 width: 15ex;
573 text-align: right;
574 font-family: monospace;
575 }
576
577 .shortcut_descr {
578 }
579
580 /* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
581 to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
582 */
583 pre, code, kbd, samp { white-space: pre-wrap; }
584
585 #fonttest {
586 font-family: monospace;
587 }
588
589 .js-error {
590 color: darkred;
591 }
592
593 </style>
594 <style type="text/css">
595 .rendered_html {color: black;}
596 .rendered_html em {font-style: italic;}
597 .rendered_html strong {font-weight: bold;}
598 .rendered_html u {text-decoration: underline;}
599 .rendered_html :link { text-decoration: underline }
600 .rendered_html :visited { text-decoration: underline }
601 .rendered_html h1 {font-size: 197%; margin: .65em 0; font-weight: bold;}
602 .rendered_html h2 {font-size: 153.9%; margin: .75em 0; font-weight: bold;}
603 .rendered_html h3 {font-size: 123.1%; margin: .85em 0; font-weight: bold;}
604 .rendered_html h4 {font-size: 100% margin: 0.95em 0; font-weight: bold;}
605 .rendered_html h5 {font-size: 85%; margin: 1.5em 0; font-weight: bold;}
606 .rendered_html h6 {font-size: 77%; margin: 1.65em 0; font-weight: bold;}
607 .rendered_html ul {list-style:disc; margin: 1em 2em;}
608 .rendered_html ul ul {list-style:square; margin: 0em 2em;}
609 .rendered_html ul ul ul {list-style:circle; margin-left: 0em 2em;}
610 .rendered_html ol {list-style:upper-roman; margin: 1em 2em;}
611 .rendered_html ol ol {list-style:upper-alpha; margin: 0em 2em;}
612 .rendered_html ol ol ol {list-style:decimal; margin: 0em 2em;}
613 .rendered_html ol ol ol ol {list-style:lower-alpha; margin: 0em 2em;}
614 .rendered_html ol ol ol ol ol {list-style:lower-roman; margin: 0em 2em;}
615
616 .rendered_html hr {
617 color: black;
618 background-color: black;
619 }
620
621 .rendered_html pre {
622 margin: 1em 2em;
623 }
624
625 .rendered_html blockquote {
626 margin: 1em 2em;
627 }
628
629 .rendered_html table {
630 border: 1px solid black;
631 border-collapse: collapse;
632 margin: 1em 2em;
633 }
634
635 .rendered_html td {
636 border: 1px solid black;
637 text-align: left;
638 vertical-align: middle;
639 padding: 4px;
640 }
641
642 .rendered_html th {
643 border: 1px solid black;
644 text-align: left;
645 vertical-align: middle;
646 padding: 4px;
647 font-weight: bold;
648 }
649
650 .rendered_html tr {
651 border: 1px solid black;
652 }
653
654 .rendered_html p + p {
655 margin-top: 1em;
656 }
657
658
659 </style>
660 <style type="text/css">
661 /* Overrides of notebook CSS for static HTML export
662
663 */
664 body {
665 overflow: visible;
666 padding: 8px;
667 }
668 .input_area {
669 padding: 0.4em;
670 }
671
672 </style>
673 <meta charset="UTF-8">
674 <style type="text/css">
675 .highlight .hll { background-color: #ffffcc }
676 .highlight { background: #f8f8f8; }
677 .highlight .c { color: #408080; font-style: italic } /* Comment */
678 .highlight .err { border: 1px solid #FF0000 } /* Error */
679 .highlight .k { color: #008000; font-weight: bold } /* Keyword */
680 .highlight .o { color: #666666 } /* Operator */
681 .highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
682 .highlight .cp { color: #BC7A00 } /* Comment.Preproc */
683 .highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
684 .highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
685 .highlight .gd { color: #A00000 } /* Generic.Deleted */
686 .highlight .ge { font-style: italic } /* Generic.Emph */
687 .highlight .gr { color: #FF0000 } /* Generic.Error */
688 .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
689 .highlight .gi { color: #00A000 } /* Generic.Inserted */
690 .highlight .go { color: #808080 } /* Generic.Output */
691 .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
692 .highlight .gs { font-weight: bold } /* Generic.Strong */
693 .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
694 .highlight .gt { color: #0040D0 } /* Generic.Traceback */
695 .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
696 .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
697 .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
698 .highlight .kp { color: #008000 } /* Keyword.Pseudo */
699 .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
700 .highlight .kt { color: #B00040 } /* Keyword.Type */
701 .highlight .m { color: #666666 } /* Literal.Number */
702 .highlight .s { color: #BA2121 } /* Literal.String */
703 .highlight .na { color: #7D9029 } /* Name.Attribute */
704 .highlight .nb { color: #008000 } /* Name.Builtin */
705 .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
706 .highlight .no { color: #880000 } /* Name.Constant */
707 .highlight .nd { color: #AA22FF } /* Name.Decorator */
708 .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
709 .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
710 .highlight .nf { color: #0000FF } /* Name.Function */
711 .highlight .nl { color: #A0A000 } /* Name.Label */
712 .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
713 .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
714 .highlight .nv { color: #19177C } /* Name.Variable */
715 .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
716 .highlight .w { color: #bbbbbb } /* Text.Whitespace */
717 .highlight .mf { color: #666666 } /* Literal.Number.Float */
718 .highlight .mh { color: #666666 } /* Literal.Number.Hex */
719 .highlight .mi { color: #666666 } /* Literal.Number.Integer */
720 .highlight .mo { color: #666666 } /* Literal.Number.Oct */
721 .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
722 .highlight .sc { color: #BA2121 } /* Literal.String.Char */
723 .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
724 .highlight .s2 { color: #BA2121 } /* Literal.String.Double */
725 .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
726 .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
727 .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
728 .highlight .sx { color: #008000 } /* Literal.String.Other */
729 .highlight .sr { color: #BB6688 } /* Literal.String.Regex */
730 .highlight .s1 { color: #BA2121 } /* Literal.String.Single */
731 .highlight .ss { color: #19177C } /* Literal.String.Symbol */
732 .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
733 .highlight .vc { color: #19177C } /* Name.Variable.Class */
734 .highlight .vg { color: #19177C } /* Name.Variable.Global */
735 .highlight .vi { color: #19177C } /* Name.Variable.Instance */
736 .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
737 </style>
738 <script src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" type="text/javascript">
739
740 </script>
741 <script type="text/javascript">
742 init_mathjax = function() {
743 if (window.MathJax) {
744 // MathJax loaded
745 MathJax.Hub.Config({
746 tex2jax: {
747 inlineMath: [ ['$','$'], ["\\(","\\)"] ],
748 displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
749 },
750 displayAlign: 'left', // Change this to 'center' to center equations.
751 "HTML-CSS": {
752 styles: {'.MathJax_Display': {"margin": 0}}
753 }
754 });
755 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
756 }
757 }
758 init_mathjax();
759 </script>
760 </head>
761 <body>
762 <div class="text_cell_render border-box-sizing rendered_html">
763 <h1>
764 An Introduction to the Scientific Python Ecosystem
765 </h1>
766 </div>
767 <div class="text_cell_render border-box-sizing rendered_html">
768 <p>While the Python language is an excellent tool for general-purpose programming, with a highly readable syntax, rich and powerful data types (strings, lists, sets, dictionaries, arbitrary length integers, etc) and a very comprehensive standard library, it was not designed specifically for mathematical and scientific computing. Neither the language nor its standard library have facilities for the efficient representation of multidimensional datasets, tools for linear algebra and general matrix manipulations (an essential building block of virtually all technical computing), nor any data visualization facilities.</p>
769 <p>In particular, Python lists are very flexible containers that can be nested arbitrarily deep and which can hold any Python object in them, but they are poorly suited to represent efficiently common mathematical constructs like vectors and matrices. In contrast, much of our modern heritage of scientific computing has been built on top of libraries written in the Fortran language, which has native support for vectors and matrices as well as a library of mathematical functions that can efficiently operate on entire arrays at once.</p>
770 </div>
771 <div class="text_cell_render border-box-sizing rendered_html">
772 <h2>
773 Scientific Python: a collaboration of projects built by scientists
774 </h2>
775 </div>
776 <div class="text_cell_render border-box-sizing rendered_html">
777 <p>The scientific community has developed a set of related Python libraries that provide powerful array facilities, linear algebra, numerical algorithms, data visualization and more. In this appendix, we will briefly outline the tools most frequently used for this purpose, that make "Scientific Python" something far more powerful than the Python language alone.</p>
778 <p>For reasons of space, we can only describe in some detail the central Numpy library, but below we provide links to the websites of each project where you can read their documentation in more detail.</p>
779 <p>First, let's look at an overview of the basic tools that most scientists use in daily research with Python. The core of this ecosystem is composed of:</p>
780 <ul>
781 <li>
782 <p>Numpy: the basic library that most others depend on, it provides a powerful array type that can represent multidmensional datasets of many different kinds and that supports arithmetic operations. Numpy also provides a library of common mathematical functions, basic linear algebra, random number generation and Fast Fourier Transforms. Numpy can be found at <a href="http://numpy.scipy.org">numpy.scipy.org</a></p>
783 </li>
784 <li>
785 <p>Scipy: a large collection of numerical algorithms that operate on numpy arrays and provide facilities for many common tasks in scientific computing, including dense and sparse linear algebra support, optimization, special functions, statistics, n-dimensional image processing, signal processing and more. Scipy can be found at <a href="http://scipy.org">scipy.org</a>.</p>
786 </li>
787 <li>
788 <p>Matplotlib: a data visualization library with a strong focus on producing high-quality output, it supports a variety of common scientific plot types in two and three dimensions, with precise control over the final output and format for publication-quality results. Matplotlib can also be controlled interactively allowing graphical manipulation of your data (zooming, panning, etc) and can be used with most modern user interface toolkits. It can be found at <a href="http://matplotlib.sf.net">matplotlib.sf.net</a>.</p>
789 </li>
790 <li>
791 <p>IPython: while not strictly scientific in nature, IPython is the interactive environment in which many scientists spend their time. IPython provides a powerful Python shell that integrates tightly with Matplotlib and with easy access to the files and operating system, and which can execute in a terminal or in a graphical Qt console. IPython also has a web-based notebook interface that can combine code with text, mathematical expressions, figures and multimedia. It can be found at <a href="http://ipython.org">ipython.org</a>.</p>
792 </li>
793 </ul>
794 <p>While each of these tools can be installed separately, in our opinion the most convenient way today of accessing them (especially on Windows and Mac computers) is to install the <a href="http://www.enthought.com/products/epd_free.php">Free Edition of the Enthought Python Distribution</a> which contain all the above. Other free alternatives on Windows (but not on Macs) are <a href="http://code.google.com/p/pythonxy">Python(x,y)</a> and <a href="http://www.lfd.uci.edu/~gohlke/pythonlibs"> Christoph Gohlke's packages page</a>.</p>
795 <p>These four 'core' libraries are in practice complemented by a number of other tools for more specialized work. We will briefly list here the ones that we think are the most commonly needed:</p>
796 <ul>
797 <li>
798 <p>Sympy: a symbolic manipulation tool that turns a Python session into a computer algebra system. It integrates with the IPython notebook, rendering results in properly typeset mathematical notation. <a href="http://sympy.org">sympy.org</a>.</p>
799 </li>
800 <li>
801 <p>Mayavi: sophisticated 3d data visualization; <a href="http://code.enthought.com/projects/mayavi">code.enthought.com/projects/mayavi</a>.</p>
802 </li>
803 <li>
804 <p>Cython: a bridge language between Python and C, useful both to optimize performance bottlenecks in Python and to access C libraries directly; <a href="http://cython.org">cython.org</a>.</p>
805 </li>
806 <li>
807 <p>Pandas: high-performance data structures and data analysis tools, with powerful data alignment and structural manipulation capabilities; <a href="http://pandas.pydata.org">pandas.pydata.org</a>.</p>
808 </li>
809 <li>
810 <p>Statsmodels: statistical data exploration and model estimation; <a href="http://statsmodels.sourceforge.net">statsmodels.sourceforge.net</a>.</p>
811 </li>
812 <li>
813 <p>Scikit-learn: general purpose machine learning algorithms with a common interface; <a href="http://scikit-learn.org">scikit-learn.org</a>.</p>
814 </li>
815 <li>
816 <p>Scikits-image: image processing toolbox; <a href="http://scikits-image.org">scikits-image.org</a>.</p>
817 </li>
818 <li>
819 <p>NetworkX: analysis of complex networks (in the graph theoretical sense); <a href="http://networkx.lanl.gov">networkx.lanl.gov</a>.</p>
820 </li>
821 <li>
822 <p>PyTables: management of hierarchical datasets using the industry-standard HDF5 format; <a href="http://www.pytables.org">www.pytables.org</a>.</p>
823 </li>
824 </ul>
825 <p>Beyond these, for any specific problem you should look on the internet first, before starting to write code from scratch. There's a good chance that someone, somewhere, has written an open source library that you can use for part or all of your problem.</p>
826 </div>
827 <div class="text_cell_render border-box-sizing rendered_html">
828 <h2>
829 A note about the examples below
830 </h2>
831 </div>
832 <div class="text_cell_render border-box-sizing rendered_html">
833 <p>In all subsequent examples, you will see blocks of input code, followed by the results of the code if the code generated output. This output may include text, graphics and other result objects. These blocks of input can be pasted into your interactive IPython session or notebook for you to execute. In the print version of this document, a thin vertical bar on the left of the blocks of input and output shows which blocks go together.</p>
834 <p>If you are reading this text as an actual IPython notebook, you can press <code>Shift-Enter</code> or use the 'play' button on the toolbar (right-pointing triangle) to execute each block of code, known as a 'cell' in IPython:</p>
835 </div>
836 <div class="cell border-box-sizing code_cell vbox">
837 <div class="input hbox">
838 <div class="prompt input_prompt">In&nbsp;[71]:</div>
839 <div class="input_area box-flex1">
840 <div class="highlight"><pre><span class="c"># This is a block of code, below you&#39;ll see its output</span>
841 <span class="k">print</span> <span class="s">&quot;Welcome to the world of scientific computing with Python!&quot;</span>
842 </pre></div>
843
844 </div>
845 </div>
846 <div class="vbox output_wrapper">
847 <div class="output vbox">
848 <div class="hbox output_area">
849 <div class="prompt output_prompt"></div>
850 <div class="output_subarea output_stream output_stdout">
851 <pre>Welcome to the world of scientific computing with Python!
852 </pre>
853 </div>
854 </div>
855 </div>
856 </div>
857 </div>
858 <div class="text_cell_render border-box-sizing rendered_html">
859 <h1>
860 Motivation: the trapezoidal rule
861 </h1>
862 </div>
863 <div class="text_cell_render border-box-sizing rendered_html">
864 <p>In subsequent sections we'll provide a basic introduction to the nuts and bolts of the basic scientific python tools; but we'll first motivate it with a brief example that illustrates what you can do in a few lines with these tools. For this, we will use the simple problem of approximating a definite integral with the trapezoid rule:</p>
865 <p>$$
866 \int_{a}^{b} f(x)\, dx \approx \frac{1}{2} \sum_{k=1}^{N} \left( x_{k} - x_{k-1} \right) \left( f(x_{k}) + f(x_{k-1}) \right).
867 $$</p>
868 <p>Our task will be to compute this formula for a function such as:</p>
869 <p>$$
870 f(x) = (x-3)(x-5)(x-7)+85
871 $$</p>
872 <p>integrated between $a=1$ and $b=9$.</p>
873 <p>First, we define the function and sample it evenly between 0 and 10 at 200 points:</p>
874 </div>
875 <div class="cell border-box-sizing code_cell vbox">
876 <div class="input hbox">
877 <div class="prompt input_prompt">In&nbsp;[1]:</div>
878 <div class="input_area box-flex1">
879 <div class="highlight"><pre><span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
880 <span class="k">return</span> <span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">5</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">7</span><span class="p">)</span><span class="o">+</span><span class="mi">85</span>
881
882 <span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
883 <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">200</span><span class="p">)</span>
884 <span class="n">y</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
885 </pre></div>
886
887 </div>
888 </div>
889 </div>
890 <div class="text_cell_render border-box-sizing rendered_html">
891 <p>We select $a$ and $b$, our integration limits, and we take only a few points in that region to illustrate the error behavior of the trapezoid approximation:</p>
892 </div>
893 <div class="cell border-box-sizing code_cell vbox">
894 <div class="input hbox">
895 <div class="prompt input_prompt">In&nbsp;[2]:</div>
896 <div class="input_area box-flex1">
897 <div class="highlight"><pre><span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">9</span>
898 <span class="n">xint</span> <span class="o">=</span> <span class="n">x</span><span class="p">[</span><span class="n">logical_and</span><span class="p">(</span><span class="n">x</span><span class="o">&gt;=</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="o">&lt;=</span><span class="n">b</span><span class="p">)][::</span><span class="mi">30</span><span class="p">]</span>
899 <span class="n">yint</span> <span class="o">=</span> <span class="n">y</span><span class="p">[</span><span class="n">logical_and</span><span class="p">(</span><span class="n">x</span><span class="o">&gt;=</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="o">&lt;=</span><span class="n">b</span><span class="p">)][::</span><span class="mi">30</span><span class="p">]</span>
900 </pre></div>
901
902 </div>
903 </div>
904 </div>
905 <div class="text_cell_render border-box-sizing rendered_html">
906 <p>Let's plot both the function and the area below it in the trapezoid approximation:</p>
907 </div>
908 <div class="cell border-box-sizing code_cell vbox">
909 <div class="input hbox">
910 <div class="prompt input_prompt">In&nbsp;[3]:</div>
911 <div class="input_area box-flex1">
912 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>
913 <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">lw</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
914 <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">140</span><span class="p">])</span>
915 <span class="n">plt</span><span class="o">.</span><span class="n">fill_between</span><span class="p">(</span><span class="n">xint</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">yint</span><span class="p">,</span> <span class="n">facecolor</span><span class="o">=</span><span class="s">&#39;gray&#39;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.4</span><span class="p">)</span>
916 <span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">a</span> <span class="o">+</span> <span class="n">b</span><span class="p">),</span> <span class="mi">30</span><span class="p">,</span><span class="s">r&quot;$\int_a^b f(x)dx$&quot;</span><span class="p">,</span> <span class="n">horizontalalignment</span><span class="o">=</span><span class="s">&#39;center&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">20</span><span class="p">);</span>
917 </pre></div>
918
919 </div>
920 </div>
921 <div class="vbox output_wrapper">
922 <div class="output vbox">
923 <div class="hbox output_area">
924 <div class="prompt output_prompt"></div>
925 <div class="output_subarea output_display_data">
926 <?xml version="1.0" encoding="utf-8" standalone="no"?>
927 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
928 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
929 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
930 <svg height="247pt" version="1.1" viewBox="0 0 376 247" width="376pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
931 <defs>
932 <style type="text/css">
933 *{stroke-linecap:square;stroke-linejoin:round;}
934 </style>
935 </defs>
936 <g id="figure_1">
937 <g id="patch_1">
938 <path d="
939 M1.11022e-16 247.186
940 L376.006 247.186
941 L376.006 0
942 L1.11022e-16 0
943 z
944 " style="fill:#ffffff;"/>
945 </g>
946 <g id="axes_1">
947 <g id="patch_2">
948 <path d="
949 M28.525 228.422
950 L363.325 228.422
951 L363.325 10.982
952 L28.525 10.982
953 z
954 " style="fill:#ffffff;"/>
955 </g>
956 <g id="PolyCollection_1">
957 <defs>
958 <path d="
959 M62.1732 -76.5733
960 L62.1732 -18.7641
961 L112.646 -18.7641
962 L163.118 -18.7641
963 L213.59 -18.7641
964 L264.063 -18.7641
965 L314.535 -18.7641
966 L314.535 -197.831
967 L314.535 -197.831
968 L264.063 -151.23
969 L213.59 -147.731
970 L163.118 -155.408
971 L112.646 -142.331
972 L62.1732 -76.5733
973 z
974 " id="C0_0_6a60dee275"/>
975 </defs>
976 <g clip-path="url(#p9c13e52295)">
977 <use style="fill:#808080;opacity:0.4;stroke:#000000;stroke-linecap:butt;" x="0" xlink:href="#C0_0_6a60dee275" y="247.18609375"/>
978 </g>
979 </g>
980 <g id="line2d_1">
981 <path clip-path="url(#p9c13e52295)" d="
982 M32.0339 248.186
983 L36.9371 233.224
984 L41.9843 218.818
985 L47.0315 205.386
986 L50.3964 196.956
987 L53.7612 188.936
988 L57.126 181.315
989 L60.4908 174.085
990 L63.8557 167.235
991 L67.2205 160.756
992 L70.5853 154.64
993 L73.9501 148.876
994 L77.3149 143.454
995 L80.6798 138.367
996 L84.0446 133.603
997 L87.4094 129.154
998 L90.7742 125.009
999 L94.1391 121.161
1000 L97.5039 117.598
1001 L100.869 114.313
1002 L104.234 111.294
1003 L107.598 108.534
1004 L110.963 106.021
1005 L114.328 103.748
1006 L117.693 101.704
1007 L121.058 99.8798
1008 L124.422 98.2661
1009 L127.787 96.8536
1010 L131.152 95.6325
1011 L134.517 94.5936
1012 L137.882 93.7273
1013 L141.247 93.0243
1014 L146.294 92.2549
1015 L151.341 91.7995
1016 L156.388 91.6262
1017 L161.436 91.7029
1018 L166.483 91.9978
1019 L171.53 92.479
1020 L178.26 93.355
1021 L186.672 94.7206
1022 L215.273 99.6953
1023 L222.002 100.51
1024 L227.05 100.933
1025 L232.097 101.158
1026 L237.144 101.155
1027 L242.191 100.891
1028 L247.239 100.335
1029 L250.603 99.7855
1030 L253.968 99.0824
1031 L257.333 98.2162
1032 L260.698 97.1772
1033 L264.063 95.9562
1034 L267.428 94.5436
1035 L270.792 92.93
1036 L274.157 91.1059
1037 L277.522 89.0619
1038 L280.887 86.7884
1039 L284.252 84.2761
1040 L287.616 81.5155
1041 L290.981 78.497
1042 L294.346 75.2114
1043 L297.711 71.649
1044 L301.076 67.8004
1045 L304.441 63.6563
1046 L307.805 59.207
1047 L311.17 54.4432
1048 L314.535 49.3554
1049 L317.9 43.9341
1050 L321.265 38.1699
1051 L324.63 32.0533
1052 L327.994 25.5748
1053 L331.359 18.7251
1054 L334.724 11.4946
1055 L338.089 3.87383
1056 L340.15 -1
1057 L340.15 -1" style="fill:none;stroke:#0000ff;stroke-width:2;"/>
1058 </g>
1059 <g id="matplotlib.axis_1">
1060 <g id="xtick_1">
1061 <g id="line2d_2">
1062 <defs>
1063 <path d="
1064 M0 0
1065 L0 -4" id="m1e01ff8d7c"/>
1066 </defs>
1067 <g>
1068 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
1069 </g>
1070 </g>
1071 <g id="line2d_3">
1072 <defs>
1073 <path d="
1074 M0 0
1075 L0 4" id="m91aa736623"/>
1076 </defs>
1077 <g>
1078 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#m91aa736623" y="10.98203125"/>
1079 </g>
1080 </g>
1081 <g id="text_1">
1082 <!-- 0 -->
1083 <defs>
1084 <path d="
1085 M31.7812 66.4062
1086 Q24.1719 66.4062 20.3281 58.9062
1087 Q16.5 51.4219 16.5 36.375
1088 Q16.5 21.3906 20.3281 13.8906
1089 Q24.1719 6.39062 31.7812 6.39062
1090 Q39.4531 6.39062 43.2812 13.8906
1091 Q47.125 21.3906 47.125 36.375
1092 Q47.125 51.4219 43.2812 58.9062
1093 Q39.4531 66.4062 31.7812 66.4062
1094 M31.7812 74.2188
1095 Q44.0469 74.2188 50.5156 64.5156
1096 Q56.9844 54.8281 56.9844 36.375
1097 Q56.9844 17.9688 50.5156 8.26562
1098 Q44.0469 -1.42188 31.7812 -1.42188
1099 Q19.5312 -1.42188 13.0625 8.26562
1100 Q6.59375 17.9688 6.59375 36.375
1101 Q6.59375 54.8281 13.0625 64.5156
1102 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
1103 </defs>
1104 <g transform="translate(26.00546875 239.84390625)scale(0.1 -0.1)">
1105 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
1106 </g>
1107 </g>
1108 </g>
1109 <g id="xtick_2">
1110 <g id="line2d_4">
1111 <defs>
1112 <path d="
1113 M0 0
1114 L0 -4" id="m1e01ff8d7c"/>
1115 </defs>
1116 <g>
1117 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="95.485" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
1118 </g>
1119 </g>
1120 <g id="line2d_5">
1121 <defs>
1122 <path d="
1123 M0 0
1124 L0 4" id="m91aa736623"/>
1125 </defs>
1126 <g>
1127 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="95.485" xlink:href="#m91aa736623" y="10.98203125"/>
1128 </g>
1129 </g>
1130 <g id="text_2">
1131 <!-- 2 -->
1132 <defs>
1133 <path d="
1134 M19.1875 8.29688
1135 L53.6094 8.29688
1136 L53.6094 0
1137 L7.32812 0
1138 L7.32812 8.29688
1139 Q12.9375 14.1094 22.625 23.8906
1140 Q32.3281 33.6875 34.8125 36.5312
1141 Q39.5469 41.8438 41.4219 45.5312
1142 Q43.3125 49.2188 43.3125 52.7812
1143 Q43.3125 58.5938 39.2344 62.25
1144 Q35.1562 65.9219 28.6094 65.9219
1145 Q23.9688 65.9219 18.8125 64.3125
1146 Q13.6719 62.7031 7.8125 59.4219
1147 L7.8125 69.3906
1148 Q13.7656 71.7812 18.9375 73
1149 Q24.125 74.2188 28.4219 74.2188
1150 Q39.75 74.2188 46.4844 68.5469
1151 Q53.2188 62.8906 53.2188 53.4219
1152 Q53.2188 48.9219 51.5312 44.8906
1153 Q49.8594 40.875 45.4062 35.4062
1154 Q44.1875 33.9844 37.6406 27.2188
1155 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
1156 </defs>
1157 <g transform="translate(93.1709375 239.84390625)scale(0.1 -0.1)">
1158 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
1159 </g>
1160 </g>
1161 </g>
1162 <g id="xtick_3">
1163 <g id="line2d_6">
1164 <defs>
1165 <path d="
1166 M0 0
1167 L0 -4" id="m1e01ff8d7c"/>
1168 </defs>
1169 <g>
1170 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="162.445" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
1171 </g>
1172 </g>
1173 <g id="line2d_7">
1174 <defs>
1175 <path d="
1176 M0 0
1177 L0 4" id="m91aa736623"/>
1178 </defs>
1179 <g>
1180 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="162.445" xlink:href="#m91aa736623" y="10.98203125"/>
1181 </g>
1182 </g>
1183 <g id="text_3">
1184 <!-- 4 -->
1185 <defs>
1186 <path d="
1187 M37.7969 64.3125
1188 L12.8906 25.3906
1189 L37.7969 25.3906
1190 z
1191
1192 M35.2031 72.9062
1193 L47.6094 72.9062
1194 L47.6094 25.3906
1195 L58.0156 25.3906
1196 L58.0156 17.1875
1197 L47.6094 17.1875
1198 L47.6094 0
1199 L37.7969 0
1200 L37.7969 17.1875
1201 L4.89062 17.1875
1202 L4.89062 26.7031
1203 z
1204 " id="BitstreamVeraSans-Roman-34"/>
1205 </defs>
1206 <g transform="translate(159.78875 239.71265625)scale(0.1 -0.1)">
1207 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
1208 </g>
1209 </g>
1210 </g>
1211 <g id="xtick_4">
1212 <g id="line2d_8">
1213 <defs>
1214 <path d="
1215 M0 0
1216 L0 -4" id="m1e01ff8d7c"/>
1217 </defs>
1218 <g>
1219 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="229.405" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
1220 </g>
1221 </g>
1222 <g id="line2d_9">
1223 <defs>
1224 <path d="
1225 M0 0
1226 L0 4" id="m91aa736623"/>
1227 </defs>
1228 <g>
1229 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="229.405" xlink:href="#m91aa736623" y="10.98203125"/>
1230 </g>
1231 </g>
1232 <g id="text_4">
1233 <!-- 6 -->
1234 <defs>
1235 <path d="
1236 M33.0156 40.375
1237 Q26.375 40.375 22.4844 35.8281
1238 Q18.6094 31.2969 18.6094 23.3906
1239 Q18.6094 15.5312 22.4844 10.9531
1240 Q26.375 6.39062 33.0156 6.39062
1241 Q39.6562 6.39062 43.5312 10.9531
1242 Q47.4062 15.5312 47.4062 23.3906
1243 Q47.4062 31.2969 43.5312 35.8281
1244 Q39.6562 40.375 33.0156 40.375
1245 M52.5938 71.2969
1246 L52.5938 62.3125
1247 Q48.875 64.0625 45.0938 64.9844
1248 Q41.3125 65.9219 37.5938 65.9219
1249 Q27.8281 65.9219 22.6719 59.3281
1250 Q17.5312 52.7344 16.7969 39.4062
1251 Q19.6719 43.6562 24.0156 45.9219
1252 Q28.375 48.1875 33.5938 48.1875
1253 Q44.5781 48.1875 50.9531 41.5156
1254 Q57.3281 34.8594 57.3281 23.3906
1255 Q57.3281 12.1562 50.6875 5.35938
1256 Q44.0469 -1.42188 33.0156 -1.42188
1257 Q20.3594 -1.42188 13.6719 8.26562
1258 Q6.98438 17.9688 6.98438 36.375
1259 Q6.98438 53.6562 15.1875 63.9375
1260 Q23.3906 74.2188 37.2031 74.2188
1261 Q40.9219 74.2188 44.7031 73.4844
1262 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
1263 </defs>
1264 <g transform="translate(226.8878125 239.84390625)scale(0.1 -0.1)">
1265 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
1266 </g>
1267 </g>
1268 </g>
1269 <g id="xtick_5">
1270 <g id="line2d_10">
1271 <defs>
1272 <path d="
1273 M0 0
1274 L0 -4" id="m1e01ff8d7c"/>
1275 </defs>
1276 <g>
1277 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="296.365" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
1278 </g>
1279 </g>
1280 <g id="line2d_11">
1281 <defs>
1282 <path d="
1283 M0 0
1284 L0 4" id="m91aa736623"/>
1285 </defs>
1286 <g>
1287 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="296.365" xlink:href="#m91aa736623" y="10.98203125"/>
1288 </g>
1289 </g>
1290 <g id="text_5">
1291 <!-- 8 -->
1292 <defs>
1293 <path d="
1294 M31.7812 34.625
1295 Q24.75 34.625 20.7188 30.8594
1296 Q16.7031 27.0938 16.7031 20.5156
1297 Q16.7031 13.9219 20.7188 10.1562
1298 Q24.75 6.39062 31.7812 6.39062
1299 Q38.8125 6.39062 42.8594 10.1719
1300 Q46.9219 13.9688 46.9219 20.5156
1301 Q46.9219 27.0938 42.8906 30.8594
1302 Q38.875 34.625 31.7812 34.625
1303 M21.9219 38.8125
1304 Q15.5781 40.375 12.0312 44.7188
1305 Q8.5 49.0781 8.5 55.3281
1306 Q8.5 64.0625 14.7188 69.1406
1307 Q20.9531 74.2188 31.7812 74.2188
1308 Q42.6719 74.2188 48.875 69.1406
1309 Q55.0781 64.0625 55.0781 55.3281
1310 Q55.0781 49.0781 51.5312 44.7188
1311 Q48 40.375 41.7031 38.8125
1312 Q48.8281 37.1562 52.7969 32.3125
1313 Q56.7812 27.4844 56.7812 20.5156
1314 Q56.7812 9.90625 50.3125 4.23438
1315 Q43.8438 -1.42188 31.7812 -1.42188
1316 Q19.7344 -1.42188 13.25 4.23438
1317 Q6.78125 9.90625 6.78125 20.5156
1318 Q6.78125 27.4844 10.7812 32.3125
1319 Q14.7969 37.1562 21.9219 38.8125
1320 M18.3125 54.3906
1321 Q18.3125 48.7344 21.8438 45.5625
1322 Q25.3906 42.3906 31.7812 42.3906
1323 Q38.1406 42.3906 41.7188 45.5625
1324 Q45.3125 48.7344 45.3125 54.3906
1325 Q45.3125 60.0625 41.7188 63.2344
1326 Q38.1406 66.4062 31.7812 66.4062
1327 Q25.3906 66.4062 21.8438 63.2344
1328 Q18.3125 60.0625 18.3125 54.3906" id="BitstreamVeraSans-Roman-38"/>
1329 </defs>
1330 <g transform="translate(293.865 239.84390625)scale(0.1 -0.1)">
1331 <use xlink:href="#BitstreamVeraSans-Roman-38"/>
1332 </g>
1333 </g>
1334 </g>
1335 <g id="xtick_6">
1336 <g id="line2d_12">
1337 <defs>
1338 <path d="
1339 M0 0
1340 L0 -4" id="m1e01ff8d7c"/>
1341 </defs>
1342 <g>
1343 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
1344 </g>
1345 </g>
1346 <g id="line2d_13">
1347 <defs>
1348 <path d="
1349 M0 0
1350 L0 4" id="m91aa736623"/>
1351 </defs>
1352 <g>
1353 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m91aa736623" y="10.98203125"/>
1354 </g>
1355 </g>
1356 <g id="text_6">
1357 <!-- 10 -->
1358 <defs>
1359 <path d="
1360 M12.4062 8.29688
1361 L28.5156 8.29688
1362 L28.5156 63.9219
1363 L10.9844 60.4062
1364 L10.9844 69.3906
1365 L28.4219 72.9062
1366 L38.2812 72.9062
1367 L38.2812 8.29688
1368 L54.3906 8.29688
1369 L54.3906 0
1370 L12.4062 0
1371 z
1372 " id="BitstreamVeraSans-Roman-31"/>
1373 </defs>
1374 <g transform="translate(357.84375 239.84390625)scale(0.1 -0.1)">
1375 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
1376 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
1377 </g>
1378 </g>
1379 </g>
1380 </g>
1381 <g id="matplotlib.axis_2">
1382 <g id="ytick_1">
1383 <g id="line2d_14">
1384 <defs>
1385 <path d="
1386 M0 0
1387 L4 0" id="mf019e8ac8f"/>
1388 </defs>
1389 <g>
1390 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="228.42203125"/>
1391 </g>
1392 </g>
1393 <g id="line2d_15">
1394 <defs>
1395 <path d="
1396 M0 0
1397 L-4 0" id="m1ec148bd55"/>
1398 </defs>
1399 <g>
1400 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="228.42203125"/>
1401 </g>
1402 </g>
1403 <g id="text_7">
1404 <!-- 0 -->
1405 <g transform="translate(19.4859375 232.061875)scale(0.1 -0.1)">
1406 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
1407 </g>
1408 </g>
1409 </g>
1410 <g id="ytick_2">
1411 <g id="line2d_16">
1412 <defs>
1413 <path d="
1414 M0 0
1415 L4 0" id="mf019e8ac8f"/>
1416 </defs>
1417 <g>
1418 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="197.359174107"/>
1419 </g>
1420 </g>
1421 <g id="line2d_17">
1422 <defs>
1423 <path d="
1424 M0 0
1425 L-4 0" id="m1ec148bd55"/>
1426 </defs>
1427 <g>
1428 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="197.359174107"/>
1429 </g>
1430 </g>
1431 <g id="text_8">
1432 <!-- 20 -->
1433 <g transform="translate(13.196875 200.999017857)scale(0.1 -0.1)">
1434 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
1435 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
1436 </g>
1437 </g>
1438 </g>
1439 <g id="ytick_3">
1440 <g id="line2d_18">
1441 <defs>
1442 <path d="
1443 M0 0
1444 L4 0" id="mf019e8ac8f"/>
1445 </defs>
1446 <g>
1447 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="166.296316964"/>
1448 </g>
1449 </g>
1450 <g id="line2d_19">
1451 <defs>
1452 <path d="
1453 M0 0
1454 L-4 0" id="m1ec148bd55"/>
1455 </defs>
1456 <g>
1457 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="166.296316964"/>
1458 </g>
1459 </g>
1460 <g id="text_9">
1461 <!-- 40 -->
1462 <g transform="translate(12.953125 169.936160714)scale(0.1 -0.1)">
1463 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
1464 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
1465 </g>
1466 </g>
1467 </g>
1468 <g id="ytick_4">
1469 <g id="line2d_20">
1470 <defs>
1471 <path d="
1472 M0 0
1473 L4 0" id="mf019e8ac8f"/>
1474 </defs>
1475 <g>
1476 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="135.233459821"/>
1477 </g>
1478 </g>
1479 <g id="line2d_21">
1480 <defs>
1481 <path d="
1482 M0 0
1483 L-4 0" id="m1ec148bd55"/>
1484 </defs>
1485 <g>
1486 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="135.233459821"/>
1487 </g>
1488 </g>
1489 <g id="text_10">
1490 <!-- 60 -->
1491 <g transform="translate(13.1625 138.873303571)scale(0.1 -0.1)">
1492 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
1493 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
1494 </g>
1495 </g>
1496 </g>
1497 <g id="ytick_5">
1498 <g id="line2d_22">
1499 <defs>
1500 <path d="
1501 M0 0
1502 L4 0" id="mf019e8ac8f"/>
1503 </defs>
1504 <g>
1505 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="104.170602679"/>
1506 </g>
1507 </g>
1508 <g id="line2d_23">
1509 <defs>
1510 <path d="
1511 M0 0
1512 L-4 0" id="m1ec148bd55"/>
1513 </defs>
1514 <g>
1515 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="104.170602679"/>
1516 </g>
1517 </g>
1518 <g id="text_11">
1519 <!-- 80 -->
1520 <g transform="translate(13.1421875 107.810446429)scale(0.1 -0.1)">
1521 <use xlink:href="#BitstreamVeraSans-Roman-38"/>
1522 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
1523 </g>
1524 </g>
1525 </g>
1526 <g id="ytick_6">
1527 <g id="line2d_24">
1528 <defs>
1529 <path d="
1530 M0 0
1531 L4 0" id="mf019e8ac8f"/>
1532 </defs>
1533 <g>
1534 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="73.1077455357"/>
1535 </g>
1536 </g>
1537 <g id="line2d_25">
1538 <defs>
1539 <path d="
1540 M0 0
1541 L-4 0" id="m1ec148bd55"/>
1542 </defs>
1543 <g>
1544 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="73.1077455357"/>
1545 </g>
1546 </g>
1547 <g id="text_12">
1548 <!-- 100 -->
1549 <g transform="translate(7.2 76.7475892857)scale(0.1 -0.1)">
1550 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
1551 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
1552 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
1553 </g>
1554 </g>
1555 </g>
1556 <g id="ytick_7">
1557 <g id="line2d_26">
1558 <defs>
1559 <path d="
1560 M0 0
1561 L4 0" id="mf019e8ac8f"/>
1562 </defs>
1563 <g>
1564 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="42.0448883929"/>
1565 </g>
1566 </g>
1567 <g id="line2d_27">
1568 <defs>
1569 <path d="
1570 M0 0
1571 L-4 0" id="m1ec148bd55"/>
1572 </defs>
1573 <g>
1574 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="42.0448883929"/>
1575 </g>
1576 </g>
1577 <g id="text_13">
1578 <!-- 120 -->
1579 <g transform="translate(7.2 45.6847321429)scale(0.1 -0.1)">
1580 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
1581 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-32"/>
1582 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
1583 </g>
1584 </g>
1585 </g>
1586 <g id="ytick_8">
1587 <g id="line2d_28">
1588 <defs>
1589 <path d="
1590 M0 0
1591 L4 0" id="mf019e8ac8f"/>
1592 </defs>
1593 <g>
1594 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.525" xlink:href="#mf019e8ac8f" y="10.98203125"/>
1595 </g>
1596 </g>
1597 <g id="line2d_29">
1598 <defs>
1599 <path d="
1600 M0 0
1601 L-4 0" id="m1ec148bd55"/>
1602 </defs>
1603 <g>
1604 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="363.325" xlink:href="#m1ec148bd55" y="10.98203125"/>
1605 </g>
1606 </g>
1607 <g id="text_14">
1608 <!-- 140 -->
1609 <g transform="translate(7.2 14.621875)scale(0.1 -0.1)">
1610 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
1611 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-34"/>
1612 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
1613 </g>
1614 </g>
1615 </g>
1616 </g>
1617 <g id="patch_3">
1618 <path d="
1619 M28.525 10.982
1620 L363.325 10.982" style="fill:none;stroke:#000000;"/>
1621 </g>
1622 <g id="patch_4">
1623 <path d="
1624 M363.325 228.422
1625 L363.325 10.982" style="fill:none;stroke:#000000;"/>
1626 </g>
1627 <g id="patch_5">
1628 <path d="
1629 M28.525 228.422
1630 L363.325 228.422" style="fill:none;stroke:#000000;"/>
1631 </g>
1632 <g id="patch_6">
1633 <path d="
1634 M28.525 228.422
1635 L28.525 10.982" style="fill:none;stroke:#000000;"/>
1636 </g>
1637 <g id="text_15">
1638 <!-- $\int_a^b f(x)dx$ -->
1639 <defs>
1640 <path d="
1641 M10.5938 -217.094
1642 Q13.0938 -219.578 16.7031 -219.578
1643 Q20.3125 -219.578 23.2812 -214.625
1644 Q26.2656 -209.672 28.5156 -202.25
1645 Q30.7656 -194.828 31.8125 -189.812
1646 Q32.8594 -184.812 34.4219 -176.906
1647 Q35.8438 -169.531 37.1562 -162.109
1648 Q38.4844 -154.688 39.875 -146.312
1649 Q41.2656 -137.938 42.7969 -129.312
1650 Q44.3438 -120.703 46.2969 -110.984
1651 Q48.9219 -98.1875 50.0625 -92.6875
1652 Q51.2188 -87.2031 53.5625 -76.8281
1653 Q55.9062 -66.4531 56.6562 -63.1562
1654 Q57.4219 -59.8594 60.9844 -45.125
1655 L62.3125 -39.8906
1656 Q64.5469 -31.1094 65.7656 -26.5938
1657 Q67 -22.0781 69.5625 -15.5469
1658 Q72.125 -9.03125 75.5781 -4.51562
1659 Q79.0469 0 83.2031 0
1660 Q86.1406 0 88.6406 -1.3125
1661 Q91.1562 -2.64062 92.7188 -4.9375
1662 Q94.2812 -7.23438 94.2812 -10.2031
1663 Q94.2812 -12.3594 92.8594 -13.7656
1664 Q91.4531 -15.1875 89.3125 -15.1875
1665 Q87.1094 -15.1875 85.6406 -13.7656
1666 Q84.1875 -12.3594 84.1875 -10.2031
1667 Q84.1875 -8.01562 85.6406 -6.54688
1668 Q87.1094 -5.07812 89.3125 -5.07812
1669 Q86.7188 -2.59375 83.2969 -2.59375
1670 Q81.4531 -2.59375 79.2188 -8
1671 Q77 -13.4219 75.125 -20.7656
1672 Q73.25 -28.125 72.2344 -33.0312
1673 Q71.2344 -37.9375 69.8281 -45.3125
1674 Q68.1719 -53.6562 67.0625 -59.8594
1675 Q65.9688 -66.0625 64.4062 -75.1875
1676 Q62.8438 -84.3281 61.3438 -92.5781
1677 Q59.8594 -100.828 57.8125 -111.188
1678 Q56.5 -117.719 54 -129.562
1679 Q51.5156 -141.406 50.7031 -144.969
1680 Q49.9062 -148.531 46.6094 -162.391
1681 Q43.3125 -176.266 43.1094 -177.094
1682 L41.8906 -181.688
1683 Q39.3125 -192.281 36.6875 -200.312
1684 Q34.0781 -208.344 29.0156 -215.281
1685 Q23.9688 -222.219 16.7031 -222.219
1686 Q12.3594 -222.219 8.98438 -219.281
1687 Q5.60938 -216.359 5.60938 -212.109
1688 Q5.60938 -209.906 7.07812 -208.438
1689 Q8.54688 -206.984 10.6875 -206.984
1690 Q12.1094 -206.984 13.25 -207.656
1691 Q14.4062 -208.344 15.0625 -209.516
1692 Q15.7188 -210.688 15.7188 -212.109
1693 Q15.7188 -214.266 14.25 -215.672
1694 Q12.7969 -217.094 10.5938 -217.094" id="Cmex10-5a"/>
1695 <path d="
1696 M31 -24.8125
1697 Q25.4375 -20.4062 21.4062 -14.7188
1698 Q17.3906 -9.03125 14.8125 -2.57812
1699 Q12.25 3.85938 10.9844 10.8906
1700 Q9.71875 17.9219 9.71875 25
1701 Q9.71875 32.1719 10.9844 39.2031
1702 Q12.25 46.2344 14.8594 52.7344
1703 Q17.4844 59.2344 21.5312 64.8906
1704 Q25.5938 70.5625 31 74.8125
1705 Q31 75 31.5 75
1706 L32.4219 75
1707 Q32.7188 75 32.9531 74.7344
1708 Q33.2031 74.4688 33.2031 74.125
1709 Q33.2031 73.6875 33.0156 73.4844
1710 Q28.125 68.7031 24.875 63.2344
1711 Q21.625 57.7656 19.6406 51.5781
1712 Q17.6719 45.4062 16.7969 38.7812
1713 Q15.9219 32.1719 15.9219 25
1714 Q15.9219 -6.78125 32.9062 -23.2969
1715 Q33.2031 -23.5781 33.2031 -24.125
1716 Q33.2031 -24.3594 32.9375 -24.6719
1717 Q32.6719 -25 32.4219 -25
1718 L31.5 -25
1719 Q31 -25 31 -24.8125" id="Cmr10-28"/>
1720 <path d="
1721 M6.5 -25
1722 Q5.60938 -25 5.60938 -24.125
1723 Q5.60938 -23.6875 5.8125 -23.4844
1724 Q22.9062 -6.78125 22.9062 25
1725 Q22.9062 56.7812 6 73.2969
1726 Q5.60938 73.5312 5.60938 74.125
1727 Q5.60938 74.4688 5.875 74.7344
1728 Q6.15625 75 6.5 75
1729 L7.42188 75
1730 Q7.71875 75 7.90625 74.8125
1731 Q15.0938 69.1406 19.875 61.0312
1732 Q24.6562 52.9375 26.875 43.75
1733 Q29.1094 34.5781 29.1094 25
1734 Q29.1094 17.9219 27.9062 11.0625
1735 Q26.7031 4.20312 24.0938 -2.45312
1736 Q21.4844 -9.125 17.4844 -14.7656
1737 Q13.4844 -20.4062 7.90625 -24.8125
1738 Q7.71875 -25 7.42188 -25
1739 z
1740 " id="Cmr10-29"/>
1741 <path d="
1742 M17.3906 -1.125
1743 Q11.0781 -1.125 7.4375 3.64062
1744 Q3.8125 8.40625 3.8125 14.8906
1745 Q3.8125 21.2969 7.125 28.1719
1746 Q10.4531 35.0625 16.0938 39.625
1747 Q21.7344 44.1875 28.2188 44.1875
1748 Q31.2031 44.1875 33.5469 42.5781
1749 Q35.8906 40.9688 37.2031 38.1875
1750 Q38.3281 42.1875 41.6094 42.1875
1751 Q42.875 42.1875 43.7188 41.4219
1752 Q44.5781 40.6719 44.5781 39.4062
1753 Q44.5781 39.1094 44.5469 38.9531
1754 Q44.5312 38.8125 44.4844 38.625
1755 L37.5 10.6875
1756 Q36.8125 7.71875 36.8125 5.8125
1757 Q36.8125 1.51562 39.7031 1.51562
1758 Q42.8281 1.51562 44.4531 5.48438
1759 Q46.0938 9.46875 47.2188 14.7031
1760 Q47.4062 15.2812 48 15.2812
1761 L49.2188 15.2812
1762 Q49.6094 15.2812 49.8438 14.9375
1763 Q50.0938 14.5938 50.0938 14.3125
1764 Q48.3438 7.32812 46.2656 3.09375
1765 Q44.1875 -1.125 39.5 -1.125
1766 Q36.1406 -1.125 33.5469 0.84375
1767 Q30.9531 2.82812 30.3281 6.10938
1768 Q23.875 -1.125 17.3906 -1.125
1769 M17.4844 1.51562
1770 Q21.0938 1.51562 24.4844 4.21875
1771 Q27.875 6.9375 30.3281 10.5938
1772 Q30.4219 10.6875 30.4219 10.8906
1773 L35.7969 32.625
1774 L35.8906 32.9062
1775 Q35.2969 36.4688 33.3125 39.0312
1776 Q31.3438 41.6094 27.9844 41.6094
1777 Q24.6094 41.6094 21.7031 38.8438
1778 Q18.7969 36.0781 16.7969 32.3281
1779 Q14.8438 28.3281 13.0625 21.3438
1780 Q11.2812 14.3594 11.2812 10.5
1781 Q11.2812 7.03125 12.7656 4.26562
1782 Q14.2656 1.51562 17.4844 1.51562" id="Cmmi10-61"/>
1783 <path d="
1784 M17.2812 -1.125
1785 Q11.2344 -1.125 7.85938 3.60938
1786 Q4.5 8.34375 4.5 14.7031
1787 Q4.5 15.625 4.95312 18.3281
1788 Q5.42188 21.0469 5.42188 21.6875
1789 L15.0938 60.5
1790 Q15.4844 62.2031 15.5781 63.1875
1791 Q15.5781 64.7969 9.07812 64.7969
1792 Q8.10938 64.7969 8.10938 66.1094
1793 Q8.15625 66.3594 8.32812 66.9844
1794 Q8.5 67.625 8.76562 67.9688
1795 Q9.03125 68.3125 9.51562 68.3125
1796 L23 69.3906
1797 Q24.2188 69.3906 24.2188 68.1094
1798 L16.7969 38.625
1799 Q22.4688 44.1875 28.2188 44.1875
1800 Q32.4688 44.1875 35.5156 41.9375
1801 Q38.5781 39.7031 40.0938 36.0312
1802 Q41.6094 32.375 41.6094 28.2188
1803 Q41.6094 23.3906 39.7188 18.2344
1804 Q37.8438 13.0938 34.5156 8.67188
1805 Q31.2031 4.25 26.75 1.5625
1806 Q22.3125 -1.125 17.2812 -1.125
1807 M17.4844 1.51562
1808 Q20.9062 1.51562 23.875 4.375
1809 Q26.8594 7.23438 28.7188 10.7969
1810 Q30.7188 14.7969 32.4531 21.6562
1811 Q34.1875 28.5156 34.1875 32.625
1812 Q34.1875 36.1875 32.6875 38.8906
1813 Q31.2031 41.6094 27.9844 41.6094
1814 Q24.3594 41.6094 21.0625 38.9375
1815 Q17.7812 36.2812 15.2812 32.625
1816 L12.5 21.2969
1817 Q10.8906 14.9844 10.7969 11.1875
1818 Q10.7969 7.42188 12.4219 4.46875
1819 Q14.0625 1.51562 17.4844 1.51562" id="Cmmi10-62"/>
1820 <path d="
1821 M17.3906 -1.125
1822 Q11.0781 -1.125 7.4375 3.64062
1823 Q3.8125 8.40625 3.8125 14.8906
1824 Q3.8125 21.2969 7.125 28.1719
1825 Q10.4531 35.0625 16.0938 39.625
1826 Q21.7344 44.1875 28.2188 44.1875
1827 Q31.1562 44.1875 33.5156 42.5469
1828 Q35.8906 40.9219 37.2031 38.1875
1829 L42.8281 60.5
1830 Q43.2188 62.2031 43.3125 63.1875
1831 Q43.3125 64.7969 36.8125 64.7969
1832 Q35.7969 64.7969 35.7969 66.1094
1833 Q35.8438 66.3594 36.0156 66.9844
1834 Q36.1875 67.625 36.4531 67.9688
1835 Q36.7188 68.3125 37.2031 68.3125
1836 L50.6875 69.3906
1837 Q51.9062 69.3906 51.9062 68.1094
1838 L37.5 10.5938
1839 Q36.8125 8.9375 36.8125 5.8125
1840 Q36.8125 1.51562 39.7031 1.51562
1841 Q42.8281 1.51562 44.4531 5.48438
1842 Q46.0938 9.46875 47.2188 14.7031
1843 Q47.4062 15.2812 48 15.2812
1844 L49.2188 15.2812
1845 Q49.6094 15.2812 49.8438 14.9375
1846 Q50.0938 14.5938 50.0938 14.3125
1847 Q48.3438 7.32812 46.2656 3.09375
1848 Q44.1875 -1.125 39.5 -1.125
1849 Q36.1406 -1.125 33.5469 0.84375
1850 Q30.9531 2.82812 30.3281 6.10938
1851 Q23.875 -1.125 17.3906 -1.125
1852 M17.4844 1.51562
1853 Q21.0938 1.51562 24.4844 4.21875
1854 Q27.875 6.9375 30.3281 10.5938
1855 Q30.4219 10.6875 30.4219 10.9844
1856 L35.8906 33.0156
1857 Q35.2969 36.5312 33.2969 39.0625
1858 Q31.2969 41.6094 27.9844 41.6094
1859 Q24.6094 41.6094 21.7031 38.8438
1860 Q18.7969 36.0781 16.7969 32.3281
1861 Q14.8438 28.3281 13.0625 21.3438
1862 Q11.2812 14.3594 11.2812 10.5
1863 Q11.2812 7.03125 12.7656 4.26562
1864 Q14.2656 1.51562 17.4844 1.51562" id="Cmmi10-64"/>
1865 <path d="
1866 M9.71875 -16.5
1867 Q11.5781 -17.9219 14.2031 -17.9219
1868 Q17.7812 -17.9219 20.0156 -10.0156
1869 Q20.9531 -6.20312 25.0938 15.0938
1870 L29.6875 39.5938
1871 L21.0938 39.5938
1872 Q20.125 39.5938 20.125 40.9219
1873 Q20.5156 43.1094 21.3906 43.1094
1874 L30.3281 43.1094
1875 L31.5 49.6094
1876 Q32.0781 52.6406 32.5625 54.8125
1877 Q33.0625 56.9844 33.625 58.8281
1878 Q34.1875 60.6875 35.2969 62.9844
1879 Q37.0156 66.2656 39.9219 68.3906
1880 Q42.8281 70.5156 46.1875 70.5156
1881 Q48.3906 70.5156 50.4688 69.7031
1882 Q52.5469 68.8906 53.8594 67.2812
1883 Q55.1719 65.6719 55.1719 63.4844
1884 Q55.1719 60.9375 53.4844 59.0469
1885 Q51.8125 57.1719 49.4219 57.1719
1886 Q47.7969 57.1719 46.6562 58.1719
1887 Q45.5156 59.1875 45.5156 60.7969
1888 Q45.5156 62.9844 47 64.625
1889 Q48.4844 66.2656 50.6875 66.5
1890 Q48.8281 67.9219 46.0938 67.9219
1891 Q44.5781 67.9219 43.2344 66.5
1892 Q41.8906 65.0938 41.5 63.4844
1893 Q40.875 60.9375 38.7188 49.7031
1894 L37.5 43.1094
1895 L47.7969 43.1094
1896 Q48.7812 43.1094 48.7812 41.7969
1897 Q48.7344 41.5469 48.5781 40.9375
1898 Q48.4375 40.3281 48.1719 39.9531
1899 Q47.9062 39.5938 47.5156 39.5938
1900 L36.8125 39.5938
1901 L32.1719 15.1875
1902 Q31.2969 9.85938 30.1406 4.35938
1903 Q29 -1.125 26.9219 -6.90625
1904 Q24.8594 -12.7031 21.625 -16.6094
1905 Q18.4062 -20.5156 14.0156 -20.5156
1906 Q10.6406 -20.5156 7.98438 -18.5781
1907 Q5.32812 -16.6562 5.32812 -13.4844
1908 Q5.32812 -10.9375 6.95312 -9.04688
1909 Q8.59375 -7.17188 11.0781 -7.17188
1910 Q12.75 -7.17188 13.8594 -8.17188
1911 Q14.9844 -9.1875 14.9844 -10.7969
1912 Q14.9844 -12.9375 13.3906 -14.7188
1913 Q11.8125 -16.5 9.71875 -16.5" id="Cmmi10-66"/>
1914 <path d="
1915 M7.8125 2.875
1916 Q9.57812 1.51562 12.7969 1.51562
1917 Q15.9219 1.51562 18.3125 4.51562
1918 Q20.7031 7.51562 21.5781 11.0781
1919 L26.125 28.8125
1920 Q27.2031 33.6406 27.2031 35.4062
1921 Q27.2031 37.8906 25.8125 39.75
1922 Q24.4219 41.6094 21.9219 41.6094
1923 Q18.75 41.6094 15.9688 39.625
1924 Q13.1875 37.6406 11.2812 34.5938
1925 Q9.375 31.5469 8.59375 28.4219
1926 Q8.40625 27.7812 7.8125 27.7812
1927 L6.59375 27.7812
1928 Q5.8125 27.7812 5.8125 28.7188
1929 L5.8125 29
1930 Q6.78125 32.7188 9.125 36.25
1931 Q11.4688 39.7969 14.8594 41.9844
1932 Q18.2656 44.1875 22.125 44.1875
1933 Q25.7812 44.1875 28.7344 42.2344
1934 Q31.6875 40.2812 32.9062 36.9219
1935 Q34.625 39.9844 37.2812 42.0781
1936 Q39.9375 44.1875 43.1094 44.1875
1937 Q45.2656 44.1875 47.5 43.4219
1938 Q49.75 42.6719 51.1719 41.1094
1939 Q52.5938 39.5469 52.5938 37.2031
1940 Q52.5938 34.6719 50.9531 32.8281
1941 Q49.3125 31 46.7812 31
1942 Q45.1719 31 44.0938 32.0312
1943 Q43.0156 33.0625 43.0156 34.625
1944 Q43.0156 36.7188 44.4531 38.2969
1945 Q45.9062 39.8906 47.9062 40.1875
1946 Q46.0938 41.6094 42.9219 41.6094
1947 Q39.7031 41.6094 37.3281 38.625
1948 Q34.9688 35.6406 33.9844 31.9844
1949 L29.5938 14.3125
1950 Q28.5156 10.2969 28.5156 7.71875
1951 Q28.5156 5.17188 29.9531 3.34375
1952 Q31.3906 1.51562 33.7969 1.51562
1953 Q38.4844 1.51562 42.1562 5.64062
1954 Q45.8438 9.76562 47.0156 14.7031
1955 Q47.2188 15.2812 47.7969 15.2812
1956 L49.0312 15.2812
1957 Q49.4219 15.2812 49.6562 15.0156
1958 Q49.9062 14.75 49.9062 14.4062
1959 Q49.9062 14.3125 49.8125 14.1094
1960 Q48.3906 8.15625 43.8438 3.51562
1961 Q39.3125 -1.125 33.5938 -1.125
1962 Q29.9375 -1.125 26.9844 0.84375
1963 Q24.0312 2.82812 22.7969 6.20312
1964 Q21.2344 3.26562 18.4688 1.0625
1965 Q15.7188 -1.125 12.5938 -1.125
1966 Q10.4531 -1.125 8.17188 -0.359375
1967 Q5.90625 0.390625 4.48438 1.95312
1968 Q3.07812 3.51562 3.07812 5.90625
1969 Q3.07812 8.25 4.70312 10.1719
1970 Q6.34375 12.1094 8.79688 12.1094
1971 Q10.4531 12.1094 11.5781 11.1094
1972 Q12.7031 10.1094 12.7031 8.5
1973 Q12.7031 6.39062 11.2969 4.82812
1974 Q9.90625 3.26562 7.8125 2.875" id="Cmmi10-78"/>
1975 </defs>
1976 <g transform="translate(151.025 202.827745536)scale(0.2 -0.2)">
1977 <use transform="translate(0.0 249.9359375)" xlink:href="#Cmex10-5a"/>
1978 <use transform="translate(95.516953125 224.4265625)scale(0.7)" xlink:href="#Cmmi10-62"/>
1979 <use transform="translate(55.517578125 2.2078125)scale(0.7)" xlink:href="#Cmmi10-61"/>
1980 <use transform="translate(155.443125 105.493229167)" xlink:href="#Cmmi10-66"/>
1981 <use transform="translate(204.320078125 105.493229167)" xlink:href="#Cmr10-28"/>
1982 <use transform="translate(243.1384375 105.493229167)" xlink:href="#Cmmi10-78"/>
1983 <use transform="translate(300.218515625 105.493229167)" xlink:href="#Cmr10-29"/>
1984 <use transform="translate(339.036875 105.493229167)" xlink:href="#Cmmi10-64"/>
1985 <use transform="translate(391.038828125 105.493229167)" xlink:href="#Cmmi10-78"/>
1986 </g>
1987 </g>
1988 </g>
1989 </g>
1990 <defs>
1991 <clipPath id="p9c13e52295">
1992 <rect height="217.44" width="334.8" x="28.525" y="10.98203125"/>
1993 </clipPath>
1994 </defs>
1995 </svg>
1996
1997 </div>
1998 </div>
1999 </div>
2000 </div>
2001 </div>
2002 <div class="text_cell_render border-box-sizing rendered_html">
2003 <p>Compute the integral both at high accuracy and with the trapezoid approximation</p>
2004 </div>
2005 <div class="cell border-box-sizing code_cell vbox">
2006 <div class="input hbox">
2007 <div class="prompt input_prompt">In&nbsp;[4]:</div>
2008 <div class="input_area box-flex1">
2009 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">scipy.integrate</span> <span class="kn">import</span> <span class="n">quad</span><span class="p">,</span> <span class="n">trapz</span>
2010 <span class="n">integral</span><span class="p">,</span> <span class="n">error</span> <span class="o">=</span> <span class="n">quad</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">9</span><span class="p">)</span>
2011 <span class="n">trap_integral</span> <span class="o">=</span> <span class="n">trapz</span><span class="p">(</span><span class="n">yint</span><span class="p">,</span> <span class="n">xint</span><span class="p">)</span>
2012 <span class="k">print</span> <span class="s">&quot;The integral is: </span><span class="si">%g</span><span class="s"> +/- </span><span class="si">%.1e</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">integral</span><span class="p">,</span> <span class="n">error</span><span class="p">)</span>
2013 <span class="k">print</span> <span class="s">&quot;The trapezoid approximation with&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">xint</span><span class="p">),</span> <span class="s">&quot;points is:&quot;</span><span class="p">,</span> <span class="n">trap_integral</span>
2014 <span class="k">print</span> <span class="s">&quot;The absolute error is:&quot;</span><span class="p">,</span> <span class="nb">abs</span><span class="p">(</span><span class="n">integral</span> <span class="o">-</span> <span class="n">trap_integral</span><span class="p">)</span>
2015 </pre></div>
2016
2017 </div>
2018 </div>
2019 <div class="vbox output_wrapper">
2020 <div class="output vbox">
2021 <div class="hbox output_area">
2022 <div class="prompt output_prompt"></div>
2023 <div class="output_subarea output_stream output_stdout">
2024 <pre>The integral is: 680 +/- 7.5e-12
2025 The trapezoid approximation with 6 points is: 621.286411141
2026 The absolute error is: 58.7135888589
2027 </pre>
2028 </div>
2029 </div>
2030 </div>
2031 </div>
2032 </div>
2033 <div class="text_cell_render border-box-sizing rendered_html">
2034 <p>This simple example showed us how, combining the numpy, scipy and matplotlib libraries we can provide an illustration of a standard method in elementary calculus with just a few lines of code. We will now discuss with more detail the basic usage of these tools.</p>
2035 </div>
2036 <div class="text_cell_render border-box-sizing rendered_html">
2037 <h1>
2038 NumPy arrays: the right data structure for scientific computing
2039 </h1>
2040 </div>
2041 <div class="text_cell_render border-box-sizing rendered_html">
2042 <h2>
2043 Basics of Numpy arrays
2044 </h2>
2045 </div>
2046 <div class="text_cell_render border-box-sizing rendered_html">
2047 <p>We now turn our attention to the Numpy library, which forms the base layer for the entire 'scipy ecosystem'. Once you have installed numpy, you can import it as</p>
2048 </div>
2049 <div class="cell border-box-sizing code_cell vbox">
2050 <div class="input hbox">
2051 <div class="prompt input_prompt">In&nbsp;[5]:</div>
2052 <div class="input_area box-flex1">
2053 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">numpy</span>
2054 </pre></div>
2055
2056 </div>
2057 </div>
2058 </div>
2059 <div class="text_cell_render border-box-sizing rendered_html">
2060 <p>though in this book we will use the common shorthand</p>
2061 </div>
2062 <div class="cell border-box-sizing code_cell vbox">
2063 <div class="input hbox">
2064 <div class="prompt input_prompt">In&nbsp;[6]:</div>
2065 <div class="input_area box-flex1">
2066 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
2067 </pre></div>
2068
2069 </div>
2070 </div>
2071 </div>
2072 <div class="text_cell_render border-box-sizing rendered_html">
2073 <p>As mentioned above, the main object provided by numpy is a powerful array. We'll start by exploring how the numpy array differs from Python lists. We start by creating a simple list and an array with the same contents of the list:</p>
2074 </div>
2075 <div class="cell border-box-sizing code_cell vbox">
2076 <div class="input hbox">
2077 <div class="prompt input_prompt">In&nbsp;[7]:</div>
2078 <div class="input_area box-flex1">
2079 <div class="highlight"><pre><span class="n">lst</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">40</span><span class="p">]</span>
2080 <span class="n">arr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">40</span><span class="p">])</span>
2081 </pre></div>
2082
2083 </div>
2084 </div>
2085 </div>
2086 <div class="text_cell_render border-box-sizing rendered_html">
2087 <p>Elements of a one-dimensional array are accessed with the same syntax as a list:</p>
2088 </div>
2089 <div class="cell border-box-sizing code_cell vbox">
2090 <div class="input hbox">
2091 <div class="prompt input_prompt">In&nbsp;[8]:</div>
2092 <div class="input_area box-flex1">
2093 <div class="highlight"><pre><span class="n">lst</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
2094 </pre></div>
2095
2096 </div>
2097 </div>
2098 <div class="vbox output_wrapper">
2099 <div class="output vbox">
2100 <div class="hbox output_area">
2101 <div class="prompt output_prompt">Out&nbsp;[8]:</div>
2102 <div class="output_subarea output_pyout">
2103 <pre>10</pre>
2104 </div>
2105 </div>
2106 </div>
2107 </div>
2108 </div>
2109 <div class="cell border-box-sizing code_cell vbox">
2110 <div class="input hbox">
2111 <div class="prompt input_prompt">In&nbsp;[9]:</div>
2112 <div class="input_area box-flex1">
2113 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
2114 </pre></div>
2115
2116 </div>
2117 </div>
2118 <div class="vbox output_wrapper">
2119 <div class="output vbox">
2120 <div class="hbox output_area">
2121 <div class="prompt output_prompt">Out&nbsp;[9]:</div>
2122 <div class="output_subarea output_pyout">
2123 <pre>10</pre>
2124 </div>
2125 </div>
2126 </div>
2127 </div>
2128 </div>
2129 <div class="cell border-box-sizing code_cell vbox">
2130 <div class="input hbox">
2131 <div class="prompt input_prompt">In&nbsp;[10]:</div>
2132 <div class="input_area box-flex1">
2133 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
2134 </pre></div>
2135
2136 </div>
2137 </div>
2138 <div class="vbox output_wrapper">
2139 <div class="output vbox">
2140 <div class="hbox output_area">
2141 <div class="prompt output_prompt">Out&nbsp;[10]:</div>
2142 <div class="output_subarea output_pyout">
2143 <pre>40</pre>
2144 </div>
2145 </div>
2146 </div>
2147 </div>
2148 </div>
2149 <div class="cell border-box-sizing code_cell vbox">
2150 <div class="input hbox">
2151 <div class="prompt input_prompt">In&nbsp;[11]:</div>
2152 <div class="input_area box-flex1">
2153 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="mi">2</span><span class="p">:]</span>
2154 </pre></div>
2155
2156 </div>
2157 </div>
2158 <div class="vbox output_wrapper">
2159 <div class="output vbox">
2160 <div class="hbox output_area">
2161 <div class="prompt output_prompt">Out&nbsp;[11]:</div>
2162 <div class="output_subarea output_pyout">
2163 <pre>array([30, 40])</pre>
2164 </div>
2165 </div>
2166 </div>
2167 </div>
2168 </div>
2169 <div class="text_cell_render border-box-sizing rendered_html">
2170 <p>The first difference to note between lists and arrays is that arrays are <em>homogeneous</em>; i.e. all elements of an array must be of the same type. In contrast, lists can contain elements of arbitrary type. For example, we can change the last element in our list above to be a string:</p>
2171 </div>
2172 <div class="cell border-box-sizing code_cell vbox">
2173 <div class="input hbox">
2174 <div class="prompt input_prompt">In&nbsp;[12]:</div>
2175 <div class="input_area box-flex1">
2176 <div class="highlight"><pre><span class="n">lst</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;a string inside a list&#39;</span>
2177 <span class="n">lst</span>
2178 </pre></div>
2179
2180 </div>
2181 </div>
2182 <div class="vbox output_wrapper">
2183 <div class="output vbox">
2184 <div class="hbox output_area">
2185 <div class="prompt output_prompt">Out&nbsp;[12]:</div>
2186 <div class="output_subarea output_pyout">
2187 <pre>[10, 20, 30, &apos;a string inside a list&apos;]</pre>
2188 </div>
2189 </div>
2190 </div>
2191 </div>
2192 </div>
2193 <div class="text_cell_render border-box-sizing rendered_html">
2194 <p>but the same can not be done with an array, as we get an error message:</p>
2195 </div>
2196 <div class="cell border-box-sizing code_cell vbox">
2197 <div class="input hbox">
2198 <div class="prompt input_prompt">In&nbsp;[13]:</div>
2199 <div class="input_area box-flex1">
2200 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;a string inside an array&#39;</span>
2201 </pre></div>
2202
2203 </div>
2204 </div>
2205 <div class="vbox output_wrapper">
2206 <div class="output vbox">
2207 <div class="hbox output_area">
2208 <div class="prompt output_prompt"></div>
2209 <div class="output_subarea output_pyerr">
2210 <pre><span class="ansired">---------------------------------------------------------------------------</span>
2211 <span class="ansired">ValueError</span> Traceback (most recent call last)
2212 <span class="ansigreen">/home/fperez/teach/book-math-labtool/&lt;ipython-input-13-29c0bfa5fa8a&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
2213 <span class="ansigreen">----&gt; 1</span><span class="ansiyellow"> </span>arr<span class="ansiyellow">[</span><span class="ansiyellow">-</span><span class="ansicyan">1</span><span class="ansiyellow">]</span> <span class="ansiyellow">=</span> <span class="ansiblue">&apos;a string inside an array&apos;</span><span class="ansiyellow"></span>
2214
2215 <span class="ansired">ValueError</span>: invalid literal for long() with base 10: &apos;a string inside an array&apos;</pre>
2216 </div>
2217 </div>
2218 </div>
2219 </div>
2220 </div>
2221 <div class="text_cell_render border-box-sizing rendered_html">
2222 <p>The information about the type of an array is contained in its <em>dtype</em> attribute:</p>
2223 </div>
2224 <div class="cell border-box-sizing code_cell vbox">
2225 <div class="input hbox">
2226 <div class="prompt input_prompt">In&nbsp;[14]:</div>
2227 <div class="input_area box-flex1">
2228 <div class="highlight"><pre><span class="n">arr</span><span class="o">.</span><span class="n">dtype</span>
2229 </pre></div>
2230
2231 </div>
2232 </div>
2233 <div class="vbox output_wrapper">
2234 <div class="output vbox">
2235 <div class="hbox output_area">
2236 <div class="prompt output_prompt">Out&nbsp;[14]:</div>
2237 <div class="output_subarea output_pyout">
2238 <pre>dtype(&apos;int32&apos;)</pre>
2239 </div>
2240 </div>
2241 </div>
2242 </div>
2243 </div>
2244 <div class="text_cell_render border-box-sizing rendered_html">
2245 <p>Once an array has been created, its dtype is fixed and it can only store elements of the same type. For this example where the dtype is integer, if we store a floating point number it will be automatically converted into an integer:</p>
2246 </div>
2247 <div class="cell border-box-sizing code_cell vbox">
2248 <div class="input hbox">
2249 <div class="prompt input_prompt">In&nbsp;[15]:</div>
2250 <div class="input_area box-flex1">
2251 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.234</span>
2252 <span class="n">arr</span>
2253 </pre></div>
2254
2255 </div>
2256 </div>
2257 <div class="vbox output_wrapper">
2258 <div class="output vbox">
2259 <div class="hbox output_area">
2260 <div class="prompt output_prompt">Out&nbsp;[15]:</div>
2261 <div class="output_subarea output_pyout">
2262 <pre>array([10, 20, 30, 1])</pre>
2263 </div>
2264 </div>
2265 </div>
2266 </div>
2267 </div>
2268 <div class="text_cell_render border-box-sizing rendered_html">
2269 <p>Above we created an array from an existing list; now let us now see other ways in which we can create arrays, which we'll illustrate next. A common need is to have an array initialized with a constant value, and very often this value is 0 or 1 (suitable as starting value for additive and multiplicative loops respectively); <code>zeros</code> creates arrays of all zeros, with any desired dtype:</p>
2270 </div>
2271 <div class="cell border-box-sizing code_cell vbox">
2272 <div class="input hbox">
2273 <div class="prompt input_prompt">In&nbsp;[16]:</div>
2274 <div class="input_area box-flex1">
2275 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span>
2276 </pre></div>
2277
2278 </div>
2279 </div>
2280 <div class="vbox output_wrapper">
2281 <div class="output vbox">
2282 <div class="hbox output_area">
2283 <div class="prompt output_prompt">Out&nbsp;[16]:</div>
2284 <div class="output_subarea output_pyout">
2285 <pre>array([ 0., 0., 0., 0., 0.])</pre>
2286 </div>
2287 </div>
2288 </div>
2289 </div>
2290 </div>
2291 <div class="cell border-box-sizing code_cell vbox">
2292 <div class="input hbox">
2293 <div class="prompt input_prompt">In&nbsp;[17]:</div>
2294 <div class="input_area box-flex1">
2295 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span>
2296 </pre></div>
2297
2298 </div>
2299 </div>
2300 <div class="vbox output_wrapper">
2301 <div class="output vbox">
2302 <div class="hbox output_area">
2303 <div class="prompt output_prompt">Out&nbsp;[17]:</div>
2304 <div class="output_subarea output_pyout">
2305 <pre>array([0, 0, 0])</pre>
2306 </div>
2307 </div>
2308 </div>
2309 </div>
2310 </div>
2311 <div class="cell border-box-sizing code_cell vbox">
2312 <div class="input hbox">
2313 <div class="prompt input_prompt">In&nbsp;[18]:</div>
2314 <div class="input_area box-flex1">
2315 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="nb">complex</span><span class="p">)</span>
2316 </pre></div>
2317
2318 </div>
2319 </div>
2320 <div class="vbox output_wrapper">
2321 <div class="output vbox">
2322 <div class="hbox output_area">
2323 <div class="prompt output_prompt">Out&nbsp;[18]:</div>
2324 <div class="output_subarea output_pyout">
2325 <pre>array([ 0.+0.j, 0.+0.j, 0.+0.j])</pre>
2326 </div>
2327 </div>
2328 </div>
2329 </div>
2330 </div>
2331 <div class="text_cell_render border-box-sizing rendered_html">
2332 <p>and similarly for <code>ones</code>:</p>
2333 </div>
2334 <div class="cell border-box-sizing code_cell vbox">
2335 <div class="input hbox">
2336 <div class="prompt input_prompt">In&nbsp;[19]:</div>
2337 <div class="input_area box-flex1">
2338 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;5 ones:&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
2339 </pre></div>
2340
2341 </div>
2342 </div>
2343 <div class="vbox output_wrapper">
2344 <div class="output vbox">
2345 <div class="hbox output_area">
2346 <div class="prompt output_prompt"></div>
2347 <div class="output_subarea output_stream output_stdout">
2348 <pre>5 ones: [ 1. 1. 1. 1. 1.]
2349 </pre>
2350 </div>
2351 </div>
2352 </div>
2353 </div>
2354 </div>
2355 <div class="text_cell_render border-box-sizing rendered_html">
2356 <p>If we want an array initialized with an arbitrary value, we can create an empty array and then use the fill method to put the value we want into the array:</p>
2357 </div>
2358 <div class="cell border-box-sizing code_cell vbox">
2359 <div class="input hbox">
2360 <div class="prompt input_prompt">In&nbsp;[20]:</div>
2361 <div class="input_area box-flex1">
2362 <div class="highlight"><pre><span class="n">a</span> <span class="o">=</span> <span class="n">empty</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
2363 <span class="n">a</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="mf">5.5</span><span class="p">)</span>
2364 <span class="n">a</span>
2365 </pre></div>
2366
2367 </div>
2368 </div>
2369 <div class="vbox output_wrapper">
2370 <div class="output vbox">
2371 <div class="hbox output_area">
2372 <div class="prompt output_prompt">Out&nbsp;[20]:</div>
2373 <div class="output_subarea output_pyout">
2374 <pre>array([ 5.5, 5.5, 5.5, 5.5])</pre>
2375 </div>
2376 </div>
2377 </div>
2378 </div>
2379 </div>
2380 <div class="text_cell_render border-box-sizing rendered_html">
2381 <p>Numpy also offers the <code>arange</code> function, which works like the builtin <code>range</code> but returns an array instead of a list:</p>
2382 </div>
2383 <div class="cell border-box-sizing code_cell vbox">
2384 <div class="input hbox">
2385 <div class="prompt input_prompt">In&nbsp;[21]:</div>
2386 <div class="input_area box-flex1">
2387 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
2388 </pre></div>
2389
2390 </div>
2391 </div>
2392 <div class="vbox output_wrapper">
2393 <div class="output vbox">
2394 <div class="hbox output_area">
2395 <div class="prompt output_prompt">Out&nbsp;[21]:</div>
2396 <div class="output_subarea output_pyout">
2397 <pre>array([0, 1, 2, 3, 4])</pre>
2398 </div>
2399 </div>
2400 </div>
2401 </div>
2402 </div>
2403 <div class="text_cell_render border-box-sizing rendered_html">
2404 <p>and the <code>linspace</code> and <code>logspace</code> functions to create linearly and logarithmically-spaced grids respectively, with a fixed number of points and including both ends of the specified interval:</p>
2405 </div>
2406 <div class="cell border-box-sizing code_cell vbox">
2407 <div class="input hbox">
2408 <div class="prompt input_prompt">In&nbsp;[22]:</div>
2409 <div class="input_area box-flex1">
2410 <div class="highlight"><pre><span class="k">print</span> <span class="s">&quot;A linear grid between 0 and 1:&quot;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
2411 <span class="k">print</span> <span class="s">&quot;A logarithmic grid between 10**1 and 10**4: &quot;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">logspace</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
2412 </pre></div>
2413
2414 </div>
2415 </div>
2416 <div class="vbox output_wrapper">
2417 <div class="output vbox">
2418 <div class="hbox output_area">
2419 <div class="prompt output_prompt"></div>
2420 <div class="output_subarea output_stream output_stdout">
2421 <pre>A linear grid between 0 and 1: [ 0. 0.25 0.5 0.75 1. ]
2422 A logarithmic grid between 10**1 and 10**4: [ 10. 100. 1000. 10000.]
2423 </pre>
2424 </div>
2425 </div>
2426 </div>
2427 </div>
2428 </div>
2429 <div class="text_cell_render border-box-sizing rendered_html">
2430 <p>Finally, it is often useful to create arrays with random numbers that follow a specific distribution. The <code>np.random</code> module contains a number of functions that can be used to this effect, for example this will produce an array of 5 random samples taken from a standard normal distribution (0 mean and variance 1):</p>
2431 </div>
2432 <div class="cell border-box-sizing code_cell vbox">
2433 <div class="input hbox">
2434 <div class="prompt input_prompt">In&nbsp;[23]:</div>
2435 <div class="input_area box-flex1">
2436 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
2437 </pre></div>
2438
2439 </div>
2440 </div>
2441 <div class="vbox output_wrapper">
2442 <div class="output vbox">
2443 <div class="hbox output_area">
2444 <div class="prompt output_prompt">Out&nbsp;[23]:</div>
2445 <div class="output_subarea output_pyout">
2446 <pre>array([-0.08633343, -0.67375434, 1.00589536, 0.87081651, 1.65597822])</pre>
2447 </div>
2448 </div>
2449 </div>
2450 </div>
2451 </div>
2452 <div class="text_cell_render border-box-sizing rendered_html">
2453 <p>whereas this will also give 5 samples, but from a normal distribution with a mean of 10 and a variance of 3:</p>
2454 </div>
2455 <div class="cell border-box-sizing code_cell vbox">
2456 <div class="input hbox">
2457 <div class="prompt input_prompt">In&nbsp;[24]:</div>
2458 <div class="input_area box-flex1">
2459 <div class="highlight"><pre><span class="n">norm10</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
2460 <span class="n">norm10</span>
2461 </pre></div>
2462
2463 </div>
2464 </div>
2465 <div class="vbox output_wrapper">
2466 <div class="output vbox">
2467 <div class="hbox output_area">
2468 <div class="prompt output_prompt">Out&nbsp;[24]:</div>
2469 <div class="output_subarea output_pyout">
2470 <pre>array([ 8.94879575, 5.53038269, 8.24847281, 12.14944165, 11.56209294])</pre>
2471 </div>
2472 </div>
2473 </div>
2474 </div>
2475 </div>
2476 <div class="text_cell_render border-box-sizing rendered_html">
2477 <h2>
2478 Indexing with other arrays
2479 </h2>
2480 </div>
2481 <div class="text_cell_render border-box-sizing rendered_html">
2482 <p>Above we saw how to index arrays with single numbers and slices, just like Python lists. But arrays allow for a more sophisticated kind of indexing which is very powerful: you can index an array with another array, and in particular with an array of boolean values. This is particluarly useful to extract information from an array that matches a certain condition.</p>
2483 <p>Consider for example that in the array <code>norm10</code> we want to replace all values above 9 with the value 0. We can do so by first finding the <em>mask</em> that indicates where this condition is true or false:</p>
2484 </div>
2485 <div class="cell border-box-sizing code_cell vbox">
2486 <div class="input hbox">
2487 <div class="prompt input_prompt">In&nbsp;[25]:</div>
2488 <div class="input_area box-flex1">
2489 <div class="highlight"><pre><span class="n">mask</span> <span class="o">=</span> <span class="n">norm10</span> <span class="o">&gt;</span> <span class="mi">9</span>
2490 <span class="n">mask</span>
2491 </pre></div>
2492
2493 </div>
2494 </div>
2495 <div class="vbox output_wrapper">
2496 <div class="output vbox">
2497 <div class="hbox output_area">
2498 <div class="prompt output_prompt">Out&nbsp;[25]:</div>
2499 <div class="output_subarea output_pyout">
2500 <pre>array([False, False, False, True, True], dtype=bool)</pre>
2501 </div>
2502 </div>
2503 </div>
2504 </div>
2505 </div>
2506 <div class="text_cell_render border-box-sizing rendered_html">
2507 <p>Now that we have this mask, we can use it to either read those values or to reset them to 0:</p>
2508 </div>
2509 <div class="cell border-box-sizing code_cell vbox">
2510 <div class="input hbox">
2511 <div class="prompt input_prompt">In&nbsp;[26]:</div>
2512 <div class="input_area box-flex1">
2513 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Values above 9:&#39;</span><span class="p">,</span> <span class="n">norm10</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
2514 </pre></div>
2515
2516 </div>
2517 </div>
2518 <div class="vbox output_wrapper">
2519 <div class="output vbox">
2520 <div class="hbox output_area">
2521 <div class="prompt output_prompt"></div>
2522 <div class="output_subarea output_stream output_stdout">
2523 <pre>Values above 9: [ 12.14944165 11.56209294]
2524 </pre>
2525 </div>
2526 </div>
2527 </div>
2528 </div>
2529 </div>
2530 <div class="cell border-box-sizing code_cell vbox">
2531 <div class="input hbox">
2532 <div class="prompt input_prompt">In&nbsp;[27]:</div>
2533 <div class="input_area box-flex1">
2534 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Resetting all values above 9 to 0...&#39;</span>
2535 <span class="n">norm10</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
2536 <span class="k">print</span> <span class="n">norm10</span>
2537 </pre></div>
2538
2539 </div>
2540 </div>
2541 <div class="vbox output_wrapper">
2542 <div class="output vbox">
2543 <div class="hbox output_area">
2544 <div class="prompt output_prompt"></div>
2545 <div class="output_subarea output_stream output_stdout">
2546 <pre>Resetting all values above 9 to 0...
2547 [ 8.94879575 5.53038269 8.24847281 0. 0. ]
2548 </pre>
2549 </div>
2550 </div>
2551 </div>
2552 </div>
2553 </div>
2554 <div class="text_cell_render border-box-sizing rendered_html">
2555 <h2>
2556 Arrays with more than one dimension
2557 </h2>
2558 </div>
2559 <div class="text_cell_render border-box-sizing rendered_html">
2560 <p>Up until now all our examples have used one-dimensional arrays. But Numpy can create arrays of aribtrary dimensions, and all the methods illustrated in the previous section work with more than one dimension. For example, a list of lists can be used to initialize a two dimensional array:</p>
2561 </div>
2562 <div class="cell border-box-sizing code_cell vbox">
2563 <div class="input hbox">
2564 <div class="prompt input_prompt">In&nbsp;[28]:</div>
2565 <div class="input_area box-flex1">
2566 <div class="highlight"><pre><span class="n">lst2</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]]</span>
2567 <span class="n">arr2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]])</span>
2568 <span class="n">arr2</span>
2569 </pre></div>
2570
2571 </div>
2572 </div>
2573 <div class="vbox output_wrapper">
2574 <div class="output vbox">
2575 <div class="hbox output_area">
2576 <div class="prompt output_prompt">Out&nbsp;[28]:</div>
2577 <div class="output_subarea output_pyout">
2578 <pre>array([[1, 2],
2579 [3, 4]])</pre>
2580 </div>
2581 </div>
2582 </div>
2583 </div>
2584 </div>
2585 <div class="text_cell_render border-box-sizing rendered_html">
2586 <p>With two-dimensional arrays we start seeing the power of numpy: while a nested list can be indexed using repeatedly the <code>[ ]</code> operator, multidimensional arrays support a much more natural indexing syntax with a single <code>[ ]</code> and a set of indices separated by commas:</p>
2587 </div>
2588 <div class="cell border-box-sizing code_cell vbox">
2589 <div class="input hbox">
2590 <div class="prompt input_prompt">In&nbsp;[29]:</div>
2591 <div class="input_area box-flex1">
2592 <div class="highlight"><pre><span class="k">print</span> <span class="n">lst2</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
2593 <span class="k">print</span> <span class="n">arr2</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">]</span>
2594 </pre></div>
2595
2596 </div>
2597 </div>
2598 <div class="vbox output_wrapper">
2599 <div class="output vbox">
2600 <div class="hbox output_area">
2601 <div class="prompt output_prompt"></div>
2602 <div class="output_subarea output_stream output_stdout">
2603 <pre>2
2604 2
2605 </pre>
2606 </div>
2607 </div>
2608 </div>
2609 </div>
2610 </div>
2611 <div class="text_cell_render border-box-sizing rendered_html">
2612 <p>Most of the array creation functions listed above can be used with more than one dimension, for example:</p>
2613 </div>
2614 <div class="cell border-box-sizing code_cell vbox">
2615 <div class="input hbox">
2616 <div class="prompt input_prompt">In&nbsp;[30]:</div>
2617 <div class="input_area box-flex1">
2618 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span>
2619 </pre></div>
2620
2621 </div>
2622 </div>
2623 <div class="vbox output_wrapper">
2624 <div class="output vbox">
2625 <div class="hbox output_area">
2626 <div class="prompt output_prompt">Out&nbsp;[30]:</div>
2627 <div class="output_subarea output_pyout">
2628 <pre>array([[ 0., 0., 0.],
2629 [ 0., 0., 0.]])</pre>
2630 </div>
2631 </div>
2632 </div>
2633 </div>
2634 </div>
2635 <div class="cell border-box-sizing code_cell vbox">
2636 <div class="input hbox">
2637 <div class="prompt input_prompt">In&nbsp;[31]:</div>
2638 <div class="input_area box-flex1">
2639 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
2640 </pre></div>
2641
2642 </div>
2643 </div>
2644 <div class="vbox output_wrapper">
2645 <div class="output vbox">
2646 <div class="hbox output_area">
2647 <div class="prompt output_prompt">Out&nbsp;[31]:</div>
2648 <div class="output_subarea output_pyout">
2649 <pre>array([[ 11.26788826, 4.29619866, 11.09346496, 9.73861307],
2650 [ 10.54025996, 9.5146268 , 10.80367214, 13.62204505]])</pre>
2651 </div>
2652 </div>
2653 </div>
2654 </div>
2655 </div>
2656 <div class="text_cell_render border-box-sizing rendered_html">
2657 <p>In fact, the shape of an array can be changed at any time, as long as the total number of elements is unchanged. For example, if we want a 2x4 array with numbers increasing from 0, the easiest way to create it is:</p>
2658 </div>
2659 <div class="cell border-box-sizing code_cell vbox">
2660 <div class="input hbox">
2661 <div class="prompt input_prompt">In&nbsp;[32]:</div>
2662 <div class="input_area box-flex1">
2663 <div class="highlight"><pre><span class="n">arr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span>
2664 <span class="k">print</span> <span class="n">arr</span>
2665 </pre></div>
2666
2667 </div>
2668 </div>
2669 <div class="vbox output_wrapper">
2670 <div class="output vbox">
2671 <div class="hbox output_area">
2672 <div class="prompt output_prompt"></div>
2673 <div class="output_subarea output_stream output_stdout">
2674 <pre>[[0 1 2 3]
2675 [4 5 6 7]]
2676 </pre>
2677 </div>
2678 </div>
2679 </div>
2680 </div>
2681 </div>
2682 <div class="text_cell_render border-box-sizing rendered_html">
2683 <p>With multidimensional arrays, you can also use slices, and you can mix and match slices and single indices in the different dimensions (using the same array as above):</p>
2684 </div>
2685 <div class="cell border-box-sizing code_cell vbox">
2686 <div class="input hbox">
2687 <div class="prompt input_prompt">In&nbsp;[33]:</div>
2688 <div class="input_area box-flex1">
2689 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Slicing in the second row:&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span>
2690 <span class="k">print</span> <span class="s">&#39;All rows, third column :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[:,</span> <span class="mi">2</span><span class="p">]</span>
2691 </pre></div>
2692
2693 </div>
2694 </div>
2695 <div class="vbox output_wrapper">
2696 <div class="output vbox">
2697 <div class="hbox output_area">
2698 <div class="prompt output_prompt"></div>
2699 <div class="output_subarea output_stream output_stdout">
2700 <pre>Slicing in the second row: [6 7]
2701 All rows, third column : [2 6]
2702 </pre>
2703 </div>
2704 </div>
2705 </div>
2706 </div>
2707 </div>
2708 <div class="text_cell_render border-box-sizing rendered_html">
2709 <p>If you only provide one index, then you will get an array with one less dimension containing that row:</p>
2710 </div>
2711 <div class="cell border-box-sizing code_cell vbox">
2712 <div class="input hbox">
2713 <div class="prompt input_prompt">In&nbsp;[34]:</div>
2714 <div class="input_area box-flex1">
2715 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;First row: &#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
2716 <span class="k">print</span> <span class="s">&#39;Second row: &#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
2717 </pre></div>
2718
2719 </div>
2720 </div>
2721 <div class="vbox output_wrapper">
2722 <div class="output vbox">
2723 <div class="hbox output_area">
2724 <div class="prompt output_prompt"></div>
2725 <div class="output_subarea output_stream output_stdout">
2726 <pre>First row: [0 1 2 3]
2727 Second row: [4 5 6 7]
2728 </pre>
2729 </div>
2730 </div>
2731 </div>
2732 </div>
2733 </div>
2734 <div class="text_cell_render border-box-sizing rendered_html">
2735 <p>Now that we have seen how to create arrays with more than one dimension, it's a good idea to look at some of the most useful properties and methods that arrays have. The following provide basic information about the size, shape and data in the array:</p>
2736 </div>
2737 <div class="cell border-box-sizing code_cell vbox">
2738 <div class="input hbox">
2739 <div class="prompt input_prompt">In&nbsp;[35]:</div>
2740 <div class="input_area box-flex1">
2741 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Data type :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">dtype</span>
2742 <span class="k">print</span> <span class="s">&#39;Total number of elements :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">size</span>
2743 <span class="k">print</span> <span class="s">&#39;Number of dimensions :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">ndim</span>
2744 <span class="k">print</span> <span class="s">&#39;Shape (dimensionality) :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">shape</span>
2745 <span class="k">print</span> <span class="s">&#39;Memory used (in bytes) :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">nbytes</span>
2746 </pre></div>
2747
2748 </div>
2749 </div>
2750 <div class="vbox output_wrapper">
2751 <div class="output vbox">
2752 <div class="hbox output_area">
2753 <div class="prompt output_prompt"></div>
2754 <div class="output_subarea output_stream output_stdout">
2755 <pre>Data type : int32
2756 Total number of elements : 8
2757 Number of dimensions : 2
2758 Shape (dimensionality) : (2, 4)
2759 Memory used (in bytes) : 32
2760 </pre>
2761 </div>
2762 </div>
2763 </div>
2764 </div>
2765 </div>
2766 <div class="text_cell_render border-box-sizing rendered_html">
2767 <p>Arrays also have many useful methods, some especially useful ones are:</p>
2768 </div>
2769 <div class="cell border-box-sizing code_cell vbox">
2770 <div class="input hbox">
2771 <div class="prompt input_prompt">In&nbsp;[36]:</div>
2772 <div class="input_area box-flex1">
2773 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Minimum and maximum :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">min</span><span class="p">(),</span> <span class="n">arr</span><span class="o">.</span><span class="n">max</span><span class="p">()</span>
2774 <span class="k">print</span> <span class="s">&#39;Sum and product of all elements :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">sum</span><span class="p">(),</span> <span class="n">arr</span><span class="o">.</span><span class="n">prod</span><span class="p">()</span>
2775 <span class="k">print</span> <span class="s">&#39;Mean and standard deviation :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">mean</span><span class="p">(),</span> <span class="n">arr</span><span class="o">.</span><span class="n">std</span><span class="p">()</span>
2776 </pre></div>
2777
2778 </div>
2779 </div>
2780 <div class="vbox output_wrapper">
2781 <div class="output vbox">
2782 <div class="hbox output_area">
2783 <div class="prompt output_prompt"></div>
2784 <div class="output_subarea output_stream output_stdout">
2785 <pre>Minimum and maximum : 0 7
2786 Sum and product of all elements : 28 0
2787 Mean and standard deviation : 3.5 2.29128784748
2788 </pre>
2789 </div>
2790 </div>
2791 </div>
2792 </div>
2793 </div>
2794 <div class="text_cell_render border-box-sizing rendered_html">
2795 <p>For these methods, the above operations area all computed on all the elements of the array. But for a multidimensional array, it's possible to do the computation along a single dimension, by passing the <code>axis</code> parameter; for example:</p>
2796 </div>
2797 <div class="cell border-box-sizing code_cell vbox">
2798 <div class="input hbox">
2799 <div class="prompt input_prompt">In&nbsp;[37]:</div>
2800 <div class="input_area box-flex1">
2801 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;For the following array:</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span>
2802 <span class="k">print</span> <span class="s">&#39;The sum of elements along the rows is :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
2803 <span class="k">print</span> <span class="s">&#39;The sum of elements along the columns is :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
2804 </pre></div>
2805
2806 </div>
2807 </div>
2808 <div class="vbox output_wrapper">
2809 <div class="output vbox">
2810 <div class="hbox output_area">
2811 <div class="prompt output_prompt"></div>
2812 <div class="output_subarea output_stream output_stdout">
2813 <pre>For the following array:
2814 [[0 1 2 3]
2815 [4 5 6 7]]
2816 The sum of elements along the rows is : [ 6 22]
2817 The sum of elements along the columns is : [ 4 6 8 10]
2818 </pre>
2819 </div>
2820 </div>
2821 </div>
2822 </div>
2823 </div>
2824 <div class="text_cell_render border-box-sizing rendered_html">
2825 <p>As you can see in this example, the value of the <code>axis</code> parameter is the dimension which will be <em>consumed</em> once the operation has been carried out. This is why to sum along the rows we use <code>axis=0</code>.<br />
2826 </p>
2827 <p>This can be easily illustrated with an example that has more dimensions; we create an array with 4 dimensions and shape <code>(3,4,5,6)</code> and sum along the axis number 2 (i.e. the <em>third</em> axis, since in Python all counts are 0-based). That consumes the dimension whose length was 5, leaving us with a new array that has shape <code>(3,4,6)</code>:</p>
2828 </div>
2829 <div class="cell border-box-sizing code_cell vbox">
2830 <div class="input hbox">
2831 <div class="prompt input_prompt">In&nbsp;[38]:</div>
2832 <div class="input_area box-flex1">
2833 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">shape</span>
2834 </pre></div>
2835
2836 </div>
2837 </div>
2838 <div class="vbox output_wrapper">
2839 <div class="output vbox">
2840 <div class="hbox output_area">
2841 <div class="prompt output_prompt">Out&nbsp;[38]:</div>
2842 <div class="output_subarea output_pyout">
2843 <pre>(3, 4, 6)</pre>
2844 </div>
2845 </div>
2846 </div>
2847 </div>
2848 </div>
2849 <div class="text_cell_render border-box-sizing rendered_html">
2850 <p>Another widely used property of arrays is the <code>.T</code> attribute, which allows you to access the transpose of the array:</p>
2851 </div>
2852 <div class="cell border-box-sizing code_cell vbox">
2853 <div class="input hbox">
2854 <div class="prompt input_prompt">In&nbsp;[39]:</div>
2855 <div class="input_area box-flex1">
2856 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Array:</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span>
2857 <span class="k">print</span> <span class="s">&#39;Transpose:</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">T</span>
2858 </pre></div>
2859
2860 </div>
2861 </div>
2862 <div class="vbox output_wrapper">
2863 <div class="output vbox">
2864 <div class="hbox output_area">
2865 <div class="prompt output_prompt"></div>
2866 <div class="output_subarea output_stream output_stdout">
2867 <pre>Array:
2868 [[0 1 2 3]
2869 [4 5 6 7]]
2870 Transpose:
2871 [[0 4]
2872 [1 5]
2873 [2 6]
2874 [3 7]]
2875 </pre>
2876 </div>
2877 </div>
2878 </div>
2879 </div>
2880 </div>
2881 <div class="text_cell_render border-box-sizing rendered_html">
2882 <p>We don't have time here to look at all the methods and properties of arrays, here's a complete list. Simply try exploring some of these IPython to learn more, or read their description in the full Numpy documentation:</p>
2883 <pre><code>arr.T arr.copy arr.getfield arr.put arr.squeeze
2884 arr.all arr.ctypes arr.imag arr.ravel arr.std
2885 arr.any arr.cumprod arr.item arr.real arr.strides
2886 arr.argmax arr.cumsum arr.itemset arr.repeat arr.sum
2887 arr.argmin arr.data arr.itemsize arr.reshape arr.swapaxes
2888 arr.argsort arr.diagonal arr.max arr.resize arr.take
2889 arr.astype arr.dot arr.mean arr.round arr.tofile
2890 arr.base arr.dtype arr.min arr.searchsorted arr.tolist
2891 arr.byteswap arr.dump arr.nbytes arr.setasflat arr.tostring
2892 arr.choose arr.dumps arr.ndim arr.setfield arr.trace
2893 arr.clip arr.fill arr.newbyteorder arr.setflags arr.transpose
2894 arr.compress arr.flags arr.nonzero arr.shape arr.var
2895 arr.conj arr.flat arr.prod arr.size arr.view
2896 arr.conjugate arr.flatten arr.ptp arr.sort
2897 </code></pre>
2898 </div>
2899 <div class="text_cell_render border-box-sizing rendered_html">
2900 <h2>
2901 Operating with arrays
2902 </h2>
2903 </div>
2904 <div class="text_cell_render border-box-sizing rendered_html">
2905 <p>Arrays support all regular arithmetic operators, and the numpy library also contains a complete collection of basic mathematical functions that operate on arrays. It is important to remember that in general, all operations with arrays are applied <em>element-wise</em>, i.e., are applied to all the elements of the array at the same time. Consider for example:</p>
2906 </div>
2907 <div class="cell border-box-sizing code_cell vbox">
2908 <div class="input hbox">
2909 <div class="prompt input_prompt">In&nbsp;[40]:</div>
2910 <div class="input_area box-flex1">
2911 <div class="highlight"><pre><span class="n">arr1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
2912 <span class="n">arr2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">14</span><span class="p">)</span>
2913 <span class="k">print</span> <span class="n">arr1</span><span class="p">,</span> <span class="s">&#39;+&#39;</span><span class="p">,</span> <span class="n">arr2</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">arr1</span><span class="o">+</span><span class="n">arr2</span>
2914 </pre></div>
2915
2916 </div>
2917 </div>
2918 <div class="vbox output_wrapper">
2919 <div class="output vbox">
2920 <div class="hbox output_area">
2921 <div class="prompt output_prompt"></div>
2922 <div class="output_subarea output_stream output_stdout">
2923 <pre>[0 1 2 3] + [10 11 12 13] = [10 12 14 16]
2924 </pre>
2925 </div>
2926 </div>
2927 </div>
2928 </div>
2929 </div>
2930 <div class="text_cell_render border-box-sizing rendered_html">
2931 <p>Importantly, you must remember that even the multiplication operator is by default applied element-wise, it is <em>not</em> the matrix multiplication from linear algebra (as is the case in Matlab, for example):</p>
2932 </div>
2933 <div class="cell border-box-sizing code_cell vbox">
2934 <div class="input hbox">
2935 <div class="prompt input_prompt">In&nbsp;[41]:</div>
2936 <div class="input_area box-flex1">
2937 <div class="highlight"><pre><span class="k">print</span> <span class="n">arr1</span><span class="p">,</span> <span class="s">&#39;*&#39;</span><span class="p">,</span> <span class="n">arr2</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">arr1</span><span class="o">*</span><span class="n">arr2</span>
2938 </pre></div>
2939
2940 </div>
2941 </div>
2942 <div class="vbox output_wrapper">
2943 <div class="output vbox">
2944 <div class="hbox output_area">
2945 <div class="prompt output_prompt"></div>
2946 <div class="output_subarea output_stream output_stdout">
2947 <pre>[0 1 2 3] * [10 11 12 13] = [ 0 11 24 39]
2948 </pre>
2949 </div>
2950 </div>
2951 </div>
2952 </div>
2953 </div>
2954 <div class="text_cell_render border-box-sizing rendered_html">
2955 <p>While this means that in principle arrays must always match in their dimensionality in order for an operation to be valid, numpy will <em>broadcast</em> dimensions when possible. For example, suppose that you want to add the number 1.5 to <code>arr1</code>; the following would be a valid way to do it:</p>
2956 </div>
2957 <div class="cell border-box-sizing code_cell vbox">
2958 <div class="input hbox">
2959 <div class="prompt input_prompt">In&nbsp;[42]:</div>
2960 <div class="input_area box-flex1">
2961 <div class="highlight"><pre><span class="n">arr1</span> <span class="o">+</span> <span class="mf">1.5</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
2962 </pre></div>
2963
2964 </div>
2965 </div>
2966 <div class="vbox output_wrapper">
2967 <div class="output vbox">
2968 <div class="hbox output_area">
2969 <div class="prompt output_prompt">Out&nbsp;[42]:</div>
2970 <div class="output_subarea output_pyout">
2971 <pre>array([ 1.5, 2.5, 3.5, 4.5])</pre>
2972 </div>
2973 </div>
2974 </div>
2975 </div>
2976 </div>
2977 <div class="text_cell_render border-box-sizing rendered_html">
2978 <p>But thanks to numpy's broadcasting rules, the following is equally valid:</p>
2979 </div>
2980 <div class="cell border-box-sizing code_cell vbox">
2981 <div class="input hbox">
2982 <div class="prompt input_prompt">In&nbsp;[43]:</div>
2983 <div class="input_area box-flex1">
2984 <div class="highlight"><pre><span class="n">arr1</span> <span class="o">+</span> <span class="mf">1.5</span>
2985 </pre></div>
2986
2987 </div>
2988 </div>
2989 <div class="vbox output_wrapper">
2990 <div class="output vbox">
2991 <div class="hbox output_area">
2992 <div class="prompt output_prompt">Out&nbsp;[43]:</div>
2993 <div class="output_subarea output_pyout">
2994 <pre>array([ 1.5, 2.5, 3.5, 4.5])</pre>
2995 </div>
2996 </div>
2997 </div>
2998 </div>
2999 </div>
3000 <div class="text_cell_render border-box-sizing rendered_html">
3001 <p>In this case, numpy looked at both operands and saw that the first (<code>arr1</code>) was a one-dimensional array of length 4 and the second was a scalar, considered a zero-dimensional object. The broadcasting rules allow numpy to:</p>
3002 <ul>
3003 <li><em>create</em> new dimensions of length 1 (since this doesn't change the size of the array)</li>
3004 <li>'stretch' a dimension of length 1 that needs to be matched to a dimension of a different size.</li>
3005 </ul>
3006 <p>So in the above example, the scalar 1.5 is effectively:</p>
3007 <ul>
3008 <li>first 'promoted' to a 1-dimensional array of length 1</li>
3009 <li>then, this array is 'stretched' to length 4 to match the dimension of <code>arr1</code>.</li>
3010 </ul>
3011 <p>After these two operations are complete, the addition can proceed as now both operands are one-dimensional arrays of length 4.</p>
3012 <p>This broadcasting behavior is in practice enormously powerful, especially because when numpy broadcasts to create new dimensions or to 'stretch' existing ones, it doesn't actually replicate the data. In the example above the operation is carried <em>as if</em> the 1.5 was a 1-d array with 1.5 in all of its entries, but no actual array was ever created. This can save lots of memory in cases when the arrays in question are large and can have significant performance implications.</p>
3013 <p>The general rule is: when operating on two arrays, NumPy compares their shapes element-wise. It starts with the trailing dimensions, and works its way forward, creating dimensions of length 1 as needed. Two dimensions are considered compatible when</p>
3014 <ul>
3015 <li>they are equal to begin with, or</li>
3016 <li>one of them is 1; in this case numpy will do the 'stretching' to make them equal.</li>
3017 </ul>
3018 <p>If these conditions are not met, a <code>ValueError: frames are not aligned</code> exception is thrown, indicating that the arrays have incompatible shapes. The size of the resulting array is the maximum size along each dimension of the input arrays.</p>
3019 </div>
3020 <div class="text_cell_render border-box-sizing rendered_html">
3021 <p>This shows how the broadcasting rules work in several dimensions:</p>
3022 </div>
3023 <div class="cell border-box-sizing code_cell vbox">
3024 <div class="input hbox">
3025 <div class="prompt input_prompt">In&nbsp;[44]:</div>
3026 <div class="input_area box-flex1">
3027 <div class="highlight"><pre><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">])</span>
3028 <span class="k">print</span> <span class="n">arr</span><span class="p">,</span> <span class="s">&#39;</span><span class="se">\n\n</span><span class="s">+&#39;</span><span class="p">,</span> <span class="n">b</span> <span class="p">,</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">----------------</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span> <span class="o">+</span> <span class="n">b</span>
3029 </pre></div>
3030
3031 </div>
3032 </div>
3033 <div class="vbox output_wrapper">
3034 <div class="output vbox">
3035 <div class="hbox output_area">
3036 <div class="prompt output_prompt"></div>
3037 <div class="output_subarea output_stream output_stdout">
3038 <pre>[[0 1 2 3]
3039 [4 5 6 7]]
3040
3041 + [2 3 4 5]
3042 ----------------
3043 [[ 2 4 6 8]
3044 [ 6 8 10 12]]
3045 </pre>
3046 </div>
3047 </div>
3048 </div>
3049 </div>
3050 </div>
3051 <div class="text_cell_render border-box-sizing rendered_html">
3052 <p>Now, how could you use broadcasting to say add <code>[4, 6]</code> along the rows to <code>arr</code> above? Simply performing the direct addition will produce the error we previously mentioned:</p>
3053 </div>
3054 <div class="cell border-box-sizing code_cell vbox">
3055 <div class="input hbox">
3056 <div class="prompt input_prompt">In&nbsp;[45]:</div>
3057 <div class="input_area box-flex1">
3058 <div class="highlight"><pre><span class="n">c</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">4</span><span class="p">,</span> <span class="mi">6</span><span class="p">])</span>
3059 <span class="n">arr</span> <span class="o">+</span> <span class="n">c</span>
3060 </pre></div>
3061
3062 </div>
3063 </div>
3064 <div class="vbox output_wrapper">
3065 <div class="output vbox">
3066 <div class="hbox output_area">
3067 <div class="prompt output_prompt"></div>
3068 <div class="output_subarea output_pyerr">
3069 <pre><span class="ansired">---------------------------------------------------------------------------</span>
3070 <span class="ansired">ValueError</span> Traceback (most recent call last)
3071 <span class="ansigreen">/home/fperez/teach/book-math-labtool/&lt;ipython-input-45-62aa20ac1980&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
3072 <span class="ansigreen"> 1</span> c <span class="ansiyellow">=</span> np<span class="ansiyellow">.</span>array<span class="ansiyellow">(</span><span class="ansiyellow">[</span><span class="ansicyan">4</span><span class="ansiyellow">,</span> <span class="ansicyan">6</span><span class="ansiyellow">]</span><span class="ansiyellow">)</span><span class="ansiyellow"></span>
3073 <span class="ansigreen">----&gt; 2</span><span class="ansiyellow"> </span>arr <span class="ansiyellow">+</span> c<span class="ansiyellow"></span>
3074
3075 <span class="ansired">ValueError</span>: operands could not be broadcast together with shapes (2,4) (2) </pre>
3076 </div>
3077 </div>
3078 </div>
3079 </div>
3080 </div>
3081 <div class="text_cell_render border-box-sizing rendered_html">
3082 <p>According to the rules above, the array <code>c</code> would need to have a <em>trailing</em> dimension of 1 for the broadcasting to work. It turns out that numpy allows you to 'inject' new dimensions anywhere into an array on the fly, by indexing it with the special object <code>np.newaxis</code>:</p>
3083 </div>
3084 <div class="cell border-box-sizing code_cell vbox">
3085 <div class="input hbox">
3086 <div class="prompt input_prompt">In&nbsp;[46]:</div>
3087 <div class="input_area box-flex1">
3088 <div class="highlight"><pre><span class="p">(</span><span class="n">c</span><span class="p">[:,</span> <span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">])</span><span class="o">.</span><span class="n">shape</span>
3089 </pre></div>
3090
3091 </div>
3092 </div>
3093 <div class="vbox output_wrapper">
3094 <div class="output vbox">
3095 <div class="hbox output_area">
3096 <div class="prompt output_prompt">Out&nbsp;[46]:</div>
3097 <div class="output_subarea output_pyout">
3098 <pre>(2, 1)</pre>
3099 </div>
3100 </div>
3101 </div>
3102 </div>
3103 </div>
3104 <div class="text_cell_render border-box-sizing rendered_html">
3105 <p>This is exactly what we need, and indeed it works:</p>
3106 </div>
3107 <div class="cell border-box-sizing code_cell vbox">
3108 <div class="input hbox">
3109 <div class="prompt input_prompt">In&nbsp;[47]:</div>
3110 <div class="input_area box-flex1">
3111 <div class="highlight"><pre><span class="n">arr</span> <span class="o">+</span> <span class="n">c</span><span class="p">[:,</span> <span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span>
3112 </pre></div>
3113
3114 </div>
3115 </div>
3116 <div class="vbox output_wrapper">
3117 <div class="output vbox">
3118 <div class="hbox output_area">
3119 <div class="prompt output_prompt">Out&nbsp;[47]:</div>
3120 <div class="output_subarea output_pyout">
3121 <pre>array([[ 4, 5, 6, 7],
3122 [10, 11, 12, 13]])</pre>
3123 </div>
3124 </div>
3125 </div>
3126 </div>
3127 </div>
3128 <div class="text_cell_render border-box-sizing rendered_html">
3129 <p>For the full broadcasting rules, please see the official Numpy docs, which describe them in detail and with more complex examples.</p>
3130 </div>
3131 <div class="text_cell_render border-box-sizing rendered_html">
3132 <p>As we mentioned before, Numpy ships with a full complement of mathematical functions that work on entire arrays, including logarithms, exponentials, trigonometric and hyperbolic trigonometric functions, etc. Furthermore, scipy ships a rich special function library in the <code>scipy.special</code> module that includes Bessel, Airy, Fresnel, Laguerre and other classical special functions. For example, sampling the sine function at 100 points between $0$ and $2\pi$ is as simple as:</p>
3133 </div>
3134 <div class="cell border-box-sizing code_cell vbox">
3135 <div class="input hbox">
3136 <div class="prompt input_prompt">In&nbsp;[48]:</div>
3137 <div class="input_area box-flex1">
3138 <div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
3139 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
3140 </pre></div>
3141
3142 </div>
3143 </div>
3144 </div>
3145 <div class="text_cell_render border-box-sizing rendered_html">
3146 <h2>
3147 Linear algebra in numpy
3148 </h2>
3149 </div>
3150 <div class="text_cell_render border-box-sizing rendered_html">
3151 <p>Numpy ships with a basic linear algebra library, and all arrays have a <code>dot</code> method whose behavior is that of the scalar dot product when its arguments are vectors (one-dimensional arrays) and the traditional matrix multiplication when one or both of its arguments are two-dimensional arrays:</p>
3152 </div>
3153 <div class="cell border-box-sizing code_cell vbox">
3154 <div class="input hbox">
3155 <div class="prompt input_prompt">In&nbsp;[49]:</div>
3156 <div class="input_area box-flex1">
3157 <div class="highlight"><pre><span class="n">v1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">])</span>
3158 <span class="n">v2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">])</span>
3159 <span class="k">print</span> <span class="n">v1</span><span class="p">,</span> <span class="s">&#39;.&#39;</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">v1</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">v2</span><span class="p">)</span>
3160 </pre></div>
3161
3162 </div>
3163 </div>
3164 <div class="vbox output_wrapper">
3165 <div class="output vbox">
3166 <div class="hbox output_area">
3167 <div class="prompt output_prompt"></div>
3168 <div class="output_subarea output_stream output_stdout">
3169 <pre>[2 3 4] . [1 0 1] = 6
3170 </pre>
3171 </div>
3172 </div>
3173 </div>
3174 </div>
3175 </div>
3176 <div class="text_cell_render border-box-sizing rendered_html">
3177 <p>Here is a regular matrix-vector multiplication, note that the array <code>v1</code> should be viewed as a <em>column</em> vector in traditional linear algebra notation; numpy makes no distinction between row and column vectors and simply verifies that the dimensions match the required rules of matrix multiplication, in this case we have a $2 \times 3$ matrix multiplied by a 3-vector, which produces a 2-vector:</p>
3178 </div>
3179 <div class="cell border-box-sizing code_cell vbox">
3180 <div class="input hbox">
3181 <div class="prompt input_prompt">In&nbsp;[50]:</div>
3182 <div class="input_area box-flex1">
3183 <div class="highlight"><pre><span class="n">A</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
3184 <span class="k">print</span> <span class="n">A</span><span class="p">,</span> <span class="s">&#39;x&#39;</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">A</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">v1</span><span class="p">)</span>
3185 </pre></div>
3186
3187 </div>
3188 </div>
3189 <div class="vbox output_wrapper">
3190 <div class="output vbox">
3191 <div class="hbox output_area">
3192 <div class="prompt output_prompt"></div>
3193 <div class="output_subarea output_stream output_stdout">
3194 <pre>[[0 1 2]
3195 [3 4 5]] x [2 3 4] = [11 38]
3196 </pre>
3197 </div>
3198 </div>
3199 </div>
3200 </div>
3201 </div>
3202 <div class="text_cell_render border-box-sizing rendered_html">
3203 <p>For matrix-matrix multiplication, the same dimension-matching rules must be satisfied, e.g. consider the difference between $A \times A^T$:</p>
3204 </div>
3205 <div class="cell border-box-sizing code_cell vbox">
3206 <div class="input hbox">
3207 <div class="prompt input_prompt">In&nbsp;[51]:</div>
3208 <div class="input_area box-flex1">
3209 <div class="highlight"><pre><span class="k">print</span> <span class="n">A</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">A</span><span class="o">.</span><span class="n">T</span><span class="p">)</span>
3210 </pre></div>
3211
3212 </div>
3213 </div>
3214 <div class="vbox output_wrapper">
3215 <div class="output vbox">
3216 <div class="hbox output_area">
3217 <div class="prompt output_prompt"></div>
3218 <div class="output_subarea output_stream output_stdout">
3219 <pre>[[ 5 14]
3220 [14 50]]
3221 </pre>
3222 </div>
3223 </div>
3224 </div>
3225 </div>
3226 </div>
3227 <div class="text_cell_render border-box-sizing rendered_html">
3228 <p>and $A^T \times A$:</p>
3229 </div>
3230 <div class="cell border-box-sizing code_cell vbox">
3231 <div class="input hbox">
3232 <div class="prompt input_prompt">In&nbsp;[52]:</div>
3233 <div class="input_area box-flex1">
3234 <div class="highlight"><pre><span class="k">print</span> <span class="n">A</span><span class="o">.</span><span class="n">T</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
3235 </pre></div>
3236
3237 </div>
3238 </div>
3239 <div class="vbox output_wrapper">
3240 <div class="output vbox">
3241 <div class="hbox output_area">
3242 <div class="prompt output_prompt"></div>
3243 <div class="output_subarea output_stream output_stdout">
3244 <pre>[[ 9 12 15]
3245 [12 17 22]
3246 [15 22 29]]
3247 </pre>
3248 </div>
3249 </div>
3250 </div>
3251 </div>
3252 </div>
3253 <div class="text_cell_render border-box-sizing rendered_html">
3254 <p>Furthermore, the <code>numpy.linalg</code> module includes additional functionality such as determinants, matrix norms, Cholesky, eigenvalue and singular value decompositions, etc. For even more linear algebra tools, <code>scipy.linalg</code> contains the majority of the tools in the classic LAPACK libraries as well as functions to operate on sparse matrices. We refer the reader to the Numpy and Scipy documentations for additional details on these.</p>
3255 </div>
3256 <div class="text_cell_render border-box-sizing rendered_html">
3257 <h2>
3258 Reading and writing arrays to disk
3259 </h2>
3260 </div>
3261 <div class="text_cell_render border-box-sizing rendered_html">
3262 <p>Numpy lets you read and write arrays into files in a number of ways. In order to use these tools well, it is critical to understand the difference between a <em>text</em> and a <em>binary</em> file containing numerical data. In a text file, the number $\pi$ could be written as "3.141592653589793", for example: a string of digits that a human can read, with in this case 15 decimal digits. In contrast, that same number written to a binary file would be encoded as 8 characters (bytes) that are not readable by a human but which contain the exact same data that the variable <code>pi</code> had in the computer's memory.<br />
3263 </p>
3264 <p>The tradeoffs between the two modes are thus:</p>
3265 <ul>
3266 <li>
3267 <p>Text mode: occupies more space, precision can be lost (if not all digits are written to disk), but is readable and editable by hand with a text editor. Can <em>only</em> be used for one- and two-dimensional arrays.</p>
3268 </li>
3269 <li>
3270 <p>Binary mode: compact and exact representation of the data in memory, can't be read or edited by hand. Arrays of any size and dimensionality can be saved and read without loss of information.</p>
3271 </li>
3272 </ul>
3273 <p>First, let's see how to read and write arrays in text mode. The <code>np.savetxt</code> function saves an array to a text file, with options to control the precision, separators and even adding a header:</p>
3274 </div>
3275 <div class="cell border-box-sizing code_cell vbox">
3276 <div class="input hbox">
3277 <div class="prompt input_prompt">In&nbsp;[53]:</div>
3278 <div class="input_area box-flex1">
3279 <div class="highlight"><pre><span class="n">arr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
3280 <span class="n">np</span><span class="o">.</span><span class="n">savetxt</span><span class="p">(</span><span class="s">&#39;test.out&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="s">&#39;</span><span class="si">%.2e</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="s">&quot;My dataset&quot;</span><span class="p">)</span>
3281 <span class="o">!</span>cat test.out
3282 </pre></div>
3283
3284 </div>
3285 </div>
3286 <div class="vbox output_wrapper">
3287 <div class="output vbox">
3288 <div class="hbox output_area">
3289 <div class="prompt output_prompt"></div>
3290 <div class="output_subarea output_stream output_stdout">
3291 <pre># My dataset
3292 0.00e+00 1.00e+00 2.00e+00 3.00e+00 4.00e+00
3293 5.00e+00 6.00e+00 7.00e+00 8.00e+00 9.00e+00
3294 </pre>
3295 </div>
3296 </div>
3297 </div>
3298 </div>
3299 </div>
3300 <div class="text_cell_render border-box-sizing rendered_html">
3301 <p>And this same type of file can then be read with the matching <code>np.loadtxt</code> function:</p>
3302 </div>
3303 <div class="cell border-box-sizing code_cell vbox">
3304 <div class="input hbox">
3305 <div class="prompt input_prompt">In&nbsp;[54]:</div>
3306 <div class="input_area box-flex1">
3307 <div class="highlight"><pre><span class="n">arr2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">loadtxt</span><span class="p">(</span><span class="s">&#39;test.out&#39;</span><span class="p">)</span>
3308 <span class="k">print</span> <span class="n">arr2</span>
3309 </pre></div>
3310
3311 </div>
3312 </div>
3313 <div class="vbox output_wrapper">
3314 <div class="output vbox">
3315 <div class="hbox output_area">
3316 <div class="prompt output_prompt"></div>
3317 <div class="output_subarea output_stream output_stdout">
3318 <pre>[[ 0. 1. 2. 3. 4.]
3319 [ 5. 6. 7. 8. 9.]]
3320 </pre>
3321 </div>
3322 </div>
3323 </div>
3324 </div>
3325 </div>
3326 <div class="text_cell_render border-box-sizing rendered_html">
3327 <p>For binary data, Numpy provides the <code>np.save</code> and <code>np.savez</code> routines. The first saves a single array to a file with <code>.npy</code> extension, while the latter can be used to save a <em>group</em> of arrays into a single file with <code>.npz</code> extension. The files created with these routines can then be read with the <code>np.load</code> function.</p>
3328 <p>Let us first see how to use the simpler <code>np.save</code> function to save a single array:</p>
3329 </div>
3330 <div class="cell border-box-sizing code_cell vbox">
3331 <div class="input hbox">
3332 <div class="prompt input_prompt">In&nbsp;[55]:</div>
3333 <div class="input_area box-flex1">
3334 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s">&#39;test.npy&#39;</span><span class="p">,</span> <span class="n">arr2</span><span class="p">)</span>
3335 <span class="c"># Now we read this back</span>
3336 <span class="n">arr2n</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">&#39;test.npy&#39;</span><span class="p">)</span>
3337 <span class="c"># Let&#39;s see if any element is non-zero in the difference.</span>
3338 <span class="c"># A value of True would be a problem.</span>
3339 <span class="k">print</span> <span class="s">&#39;Any differences?&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">(</span><span class="n">arr2</span><span class="o">-</span><span class="n">arr2n</span><span class="p">)</span>
3340 </pre></div>
3341
3342 </div>
3343 </div>
3344 <div class="vbox output_wrapper">
3345 <div class="output vbox">
3346 <div class="hbox output_area">
3347 <div class="prompt output_prompt"></div>
3348 <div class="output_subarea output_stream output_stdout">
3349 <pre>Any differences? False
3350 </pre>
3351 </div>
3352 </div>
3353 </div>
3354 </div>
3355 </div>
3356 <div class="text_cell_render border-box-sizing rendered_html">
3357 <p>Now let us see how the <code>np.savez</code> function works. You give it a filename and either a sequence of arrays or a set of keywords. In the first mode, the function will auotmatically name the saved arrays in the archive as <code>arr_0</code>, <code>arr_1</code>, etc:</p>
3358 </div>
3359 <div class="cell border-box-sizing code_cell vbox">
3360 <div class="input hbox">
3361 <div class="prompt input_prompt">In&nbsp;[56]:</div>
3362 <div class="input_area box-flex1">
3363 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">savez</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">,</span> <span class="n">arr2</span><span class="p">)</span>
3364 <span class="n">arrays</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">)</span>
3365 <span class="n">arrays</span><span class="o">.</span><span class="n">files</span>
3366 </pre></div>
3367
3368 </div>
3369 </div>
3370 <div class="vbox output_wrapper">
3371 <div class="output vbox">
3372 <div class="hbox output_area">
3373 <div class="prompt output_prompt">Out&nbsp;[56]:</div>
3374 <div class="output_subarea output_pyout">
3375 <pre>[&apos;arr_1&apos;, &apos;arr_0&apos;]</pre>
3376 </div>
3377 </div>
3378 </div>
3379 </div>
3380 </div>
3381 <div class="text_cell_render border-box-sizing rendered_html">
3382 <p>Alternatively, we can explicitly choose how to name the arrays we save:</p>
3383 </div>
3384 <div class="cell border-box-sizing code_cell vbox">
3385 <div class="input hbox">
3386 <div class="prompt input_prompt">In&nbsp;[57]:</div>
3387 <div class="input_area box-flex1">
3388 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">savez</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">,</span> <span class="n">array1</span><span class="o">=</span><span class="n">arr</span><span class="p">,</span> <span class="n">array2</span><span class="o">=</span><span class="n">arr2</span><span class="p">)</span>
3389 <span class="n">arrays</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">)</span>
3390 <span class="n">arrays</span><span class="o">.</span><span class="n">files</span>
3391 </pre></div>
3392
3393 </div>
3394 </div>
3395 <div class="vbox output_wrapper">
3396 <div class="output vbox">
3397 <div class="hbox output_area">
3398 <div class="prompt output_prompt">Out&nbsp;[57]:</div>
3399 <div class="output_subarea output_pyout">
3400 <pre>[&apos;array2&apos;, &apos;array1&apos;]</pre>
3401 </div>
3402 </div>
3403 </div>
3404 </div>
3405 </div>
3406 <div class="text_cell_render border-box-sizing rendered_html">
3407 <p>The object returned by <code>np.load</code> from an <code>.npz</code> file works like a dictionary, though you can also access its constituent files by attribute using its special <code>.f</code> field; this is best illustrated with an example with the <code>arrays</code> object from above:</p>
3408 </div>
3409 <div class="cell border-box-sizing code_cell vbox">
3410 <div class="input hbox">
3411 <div class="prompt input_prompt">In&nbsp;[58]:</div>
3412 <div class="input_area box-flex1">
3413 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;First row of first array:&#39;</span><span class="p">,</span> <span class="n">arrays</span><span class="p">[</span><span class="s">&#39;array1&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
3414 <span class="c"># This is an equivalent way to get the same field</span>
3415 <span class="k">print</span> <span class="s">&#39;First row of first array:&#39;</span><span class="p">,</span> <span class="n">arrays</span><span class="o">.</span><span class="n">f</span><span class="o">.</span><span class="n">array1</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
3416 </pre></div>
3417
3418 </div>
3419 </div>
3420 <div class="vbox output_wrapper">
3421 <div class="output vbox">
3422 <div class="hbox output_area">
3423 <div class="prompt output_prompt"></div>
3424 <div class="output_subarea output_stream output_stdout">
3425 <pre>First row of first array: [0 1 2 3 4]
3426 First row of first array: [0 1 2 3 4]
3427 </pre>
3428 </div>
3429 </div>
3430 </div>
3431 </div>
3432 </div>
3433 <div class="text_cell_render border-box-sizing rendered_html">
3434 <p>This <code>.npz</code> format is a very convenient way to package compactly and without loss of information, into a single file, a group of related arrays that pertain to a specific problem. At some point, however, the complexity of your dataset may be such that the optimal approach is to use one of the standard formats in scientific data processing that have been designed to handle complex datasets, such as NetCDF or HDF5.<br />
3435 </p>
3436 <p>Fortunately, there are tools for manipulating these formats in Python, and for storing data in other ways such as databases. A complete discussion of the possibilities is beyond the scope of this discussion, but of particular interest for scientific users we at least mention the following:</p>
3437 <ul>
3438 <li>
3439 <p>The <code>scipy.io</code> module contains routines to read and write Matlab files in <code>.mat</code> format and files in the NetCDF format that is widely used in certain scientific disciplines.</p>
3440 </li>
3441 <li>
3442 <p>For manipulating files in the HDF5 format, there are two excellent options in Python: The PyTables project offers a high-level, object oriented approach to manipulating HDF5 datasets, while the h5py project offers a more direct mapping to the standard HDF5 library interface. Both are excellent tools; if you need to work with HDF5 datasets you should read some of their documentation and examples and decide which approach is a better match for your needs.</p>
3443 </li>
3444 </ul>
3445 </div>
3446 <div class="text_cell_render border-box-sizing rendered_html">
3447 <h1>
3448 High quality data visualization with Matplotlib
3449 </h1>
3450 </div>
3451 <div class="text_cell_render border-box-sizing rendered_html">
3452 <p>The <a href="http://matplotlib.sf.net">matplotlib</a> library is a powerful tool capable of producing complex publication-quality figures with fine layout control in two and three dimensions; here we will only provide a minimal self-contained introduction to its usage that covers the functionality needed for the rest of the book. We encourage the reader to read the tutorials included with the matplotlib documentation as well as to browse its extensive gallery of examples that include source code.</p>
3453 <p>Just as we typically use the shorthand <code>np</code> for Numpy, we will use <code>plt</code> for the <code>matplotlib.pyplot</code> module where the easy-to-use plotting functions reside (the library contains a rich object-oriented architecture that we don't have the space to discuss here):</p>
3454 </div>
3455 <div class="cell border-box-sizing code_cell vbox">
3456 <div class="input hbox">
3457 <div class="prompt input_prompt">In&nbsp;[59]:</div>
3458 <div class="input_area box-flex1">
3459 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>
3460 </pre></div>
3461
3462 </div>
3463 </div>
3464 </div>
3465 <div class="text_cell_render border-box-sizing rendered_html">
3466 <p>The most frequently used function is simply called <code>plot</code>, here is how you can make a simple plot of $\sin(x)$ for $x \in [0, 2\pi]$ with labels and a grid (we use the semicolon in the last line to suppress the display of some information that is unnecessary right now):</p>
3467 </div>
3468 <div class="cell border-box-sizing code_cell vbox">
3469 <div class="input hbox">
3470 <div class="prompt input_prompt">In&nbsp;[60]:</div>
3471 <div class="input_area box-flex1">
3472 <div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span>
3473 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
3474 <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s">&#39;sin(x)&#39;</span><span class="p">)</span>
3475 <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
3476 <span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">()</span>
3477 <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&#39;Harmonic&#39;</span><span class="p">)</span>
3478 <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s">&#39;x&#39;</span><span class="p">)</span>
3479 <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s">&#39;y&#39;</span><span class="p">);</span>
3480 </pre></div>
3481
3482 </div>
3483 </div>
3484 <div class="vbox output_wrapper">
3485 <div class="output vbox">
3486 <div class="hbox output_area">
3487 <div class="prompt output_prompt"></div>
3488 <div class="output_subarea output_display_data">
3489 <?xml version="1.0" encoding="utf-8" standalone="no"?>
3490 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3491 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3492 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
3493 <svg height="267pt" version="1.1" viewBox="0 0 390 267" width="390pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3494 <defs>
3495 <style type="text/css">
3496 *{stroke-linecap:square;stroke-linejoin:round;}
3497 </style>
3498 </defs>
3499 <g id="figure_1">
3500 <g id="patch_1">
3501 <path d="
3502 M-7.21645e-16 267.991
3503 L390.652 267.991
3504 L390.652 0
3505 L-7.21645e-16 0
3506 z
3507 " style="fill:#ffffff;"/>
3508 </g>
3509 <g id="axes_1">
3510 <g id="patch_2">
3511 <path d="
3512 M46.3078 238.758
3513 L381.108 238.758
3514 L381.108 21.3181
3515 L46.3078 21.3181
3516 z
3517 " style="fill:#ffffff;"/>
3518 </g>
3519 <g id="line2d_1">
3520 <path clip-path="url(#p725504610e)" d="
3521 M46.3078 130.038
3522 L52.4408 116.135
3523 L58.5738 102.461
3524 L64.7067 89.2391
3525 L70.8397 76.6873
3526 L76.9727 65.0115
3527 L83.1057 54.4035
3528 L89.2386 45.0374
3529 L95.3716 37.067
3530 L101.505 30.6232
3531 L107.638 25.8118
3532 L113.771 22.7117
3533 L119.904 21.374
3534 L126.036 21.8205
3535 L132.169 24.044
3536 L138.302 28.0078
3537 L144.435 33.647
3538 L150.568 40.869
3539 L156.701 49.5551
3540 L162.834 59.5627
3541 L168.967 70.7276
3542 L175.1 82.8663
3543 L181.233 95.7796
3544 L187.366 109.255
3545 L193.499 123.072
3546 L199.632 137.004
3547 L205.765 150.821
3548 L211.898 164.297
3549 L218.031 177.21
3550 L224.164 189.349
3551 L230.297 200.514
3552 L236.43 210.521
3553 L242.563 219.207
3554 L248.696 226.429
3555 L254.829 232.068
3556 L260.962 236.032
3557 L267.095 238.256
3558 L273.228 238.702
3559 L279.361 237.365
3560 L285.494 234.264
3561 L291.627 229.453
3562 L297.76 223.009
3563 L303.893 215.039
3564 L310.026 205.673
3565 L316.159 195.065
3566 L322.292 183.389
3567 L328.425 170.837
3568 L334.558 157.615
3569 L340.691 143.941
3570 L346.824 130.038" style="fill:none;stroke:#0000ff;"/>
3571 </g>
3572 <g id="matplotlib.axis_1">
3573 <g id="xtick_1">
3574 <g id="line2d_2">
3575 <path clip-path="url(#p725504610e)" d="
3576 M46.3078 238.758
3577 L46.3078 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3578 </g>
3579 <g id="line2d_3">
3580 <defs>
3581 <path d="
3582 M0 0
3583 L0 -4" id="m1e01ff8d7c"/>
3584 </defs>
3585 <g>
3586 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.3078125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3587 </g>
3588 </g>
3589 <g id="line2d_4">
3590 <defs>
3591 <path d="
3592 M0 0
3593 L0 4" id="m91aa736623"/>
3594 </defs>
3595 <g>
3596 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.3078125" xlink:href="#m91aa736623" y="21.318125"/>
3597 </g>
3598 </g>
3599 <g id="text_1">
3600 <!-- 0 -->
3601 <defs>
3602 <path d="
3603 M31.7812 66.4062
3604 Q24.1719 66.4062 20.3281 58.9062
3605 Q16.5 51.4219 16.5 36.375
3606 Q16.5 21.3906 20.3281 13.8906
3607 Q24.1719 6.39062 31.7812 6.39062
3608 Q39.4531 6.39062 43.2812 13.8906
3609 Q47.125 21.3906 47.125 36.375
3610 Q47.125 51.4219 43.2812 58.9062
3611 Q39.4531 66.4062 31.7812 66.4062
3612 M31.7812 74.2188
3613 Q44.0469 74.2188 50.5156 64.5156
3614 Q56.9844 54.8281 56.9844 36.375
3615 Q56.9844 17.9688 50.5156 8.26562
3616 Q44.0469 -1.42188 31.7812 -1.42188
3617 Q19.5312 -1.42188 13.0625 8.26562
3618 Q6.59375 17.9688 6.59375 36.375
3619 Q6.59375 54.8281 13.0625 64.5156
3620 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
3621 </defs>
3622 <g transform="translate(43.78828125 250.18)scale(0.1 -0.1)">
3623 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
3624 </g>
3625 </g>
3626 </g>
3627 <g id="xtick_2">
3628 <g id="line2d_5">
3629 <path clip-path="url(#p725504610e)" d="
3630 M94.1364 238.758
3631 L94.1364 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3632 </g>
3633 <g id="line2d_6">
3634 <defs>
3635 <path d="
3636 M0 0
3637 L0 -4" id="m1e01ff8d7c"/>
3638 </defs>
3639 <g>
3640 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="94.1363839286" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3641 </g>
3642 </g>
3643 <g id="line2d_7">
3644 <defs>
3645 <path d="
3646 M0 0
3647 L0 4" id="m91aa736623"/>
3648 </defs>
3649 <g>
3650 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="94.1363839286" xlink:href="#m91aa736623" y="21.318125"/>
3651 </g>
3652 </g>
3653 <g id="text_2">
3654 <!-- 1 -->
3655 <defs>
3656 <path d="
3657 M12.4062 8.29688
3658 L28.5156 8.29688
3659 L28.5156 63.9219
3660 L10.9844 60.4062
3661 L10.9844 69.3906
3662 L28.4219 72.9062
3663 L38.2812 72.9062
3664 L38.2812 8.29688
3665 L54.3906 8.29688
3666 L54.3906 0
3667 L12.4062 0
3668 z
3669 " id="BitstreamVeraSans-Roman-31"/>
3670 </defs>
3671 <g transform="translate(91.9660714286 250.04875)scale(0.1 -0.1)">
3672 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
3673 </g>
3674 </g>
3675 </g>
3676 <g id="xtick_3">
3677 <g id="line2d_8">
3678 <path clip-path="url(#p725504610e)" d="
3679 M141.965 238.758
3680 L141.965 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3681 </g>
3682 <g id="line2d_9">
3683 <defs>
3684 <path d="
3685 M0 0
3686 L0 -4" id="m1e01ff8d7c"/>
3687 </defs>
3688 <g>
3689 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="141.964955357" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3690 </g>
3691 </g>
3692 <g id="line2d_10">
3693 <defs>
3694 <path d="
3695 M0 0
3696 L0 4" id="m91aa736623"/>
3697 </defs>
3698 <g>
3699 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="141.964955357" xlink:href="#m91aa736623" y="21.318125"/>
3700 </g>
3701 </g>
3702 <g id="text_3">
3703 <!-- 2 -->
3704 <defs>
3705 <path d="
3706 M19.1875 8.29688
3707 L53.6094 8.29688
3708 L53.6094 0
3709 L7.32812 0
3710 L7.32812 8.29688
3711 Q12.9375 14.1094 22.625 23.8906
3712 Q32.3281 33.6875 34.8125 36.5312
3713 Q39.5469 41.8438 41.4219 45.5312
3714 Q43.3125 49.2188 43.3125 52.7812
3715 Q43.3125 58.5938 39.2344 62.25
3716 Q35.1562 65.9219 28.6094 65.9219
3717 Q23.9688 65.9219 18.8125 64.3125
3718 Q13.6719 62.7031 7.8125 59.4219
3719 L7.8125 69.3906
3720 Q13.7656 71.7812 18.9375 73
3721 Q24.125 74.2188 28.4219 74.2188
3722 Q39.75 74.2188 46.4844 68.5469
3723 Q53.2188 62.8906 53.2188 53.4219
3724 Q53.2188 48.9219 51.5312 44.8906
3725 Q49.8594 40.875 45.4062 35.4062
3726 Q44.1875 33.9844 37.6406 27.2188
3727 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
3728 </defs>
3729 <g transform="translate(139.650892857 250.18)scale(0.1 -0.1)">
3730 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
3731 </g>
3732 </g>
3733 </g>
3734 <g id="xtick_4">
3735 <g id="line2d_11">
3736 <path clip-path="url(#p725504610e)" d="
3737 M189.794 238.758
3738 L189.794 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3739 </g>
3740 <g id="line2d_12">
3741 <defs>
3742 <path d="
3743 M0 0
3744 L0 -4" id="m1e01ff8d7c"/>
3745 </defs>
3746 <g>
3747 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="189.793526786" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3748 </g>
3749 </g>
3750 <g id="line2d_13">
3751 <defs>
3752 <path d="
3753 M0 0
3754 L0 4" id="m91aa736623"/>
3755 </defs>
3756 <g>
3757 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="189.793526786" xlink:href="#m91aa736623" y="21.318125"/>
3758 </g>
3759 </g>
3760 <g id="text_4">
3761 <!-- 3 -->
3762 <defs>
3763 <path d="
3764 M40.5781 39.3125
3765 Q47.6562 37.7969 51.625 33
3766 Q55.6094 28.2188 55.6094 21.1875
3767 Q55.6094 10.4062 48.1875 4.48438
3768 Q40.7656 -1.42188 27.0938 -1.42188
3769 Q22.5156 -1.42188 17.6562 -0.515625
3770 Q12.7969 0.390625 7.625 2.20312
3771 L7.625 11.7188
3772 Q11.7188 9.32812 16.5938 8.10938
3773 Q21.4844 6.89062 26.8125 6.89062
3774 Q36.0781 6.89062 40.9375 10.5469
3775 Q45.7969 14.2031 45.7969 21.1875
3776 Q45.7969 27.6406 41.2812 31.2656
3777 Q36.7656 34.9062 28.7188 34.9062
3778 L20.2188 34.9062
3779 L20.2188 43.0156
3780 L29.1094 43.0156
3781 Q36.375 43.0156 40.2344 45.9219
3782 Q44.0938 48.8281 44.0938 54.2969
3783 Q44.0938 59.9062 40.1094 62.9062
3784 Q36.1406 65.9219 28.7188 65.9219
3785 Q24.6562 65.9219 20.0156 65.0312
3786 Q15.375 64.1562 9.8125 62.3125
3787 L9.8125 71.0938
3788 Q15.4375 72.6562 20.3438 73.4375
3789 Q25.25 74.2188 29.5938 74.2188
3790 Q40.8281 74.2188 47.3594 69.1094
3791 Q53.9062 64.0156 53.9062 55.3281
3792 Q53.9062 49.2656 50.4375 45.0938
3793 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
3794 </defs>
3795 <g transform="translate(187.394308036 250.18)scale(0.1 -0.1)">
3796 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
3797 </g>
3798 </g>
3799 </g>
3800 <g id="xtick_5">
3801 <g id="line2d_14">
3802 <path clip-path="url(#p725504610e)" d="
3803 M237.622 238.758
3804 L237.622 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3805 </g>
3806 <g id="line2d_15">
3807 <defs>
3808 <path d="
3809 M0 0
3810 L0 -4" id="m1e01ff8d7c"/>
3811 </defs>
3812 <g>
3813 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="237.622098214" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3814 </g>
3815 </g>
3816 <g id="line2d_16">
3817 <defs>
3818 <path d="
3819 M0 0
3820 L0 4" id="m91aa736623"/>
3821 </defs>
3822 <g>
3823 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="237.622098214" xlink:href="#m91aa736623" y="21.318125"/>
3824 </g>
3825 </g>
3826 <g id="text_5">
3827 <!-- 4 -->
3828 <defs>
3829 <path d="
3830 M37.7969 64.3125
3831 L12.8906 25.3906
3832 L37.7969 25.3906
3833 z
3834
3835 M35.2031 72.9062
3836 L47.6094 72.9062
3837 L47.6094 25.3906
3838 L58.0156 25.3906
3839 L58.0156 17.1875
3840 L47.6094 17.1875
3841 L47.6094 0
3842 L37.7969 0
3843 L37.7969 17.1875
3844 L4.89062 17.1875
3845 L4.89062 26.7031
3846 z
3847 " id="BitstreamVeraSans-Roman-34"/>
3848 </defs>
3849 <g transform="translate(234.965848214 250.04875)scale(0.1 -0.1)">
3850 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
3851 </g>
3852 </g>
3853 </g>
3854 <g id="xtick_6">
3855 <g id="line2d_17">
3856 <path clip-path="url(#p725504610e)" d="
3857 M285.451 238.758
3858 L285.451 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3859 </g>
3860 <g id="line2d_18">
3861 <defs>
3862 <path d="
3863 M0 0
3864 L0 -4" id="m1e01ff8d7c"/>
3865 </defs>
3866 <g>
3867 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="285.450669643" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3868 </g>
3869 </g>
3870 <g id="line2d_19">
3871 <defs>
3872 <path d="
3873 M0 0
3874 L0 4" id="m91aa736623"/>
3875 </defs>
3876 <g>
3877 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="285.450669643" xlink:href="#m91aa736623" y="21.318125"/>
3878 </g>
3879 </g>
3880 <g id="text_6">
3881 <!-- 5 -->
3882 <defs>
3883 <path d="
3884 M10.7969 72.9062
3885 L49.5156 72.9062
3886 L49.5156 64.5938
3887 L19.8281 64.5938
3888 L19.8281 46.7344
3889 Q21.9688 47.4688 24.1094 47.8281
3890 Q26.2656 48.1875 28.4219 48.1875
3891 Q40.625 48.1875 47.75 41.5
3892 Q54.8906 34.8125 54.8906 23.3906
3893 Q54.8906 11.625 47.5625 5.09375
3894 Q40.2344 -1.42188 26.9062 -1.42188
3895 Q22.3125 -1.42188 17.5469 -0.640625
3896 Q12.7969 0.140625 7.71875 1.70312
3897 L7.71875 11.625
3898 Q12.1094 9.23438 16.7969 8.0625
3899 Q21.4844 6.89062 26.7031 6.89062
3900 Q35.1562 6.89062 40.0781 11.3281
3901 Q45.0156 15.7656 45.0156 23.3906
3902 Q45.0156 31 40.0781 35.4375
3903 Q35.1562 39.8906 26.7031 39.8906
3904 Q22.75 39.8906 18.8125 39.0156
3905 Q14.8906 38.1406 10.7969 36.2812
3906 z
3907 " id="BitstreamVeraSans-Roman-35"/>
3908 </defs>
3909 <g transform="translate(283.092075893 250.04875)scale(0.1 -0.1)">
3910 <use xlink:href="#BitstreamVeraSans-Roman-35"/>
3911 </g>
3912 </g>
3913 </g>
3914 <g id="xtick_7">
3915 <g id="line2d_20">
3916 <path clip-path="url(#p725504610e)" d="
3917 M333.279 238.758
3918 L333.279 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3919 </g>
3920 <g id="line2d_21">
3921 <defs>
3922 <path d="
3923 M0 0
3924 L0 -4" id="m1e01ff8d7c"/>
3925 </defs>
3926 <g>
3927 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="333.279241071" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3928 </g>
3929 </g>
3930 <g id="line2d_22">
3931 <defs>
3932 <path d="
3933 M0 0
3934 L0 4" id="m91aa736623"/>
3935 </defs>
3936 <g>
3937 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="333.279241071" xlink:href="#m91aa736623" y="21.318125"/>
3938 </g>
3939 </g>
3940 <g id="text_7">
3941 <!-- 6 -->
3942 <defs>
3943 <path d="
3944 M33.0156 40.375
3945 Q26.375 40.375 22.4844 35.8281
3946 Q18.6094 31.2969 18.6094 23.3906
3947 Q18.6094 15.5312 22.4844 10.9531
3948 Q26.375 6.39062 33.0156 6.39062
3949 Q39.6562 6.39062 43.5312 10.9531
3950 Q47.4062 15.5312 47.4062 23.3906
3951 Q47.4062 31.2969 43.5312 35.8281
3952 Q39.6562 40.375 33.0156 40.375
3953 M52.5938 71.2969
3954 L52.5938 62.3125
3955 Q48.875 64.0625 45.0938 64.9844
3956 Q41.3125 65.9219 37.5938 65.9219
3957 Q27.8281 65.9219 22.6719 59.3281
3958 Q17.5312 52.7344 16.7969 39.4062
3959 Q19.6719 43.6562 24.0156 45.9219
3960 Q28.375 48.1875 33.5938 48.1875
3961 Q44.5781 48.1875 50.9531 41.5156
3962 Q57.3281 34.8594 57.3281 23.3906
3963 Q57.3281 12.1562 50.6875 5.35938
3964 Q44.0469 -1.42188 33.0156 -1.42188
3965 Q20.3594 -1.42188 13.6719 8.26562
3966 Q6.98438 17.9688 6.98438 36.375
3967 Q6.98438 53.6562 15.1875 63.9375
3968 Q23.3906 74.2188 37.2031 74.2188
3969 Q40.9219 74.2188 44.7031 73.4844
3970 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
3971 </defs>
3972 <g transform="translate(330.762053571 250.18)scale(0.1 -0.1)">
3973 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
3974 </g>
3975 </g>
3976 </g>
3977 <g id="xtick_8">
3978 <g id="line2d_23">
3979 <path clip-path="url(#p725504610e)" d="
3980 M381.108 238.758
3981 L381.108 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
3982 </g>
3983 <g id="line2d_24">
3984 <defs>
3985 <path d="
3986 M0 0
3987 L0 -4" id="m1e01ff8d7c"/>
3988 </defs>
3989 <g>
3990 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="381.1078125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
3991 </g>
3992 </g>
3993 <g id="line2d_25">
3994 <defs>
3995 <path d="
3996 M0 0
3997 L0 4" id="m91aa736623"/>
3998 </defs>
3999 <g>
4000 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="381.1078125" xlink:href="#m91aa736623" y="21.318125"/>
4001 </g>
4002 </g>
4003 <g id="text_8">
4004 <!-- 7 -->
4005 <defs>
4006 <path d="
4007 M8.20312 72.9062
4008 L55.0781 72.9062
4009 L55.0781 68.7031
4010 L28.6094 0
4011 L18.3125 0
4012 L43.2188 64.5938
4013 L8.20312 64.5938
4014 z
4015 " id="BitstreamVeraSans-Roman-37"/>
4016 </defs>
4017 <g transform="translate(378.7640625 250.04875)scale(0.1 -0.1)">
4018 <use xlink:href="#BitstreamVeraSans-Roman-37"/>
4019 </g>
4020 </g>
4021 </g>
4022 <g id="text_9">
4023 <!-- x -->
4024 <defs>
4025 <path d="
4026 M54.8906 54.6875
4027 L35.1094 28.0781
4028 L55.9062 0
4029 L45.3125 0
4030 L29.3906 21.4844
4031 L13.4844 0
4032 L2.875 0
4033 L24.125 28.6094
4034 L4.6875 54.6875
4035 L15.2812 54.6875
4036 L29.7812 35.2031
4037 L44.2812 54.6875
4038 z
4039 " id="BitstreamVeraSans-Roman-78"/>
4040 </defs>
4041 <g transform="translate(211.05625 260.7909375)scale(0.1 -0.1)">
4042 <use xlink:href="#BitstreamVeraSans-Roman-78"/>
4043 </g>
4044 </g>
4045 </g>
4046 <g id="matplotlib.axis_2">
4047 <g id="ytick_1">
4048 <g id="line2d_26">
4049 <path clip-path="url(#p725504610e)" d="
4050 M46.3078 238.758
4051 L381.108 238.758" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
4052 </g>
4053 <g id="line2d_27">
4054 <defs>
4055 <path d="
4056 M0 0
4057 L4 0" id="mf019e8ac8f"/>
4058 </defs>
4059 <g>
4060 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.3078125" xlink:href="#mf019e8ac8f" y="238.758125"/>
4061 </g>
4062 </g>
4063 <g id="line2d_28">
4064 <defs>
4065 <path d="
4066 M0 0
4067 L-4 0" id="m1ec148bd55"/>
4068 </defs>
4069 <g>
4070 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="381.1078125" xlink:href="#m1ec148bd55" y="238.758125"/>
4071 </g>
4072 </g>
4073 <g id="text_10">
4074 <!-- −1.0 -->
4075 <defs>
4076 <path d="
4077 M10.5938 35.5
4078 L73.1875 35.5
4079 L73.1875 27.2031
4080 L10.5938 27.2031
4081 z
4082 " id="BitstreamVeraSans-Roman-2212"/>
4083 <path d="
4084 M10.6875 12.4062
4085 L21 12.4062
4086 L21 0
4087 L10.6875 0
4088 z
4089 " id="BitstreamVeraSans-Roman-2e"/>
4090 </defs>
4091 <g transform="translate(19.7484375 242.39796875)scale(0.1 -0.1)">
4092 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
4093 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-31"/>
4094 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
4095 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-30"/>
4096 </g>
4097 </g>
4098 </g>
4099 <g id="ytick_2">
4100 <g id="line2d_29">
4101 <path clip-path="url(#p725504610e)" d="
4102 M46.3078 184.398
4103 L381.108 184.398" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
4104 </g>
4105 <g id="line2d_30">
4106 <defs>
4107 <path d="
4108 M0 0
4109 L4 0" id="mf019e8ac8f"/>
4110 </defs>
4111 <g>
4112 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.3078125" xlink:href="#mf019e8ac8f" y="184.398125"/>
4113 </g>
4114 </g>
4115 <g id="line2d_31">
4116 <defs>
4117 <path d="
4118 M0 0
4119 L-4 0" id="m1ec148bd55"/>
4120 </defs>
4121 <g>
4122 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="381.1078125" xlink:href="#m1ec148bd55" y="184.398125"/>
4123 </g>
4124 </g>
4125 <g id="text_11">
4126 <!-- −0.5 -->
4127 <g transform="translate(19.9578125 188.03796875)scale(0.1 -0.1)">
4128 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
4129 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-30"/>
4130 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
4131 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-35"/>
4132 </g>
4133 </g>
4134 </g>
4135 <g id="ytick_3">
4136 <g id="line2d_32">
4137 <path clip-path="url(#p725504610e)" d="
4138 M46.3078 130.038
4139 L381.108 130.038" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
4140 </g>
4141 <g id="line2d_33">
4142 <defs>
4143 <path d="
4144 M0 0
4145 L4 0" id="mf019e8ac8f"/>
4146 </defs>
4147 <g>
4148 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.3078125" xlink:href="#mf019e8ac8f" y="130.038125"/>
4149 </g>
4150 </g>
4151 <g id="line2d_34">
4152 <defs>
4153 <path d="
4154 M0 0
4155 L-4 0" id="m1ec148bd55"/>
4156 </defs>
4157 <g>
4158 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="381.1078125" xlink:href="#m1ec148bd55" y="130.038125"/>
4159 </g>
4160 </g>
4161 <g id="text_12">
4162 <!-- 0.0 -->
4163 <g transform="translate(27.728125 133.67796875)scale(0.1 -0.1)">
4164 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
4165 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
4166 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
4167 </g>
4168 </g>
4169 </g>
4170 <g id="ytick_4">
4171 <g id="line2d_35">
4172 <path clip-path="url(#p725504610e)" d="
4173 M46.3078 75.6781
4174 L381.108 75.6781" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
4175 </g>
4176 <g id="line2d_36">
4177 <defs>
4178 <path d="
4179 M0 0
4180 L4 0" id="mf019e8ac8f"/>
4181 </defs>
4182 <g>
4183 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.3078125" xlink:href="#mf019e8ac8f" y="75.678125"/>
4184 </g>
4185 </g>
4186 <g id="line2d_37">
4187 <defs>
4188 <path d="
4189 M0 0
4190 L-4 0" id="m1ec148bd55"/>
4191 </defs>
4192 <g>
4193 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="381.1078125" xlink:href="#m1ec148bd55" y="75.678125"/>
4194 </g>
4195 </g>
4196 <g id="text_13">
4197 <!-- 0.5 -->
4198 <g transform="translate(27.9375 79.31796875)scale(0.1 -0.1)">
4199 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
4200 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
4201 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
4202 </g>
4203 </g>
4204 </g>
4205 <g id="ytick_5">
4206 <g id="line2d_38">
4207 <path clip-path="url(#p725504610e)" d="
4208 M46.3078 21.3181
4209 L381.108 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
4210 </g>
4211 <g id="line2d_39">
4212 <defs>
4213 <path d="
4214 M0 0
4215 L4 0" id="mf019e8ac8f"/>
4216 </defs>
4217 <g>
4218 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.3078125" xlink:href="#mf019e8ac8f" y="21.318125"/>
4219 </g>
4220 </g>
4221 <g id="line2d_40">
4222 <defs>
4223 <path d="
4224 M0 0
4225 L-4 0" id="m1ec148bd55"/>
4226 </defs>
4227 <g>
4228 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="381.1078125" xlink:href="#m1ec148bd55" y="21.318125"/>
4229 </g>
4230 </g>
4231 <g id="text_14">
4232 <!-- 1.0 -->
4233 <g transform="translate(28.1671875 24.95796875)scale(0.1 -0.1)">
4234 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
4235 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
4236 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
4237 </g>
4238 </g>
4239 </g>
4240 <g id="text_15">
4241 <!-- y -->
4242 <defs>
4243 <path d="
4244 M32.1719 -5.07812
4245 Q28.375 -14.8438 24.75 -17.8125
4246 Q21.1406 -20.7969 15.0938 -20.7969
4247 L7.90625 -20.7969
4248 L7.90625 -13.2812
4249 L13.1875 -13.2812
4250 Q16.8906 -13.2812 18.9375 -11.5156
4251 Q21 -9.76562 23.4844 -3.21875
4252 L25.0938 0.875
4253 L2.98438 54.6875
4254 L12.5 54.6875
4255 L29.5938 11.9219
4256 L46.6875 54.6875
4257 L56.2031 54.6875
4258 z
4259 " id="BitstreamVeraSans-Roman-79"/>
4260 </defs>
4261 <g transform="translate(14.7484375 130.619375)rotate(-90.0)scale(0.1 -0.1)">
4262 <use xlink:href="#BitstreamVeraSans-Roman-79"/>
4263 </g>
4264 </g>
4265 </g>
4266 <g id="patch_3">
4267 <path d="
4268 M46.3078 21.3181
4269 L381.108 21.3181" style="fill:none;stroke:#000000;"/>
4270 </g>
4271 <g id="patch_4">
4272 <path d="
4273 M381.108 238.758
4274 L381.108 21.3181" style="fill:none;stroke:#000000;"/>
4275 </g>
4276 <g id="patch_5">
4277 <path d="
4278 M46.3078 238.758
4279 L381.108 238.758" style="fill:none;stroke:#000000;"/>
4280 </g>
4281 <g id="patch_6">
4282 <path d="
4283 M46.3078 238.758
4284 L46.3078 21.3181" style="fill:none;stroke:#000000;"/>
4285 </g>
4286 <g id="text_16">
4287 <!-- Harmonic -->
4288 <defs>
4289 <path d="
4290 M54.8906 33.0156
4291 L54.8906 0
4292 L45.9062 0
4293 L45.9062 32.7188
4294 Q45.9062 40.4844 42.875 44.3281
4295 Q39.8438 48.1875 33.7969 48.1875
4296 Q26.5156 48.1875 22.3125 43.5469
4297 Q18.1094 38.9219 18.1094 30.9062
4298 L18.1094 0
4299 L9.07812 0
4300 L9.07812 54.6875
4301 L18.1094 54.6875
4302 L18.1094 46.1875
4303 Q21.3438 51.125 25.7031 53.5625
4304 Q30.0781 56 35.7969 56
4305 Q45.2188 56 50.0469 50.1719
4306 Q54.8906 44.3438 54.8906 33.0156" id="BitstreamVeraSans-Roman-6e"/>
4307 <path d="
4308 M52 44.1875
4309 Q55.375 50.25 60.0625 53.125
4310 Q64.75 56 71.0938 56
4311 Q79.6406 56 84.2812 50.0156
4312 Q88.9219 44.0469 88.9219 33.0156
4313 L88.9219 0
4314 L79.8906 0
4315 L79.8906 32.7188
4316 Q79.8906 40.5781 77.0938 44.375
4317 Q74.3125 48.1875 68.6094 48.1875
4318 Q61.625 48.1875 57.5625 43.5469
4319 Q53.5156 38.9219 53.5156 30.9062
4320 L53.5156 0
4321 L44.4844 0
4322 L44.4844 32.7188
4323 Q44.4844 40.625 41.7031 44.4062
4324 Q38.9219 48.1875 33.1094 48.1875
4325 Q26.2188 48.1875 22.1562 43.5312
4326 Q18.1094 38.875 18.1094 30.9062
4327 L18.1094 0
4328 L9.07812 0
4329 L9.07812 54.6875
4330 L18.1094 54.6875
4331 L18.1094 46.1875
4332 Q21.1875 51.2188 25.4844 53.6094
4333 Q29.7812 56 35.6875 56
4334 Q41.6562 56 45.8281 52.9688
4335 Q50 49.9531 52 44.1875" id="BitstreamVeraSans-Roman-6d"/>
4336 <path d="
4337 M30.6094 48.3906
4338 Q23.3906 48.3906 19.1875 42.75
4339 Q14.9844 37.1094 14.9844 27.2969
4340 Q14.9844 17.4844 19.1562 11.8438
4341 Q23.3438 6.20312 30.6094 6.20312
4342 Q37.7969 6.20312 41.9844 11.8594
4343 Q46.1875 17.5312 46.1875 27.2969
4344 Q46.1875 37.0156 41.9844 42.7031
4345 Q37.7969 48.3906 30.6094 48.3906
4346 M30.6094 56
4347 Q42.3281 56 49.0156 48.375
4348 Q55.7188 40.7656 55.7188 27.2969
4349 Q55.7188 13.875 49.0156 6.21875
4350 Q42.3281 -1.42188 30.6094 -1.42188
4351 Q18.8438 -1.42188 12.1719 6.21875
4352 Q5.51562 13.875 5.51562 27.2969
4353 Q5.51562 40.7656 12.1719 48.375
4354 Q18.8438 56 30.6094 56" id="BitstreamVeraSans-Roman-6f"/>
4355 <path d="
4356 M9.42188 54.6875
4357 L18.4062 54.6875
4358 L18.4062 0
4359 L9.42188 0
4360 z
4361
4362 M9.42188 75.9844
4363 L18.4062 75.9844
4364 L18.4062 64.5938
4365 L9.42188 64.5938
4366 z
4367 " id="BitstreamVeraSans-Roman-69"/>
4368 <path d="
4369 M34.2812 27.4844
4370 Q23.3906 27.4844 19.1875 25
4371 Q14.9844 22.5156 14.9844 16.5
4372 Q14.9844 11.7188 18.1406 8.90625
4373 Q21.2969 6.10938 26.7031 6.10938
4374 Q34.1875 6.10938 38.7031 11.4062
4375 Q43.2188 16.7031 43.2188 25.4844
4376 L43.2188 27.4844
4377 z
4378
4379 M52.2031 31.2031
4380 L52.2031 0
4381 L43.2188 0
4382 L43.2188 8.29688
4383 Q40.1406 3.32812 35.5469 0.953125
4384 Q30.9531 -1.42188 24.3125 -1.42188
4385 Q15.9219 -1.42188 10.9531 3.29688
4386 Q6 8.01562 6 15.9219
4387 Q6 25.1406 12.1719 29.8281
4388 Q18.3594 34.5156 30.6094 34.5156
4389 L43.2188 34.5156
4390 L43.2188 35.4062
4391 Q43.2188 41.6094 39.1406 45
4392 Q35.0625 48.3906 27.6875 48.3906
4393 Q23 48.3906 18.5469 47.2656
4394 Q14.1094 46.1406 10.0156 43.8906
4395 L10.0156 52.2031
4396 Q14.9375 54.1094 19.5781 55.0469
4397 Q24.2188 56 28.6094 56
4398 Q40.4844 56 46.3438 49.8438
4399 Q52.2031 43.7031 52.2031 31.2031" id="BitstreamVeraSans-Roman-61"/>
4400 <path d="
4401 M41.1094 46.2969
4402 Q39.5938 47.1719 37.8125 47.5781
4403 Q36.0312 48 33.8906 48
4404 Q26.2656 48 22.1875 43.0469
4405 Q18.1094 38.0938 18.1094 28.8125
4406 L18.1094 0
4407 L9.07812 0
4408 L9.07812 54.6875
4409 L18.1094 54.6875
4410 L18.1094 46.1875
4411 Q20.9531 51.1719 25.4844 53.5781
4412 Q30.0312 56 36.5312 56
4413 Q37.4531 56 38.5781 55.875
4414 Q39.7031 55.7656 41.0625 55.5156
4415 z
4416 " id="BitstreamVeraSans-Roman-72"/>
4417 <path d="
4418 M48.7812 52.5938
4419 L48.7812 44.1875
4420 Q44.9688 46.2969 41.1406 47.3438
4421 Q37.3125 48.3906 33.4062 48.3906
4422 Q24.6562 48.3906 19.8125 42.8438
4423 Q14.9844 37.3125 14.9844 27.2969
4424 Q14.9844 17.2812 19.8125 11.7344
4425 Q24.6562 6.20312 33.4062 6.20312
4426 Q37.3125 6.20312 41.1406 7.25
4427 Q44.9688 8.29688 48.7812 10.4062
4428 L48.7812 2.09375
4429 Q45.0156 0.34375 40.9844 -0.53125
4430 Q36.9688 -1.42188 32.4219 -1.42188
4431 Q20.0625 -1.42188 12.7812 6.34375
4432 Q5.51562 14.1094 5.51562 27.2969
4433 Q5.51562 40.6719 12.8594 48.3281
4434 Q20.2188 56 33.0156 56
4435 Q37.1562 56 41.1094 55.1406
4436 Q45.0625 54.2969 48.7812 52.5938" id="BitstreamVeraSans-Roman-63"/>
4437 <path d="
4438 M9.8125 72.9062
4439 L19.6719 72.9062
4440 L19.6719 43.0156
4441 L55.5156 43.0156
4442 L55.5156 72.9062
4443 L65.375 72.9062
4444 L65.375 0
4445 L55.5156 0
4446 L55.5156 34.7188
4447 L19.6719 34.7188
4448 L19.6719 0
4449 L9.8125 0
4450 z
4451 " id="BitstreamVeraSans-Roman-48"/>
4452 </defs>
4453 <g transform="translate(185.8340625 16.318125)scale(0.12 -0.12)">
4454 <use xlink:href="#BitstreamVeraSans-Roman-48"/>
4455 <use x="75.1953125" xlink:href="#BitstreamVeraSans-Roman-61"/>
4456 <use x="136.474609375" xlink:href="#BitstreamVeraSans-Roman-72"/>
4457 <use x="175.837890625" xlink:href="#BitstreamVeraSans-Roman-6d"/>
4458 <use x="273.25" xlink:href="#BitstreamVeraSans-Roman-6f"/>
4459 <use x="334.431640625" xlink:href="#BitstreamVeraSans-Roman-6e"/>
4460 <use x="397.810546875" xlink:href="#BitstreamVeraSans-Roman-69"/>
4461 <use x="425.59375" xlink:href="#BitstreamVeraSans-Roman-63"/>
4462 </g>
4463 </g>
4464 <g id="legend_1">
4465 <g id="patch_7">
4466 <path d="
4467 M299.933 47.6188
4468 L375.108 47.6188
4469 L375.108 27.3181
4470 L299.933 27.3181
4471 L299.933 47.6188
4472 z
4473 " style="fill:#ffffff;stroke:#000000;"/>
4474 </g>
4475 <g id="line2d_41">
4476 <path d="
4477 M308.333 37.0363
4478 L325.133 37.0363" style="fill:none;stroke:#0000ff;"/>
4479 </g>
4480 <g id="line2d_42"/>
4481 <g id="text_17">
4482 <!-- sin(x) -->
4483 <defs>
4484 <path d="
4485 M8.01562 75.875
4486 L15.8281 75.875
4487 Q23.1406 64.3594 26.7812 53.3125
4488 Q30.4219 42.2812 30.4219 31.3906
4489 Q30.4219 20.4531 26.7812 9.375
4490 Q23.1406 -1.70312 15.8281 -13.1875
4491 L8.01562 -13.1875
4492 Q14.5 -2 17.7031 9.0625
4493 Q20.9062 20.125 20.9062 31.3906
4494 Q20.9062 42.6719 17.7031 53.6562
4495 Q14.5 64.6562 8.01562 75.875" id="BitstreamVeraSans-Roman-29"/>
4496 <path d="
4497 M31 75.875
4498 Q24.4688 64.6562 21.2812 53.6562
4499 Q18.1094 42.6719 18.1094 31.3906
4500 Q18.1094 20.125 21.3125 9.0625
4501 Q24.5156 -2 31 -13.1875
4502 L23.1875 -13.1875
4503 Q15.875 -1.70312 12.2344 9.375
4504 Q8.59375 20.4531 8.59375 31.3906
4505 Q8.59375 42.2812 12.2031 53.3125
4506 Q15.8281 64.3594 23.1875 75.875
4507 z
4508 " id="BitstreamVeraSans-Roman-28"/>
4509 <path d="
4510 M44.2812 53.0781
4511 L44.2812 44.5781
4512 Q40.4844 46.5312 36.375 47.5
4513 Q32.2812 48.4844 27.875 48.4844
4514 Q21.1875 48.4844 17.8438 46.4375
4515 Q14.5 44.3906 14.5 40.2812
4516 Q14.5 37.1562 16.8906 35.375
4517 Q19.2812 33.5938 26.5156 31.9844
4518 L29.5938 31.2969
4519 Q39.1562 29.25 43.1875 25.5156
4520 Q47.2188 21.7812 47.2188 15.0938
4521 Q47.2188 7.46875 41.1875 3.01562
4522 Q35.1562 -1.42188 24.6094 -1.42188
4523 Q20.2188 -1.42188 15.4531 -0.5625
4524 Q10.6875 0.296875 5.42188 2
4525 L5.42188 11.2812
4526 Q10.4062 8.6875 15.2344 7.39062
4527 Q20.0625 6.10938 24.8125 6.10938
4528 Q31.1562 6.10938 34.5625 8.28125
4529 Q37.9844 10.4531 37.9844 14.4062
4530 Q37.9844 18.0625 35.5156 20.0156
4531 Q33.0625 21.9688 24.7031 23.7812
4532 L21.5781 24.5156
4533 Q13.2344 26.2656 9.51562 29.9062
4534 Q5.8125 33.5469 5.8125 39.8906
4535 Q5.8125 47.6094 11.2812 51.7969
4536 Q16.75 56 26.8125 56
4537 Q31.7812 56 36.1719 55.2656
4538 Q40.5781 54.5469 44.2812 53.0781" id="BitstreamVeraSans-Roman-73"/>
4539 </defs>
4540 <g transform="translate(338.3334375 41.23625)scale(0.12 -0.12)">
4541 <use xlink:href="#BitstreamVeraSans-Roman-73"/>
4542 <use x="52.099609375" xlink:href="#BitstreamVeraSans-Roman-69"/>
4543 <use x="79.8828125" xlink:href="#BitstreamVeraSans-Roman-6e"/>
4544 <use x="143.26171875" xlink:href="#BitstreamVeraSans-Roman-28"/>
4545 <use x="182.275390625" xlink:href="#BitstreamVeraSans-Roman-78"/>
4546 <use x="241.455078125" xlink:href="#BitstreamVeraSans-Roman-29"/>
4547 </g>
4548 </g>
4549 </g>
4550 </g>
4551 </g>
4552 <defs>
4553 <clipPath id="p725504610e">
4554 <rect height="217.44" width="334.8" x="46.3078125" y="21.318125"/>
4555 </clipPath>
4556 </defs>
4557 </svg>
4558
4559 </div>
4560 </div>
4561 </div>
4562 </div>
4563 </div>
4564 <div class="text_cell_render border-box-sizing rendered_html">
4565 <p>You can control the style, color and other properties of the markers, for example:</p>
4566 </div>
4567 <div class="cell border-box-sizing code_cell vbox">
4568 <div class="input hbox">
4569 <div class="prompt input_prompt">In&nbsp;[61]:</div>
4570 <div class="input_area box-flex1">
4571 <div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
4572 </pre></div>
4573
4574 </div>
4575 </div>
4576 <div class="vbox output_wrapper">
4577 <div class="output vbox">
4578 <div class="hbox output_area">
4579 <div class="prompt output_prompt"></div>
4580 <div class="output_subarea output_display_data">
4581 <?xml version="1.0" encoding="utf-8" standalone="no"?>
4582 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
4583 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4584 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
4585 <svg height="247pt" version="1.1" viewBox="0 0 378 247" width="378pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
4586 <defs>
4587 <style type="text/css">
4588 *{stroke-linecap:square;stroke-linejoin:round;}
4589 </style>
4590 </defs>
4591 <g id="figure_1">
4592 <g id="patch_1">
4593 <path d="
4594 M1.22125e-15 247.186
4595 L378.103 247.186
4596 L378.103 0
4597 L1.22125e-15 0
4598 z
4599 " style="fill:#ffffff;"/>
4600 </g>
4601 <g id="axes_1">
4602 <g id="patch_2">
4603 <path d="
4604 M33.7594 228.422
4605 L368.559 228.422
4606 L368.559 10.982
4607 L33.7594 10.982
4608 z
4609 " style="fill:#ffffff;"/>
4610 </g>
4611 <g id="line2d_1">
4612 <path clip-path="url(#pd5474bc1b2)" d="
4613 M33.7594 119.702
4614 L39.8924 105.799
4615 L46.0253 92.1247
4616 L52.1583 78.903
4617 L58.2913 66.3512
4618 L64.4243 54.6755
4619 L70.5572 44.0674
4620 L76.6902 34.7013
4621 L82.8232 26.7309
4622 L88.9562 20.2871
4623 L95.0891 15.4757
4624 L101.222 12.3756
4625 L107.355 11.0379
4626 L113.488 11.4844
4627 L119.621 13.7079
4628 L125.754 17.6717
4629 L131.887 23.311
4630 L138.02 30.5329
4631 L144.153 39.219
4632 L150.286 49.2266
4633 L156.419 60.3915
4634 L162.552 72.5302
4635 L168.685 85.4435
4636 L174.818 98.9193
4637 L180.951 112.736
4638 L187.084 126.668
4639 L193.217 140.485
4640 L199.35 153.961
4641 L205.483 166.874
4642 L211.616 179.013
4643 L217.749 190.177
4644 L223.882 200.185
4645 L230.015 208.871
4646 L236.148 216.093
4647 L242.281 221.732
4648 L248.414 225.696
4649 L254.546 227.92
4650 L260.679 228.366
4651 L266.812 227.028
4652 L272.945 223.928
4653 L279.078 219.117
4654 L285.211 212.673
4655 L291.344 204.703
4656 L297.477 195.337
4657 L303.61 184.729
4658 L309.743 173.053
4659 L315.876 160.501
4660 L322.009 147.279
4661 L328.142 133.605
4662 L334.275 119.702" style="fill:none;stroke:#0000ff;stroke-width:2;"/>
4663 </g>
4664 <g id="matplotlib.axis_1">
4665 <g id="xtick_1">
4666 <g id="line2d_2">
4667 <defs>
4668 <path d="
4669 M0 0
4670 L0 -4" id="m1e01ff8d7c"/>
4671 </defs>
4672 <g>
4673 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
4674 </g>
4675 </g>
4676 <g id="line2d_3">
4677 <defs>
4678 <path d="
4679 M0 0
4680 L0 4" id="m91aa736623"/>
4681 </defs>
4682 <g>
4683 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#m91aa736623" y="10.98203125"/>
4684 </g>
4685 </g>
4686 <g id="text_1">
4687 <!-- 0 -->
4688 <defs>
4689 <path d="
4690 M31.7812 66.4062
4691 Q24.1719 66.4062 20.3281 58.9062
4692 Q16.5 51.4219 16.5 36.375
4693 Q16.5 21.3906 20.3281 13.8906
4694 Q24.1719 6.39062 31.7812 6.39062
4695 Q39.4531 6.39062 43.2812 13.8906
4696 Q47.125 21.3906 47.125 36.375
4697 Q47.125 51.4219 43.2812 58.9062
4698 Q39.4531 66.4062 31.7812 66.4062
4699 M31.7812 74.2188
4700 Q44.0469 74.2188 50.5156 64.5156
4701 Q56.9844 54.8281 56.9844 36.375
4702 Q56.9844 17.9688 50.5156 8.26562
4703 Q44.0469 -1.42188 31.7812 -1.42188
4704 Q19.5312 -1.42188 13.0625 8.26562
4705 Q6.59375 17.9688 6.59375 36.375
4706 Q6.59375 54.8281 13.0625 64.5156
4707 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
4708 </defs>
4709 <g transform="translate(31.23984375 239.84390625)scale(0.1 -0.1)">
4710 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
4711 </g>
4712 </g>
4713 </g>
4714 <g id="xtick_2">
4715 <g id="line2d_4">
4716 <defs>
4717 <path d="
4718 M0 0
4719 L0 -4" id="m1e01ff8d7c"/>
4720 </defs>
4721 <g>
4722 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="81.5879464286" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
4723 </g>
4724 </g>
4725 <g id="line2d_5">
4726 <defs>
4727 <path d="
4728 M0 0
4729 L0 4" id="m91aa736623"/>
4730 </defs>
4731 <g>
4732 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="81.5879464286" xlink:href="#m91aa736623" y="10.98203125"/>
4733 </g>
4734 </g>
4735 <g id="text_2">
4736 <!-- 1 -->
4737 <defs>
4738 <path d="
4739 M12.4062 8.29688
4740 L28.5156 8.29688
4741 L28.5156 63.9219
4742 L10.9844 60.4062
4743 L10.9844 69.3906
4744 L28.4219 72.9062
4745 L38.2812 72.9062
4746 L38.2812 8.29688
4747 L54.3906 8.29688
4748 L54.3906 0
4749 L12.4062 0
4750 z
4751 " id="BitstreamVeraSans-Roman-31"/>
4752 </defs>
4753 <g transform="translate(79.4176339286 239.71265625)scale(0.1 -0.1)">
4754 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
4755 </g>
4756 </g>
4757 </g>
4758 <g id="xtick_3">
4759 <g id="line2d_6">
4760 <defs>
4761 <path d="
4762 M0 0
4763 L0 -4" id="m1e01ff8d7c"/>
4764 </defs>
4765 <g>
4766 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="129.416517857" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
4767 </g>
4768 </g>
4769 <g id="line2d_7">
4770 <defs>
4771 <path d="
4772 M0 0
4773 L0 4" id="m91aa736623"/>
4774 </defs>
4775 <g>
4776 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="129.416517857" xlink:href="#m91aa736623" y="10.98203125"/>
4777 </g>
4778 </g>
4779 <g id="text_3">
4780 <!-- 2 -->
4781 <defs>
4782 <path d="
4783 M19.1875 8.29688
4784 L53.6094 8.29688
4785 L53.6094 0
4786 L7.32812 0
4787 L7.32812 8.29688
4788 Q12.9375 14.1094 22.625 23.8906
4789 Q32.3281 33.6875 34.8125 36.5312
4790 Q39.5469 41.8438 41.4219 45.5312
4791 Q43.3125 49.2188 43.3125 52.7812
4792 Q43.3125 58.5938 39.2344 62.25
4793 Q35.1562 65.9219 28.6094 65.9219
4794 Q23.9688 65.9219 18.8125 64.3125
4795 Q13.6719 62.7031 7.8125 59.4219
4796 L7.8125 69.3906
4797 Q13.7656 71.7812 18.9375 73
4798 Q24.125 74.2188 28.4219 74.2188
4799 Q39.75 74.2188 46.4844 68.5469
4800 Q53.2188 62.8906 53.2188 53.4219
4801 Q53.2188 48.9219 51.5312 44.8906
4802 Q49.8594 40.875 45.4062 35.4062
4803 Q44.1875 33.9844 37.6406 27.2188
4804 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
4805 </defs>
4806 <g transform="translate(127.102455357 239.84390625)scale(0.1 -0.1)">
4807 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
4808 </g>
4809 </g>
4810 </g>
4811 <g id="xtick_4">
4812 <g id="line2d_8">
4813 <defs>
4814 <path d="
4815 M0 0
4816 L0 -4" id="m1e01ff8d7c"/>
4817 </defs>
4818 <g>
4819 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="177.245089286" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
4820 </g>
4821 </g>
4822 <g id="line2d_9">
4823 <defs>
4824 <path d="
4825 M0 0
4826 L0 4" id="m91aa736623"/>
4827 </defs>
4828 <g>
4829 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="177.245089286" xlink:href="#m91aa736623" y="10.98203125"/>
4830 </g>
4831 </g>
4832 <g id="text_4">
4833 <!-- 3 -->
4834 <defs>
4835 <path d="
4836 M40.5781 39.3125
4837 Q47.6562 37.7969 51.625 33
4838 Q55.6094 28.2188 55.6094 21.1875
4839 Q55.6094 10.4062 48.1875 4.48438
4840 Q40.7656 -1.42188 27.0938 -1.42188
4841 Q22.5156 -1.42188 17.6562 -0.515625
4842 Q12.7969 0.390625 7.625 2.20312
4843 L7.625 11.7188
4844 Q11.7188 9.32812 16.5938 8.10938
4845 Q21.4844 6.89062 26.8125 6.89062
4846 Q36.0781 6.89062 40.9375 10.5469
4847 Q45.7969 14.2031 45.7969 21.1875
4848 Q45.7969 27.6406 41.2812 31.2656
4849 Q36.7656 34.9062 28.7188 34.9062
4850 L20.2188 34.9062
4851 L20.2188 43.0156
4852 L29.1094 43.0156
4853 Q36.375 43.0156 40.2344 45.9219
4854 Q44.0938 48.8281 44.0938 54.2969
4855 Q44.0938 59.9062 40.1094 62.9062
4856 Q36.1406 65.9219 28.7188 65.9219
4857 Q24.6562 65.9219 20.0156 65.0312
4858 Q15.375 64.1562 9.8125 62.3125
4859 L9.8125 71.0938
4860 Q15.4375 72.6562 20.3438 73.4375
4861 Q25.25 74.2188 29.5938 74.2188
4862 Q40.8281 74.2188 47.3594 69.1094
4863 Q53.9062 64.0156 53.9062 55.3281
4864 Q53.9062 49.2656 50.4375 45.0938
4865 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
4866 </defs>
4867 <g transform="translate(174.845870536 239.84390625)scale(0.1 -0.1)">
4868 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
4869 </g>
4870 </g>
4871 </g>
4872 <g id="xtick_5">
4873 <g id="line2d_10">
4874 <defs>
4875 <path d="
4876 M0 0
4877 L0 -4" id="m1e01ff8d7c"/>
4878 </defs>
4879 <g>
4880 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="225.073660714" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
4881 </g>
4882 </g>
4883 <g id="line2d_11">
4884 <defs>
4885 <path d="
4886 M0 0
4887 L0 4" id="m91aa736623"/>
4888 </defs>
4889 <g>
4890 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="225.073660714" xlink:href="#m91aa736623" y="10.98203125"/>
4891 </g>
4892 </g>
4893 <g id="text_5">
4894 <!-- 4 -->
4895 <defs>
4896 <path d="
4897 M37.7969 64.3125
4898 L12.8906 25.3906
4899 L37.7969 25.3906
4900 z
4901
4902 M35.2031 72.9062
4903 L47.6094 72.9062
4904 L47.6094 25.3906
4905 L58.0156 25.3906
4906 L58.0156 17.1875
4907 L47.6094 17.1875
4908 L47.6094 0
4909 L37.7969 0
4910 L37.7969 17.1875
4911 L4.89062 17.1875
4912 L4.89062 26.7031
4913 z
4914 " id="BitstreamVeraSans-Roman-34"/>
4915 </defs>
4916 <g transform="translate(222.417410714 239.71265625)scale(0.1 -0.1)">
4917 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
4918 </g>
4919 </g>
4920 </g>
4921 <g id="xtick_6">
4922 <g id="line2d_12">
4923 <defs>
4924 <path d="
4925 M0 0
4926 L0 -4" id="m1e01ff8d7c"/>
4927 </defs>
4928 <g>
4929 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="272.902232143" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
4930 </g>
4931 </g>
4932 <g id="line2d_13">
4933 <defs>
4934 <path d="
4935 M0 0
4936 L0 4" id="m91aa736623"/>
4937 </defs>
4938 <g>
4939 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="272.902232143" xlink:href="#m91aa736623" y="10.98203125"/>
4940 </g>
4941 </g>
4942 <g id="text_6">
4943 <!-- 5 -->
4944 <defs>
4945 <path d="
4946 M10.7969 72.9062
4947 L49.5156 72.9062
4948 L49.5156 64.5938
4949 L19.8281 64.5938
4950 L19.8281 46.7344
4951 Q21.9688 47.4688 24.1094 47.8281
4952 Q26.2656 48.1875 28.4219 48.1875
4953 Q40.625 48.1875 47.75 41.5
4954 Q54.8906 34.8125 54.8906 23.3906
4955 Q54.8906 11.625 47.5625 5.09375
4956 Q40.2344 -1.42188 26.9062 -1.42188
4957 Q22.3125 -1.42188 17.5469 -0.640625
4958 Q12.7969 0.140625 7.71875 1.70312
4959 L7.71875 11.625
4960 Q12.1094 9.23438 16.7969 8.0625
4961 Q21.4844 6.89062 26.7031 6.89062
4962 Q35.1562 6.89062 40.0781 11.3281
4963 Q45.0156 15.7656 45.0156 23.3906
4964 Q45.0156 31 40.0781 35.4375
4965 Q35.1562 39.8906 26.7031 39.8906
4966 Q22.75 39.8906 18.8125 39.0156
4967 Q14.8906 38.1406 10.7969 36.2812
4968 z
4969 " id="BitstreamVeraSans-Roman-35"/>
4970 </defs>
4971 <g transform="translate(270.543638393 239.71265625)scale(0.1 -0.1)">
4972 <use xlink:href="#BitstreamVeraSans-Roman-35"/>
4973 </g>
4974 </g>
4975 </g>
4976 <g id="xtick_7">
4977 <g id="line2d_14">
4978 <defs>
4979 <path d="
4980 M0 0
4981 L0 -4" id="m1e01ff8d7c"/>
4982 </defs>
4983 <g>
4984 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="320.730803571" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
4985 </g>
4986 </g>
4987 <g id="line2d_15">
4988 <defs>
4989 <path d="
4990 M0 0
4991 L0 4" id="m91aa736623"/>
4992 </defs>
4993 <g>
4994 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="320.730803571" xlink:href="#m91aa736623" y="10.98203125"/>
4995 </g>
4996 </g>
4997 <g id="text_7">
4998 <!-- 6 -->
4999 <defs>
5000 <path d="
5001 M33.0156 40.375
5002 Q26.375 40.375 22.4844 35.8281
5003 Q18.6094 31.2969 18.6094 23.3906
5004 Q18.6094 15.5312 22.4844 10.9531
5005 Q26.375 6.39062 33.0156 6.39062
5006 Q39.6562 6.39062 43.5312 10.9531
5007 Q47.4062 15.5312 47.4062 23.3906
5008 Q47.4062 31.2969 43.5312 35.8281
5009 Q39.6562 40.375 33.0156 40.375
5010 M52.5938 71.2969
5011 L52.5938 62.3125
5012 Q48.875 64.0625 45.0938 64.9844
5013 Q41.3125 65.9219 37.5938 65.9219
5014 Q27.8281 65.9219 22.6719 59.3281
5015 Q17.5312 52.7344 16.7969 39.4062
5016 Q19.6719 43.6562 24.0156 45.9219
5017 Q28.375 48.1875 33.5938 48.1875
5018 Q44.5781 48.1875 50.9531 41.5156
5019 Q57.3281 34.8594 57.3281 23.3906
5020 Q57.3281 12.1562 50.6875 5.35938
5021 Q44.0469 -1.42188 33.0156 -1.42188
5022 Q20.3594 -1.42188 13.6719 8.26562
5023 Q6.98438 17.9688 6.98438 36.375
5024 Q6.98438 53.6562 15.1875 63.9375
5025 Q23.3906 74.2188 37.2031 74.2188
5026 Q40.9219 74.2188 44.7031 73.4844
5027 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
5028 </defs>
5029 <g transform="translate(318.213616071 239.84390625)scale(0.1 -0.1)">
5030 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
5031 </g>
5032 </g>
5033 </g>
5034 <g id="xtick_8">
5035 <g id="line2d_16">
5036 <defs>
5037 <path d="
5038 M0 0
5039 L0 -4" id="m1e01ff8d7c"/>
5040 </defs>
5041 <g>
5042 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5043 </g>
5044 </g>
5045 <g id="line2d_17">
5046 <defs>
5047 <path d="
5048 M0 0
5049 L0 4" id="m91aa736623"/>
5050 </defs>
5051 <g>
5052 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m91aa736623" y="10.98203125"/>
5053 </g>
5054 </g>
5055 <g id="text_8">
5056 <!-- 7 -->
5057 <defs>
5058 <path d="
5059 M8.20312 72.9062
5060 L55.0781 72.9062
5061 L55.0781 68.7031
5062 L28.6094 0
5063 L18.3125 0
5064 L43.2188 64.5938
5065 L8.20312 64.5938
5066 z
5067 " id="BitstreamVeraSans-Roman-37"/>
5068 </defs>
5069 <g transform="translate(366.215625 239.71265625)scale(0.1 -0.1)">
5070 <use xlink:href="#BitstreamVeraSans-Roman-37"/>
5071 </g>
5072 </g>
5073 </g>
5074 </g>
5075 <g id="matplotlib.axis_2">
5076 <g id="ytick_1">
5077 <g id="line2d_18">
5078 <defs>
5079 <path d="
5080 M0 0
5081 L4 0" id="mf019e8ac8f"/>
5082 </defs>
5083 <g>
5084 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="228.42203125"/>
5085 </g>
5086 </g>
5087 <g id="line2d_19">
5088 <defs>
5089 <path d="
5090 M0 0
5091 L-4 0" id="m1ec148bd55"/>
5092 </defs>
5093 <g>
5094 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="228.42203125"/>
5095 </g>
5096 </g>
5097 <g id="text_9">
5098 <!-- −1.0 -->
5099 <defs>
5100 <path d="
5101 M10.5938 35.5
5102 L73.1875 35.5
5103 L73.1875 27.2031
5104 L10.5938 27.2031
5105 z
5106 " id="BitstreamVeraSans-Roman-2212"/>
5107 <path d="
5108 M10.6875 12.4062
5109 L21 12.4062
5110 L21 0
5111 L10.6875 0
5112 z
5113 " id="BitstreamVeraSans-Roman-2e"/>
5114 </defs>
5115 <g transform="translate(7.2 232.061875)scale(0.1 -0.1)">
5116 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
5117 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-31"/>
5118 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5119 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-30"/>
5120 </g>
5121 </g>
5122 </g>
5123 <g id="ytick_2">
5124 <g id="line2d_20">
5125 <defs>
5126 <path d="
5127 M0 0
5128 L4 0" id="mf019e8ac8f"/>
5129 </defs>
5130 <g>
5131 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="174.06203125"/>
5132 </g>
5133 </g>
5134 <g id="line2d_21">
5135 <defs>
5136 <path d="
5137 M0 0
5138 L-4 0" id="m1ec148bd55"/>
5139 </defs>
5140 <g>
5141 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="174.06203125"/>
5142 </g>
5143 </g>
5144 <g id="text_10">
5145 <!-- −0.5 -->
5146 <g transform="translate(7.409375 177.701875)scale(0.1 -0.1)">
5147 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
5148 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-30"/>
5149 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5150 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-35"/>
5151 </g>
5152 </g>
5153 </g>
5154 <g id="ytick_3">
5155 <g id="line2d_22">
5156 <defs>
5157 <path d="
5158 M0 0
5159 L4 0" id="mf019e8ac8f"/>
5160 </defs>
5161 <g>
5162 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="119.70203125"/>
5163 </g>
5164 </g>
5165 <g id="line2d_23">
5166 <defs>
5167 <path d="
5168 M0 0
5169 L-4 0" id="m1ec148bd55"/>
5170 </defs>
5171 <g>
5172 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="119.70203125"/>
5173 </g>
5174 </g>
5175 <g id="text_11">
5176 <!-- 0.0 -->
5177 <g transform="translate(15.1796875 123.341875)scale(0.1 -0.1)">
5178 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
5179 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5180 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
5181 </g>
5182 </g>
5183 </g>
5184 <g id="ytick_4">
5185 <g id="line2d_24">
5186 <defs>
5187 <path d="
5188 M0 0
5189 L4 0" id="mf019e8ac8f"/>
5190 </defs>
5191 <g>
5192 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="65.34203125"/>
5193 </g>
5194 </g>
5195 <g id="line2d_25">
5196 <defs>
5197 <path d="
5198 M0 0
5199 L-4 0" id="m1ec148bd55"/>
5200 </defs>
5201 <g>
5202 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="65.34203125"/>
5203 </g>
5204 </g>
5205 <g id="text_12">
5206 <!-- 0.5 -->
5207 <g transform="translate(15.3890625 68.981875)scale(0.1 -0.1)">
5208 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
5209 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5210 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
5211 </g>
5212 </g>
5213 </g>
5214 <g id="ytick_5">
5215 <g id="line2d_26">
5216 <defs>
5217 <path d="
5218 M0 0
5219 L4 0" id="mf019e8ac8f"/>
5220 </defs>
5221 <g>
5222 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="10.98203125"/>
5223 </g>
5224 </g>
5225 <g id="line2d_27">
5226 <defs>
5227 <path d="
5228 M0 0
5229 L-4 0" id="m1ec148bd55"/>
5230 </defs>
5231 <g>
5232 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="10.98203125"/>
5233 </g>
5234 </g>
5235 <g id="text_13">
5236 <!-- 1.0 -->
5237 <g transform="translate(15.61875 14.621875)scale(0.1 -0.1)">
5238 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
5239 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5240 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
5241 </g>
5242 </g>
5243 </g>
5244 </g>
5245 <g id="patch_3">
5246 <path d="
5247 M33.7594 10.982
5248 L368.559 10.982" style="fill:none;stroke:#000000;"/>
5249 </g>
5250 <g id="patch_4">
5251 <path d="
5252 M368.559 228.422
5253 L368.559 10.982" style="fill:none;stroke:#000000;"/>
5254 </g>
5255 <g id="patch_5">
5256 <path d="
5257 M33.7594 228.422
5258 L368.559 228.422" style="fill:none;stroke:#000000;"/>
5259 </g>
5260 <g id="patch_6">
5261 <path d="
5262 M33.7594 228.422
5263 L33.7594 10.982" style="fill:none;stroke:#000000;"/>
5264 </g>
5265 </g>
5266 </g>
5267 <defs>
5268 <clipPath id="pd5474bc1b2">
5269 <rect height="217.44" width="334.8" x="33.759375" y="10.98203125"/>
5270 </clipPath>
5271 </defs>
5272 </svg>
5273
5274 </div>
5275 </div>
5276 </div>
5277 </div>
5278 </div>
5279 <div class="cell border-box-sizing code_cell vbox">
5280 <div class="input hbox">
5281 <div class="prompt input_prompt">In&nbsp;[62]:</div>
5282 <div class="input_area box-flex1">
5283 <div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="s">&#39;o&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;r&#39;</span><span class="p">);</span>
5284 </pre></div>
5285
5286 </div>
5287 </div>
5288 <div class="vbox output_wrapper">
5289 <div class="output vbox">
5290 <div class="hbox output_area">
5291 <div class="prompt output_prompt"></div>
5292 <div class="output_subarea output_display_data">
5293 <?xml version="1.0" encoding="utf-8" standalone="no"?>
5294 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
5295 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
5296 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
5297 <svg height="247pt" version="1.1" viewBox="0 0 378 247" width="378pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
5298 <defs>
5299 <style type="text/css">
5300 *{stroke-linecap:square;stroke-linejoin:round;}
5301 </style>
5302 </defs>
5303 <g id="figure_1">
5304 <g id="patch_1">
5305 <path d="
5306 M1.22125e-15 247.186
5307 L378.103 247.186
5308 L378.103 0
5309 L1.22125e-15 0
5310 z
5311 " style="fill:#ffffff;"/>
5312 </g>
5313 <g id="axes_1">
5314 <g id="patch_2">
5315 <path d="
5316 M33.7594 228.422
5317 L368.559 228.422
5318 L368.559 10.982
5319 L33.7594 10.982
5320 z
5321 " style="fill:#ffffff;"/>
5322 </g>
5323 <g id="line2d_1">
5324 <defs>
5325 <path d="
5326 M0 2.5
5327 C0.663008 2.5 1.29895 2.23658 1.76777 1.76777
5328 C2.23658 1.29895 2.5 0.663008 2.5 0
5329 C2.5 -0.663008 2.23658 -1.29895 1.76777 -1.76777
5330 C1.29895 -2.23658 0.663008 -2.5 0 -2.5
5331 C-0.663008 -2.5 -1.29895 -2.23658 -1.76777 -1.76777
5332 C-2.23658 -1.29895 -2.5 -0.663008 -2.5 0
5333 C-2.5 0.663008 -2.23658 1.29895 -1.76777 1.76777
5334 C-1.29895 2.23658 -0.663008 2.5 0 2.5
5335 z
5336 " id="m9eb53e93b5"/>
5337 </defs>
5338 <g clip-path="url(#pd5474bc1b2)">
5339 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#m9eb53e93b5" y="119.70203125"/>
5340 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="39.8923500462" xlink:href="#m9eb53e93b5" y="105.799226232"/>
5341 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="46.0253250924" xlink:href="#m9eb53e93b5" y="92.1247048874"/>
5342 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="52.1583001386" xlink:href="#m9eb53e93b5" y="78.9030024795"/>
5343 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="58.2912751848" xlink:href="#m9eb53e93b5" y="66.3512189961"/>
5344 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="64.424250231" xlink:href="#m9eb53e93b5" y="54.675454375"/>
5345 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="70.5572252771" xlink:href="#m9eb53e93b5" y="44.0674243484"/>
5346 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="76.6902003233" xlink:href="#m9eb53e93b5" y="34.7013124761"/>
5347 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="82.8231753695" xlink:href="#m9eb53e93b5" y="26.7309100561"/>
5348 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="88.9561504157" xlink:href="#m9eb53e93b5" y="20.2870908757"/>
5349 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="95.0891254619" xlink:href="#m9eb53e93b5" y="15.4756622679"/>
5350 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="101.222100508" xlink:href="#m9eb53e93b5" y="12.3756277572"/>
5351 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="107.355075554" xlink:href="#m9eb53e93b5" y="11.0378898247"/>
5352 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="113.4880506" xlink:href="#m9eb53e93b5" y="11.4844140902"/>
5353 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="119.621025647" xlink:href="#m9eb53e93b5" y="13.7078686376"/>
5354 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="125.754000693" xlink:href="#m9eb53e93b5" y="17.6717444048"/>
5355 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="131.886975739" xlink:href="#m9eb53e93b5" y="23.3109546611"/>
5356 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="138.019950785" xlink:href="#m9eb53e93b5" y="30.5329037302"/>
5357 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="144.152925831" xlink:href="#m9eb53e93b5" y="39.219007408"/>
5358 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="150.285900878" xlink:href="#m9eb53e93b5" y="49.2266401121"/>
5359 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="156.418875924" xlink:href="#m9eb53e93b5" y="60.3914767904"/>
5360 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="162.55185097" xlink:href="#m9eb53e93b5" y="72.5301911331"/>
5361 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="168.684826016" xlink:href="#m9eb53e93b5" y="85.4434657865"/>
5362 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="174.817801062" xlink:href="#m9eb53e93b5" y="98.9192651376"/>
5363 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="180.950776109" xlink:href="#m9eb53e93b5" y="112.736316934"/>
5364 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="187.083751155" xlink:href="#m9eb53e93b5" y="126.667745566"/>
5365 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="193.216726201" xlink:href="#m9eb53e93b5" y="140.484797362"/>
5366 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="199.349701247" xlink:href="#m9eb53e93b5" y="153.960596714"/>
5367 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="205.482676293" xlink:href="#m9eb53e93b5" y="166.873871367"/>
5368 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="211.61565134" xlink:href="#m9eb53e93b5" y="179.01258571"/>
5369 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="217.748626386" xlink:href="#m9eb53e93b5" y="190.177422388"/>
5370 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="223.881601432" xlink:href="#m9eb53e93b5" y="200.185055092"/>
5371 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="230.014576478" xlink:href="#m9eb53e93b5" y="208.87115877"/>
5372 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="236.147551524" xlink:href="#m9eb53e93b5" y="216.093107839"/>
5373 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="242.280526571" xlink:href="#m9eb53e93b5" y="221.732318095"/>
5374 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="248.413501617" xlink:href="#m9eb53e93b5" y="225.696193862"/>
5375 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="254.546476663" xlink:href="#m9eb53e93b5" y="227.91964841"/>
5376 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="260.679451709" xlink:href="#m9eb53e93b5" y="228.366172675"/>
5377 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="266.812426755" xlink:href="#m9eb53e93b5" y="227.028434743"/>
5378 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="272.945401801" xlink:href="#m9eb53e93b5" y="223.928400232"/>
5379 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="279.078376848" xlink:href="#m9eb53e93b5" y="219.116971624"/>
5380 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="285.211351894" xlink:href="#m9eb53e93b5" y="212.673152444"/>
5381 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="291.34432694" xlink:href="#m9eb53e93b5" y="204.702750024"/>
5382 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="297.477301986" xlink:href="#m9eb53e93b5" y="195.336638152"/>
5383 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="303.610277032" xlink:href="#m9eb53e93b5" y="184.728608125"/>
5384 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="309.743252079" xlink:href="#m9eb53e93b5" y="173.052843504"/>
5385 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="315.876227125" xlink:href="#m9eb53e93b5" y="160.50106002"/>
5386 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="322.009202171" xlink:href="#m9eb53e93b5" y="147.279357613"/>
5387 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="328.142177217" xlink:href="#m9eb53e93b5" y="133.604836268"/>
5388 <use style="fill:#ff0000;stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="334.275152263" xlink:href="#m9eb53e93b5" y="119.70203125"/>
5389 </g>
5390 </g>
5391 <g id="matplotlib.axis_1">
5392 <g id="xtick_1">
5393 <g id="line2d_2">
5394 <defs>
5395 <path d="
5396 M0 0
5397 L0 -4" id="m1e01ff8d7c"/>
5398 </defs>
5399 <g>
5400 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5401 </g>
5402 </g>
5403 <g id="line2d_3">
5404 <defs>
5405 <path d="
5406 M0 0
5407 L0 4" id="m91aa736623"/>
5408 </defs>
5409 <g>
5410 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#m91aa736623" y="10.98203125"/>
5411 </g>
5412 </g>
5413 <g id="text_1">
5414 <!-- 0 -->
5415 <defs>
5416 <path d="
5417 M31.7812 66.4062
5418 Q24.1719 66.4062 20.3281 58.9062
5419 Q16.5 51.4219 16.5 36.375
5420 Q16.5 21.3906 20.3281 13.8906
5421 Q24.1719 6.39062 31.7812 6.39062
5422 Q39.4531 6.39062 43.2812 13.8906
5423 Q47.125 21.3906 47.125 36.375
5424 Q47.125 51.4219 43.2812 58.9062
5425 Q39.4531 66.4062 31.7812 66.4062
5426 M31.7812 74.2188
5427 Q44.0469 74.2188 50.5156 64.5156
5428 Q56.9844 54.8281 56.9844 36.375
5429 Q56.9844 17.9688 50.5156 8.26562
5430 Q44.0469 -1.42188 31.7812 -1.42188
5431 Q19.5312 -1.42188 13.0625 8.26562
5432 Q6.59375 17.9688 6.59375 36.375
5433 Q6.59375 54.8281 13.0625 64.5156
5434 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
5435 </defs>
5436 <g transform="translate(31.23984375 239.84390625)scale(0.1 -0.1)">
5437 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
5438 </g>
5439 </g>
5440 </g>
5441 <g id="xtick_2">
5442 <g id="line2d_4">
5443 <defs>
5444 <path d="
5445 M0 0
5446 L0 -4" id="m1e01ff8d7c"/>
5447 </defs>
5448 <g>
5449 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="81.5879464286" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5450 </g>
5451 </g>
5452 <g id="line2d_5">
5453 <defs>
5454 <path d="
5455 M0 0
5456 L0 4" id="m91aa736623"/>
5457 </defs>
5458 <g>
5459 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="81.5879464286" xlink:href="#m91aa736623" y="10.98203125"/>
5460 </g>
5461 </g>
5462 <g id="text_2">
5463 <!-- 1 -->
5464 <defs>
5465 <path d="
5466 M12.4062 8.29688
5467 L28.5156 8.29688
5468 L28.5156 63.9219
5469 L10.9844 60.4062
5470 L10.9844 69.3906
5471 L28.4219 72.9062
5472 L38.2812 72.9062
5473 L38.2812 8.29688
5474 L54.3906 8.29688
5475 L54.3906 0
5476 L12.4062 0
5477 z
5478 " id="BitstreamVeraSans-Roman-31"/>
5479 </defs>
5480 <g transform="translate(79.4176339286 239.71265625)scale(0.1 -0.1)">
5481 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
5482 </g>
5483 </g>
5484 </g>
5485 <g id="xtick_3">
5486 <g id="line2d_6">
5487 <defs>
5488 <path d="
5489 M0 0
5490 L0 -4" id="m1e01ff8d7c"/>
5491 </defs>
5492 <g>
5493 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="129.416517857" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5494 </g>
5495 </g>
5496 <g id="line2d_7">
5497 <defs>
5498 <path d="
5499 M0 0
5500 L0 4" id="m91aa736623"/>
5501 </defs>
5502 <g>
5503 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="129.416517857" xlink:href="#m91aa736623" y="10.98203125"/>
5504 </g>
5505 </g>
5506 <g id="text_3">
5507 <!-- 2 -->
5508 <defs>
5509 <path d="
5510 M19.1875 8.29688
5511 L53.6094 8.29688
5512 L53.6094 0
5513 L7.32812 0
5514 L7.32812 8.29688
5515 Q12.9375 14.1094 22.625 23.8906
5516 Q32.3281 33.6875 34.8125 36.5312
5517 Q39.5469 41.8438 41.4219 45.5312
5518 Q43.3125 49.2188 43.3125 52.7812
5519 Q43.3125 58.5938 39.2344 62.25
5520 Q35.1562 65.9219 28.6094 65.9219
5521 Q23.9688 65.9219 18.8125 64.3125
5522 Q13.6719 62.7031 7.8125 59.4219
5523 L7.8125 69.3906
5524 Q13.7656 71.7812 18.9375 73
5525 Q24.125 74.2188 28.4219 74.2188
5526 Q39.75 74.2188 46.4844 68.5469
5527 Q53.2188 62.8906 53.2188 53.4219
5528 Q53.2188 48.9219 51.5312 44.8906
5529 Q49.8594 40.875 45.4062 35.4062
5530 Q44.1875 33.9844 37.6406 27.2188
5531 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
5532 </defs>
5533 <g transform="translate(127.102455357 239.84390625)scale(0.1 -0.1)">
5534 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
5535 </g>
5536 </g>
5537 </g>
5538 <g id="xtick_4">
5539 <g id="line2d_8">
5540 <defs>
5541 <path d="
5542 M0 0
5543 L0 -4" id="m1e01ff8d7c"/>
5544 </defs>
5545 <g>
5546 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="177.245089286" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5547 </g>
5548 </g>
5549 <g id="line2d_9">
5550 <defs>
5551 <path d="
5552 M0 0
5553 L0 4" id="m91aa736623"/>
5554 </defs>
5555 <g>
5556 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="177.245089286" xlink:href="#m91aa736623" y="10.98203125"/>
5557 </g>
5558 </g>
5559 <g id="text_4">
5560 <!-- 3 -->
5561 <defs>
5562 <path d="
5563 M40.5781 39.3125
5564 Q47.6562 37.7969 51.625 33
5565 Q55.6094 28.2188 55.6094 21.1875
5566 Q55.6094 10.4062 48.1875 4.48438
5567 Q40.7656 -1.42188 27.0938 -1.42188
5568 Q22.5156 -1.42188 17.6562 -0.515625
5569 Q12.7969 0.390625 7.625 2.20312
5570 L7.625 11.7188
5571 Q11.7188 9.32812 16.5938 8.10938
5572 Q21.4844 6.89062 26.8125 6.89062
5573 Q36.0781 6.89062 40.9375 10.5469
5574 Q45.7969 14.2031 45.7969 21.1875
5575 Q45.7969 27.6406 41.2812 31.2656
5576 Q36.7656 34.9062 28.7188 34.9062
5577 L20.2188 34.9062
5578 L20.2188 43.0156
5579 L29.1094 43.0156
5580 Q36.375 43.0156 40.2344 45.9219
5581 Q44.0938 48.8281 44.0938 54.2969
5582 Q44.0938 59.9062 40.1094 62.9062
5583 Q36.1406 65.9219 28.7188 65.9219
5584 Q24.6562 65.9219 20.0156 65.0312
5585 Q15.375 64.1562 9.8125 62.3125
5586 L9.8125 71.0938
5587 Q15.4375 72.6562 20.3438 73.4375
5588 Q25.25 74.2188 29.5938 74.2188
5589 Q40.8281 74.2188 47.3594 69.1094
5590 Q53.9062 64.0156 53.9062 55.3281
5591 Q53.9062 49.2656 50.4375 45.0938
5592 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
5593 </defs>
5594 <g transform="translate(174.845870536 239.84390625)scale(0.1 -0.1)">
5595 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
5596 </g>
5597 </g>
5598 </g>
5599 <g id="xtick_5">
5600 <g id="line2d_10">
5601 <defs>
5602 <path d="
5603 M0 0
5604 L0 -4" id="m1e01ff8d7c"/>
5605 </defs>
5606 <g>
5607 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="225.073660714" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5608 </g>
5609 </g>
5610 <g id="line2d_11">
5611 <defs>
5612 <path d="
5613 M0 0
5614 L0 4" id="m91aa736623"/>
5615 </defs>
5616 <g>
5617 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="225.073660714" xlink:href="#m91aa736623" y="10.98203125"/>
5618 </g>
5619 </g>
5620 <g id="text_5">
5621 <!-- 4 -->
5622 <defs>
5623 <path d="
5624 M37.7969 64.3125
5625 L12.8906 25.3906
5626 L37.7969 25.3906
5627 z
5628
5629 M35.2031 72.9062
5630 L47.6094 72.9062
5631 L47.6094 25.3906
5632 L58.0156 25.3906
5633 L58.0156 17.1875
5634 L47.6094 17.1875
5635 L47.6094 0
5636 L37.7969 0
5637 L37.7969 17.1875
5638 L4.89062 17.1875
5639 L4.89062 26.7031
5640 z
5641 " id="BitstreamVeraSans-Roman-34"/>
5642 </defs>
5643 <g transform="translate(222.417410714 239.71265625)scale(0.1 -0.1)">
5644 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
5645 </g>
5646 </g>
5647 </g>
5648 <g id="xtick_6">
5649 <g id="line2d_12">
5650 <defs>
5651 <path d="
5652 M0 0
5653 L0 -4" id="m1e01ff8d7c"/>
5654 </defs>
5655 <g>
5656 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="272.902232143" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5657 </g>
5658 </g>
5659 <g id="line2d_13">
5660 <defs>
5661 <path d="
5662 M0 0
5663 L0 4" id="m91aa736623"/>
5664 </defs>
5665 <g>
5666 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="272.902232143" xlink:href="#m91aa736623" y="10.98203125"/>
5667 </g>
5668 </g>
5669 <g id="text_6">
5670 <!-- 5 -->
5671 <defs>
5672 <path d="
5673 M10.7969 72.9062
5674 L49.5156 72.9062
5675 L49.5156 64.5938
5676 L19.8281 64.5938
5677 L19.8281 46.7344
5678 Q21.9688 47.4688 24.1094 47.8281
5679 Q26.2656 48.1875 28.4219 48.1875
5680 Q40.625 48.1875 47.75 41.5
5681 Q54.8906 34.8125 54.8906 23.3906
5682 Q54.8906 11.625 47.5625 5.09375
5683 Q40.2344 -1.42188 26.9062 -1.42188
5684 Q22.3125 -1.42188 17.5469 -0.640625
5685 Q12.7969 0.140625 7.71875 1.70312
5686 L7.71875 11.625
5687 Q12.1094 9.23438 16.7969 8.0625
5688 Q21.4844 6.89062 26.7031 6.89062
5689 Q35.1562 6.89062 40.0781 11.3281
5690 Q45.0156 15.7656 45.0156 23.3906
5691 Q45.0156 31 40.0781 35.4375
5692 Q35.1562 39.8906 26.7031 39.8906
5693 Q22.75 39.8906 18.8125 39.0156
5694 Q14.8906 38.1406 10.7969 36.2812
5695 z
5696 " id="BitstreamVeraSans-Roman-35"/>
5697 </defs>
5698 <g transform="translate(270.543638393 239.71265625)scale(0.1 -0.1)">
5699 <use xlink:href="#BitstreamVeraSans-Roman-35"/>
5700 </g>
5701 </g>
5702 </g>
5703 <g id="xtick_7">
5704 <g id="line2d_14">
5705 <defs>
5706 <path d="
5707 M0 0
5708 L0 -4" id="m1e01ff8d7c"/>
5709 </defs>
5710 <g>
5711 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="320.730803571" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5712 </g>
5713 </g>
5714 <g id="line2d_15">
5715 <defs>
5716 <path d="
5717 M0 0
5718 L0 4" id="m91aa736623"/>
5719 </defs>
5720 <g>
5721 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="320.730803571" xlink:href="#m91aa736623" y="10.98203125"/>
5722 </g>
5723 </g>
5724 <g id="text_7">
5725 <!-- 6 -->
5726 <defs>
5727 <path d="
5728 M33.0156 40.375
5729 Q26.375 40.375 22.4844 35.8281
5730 Q18.6094 31.2969 18.6094 23.3906
5731 Q18.6094 15.5312 22.4844 10.9531
5732 Q26.375 6.39062 33.0156 6.39062
5733 Q39.6562 6.39062 43.5312 10.9531
5734 Q47.4062 15.5312 47.4062 23.3906
5735 Q47.4062 31.2969 43.5312 35.8281
5736 Q39.6562 40.375 33.0156 40.375
5737 M52.5938 71.2969
5738 L52.5938 62.3125
5739 Q48.875 64.0625 45.0938 64.9844
5740 Q41.3125 65.9219 37.5938 65.9219
5741 Q27.8281 65.9219 22.6719 59.3281
5742 Q17.5312 52.7344 16.7969 39.4062
5743 Q19.6719 43.6562 24.0156 45.9219
5744 Q28.375 48.1875 33.5938 48.1875
5745 Q44.5781 48.1875 50.9531 41.5156
5746 Q57.3281 34.8594 57.3281 23.3906
5747 Q57.3281 12.1562 50.6875 5.35938
5748 Q44.0469 -1.42188 33.0156 -1.42188
5749 Q20.3594 -1.42188 13.6719 8.26562
5750 Q6.98438 17.9688 6.98438 36.375
5751 Q6.98438 53.6562 15.1875 63.9375
5752 Q23.3906 74.2188 37.2031 74.2188
5753 Q40.9219 74.2188 44.7031 73.4844
5754 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
5755 </defs>
5756 <g transform="translate(318.213616071 239.84390625)scale(0.1 -0.1)">
5757 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
5758 </g>
5759 </g>
5760 </g>
5761 <g id="xtick_8">
5762 <g id="line2d_16">
5763 <defs>
5764 <path d="
5765 M0 0
5766 L0 -4" id="m1e01ff8d7c"/>
5767 </defs>
5768 <g>
5769 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1e01ff8d7c" y="228.42203125"/>
5770 </g>
5771 </g>
5772 <g id="line2d_17">
5773 <defs>
5774 <path d="
5775 M0 0
5776 L0 4" id="m91aa736623"/>
5777 </defs>
5778 <g>
5779 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m91aa736623" y="10.98203125"/>
5780 </g>
5781 </g>
5782 <g id="text_8">
5783 <!-- 7 -->
5784 <defs>
5785 <path d="
5786 M8.20312 72.9062
5787 L55.0781 72.9062
5788 L55.0781 68.7031
5789 L28.6094 0
5790 L18.3125 0
5791 L43.2188 64.5938
5792 L8.20312 64.5938
5793 z
5794 " id="BitstreamVeraSans-Roman-37"/>
5795 </defs>
5796 <g transform="translate(366.215625 239.71265625)scale(0.1 -0.1)">
5797 <use xlink:href="#BitstreamVeraSans-Roman-37"/>
5798 </g>
5799 </g>
5800 </g>
5801 </g>
5802 <g id="matplotlib.axis_2">
5803 <g id="ytick_1">
5804 <g id="line2d_18">
5805 <defs>
5806 <path d="
5807 M0 0
5808 L4 0" id="mf019e8ac8f"/>
5809 </defs>
5810 <g>
5811 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="228.42203125"/>
5812 </g>
5813 </g>
5814 <g id="line2d_19">
5815 <defs>
5816 <path d="
5817 M0 0
5818 L-4 0" id="m1ec148bd55"/>
5819 </defs>
5820 <g>
5821 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="228.42203125"/>
5822 </g>
5823 </g>
5824 <g id="text_9">
5825 <!-- −1.0 -->
5826 <defs>
5827 <path d="
5828 M10.5938 35.5
5829 L73.1875 35.5
5830 L73.1875 27.2031
5831 L10.5938 27.2031
5832 z
5833 " id="BitstreamVeraSans-Roman-2212"/>
5834 <path d="
5835 M10.6875 12.4062
5836 L21 12.4062
5837 L21 0
5838 L10.6875 0
5839 z
5840 " id="BitstreamVeraSans-Roman-2e"/>
5841 </defs>
5842 <g transform="translate(7.2 232.061875)scale(0.1 -0.1)">
5843 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
5844 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-31"/>
5845 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5846 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-30"/>
5847 </g>
5848 </g>
5849 </g>
5850 <g id="ytick_2">
5851 <g id="line2d_20">
5852 <defs>
5853 <path d="
5854 M0 0
5855 L4 0" id="mf019e8ac8f"/>
5856 </defs>
5857 <g>
5858 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="174.06203125"/>
5859 </g>
5860 </g>
5861 <g id="line2d_21">
5862 <defs>
5863 <path d="
5864 M0 0
5865 L-4 0" id="m1ec148bd55"/>
5866 </defs>
5867 <g>
5868 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="174.06203125"/>
5869 </g>
5870 </g>
5871 <g id="text_10">
5872 <!-- −0.5 -->
5873 <g transform="translate(7.409375 177.701875)scale(0.1 -0.1)">
5874 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
5875 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-30"/>
5876 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5877 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-35"/>
5878 </g>
5879 </g>
5880 </g>
5881 <g id="ytick_3">
5882 <g id="line2d_22">
5883 <defs>
5884 <path d="
5885 M0 0
5886 L4 0" id="mf019e8ac8f"/>
5887 </defs>
5888 <g>
5889 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="119.70203125"/>
5890 </g>
5891 </g>
5892 <g id="line2d_23">
5893 <defs>
5894 <path d="
5895 M0 0
5896 L-4 0" id="m1ec148bd55"/>
5897 </defs>
5898 <g>
5899 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="119.70203125"/>
5900 </g>
5901 </g>
5902 <g id="text_11">
5903 <!-- 0.0 -->
5904 <g transform="translate(15.1796875 123.341875)scale(0.1 -0.1)">
5905 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
5906 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5907 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
5908 </g>
5909 </g>
5910 </g>
5911 <g id="ytick_4">
5912 <g id="line2d_24">
5913 <defs>
5914 <path d="
5915 M0 0
5916 L4 0" id="mf019e8ac8f"/>
5917 </defs>
5918 <g>
5919 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="65.34203125"/>
5920 </g>
5921 </g>
5922 <g id="line2d_25">
5923 <defs>
5924 <path d="
5925 M0 0
5926 L-4 0" id="m1ec148bd55"/>
5927 </defs>
5928 <g>
5929 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="65.34203125"/>
5930 </g>
5931 </g>
5932 <g id="text_12">
5933 <!-- 0.5 -->
5934 <g transform="translate(15.3890625 68.981875)scale(0.1 -0.1)">
5935 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
5936 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5937 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
5938 </g>
5939 </g>
5940 </g>
5941 <g id="ytick_5">
5942 <g id="line2d_26">
5943 <defs>
5944 <path d="
5945 M0 0
5946 L4 0" id="mf019e8ac8f"/>
5947 </defs>
5948 <g>
5949 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.759375" xlink:href="#mf019e8ac8f" y="10.98203125"/>
5950 </g>
5951 </g>
5952 <g id="line2d_27">
5953 <defs>
5954 <path d="
5955 M0 0
5956 L-4 0" id="m1ec148bd55"/>
5957 </defs>
5958 <g>
5959 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.559375" xlink:href="#m1ec148bd55" y="10.98203125"/>
5960 </g>
5961 </g>
5962 <g id="text_13">
5963 <!-- 1.0 -->
5964 <g transform="translate(15.61875 14.621875)scale(0.1 -0.1)">
5965 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
5966 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
5967 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
5968 </g>
5969 </g>
5970 </g>
5971 </g>
5972 <g id="patch_3">
5973 <path d="
5974 M33.7594 10.982
5975 L368.559 10.982" style="fill:none;stroke:#000000;"/>
5976 </g>
5977 <g id="patch_4">
5978 <path d="
5979 M368.559 228.422
5980 L368.559 10.982" style="fill:none;stroke:#000000;"/>
5981 </g>
5982 <g id="patch_5">
5983 <path d="
5984 M33.7594 228.422
5985 L368.559 228.422" style="fill:none;stroke:#000000;"/>
5986 </g>
5987 <g id="patch_6">
5988 <path d="
5989 M33.7594 228.422
5990 L33.7594 10.982" style="fill:none;stroke:#000000;"/>
5991 </g>
5992 </g>
5993 </g>
5994 <defs>
5995 <clipPath id="pd5474bc1b2">
5996 <rect height="217.44" width="334.8" x="33.759375" y="10.98203125"/>
5997 </clipPath>
5998 </defs>
5999 </svg>
6000
6001 </div>
6002 </div>
6003 </div>
6004 </div>
6005 </div>
6006 <div class="text_cell_render border-box-sizing rendered_html">
6007 <p>We will now see how to create a few other common plot types, such as a simple error plot:</p>
6008 </div>
6009 <div class="cell border-box-sizing code_cell vbox">
6010 <div class="input hbox">
6011 <div class="prompt input_prompt">In&nbsp;[63]:</div>
6012 <div class="input_area box-flex1">
6013 <div class="highlight"><pre><span class="c"># example data</span>
6014 <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mf">0.1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
6015 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">x</span><span class="p">)</span>
6016
6017 <span class="c"># example variable error bar values</span>
6018 <span class="n">yerr</span> <span class="o">=</span> <span class="mf">0.1</span> <span class="o">+</span> <span class="mf">0.2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
6019 <span class="n">xerr</span> <span class="o">=</span> <span class="mf">0.1</span> <span class="o">+</span> <span class="n">yerr</span>
6020
6021 <span class="c"># First illustrate basic pyplot interface, using defaults where possible.</span>
6022 <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
6023 <span class="n">plt</span><span class="o">.</span><span class="n">errorbar</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">xerr</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">yerr</span><span class="o">=</span><span class="mf">0.4</span><span class="p">)</span>
6024 <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&quot;Simplest errorbars, 0.2 in x, 0.4 in y&quot;</span><span class="p">);</span>
6025 </pre></div>
6026
6027 </div>
6028 </div>
6029 <div class="vbox output_wrapper">
6030 <div class="output vbox">
6031 <div class="hbox output_area">
6032 <div class="prompt output_prompt"></div>
6033 <div class="output_subarea output_display_data">
6034 <?xml version="1.0" encoding="utf-8" standalone="no"?>
6035 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
6036 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
6037 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
6038 <svg height="257pt" version="1.1" viewBox="0 0 383 257" width="383pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
6039 <defs>
6040 <style type="text/css">
6041 *{stroke-linecap:square;stroke-linejoin:round;}
6042 </style>
6043 </defs>
6044 <g id="figure_1">
6045 <g id="patch_1">
6046 <path d="
6047 M1.11022e-15 257.522
6048 L383.237 257.522
6049 L383.237 0
6050 L1.11022e-15 0
6051 z
6052 " style="fill:#ffffff;"/>
6053 </g>
6054 <g id="axes_1">
6055 <g id="patch_2">
6056 <path d="
6057 M33.8625 238.758
6058 L368.663 238.758
6059 L368.663 21.3181
6060 L33.8625 21.3181
6061 z
6062 " style="fill:#ffffff;"/>
6063 </g>
6064 <g id="LineCollection_1">
6065 <defs>
6066 <path d="
6067 M63.6225 -176.388
6068 L93.3825 -176.388" id="C0_0_5111c0922e"/>
6069 <path d="
6070 M100.822 -133.381
6071 L130.583 -133.381" id="C0_1_daf18f7bef"/>
6072 <path d="
6073 M138.022 -107.295
6074 L167.782 -107.295" id="C0_2_19cdfca1cd"/>
6075 <path d="
6076 M175.222 -91.4732
6077 L204.982 -91.4732" id="C0_3_d745b4ad4d"/>
6078 <path d="
6079 M212.422 -81.8768
6080 L242.183 -81.8768" id="C0_4_853b92c19e"/>
6081 <path d="
6082 M249.622 -76.0563
6083 L279.382 -76.0563" id="C0_5_976b196e0d"/>
6084 <path d="
6085 M286.822 -72.526
6086 L316.582 -72.526" id="C0_6_e64463ddae"/>
6087 <path d="
6088 M324.022 -70.3848
6089 L353.782 -70.3848" id="C0_7_e2a95a1dcf"/>
6090 </defs>
6091 <g clip-path="url(#pb852ba6bc0)">
6092 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_0_5111c0922e" y="257.5221875"/>
6093 </g>
6094 <g clip-path="url(#pb852ba6bc0)">
6095 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_1_daf18f7bef" y="257.5221875"/>
6096 </g>
6097 <g clip-path="url(#pb852ba6bc0)">
6098 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_2_19cdfca1cd" y="257.5221875"/>
6099 </g>
6100 <g clip-path="url(#pb852ba6bc0)">
6101 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_3_d745b4ad4d" y="257.5221875"/>
6102 </g>
6103 <g clip-path="url(#pb852ba6bc0)">
6104 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_4_853b92c19e" y="257.5221875"/>
6105 </g>
6106 <g clip-path="url(#pb852ba6bc0)">
6107 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_5_976b196e0d" y="257.5221875"/>
6108 </g>
6109 <g clip-path="url(#pb852ba6bc0)">
6110 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_6_e64463ddae" y="257.5221875"/>
6111 </g>
6112 <g clip-path="url(#pb852ba6bc0)">
6113 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C0_7_e2a95a1dcf" y="257.5221875"/>
6114 </g>
6115 </g>
6116 <g id="LineCollection_2">
6117 <defs>
6118 <path d="
6119 M78.5025 -128.068
6120 L78.5025 -224.708" id="C1_0_10b5800666"/>
6121 <path d="
6122 M115.702 -85.0605
6123 L115.702 -181.701" id="C1_1_1edeb4a469"/>
6124 <path d="
6125 M152.902 -58.9749
6126 L152.902 -155.615" id="C1_2_0196cce8ed"/>
6127 <path d="
6128 M190.102 -43.1532
6129 L190.102 -139.793" id="C1_3_773b653e5d"/>
6130 <path d="
6131 M227.302 -33.5568
6132 L227.302 -130.197" id="C1_4_536831a0af"/>
6133 <path d="
6134 M264.502 -27.7363
6135 L264.502 -124.376" id="C1_5_8dd7bbb8f7"/>
6136 <path d="
6137 M301.702 -24.206
6138 L301.702 -120.846" id="C1_6_2b636d887f"/>
6139 <path d="
6140 M338.902 -22.0648
6141 L338.902 -118.705" id="C1_7_54eb72e9ee"/>
6142 </defs>
6143 <g clip-path="url(#pb852ba6bc0)">
6144 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_0_10b5800666" y="257.5221875"/>
6145 </g>
6146 <g clip-path="url(#pb852ba6bc0)">
6147 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_1_1edeb4a469" y="257.5221875"/>
6148 </g>
6149 <g clip-path="url(#pb852ba6bc0)">
6150 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_2_0196cce8ed" y="257.5221875"/>
6151 </g>
6152 <g clip-path="url(#pb852ba6bc0)">
6153 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_3_773b653e5d" y="257.5221875"/>
6154 </g>
6155 <g clip-path="url(#pb852ba6bc0)">
6156 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_4_536831a0af" y="257.5221875"/>
6157 </g>
6158 <g clip-path="url(#pb852ba6bc0)">
6159 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_5_8dd7bbb8f7" y="257.5221875"/>
6160 </g>
6161 <g clip-path="url(#pb852ba6bc0)">
6162 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_6_2b636d887f" y="257.5221875"/>
6163 </g>
6164 <g clip-path="url(#pb852ba6bc0)">
6165 <use style="fill:none;stroke:#0000ff;stroke-linecap:butt;" x="0" xlink:href="#C1_7_54eb72e9ee" y="257.5221875"/>
6166 </g>
6167 </g>
6168 <g id="line2d_1">
6169 <defs>
6170 <path d="
6171 M0 3
6172 L0 -3" id="m425b13872b"/>
6173 </defs>
6174 <g clip-path="url(#pb852ba6bc0)">
6175 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="63.6225" xlink:href="#m425b13872b" y="81.1337649013"/>
6176 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="100.8225" xlink:href="#m425b13872b" y="124.14167936"/>
6177 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="138.0225" xlink:href="#m425b13872b" y="150.227298089"/>
6178 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="175.2225" xlink:href="#m425b13872b" y="166.049025626"/>
6179 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="212.4225" xlink:href="#m425b13872b" y="175.645388467"/>
6180 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="249.6225" xlink:href="#m425b13872b" y="181.465876752"/>
6181 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="286.8225" xlink:href="#m425b13872b" y="184.996181351"/>
6182 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="324.0225" xlink:href="#m425b13872b" y="187.137419328"/>
6183 </g>
6184 </g>
6185 <g id="line2d_2">
6186 <defs>
6187 <path d="
6188 M0 3
6189 L0 -3" id="m425b13872b"/>
6190 </defs>
6191 <g clip-path="url(#pb852ba6bc0)">
6192 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="93.3825" xlink:href="#m425b13872b" y="81.1337649013"/>
6193 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="130.5825" xlink:href="#m425b13872b" y="124.14167936"/>
6194 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="167.7825" xlink:href="#m425b13872b" y="150.227298089"/>
6195 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="204.9825" xlink:href="#m425b13872b" y="166.049025626"/>
6196 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="242.1825" xlink:href="#m425b13872b" y="175.645388467"/>
6197 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="279.3825" xlink:href="#m425b13872b" y="181.465876752"/>
6198 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="316.5825" xlink:href="#m425b13872b" y="184.996181351"/>
6199 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="353.7825" xlink:href="#m425b13872b" y="187.137419328"/>
6200 </g>
6201 </g>
6202 <g id="line2d_3">
6203 <defs>
6204 <path d="
6205 M3 1.83691e-16
6206 L-3 -1.83691e-16" id="mf40e76d490"/>
6207 </defs>
6208 <g clip-path="url(#pb852ba6bc0)">
6209 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="78.5025" xlink:href="#mf40e76d490" y="129.453764901"/>
6210 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="115.7025" xlink:href="#mf40e76d490" y="172.46167936"/>
6211 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="152.9025" xlink:href="#mf40e76d490" y="198.547298089"/>
6212 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="190.1025" xlink:href="#mf40e76d490" y="214.369025626"/>
6213 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="227.3025" xlink:href="#mf40e76d490" y="223.965388467"/>
6214 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="264.5025" xlink:href="#mf40e76d490" y="229.785876752"/>
6215 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="301.7025" xlink:href="#mf40e76d490" y="233.316181351"/>
6216 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="338.9025" xlink:href="#mf40e76d490" y="235.457419328"/>
6217 </g>
6218 </g>
6219 <g id="line2d_4">
6220 <defs>
6221 <path d="
6222 M3 1.83691e-16
6223 L-3 -1.83691e-16" id="mf40e76d490"/>
6224 </defs>
6225 <g clip-path="url(#pb852ba6bc0)">
6226 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="78.5025" xlink:href="#mf40e76d490" y="32.8137649013"/>
6227 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="115.7025" xlink:href="#mf40e76d490" y="75.8216793598"/>
6228 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="152.9025" xlink:href="#mf40e76d490" y="101.907298089"/>
6229 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="190.1025" xlink:href="#mf40e76d490" y="117.729025626"/>
6230 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="227.3025" xlink:href="#mf40e76d490" y="127.325388467"/>
6231 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="264.5025" xlink:href="#mf40e76d490" y="133.145876752"/>
6232 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="301.7025" xlink:href="#mf40e76d490" y="136.676181351"/>
6233 <use style="fill:#0000ff;stroke:#0000ff;stroke-linecap:butt;stroke-width:0.5;" x="338.9025" xlink:href="#mf40e76d490" y="138.817419328"/>
6234 </g>
6235 </g>
6236 <g id="line2d_5">
6237 <path clip-path="url(#pb852ba6bc0)" d="
6238 M78.5025 81.1338
6239 L115.702 124.142
6240 L152.902 150.227
6241 L190.102 166.049
6242 L227.302 175.645
6243 L264.502 181.466
6244 L301.702 184.996
6245 L338.902 187.137" style="fill:none;stroke:#0000ff;"/>
6246 </g>
6247 <g id="matplotlib.axis_1">
6248 <g id="xtick_1">
6249 <g id="line2d_6">
6250 <defs>
6251 <path d="
6252 M0 0
6253 L0 -4" id="m1e01ff8d7c"/>
6254 </defs>
6255 <g>
6256 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6257 </g>
6258 </g>
6259 <g id="line2d_7">
6260 <defs>
6261 <path d="
6262 M0 0
6263 L0 4" id="m91aa736623"/>
6264 </defs>
6265 <g>
6266 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#m91aa736623" y="21.318125"/>
6267 </g>
6268 </g>
6269 <g id="text_1">
6270 <!-- −0.5 -->
6271 <defs>
6272 <path d="
6273 M10.5938 35.5
6274 L73.1875 35.5
6275 L73.1875 27.2031
6276 L10.5938 27.2031
6277 z
6278 " id="BitstreamVeraSans-Roman-2212"/>
6279 <path d="
6280 M31.7812 66.4062
6281 Q24.1719 66.4062 20.3281 58.9062
6282 Q16.5 51.4219 16.5 36.375
6283 Q16.5 21.3906 20.3281 13.8906
6284 Q24.1719 6.39062 31.7812 6.39062
6285 Q39.4531 6.39062 43.2812 13.8906
6286 Q47.125 21.3906 47.125 36.375
6287 Q47.125 51.4219 43.2812 58.9062
6288 Q39.4531 66.4062 31.7812 66.4062
6289 M31.7812 74.2188
6290 Q44.0469 74.2188 50.5156 64.5156
6291 Q56.9844 54.8281 56.9844 36.375
6292 Q56.9844 17.9688 50.5156 8.26562
6293 Q44.0469 -1.42188 31.7812 -1.42188
6294 Q19.5312 -1.42188 13.0625 8.26562
6295 Q6.59375 17.9688 6.59375 36.375
6296 Q6.59375 54.8281 13.0625 64.5156
6297 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
6298 <path d="
6299 M10.6875 12.4062
6300 L21 12.4062
6301 L21 0
6302 L10.6875 0
6303 z
6304 " id="BitstreamVeraSans-Roman-2e"/>
6305 <path d="
6306 M10.7969 72.9062
6307 L49.5156 72.9062
6308 L49.5156 64.5938
6309 L19.8281 64.5938
6310 L19.8281 46.7344
6311 Q21.9688 47.4688 24.1094 47.8281
6312 Q26.2656 48.1875 28.4219 48.1875
6313 Q40.625 48.1875 47.75 41.5
6314 Q54.8906 34.8125 54.8906 23.3906
6315 Q54.8906 11.625 47.5625 5.09375
6316 Q40.2344 -1.42188 26.9062 -1.42188
6317 Q22.3125 -1.42188 17.5469 -0.640625
6318 Q12.7969 0.140625 7.71875 1.70312
6319 L7.71875 11.625
6320 Q12.1094 9.23438 16.7969 8.0625
6321 Q21.4844 6.89062 26.7031 6.89062
6322 Q35.1562 6.89062 40.0781 11.3281
6323 Q45.0156 15.7656 45.0156 23.3906
6324 Q45.0156 31 40.0781 35.4375
6325 Q35.1562 39.8906 26.7031 39.8906
6326 Q22.75 39.8906 18.8125 39.0156
6327 Q14.8906 38.1406 10.7969 36.2812
6328 z
6329 " id="BitstreamVeraSans-Roman-35"/>
6330 </defs>
6331 <g transform="translate(22.6875 250.18)scale(0.1 -0.1)">
6332 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
6333 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6334 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6335 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-35"/>
6336 </g>
6337 </g>
6338 </g>
6339 <g id="xtick_2">
6340 <g id="line2d_8">
6341 <defs>
6342 <path d="
6343 M0 0
6344 L0 -4" id="m1e01ff8d7c"/>
6345 </defs>
6346 <g>
6347 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="71.0625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6348 </g>
6349 </g>
6350 <g id="line2d_9">
6351 <defs>
6352 <path d="
6353 M0 0
6354 L0 4" id="m91aa736623"/>
6355 </defs>
6356 <g>
6357 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="71.0625" xlink:href="#m91aa736623" y="21.318125"/>
6358 </g>
6359 </g>
6360 <g id="text_2">
6361 <!-- 0.0 -->
6362 <g transform="translate(63.77265625 250.18)scale(0.1 -0.1)">
6363 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
6364 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6365 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6366 </g>
6367 </g>
6368 </g>
6369 <g id="xtick_3">
6370 <g id="line2d_10">
6371 <defs>
6372 <path d="
6373 M0 0
6374 L0 -4" id="m1e01ff8d7c"/>
6375 </defs>
6376 <g>
6377 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="108.2625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6378 </g>
6379 </g>
6380 <g id="line2d_11">
6381 <defs>
6382 <path d="
6383 M0 0
6384 L0 4" id="m91aa736623"/>
6385 </defs>
6386 <g>
6387 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="108.2625" xlink:href="#m91aa736623" y="21.318125"/>
6388 </g>
6389 </g>
6390 <g id="text_3">
6391 <!-- 0.5 -->
6392 <g transform="translate(101.07734375 250.18)scale(0.1 -0.1)">
6393 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
6394 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6395 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
6396 </g>
6397 </g>
6398 </g>
6399 <g id="xtick_4">
6400 <g id="line2d_12">
6401 <defs>
6402 <path d="
6403 M0 0
6404 L0 -4" id="m1e01ff8d7c"/>
6405 </defs>
6406 <g>
6407 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="145.4625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6408 </g>
6409 </g>
6410 <g id="line2d_13">
6411 <defs>
6412 <path d="
6413 M0 0
6414 L0 4" id="m91aa736623"/>
6415 </defs>
6416 <g>
6417 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="145.4625" xlink:href="#m91aa736623" y="21.318125"/>
6418 </g>
6419 </g>
6420 <g id="text_4">
6421 <!-- 1.0 -->
6422 <defs>
6423 <path d="
6424 M12.4062 8.29688
6425 L28.5156 8.29688
6426 L28.5156 63.9219
6427 L10.9844 60.4062
6428 L10.9844 69.3906
6429 L28.4219 72.9062
6430 L38.2812 72.9062
6431 L38.2812 8.29688
6432 L54.3906 8.29688
6433 L54.3906 0
6434 L12.4062 0
6435 z
6436 " id="BitstreamVeraSans-Roman-31"/>
6437 </defs>
6438 <g transform="translate(138.3921875 250.18)scale(0.1 -0.1)">
6439 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
6440 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6441 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6442 </g>
6443 </g>
6444 </g>
6445 <g id="xtick_5">
6446 <g id="line2d_14">
6447 <defs>
6448 <path d="
6449 M0 0
6450 L0 -4" id="m1e01ff8d7c"/>
6451 </defs>
6452 <g>
6453 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="182.6625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6454 </g>
6455 </g>
6456 <g id="line2d_15">
6457 <defs>
6458 <path d="
6459 M0 0
6460 L0 4" id="m91aa736623"/>
6461 </defs>
6462 <g>
6463 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="182.6625" xlink:href="#m91aa736623" y="21.318125"/>
6464 </g>
6465 </g>
6466 <g id="text_5">
6467 <!-- 1.5 -->
6468 <g transform="translate(175.696875 250.04875)scale(0.1 -0.1)">
6469 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
6470 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6471 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
6472 </g>
6473 </g>
6474 </g>
6475 <g id="xtick_6">
6476 <g id="line2d_16">
6477 <defs>
6478 <path d="
6479 M0 0
6480 L0 -4" id="m1e01ff8d7c"/>
6481 </defs>
6482 <g>
6483 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="219.8625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6484 </g>
6485 </g>
6486 <g id="line2d_17">
6487 <defs>
6488 <path d="
6489 M0 0
6490 L0 4" id="m91aa736623"/>
6491 </defs>
6492 <g>
6493 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="219.8625" xlink:href="#m91aa736623" y="21.318125"/>
6494 </g>
6495 </g>
6496 <g id="text_6">
6497 <!-- 2.0 -->
6498 <defs>
6499 <path d="
6500 M19.1875 8.29688
6501 L53.6094 8.29688
6502 L53.6094 0
6503 L7.32812 0
6504 L7.32812 8.29688
6505 Q12.9375 14.1094 22.625 23.8906
6506 Q32.3281 33.6875 34.8125 36.5312
6507 Q39.5469 41.8438 41.4219 45.5312
6508 Q43.3125 49.2188 43.3125 52.7812
6509 Q43.3125 58.5938 39.2344 62.25
6510 Q35.1562 65.9219 28.6094 65.9219
6511 Q23.9688 65.9219 18.8125 64.3125
6512 Q13.6719 62.7031 7.8125 59.4219
6513 L7.8125 69.3906
6514 Q13.7656 71.7812 18.9375 73
6515 Q24.125 74.2188 28.4219 74.2188
6516 Q39.75 74.2188 46.4844 68.5469
6517 Q53.2188 62.8906 53.2188 53.4219
6518 Q53.2188 48.9219 51.5312 44.8906
6519 Q49.8594 40.875 45.4062 35.4062
6520 Q44.1875 33.9844 37.6406 27.2188
6521 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
6522 </defs>
6523 <g transform="translate(212.609375 250.18)scale(0.1 -0.1)">
6524 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
6525 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6526 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6527 </g>
6528 </g>
6529 </g>
6530 <g id="xtick_7">
6531 <g id="line2d_18">
6532 <defs>
6533 <path d="
6534 M0 0
6535 L0 -4" id="m1e01ff8d7c"/>
6536 </defs>
6537 <g>
6538 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="257.0625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6539 </g>
6540 </g>
6541 <g id="line2d_19">
6542 <defs>
6543 <path d="
6544 M0 0
6545 L0 4" id="m91aa736623"/>
6546 </defs>
6547 <g>
6548 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="257.0625" xlink:href="#m91aa736623" y="21.318125"/>
6549 </g>
6550 </g>
6551 <g id="text_7">
6552 <!-- 2.5 -->
6553 <g transform="translate(249.9140625 250.18)scale(0.1 -0.1)">
6554 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
6555 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6556 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
6557 </g>
6558 </g>
6559 </g>
6560 <g id="xtick_8">
6561 <g id="line2d_20">
6562 <defs>
6563 <path d="
6564 M0 0
6565 L0 -4" id="m1e01ff8d7c"/>
6566 </defs>
6567 <g>
6568 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="294.2625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6569 </g>
6570 </g>
6571 <g id="line2d_21">
6572 <defs>
6573 <path d="
6574 M0 0
6575 L0 4" id="m91aa736623"/>
6576 </defs>
6577 <g>
6578 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="294.2625" xlink:href="#m91aa736623" y="21.318125"/>
6579 </g>
6580 </g>
6581 <g id="text_8">
6582 <!-- 3.0 -->
6583 <defs>
6584 <path d="
6585 M40.5781 39.3125
6586 Q47.6562 37.7969 51.625 33
6587 Q55.6094 28.2188 55.6094 21.1875
6588 Q55.6094 10.4062 48.1875 4.48438
6589 Q40.7656 -1.42188 27.0938 -1.42188
6590 Q22.5156 -1.42188 17.6562 -0.515625
6591 Q12.7969 0.390625 7.625 2.20312
6592 L7.625 11.7188
6593 Q11.7188 9.32812 16.5938 8.10938
6594 Q21.4844 6.89062 26.8125 6.89062
6595 Q36.0781 6.89062 40.9375 10.5469
6596 Q45.7969 14.2031 45.7969 21.1875
6597 Q45.7969 27.6406 41.2812 31.2656
6598 Q36.7656 34.9062 28.7188 34.9062
6599 L20.2188 34.9062
6600 L20.2188 43.0156
6601 L29.1094 43.0156
6602 Q36.375 43.0156 40.2344 45.9219
6603 Q44.0938 48.8281 44.0938 54.2969
6604 Q44.0938 59.9062 40.1094 62.9062
6605 Q36.1406 65.9219 28.7188 65.9219
6606 Q24.6562 65.9219 20.0156 65.0312
6607 Q15.375 64.1562 9.8125 62.3125
6608 L9.8125 71.0938
6609 Q15.4375 72.6562 20.3438 73.4375
6610 Q25.25 74.2188 29.5938 74.2188
6611 Q40.8281 74.2188 47.3594 69.1094
6612 Q53.9062 64.0156 53.9062 55.3281
6613 Q53.9062 49.2656 50.4375 45.0938
6614 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
6615 </defs>
6616 <g transform="translate(287.02421875 250.18)scale(0.1 -0.1)">
6617 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
6618 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6619 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6620 </g>
6621 </g>
6622 </g>
6623 <g id="xtick_9">
6624 <g id="line2d_22">
6625 <defs>
6626 <path d="
6627 M0 0
6628 L0 -4" id="m1e01ff8d7c"/>
6629 </defs>
6630 <g>
6631 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="331.4625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6632 </g>
6633 </g>
6634 <g id="line2d_23">
6635 <defs>
6636 <path d="
6637 M0 0
6638 L0 4" id="m91aa736623"/>
6639 </defs>
6640 <g>
6641 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="331.4625" xlink:href="#m91aa736623" y="21.318125"/>
6642 </g>
6643 </g>
6644 <g id="text_9">
6645 <!-- 3.5 -->
6646 <g transform="translate(324.32890625 250.18)scale(0.1 -0.1)">
6647 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
6648 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6649 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
6650 </g>
6651 </g>
6652 </g>
6653 <g id="xtick_10">
6654 <g id="line2d_24">
6655 <defs>
6656 <path d="
6657 M0 0
6658 L0 -4" id="m1e01ff8d7c"/>
6659 </defs>
6660 <g>
6661 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1e01ff8d7c" y="238.758125"/>
6662 </g>
6663 </g>
6664 <g id="line2d_25">
6665 <defs>
6666 <path d="
6667 M0 0
6668 L0 4" id="m91aa736623"/>
6669 </defs>
6670 <g>
6671 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m91aa736623" y="21.318125"/>
6672 </g>
6673 </g>
6674 <g id="text_10">
6675 <!-- 4.0 -->
6676 <defs>
6677 <path d="
6678 M37.7969 64.3125
6679 L12.8906 25.3906
6680 L37.7969 25.3906
6681 z
6682
6683 M35.2031 72.9062
6684 L47.6094 72.9062
6685 L47.6094 25.3906
6686 L58.0156 25.3906
6687 L58.0156 17.1875
6688 L47.6094 17.1875
6689 L47.6094 0
6690 L37.7969 0
6691 L37.7969 17.1875
6692 L4.89062 17.1875
6693 L4.89062 26.7031
6694 z
6695 " id="BitstreamVeraSans-Roman-34"/>
6696 </defs>
6697 <g transform="translate(361.2875 250.18)scale(0.1 -0.1)">
6698 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
6699 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6700 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6701 </g>
6702 </g>
6703 </g>
6704 </g>
6705 <g id="matplotlib.axis_2">
6706 <g id="ytick_1">
6707 <g id="line2d_26">
6708 <defs>
6709 <path d="
6710 M0 0
6711 L4 0" id="mf019e8ac8f"/>
6712 </defs>
6713 <g>
6714 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="238.758125"/>
6715 </g>
6716 </g>
6717 <g id="line2d_27">
6718 <defs>
6719 <path d="
6720 M0 0
6721 L-4 0" id="m1ec148bd55"/>
6722 </defs>
6723 <g>
6724 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="238.758125"/>
6725 </g>
6726 </g>
6727 <g id="text_11">
6728 <!-- −0.4 -->
6729 <g transform="translate(7.2 242.39796875)scale(0.1 -0.1)">
6730 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
6731 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6732 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6733 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-34"/>
6734 </g>
6735 </g>
6736 </g>
6737 <g id="ytick_2">
6738 <g id="line2d_28">
6739 <defs>
6740 <path d="
6741 M0 0
6742 L4 0" id="mf019e8ac8f"/>
6743 </defs>
6744 <g>
6745 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="214.598125"/>
6746 </g>
6747 </g>
6748 <g id="line2d_29">
6749 <defs>
6750 <path d="
6751 M0 0
6752 L-4 0" id="m1ec148bd55"/>
6753 </defs>
6754 <g>
6755 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="214.598125"/>
6756 </g>
6757 </g>
6758 <g id="text_12">
6759 <!-- −0.2 -->
6760 <g transform="translate(7.640625 218.23796875)scale(0.1 -0.1)">
6761 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
6762 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6763 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6764 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-32"/>
6765 </g>
6766 </g>
6767 </g>
6768 <g id="ytick_3">
6769 <g id="line2d_30">
6770 <defs>
6771 <path d="
6772 M0 0
6773 L4 0" id="mf019e8ac8f"/>
6774 </defs>
6775 <g>
6776 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="190.438125"/>
6777 </g>
6778 </g>
6779 <g id="line2d_31">
6780 <defs>
6781 <path d="
6782 M0 0
6783 L-4 0" id="m1ec148bd55"/>
6784 </defs>
6785 <g>
6786 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="190.438125"/>
6787 </g>
6788 </g>
6789 <g id="text_13">
6790 <!-- 0.0 -->
6791 <g transform="translate(15.2828125 194.07796875)scale(0.1 -0.1)">
6792 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
6793 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6794 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
6795 </g>
6796 </g>
6797 </g>
6798 <g id="ytick_4">
6799 <g id="line2d_32">
6800 <defs>
6801 <path d="
6802 M0 0
6803 L4 0" id="mf019e8ac8f"/>
6804 </defs>
6805 <g>
6806 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="166.278125"/>
6807 </g>
6808 </g>
6809 <g id="line2d_33">
6810 <defs>
6811 <path d="
6812 M0 0
6813 L-4 0" id="m1ec148bd55"/>
6814 </defs>
6815 <g>
6816 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="166.278125"/>
6817 </g>
6818 </g>
6819 <g id="text_14">
6820 <!-- 0.2 -->
6821 <g transform="translate(15.6203125 169.91796875)scale(0.1 -0.1)">
6822 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
6823 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6824 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-32"/>
6825 </g>
6826 </g>
6827 </g>
6828 <g id="ytick_5">
6829 <g id="line2d_34">
6830 <defs>
6831 <path d="
6832 M0 0
6833 L4 0" id="mf019e8ac8f"/>
6834 </defs>
6835 <g>
6836 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="142.118125"/>
6837 </g>
6838 </g>
6839 <g id="line2d_35">
6840 <defs>
6841 <path d="
6842 M0 0
6843 L-4 0" id="m1ec148bd55"/>
6844 </defs>
6845 <g>
6846 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="142.118125"/>
6847 </g>
6848 </g>
6849 <g id="text_15">
6850 <!-- 0.4 -->
6851 <g transform="translate(15.1796875 145.75796875)scale(0.1 -0.1)">
6852 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
6853 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6854 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-34"/>
6855 </g>
6856 </g>
6857 </g>
6858 <g id="ytick_6">
6859 <g id="line2d_36">
6860 <defs>
6861 <path d="
6862 M0 0
6863 L4 0" id="mf019e8ac8f"/>
6864 </defs>
6865 <g>
6866 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="117.958125"/>
6867 </g>
6868 </g>
6869 <g id="line2d_37">
6870 <defs>
6871 <path d="
6872 M0 0
6873 L-4 0" id="m1ec148bd55"/>
6874 </defs>
6875 <g>
6876 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="117.958125"/>
6877 </g>
6878 </g>
6879 <g id="text_16">
6880 <!-- 0.6 -->
6881 <defs>
6882 <path d="
6883 M33.0156 40.375
6884 Q26.375 40.375 22.4844 35.8281
6885 Q18.6094 31.2969 18.6094 23.3906
6886 Q18.6094 15.5312 22.4844 10.9531
6887 Q26.375 6.39062 33.0156 6.39062
6888 Q39.6562 6.39062 43.5312 10.9531
6889 Q47.4062 15.5312 47.4062 23.3906
6890 Q47.4062 31.2969 43.5312 35.8281
6891 Q39.6562 40.375 33.0156 40.375
6892 M52.5938 71.2969
6893 L52.5938 62.3125
6894 Q48.875 64.0625 45.0938 64.9844
6895 Q41.3125 65.9219 37.5938 65.9219
6896 Q27.8281 65.9219 22.6719 59.3281
6897 Q17.5312 52.7344 16.7969 39.4062
6898 Q19.6719 43.6562 24.0156 45.9219
6899 Q28.375 48.1875 33.5938 48.1875
6900 Q44.5781 48.1875 50.9531 41.5156
6901 Q57.3281 34.8594 57.3281 23.3906
6902 Q57.3281 12.1562 50.6875 5.35938
6903 Q44.0469 -1.42188 33.0156 -1.42188
6904 Q20.3594 -1.42188 13.6719 8.26562
6905 Q6.98438 17.9688 6.98438 36.375
6906 Q6.98438 53.6562 15.1875 63.9375
6907 Q23.3906 74.2188 37.2031 74.2188
6908 Q40.9219 74.2188 44.7031 73.4844
6909 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
6910 </defs>
6911 <g transform="translate(15.2484375 121.59796875)scale(0.1 -0.1)">
6912 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
6913 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6914 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-36"/>
6915 </g>
6916 </g>
6917 </g>
6918 <g id="ytick_7">
6919 <g id="line2d_38">
6920 <defs>
6921 <path d="
6922 M0 0
6923 L4 0" id="mf019e8ac8f"/>
6924 </defs>
6925 <g>
6926 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="93.798125"/>
6927 </g>
6928 </g>
6929 <g id="line2d_39">
6930 <defs>
6931 <path d="
6932 M0 0
6933 L-4 0" id="m1ec148bd55"/>
6934 </defs>
6935 <g>
6936 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="93.798125"/>
6937 </g>
6938 </g>
6939 <g id="text_17">
6940 <!-- 0.8 -->
6941 <defs>
6942 <path d="
6943 M31.7812 34.625
6944 Q24.75 34.625 20.7188 30.8594
6945 Q16.7031 27.0938 16.7031 20.5156
6946 Q16.7031 13.9219 20.7188 10.1562
6947 Q24.75 6.39062 31.7812 6.39062
6948 Q38.8125 6.39062 42.8594 10.1719
6949 Q46.9219 13.9688 46.9219 20.5156
6950 Q46.9219 27.0938 42.8906 30.8594
6951 Q38.875 34.625 31.7812 34.625
6952 M21.9219 38.8125
6953 Q15.5781 40.375 12.0312 44.7188
6954 Q8.5 49.0781 8.5 55.3281
6955 Q8.5 64.0625 14.7188 69.1406
6956 Q20.9531 74.2188 31.7812 74.2188
6957 Q42.6719 74.2188 48.875 69.1406
6958 Q55.0781 64.0625 55.0781 55.3281
6959 Q55.0781 49.0781 51.5312 44.7188
6960 Q48 40.375 41.7031 38.8125
6961 Q48.8281 37.1562 52.7969 32.3125
6962 Q56.7812 27.4844 56.7812 20.5156
6963 Q56.7812 9.90625 50.3125 4.23438
6964 Q43.8438 -1.42188 31.7812 -1.42188
6965 Q19.7344 -1.42188 13.25 4.23438
6966 Q6.78125 9.90625 6.78125 20.5156
6967 Q6.78125 27.4844 10.7812 32.3125
6968 Q14.7969 37.1562 21.9219 38.8125
6969 M18.3125 54.3906
6970 Q18.3125 48.7344 21.8438 45.5625
6971 Q25.3906 42.3906 31.7812 42.3906
6972 Q38.1406 42.3906 41.7188 45.5625
6973 Q45.3125 48.7344 45.3125 54.3906
6974 Q45.3125 60.0625 41.7188 63.2344
6975 Q38.1406 66.4062 31.7812 66.4062
6976 Q25.3906 66.4062 21.8438 63.2344
6977 Q18.3125 60.0625 18.3125 54.3906" id="BitstreamVeraSans-Roman-38"/>
6978 </defs>
6979 <g transform="translate(15.303125 97.43796875)scale(0.1 -0.1)">
6980 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
6981 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
6982 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-38"/>
6983 </g>
6984 </g>
6985 </g>
6986 <g id="ytick_8">
6987 <g id="line2d_40">
6988 <defs>
6989 <path d="
6990 M0 0
6991 L4 0" id="mf019e8ac8f"/>
6992 </defs>
6993 <g>
6994 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="69.638125"/>
6995 </g>
6996 </g>
6997 <g id="line2d_41">
6998 <defs>
6999 <path d="
7000 M0 0
7001 L-4 0" id="m1ec148bd55"/>
7002 </defs>
7003 <g>
7004 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="69.638125"/>
7005 </g>
7006 </g>
7007 <g id="text_18">
7008 <!-- 1.0 -->
7009 <g transform="translate(15.721875 73.27796875)scale(0.1 -0.1)">
7010 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
7011 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
7012 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
7013 </g>
7014 </g>
7015 </g>
7016 <g id="ytick_9">
7017 <g id="line2d_42">
7018 <defs>
7019 <path d="
7020 M0 0
7021 L4 0" id="mf019e8ac8f"/>
7022 </defs>
7023 <g>
7024 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="45.478125"/>
7025 </g>
7026 </g>
7027 <g id="line2d_43">
7028 <defs>
7029 <path d="
7030 M0 0
7031 L-4 0" id="m1ec148bd55"/>
7032 </defs>
7033 <g>
7034 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="45.478125"/>
7035 </g>
7036 </g>
7037 <g id="text_19">
7038 <!-- 1.2 -->
7039 <g transform="translate(16.059375 49.1890625)scale(0.1 -0.1)">
7040 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
7041 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
7042 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-32"/>
7043 </g>
7044 </g>
7045 </g>
7046 <g id="ytick_10">
7047 <g id="line2d_44">
7048 <defs>
7049 <path d="
7050 M0 0
7051 L4 0" id="mf019e8ac8f"/>
7052 </defs>
7053 <g>
7054 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.8625" xlink:href="#mf019e8ac8f" y="21.318125"/>
7055 </g>
7056 </g>
7057 <g id="line2d_45">
7058 <defs>
7059 <path d="
7060 M0 0
7061 L-4 0" id="m1ec148bd55"/>
7062 </defs>
7063 <g>
7064 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="368.6625" xlink:href="#m1ec148bd55" y="21.318125"/>
7065 </g>
7066 </g>
7067 <g id="text_20">
7068 <!-- 1.4 -->
7069 <g transform="translate(15.61875 24.9634375)scale(0.1 -0.1)">
7070 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
7071 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
7072 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-34"/>
7073 </g>
7074 </g>
7075 </g>
7076 </g>
7077 <g id="patch_3">
7078 <path d="
7079 M33.8625 21.3181
7080 L368.662 21.3181" style="fill:none;stroke:#000000;"/>
7081 </g>
7082 <g id="patch_4">
7083 <path d="
7084 M368.663 238.758
7085 L368.663 21.3181" style="fill:none;stroke:#000000;"/>
7086 </g>
7087 <g id="patch_5">
7088 <path d="
7089 M33.8625 238.758
7090 L368.662 238.758" style="fill:none;stroke:#000000;"/>
7091 </g>
7092 <g id="patch_6">
7093 <path d="
7094 M33.8625 238.758
7095 L33.8625 21.3181" style="fill:none;stroke:#000000;"/>
7096 </g>
7097 <g id="text_21">
7098 <!-- Simplest errorbars, 0.2 in x, 0.4 in y -->
7099 <defs>
7100 <path id="BitstreamVeraSans-Roman-20"/>
7101 <path d="
7102 M54.8906 33.0156
7103 L54.8906 0
7104 L45.9062 0
7105 L45.9062 32.7188
7106 Q45.9062 40.4844 42.875 44.3281
7107 Q39.8438 48.1875 33.7969 48.1875
7108 Q26.5156 48.1875 22.3125 43.5469
7109 Q18.1094 38.9219 18.1094 30.9062
7110 L18.1094 0
7111 L9.07812 0
7112 L9.07812 54.6875
7113 L18.1094 54.6875
7114 L18.1094 46.1875
7115 Q21.3438 51.125 25.7031 53.5625
7116 Q30.0781 56 35.7969 56
7117 Q45.2188 56 50.0469 50.1719
7118 Q54.8906 44.3438 54.8906 33.0156" id="BitstreamVeraSans-Roman-6e"/>
7119 <path d="
7120 M52 44.1875
7121 Q55.375 50.25 60.0625 53.125
7122 Q64.75 56 71.0938 56
7123 Q79.6406 56 84.2812 50.0156
7124 Q88.9219 44.0469 88.9219 33.0156
7125 L88.9219 0
7126 L79.8906 0
7127 L79.8906 32.7188
7128 Q79.8906 40.5781 77.0938 44.375
7129 Q74.3125 48.1875 68.6094 48.1875
7130 Q61.625 48.1875 57.5625 43.5469
7131 Q53.5156 38.9219 53.5156 30.9062
7132 L53.5156 0
7133 L44.4844 0
7134 L44.4844 32.7188
7135 Q44.4844 40.625 41.7031 44.4062
7136 Q38.9219 48.1875 33.1094 48.1875
7137 Q26.2188 48.1875 22.1562 43.5312
7138 Q18.1094 38.875 18.1094 30.9062
7139 L18.1094 0
7140 L9.07812 0
7141 L9.07812 54.6875
7142 L18.1094 54.6875
7143 L18.1094 46.1875
7144 Q21.1875 51.2188 25.4844 53.6094
7145 Q29.7812 56 35.6875 56
7146 Q41.6562 56 45.8281 52.9688
7147 Q50 49.9531 52 44.1875" id="BitstreamVeraSans-Roman-6d"/>
7148 <path d="
7149 M30.6094 48.3906
7150 Q23.3906 48.3906 19.1875 42.75
7151 Q14.9844 37.1094 14.9844 27.2969
7152 Q14.9844 17.4844 19.1562 11.8438
7153 Q23.3438 6.20312 30.6094 6.20312
7154 Q37.7969 6.20312 41.9844 11.8594
7155 Q46.1875 17.5312 46.1875 27.2969
7156 Q46.1875 37.0156 41.9844 42.7031
7157 Q37.7969 48.3906 30.6094 48.3906
7158 M30.6094 56
7159 Q42.3281 56 49.0156 48.375
7160 Q55.7188 40.7656 55.7188 27.2969
7161 Q55.7188 13.875 49.0156 6.21875
7162 Q42.3281 -1.42188 30.6094 -1.42188
7163 Q18.8438 -1.42188 12.1719 6.21875
7164 Q5.51562 13.875 5.51562 27.2969
7165 Q5.51562 40.7656 12.1719 48.375
7166 Q18.8438 56 30.6094 56" id="BitstreamVeraSans-Roman-6f"/>
7167 <path d="
7168 M9.42188 75.9844
7169 L18.4062 75.9844
7170 L18.4062 0
7171 L9.42188 0
7172 z
7173 " id="BitstreamVeraSans-Roman-6c"/>
7174 <path d="
7175 M34.2812 27.4844
7176 Q23.3906 27.4844 19.1875 25
7177 Q14.9844 22.5156 14.9844 16.5
7178 Q14.9844 11.7188 18.1406 8.90625
7179 Q21.2969 6.10938 26.7031 6.10938
7180 Q34.1875 6.10938 38.7031 11.4062
7181 Q43.2188 16.7031 43.2188 25.4844
7182 L43.2188 27.4844
7183 z
7184
7185 M52.2031 31.2031
7186 L52.2031 0
7187 L43.2188 0
7188 L43.2188 8.29688
7189 Q40.1406 3.32812 35.5469 0.953125
7190 Q30.9531 -1.42188 24.3125 -1.42188
7191 Q15.9219 -1.42188 10.9531 3.29688
7192 Q6 8.01562 6 15.9219
7193 Q6 25.1406 12.1719 29.8281
7194 Q18.3594 34.5156 30.6094 34.5156
7195 L43.2188 34.5156
7196 L43.2188 35.4062
7197 Q43.2188 41.6094 39.1406 45
7198 Q35.0625 48.3906 27.6875 48.3906
7199 Q23 48.3906 18.5469 47.2656
7200 Q14.1094 46.1406 10.0156 43.8906
7201 L10.0156 52.2031
7202 Q14.9375 54.1094 19.5781 55.0469
7203 Q24.2188 56 28.6094 56
7204 Q40.4844 56 46.3438 49.8438
7205 Q52.2031 43.7031 52.2031 31.2031" id="BitstreamVeraSans-Roman-61"/>
7206 <path d="
7207 M11.7188 12.4062
7208 L22.0156 12.4062
7209 L22.0156 4
7210 L14.0156 -11.625
7211 L7.71875 -11.625
7212 L11.7188 4
7213 z
7214 " id="BitstreamVeraSans-Roman-2c"/>
7215 <path d="
7216 M53.5156 70.5156
7217 L53.5156 60.8906
7218 Q47.9062 63.5781 42.9219 64.8906
7219 Q37.9375 66.2188 33.2969 66.2188
7220 Q25.25 66.2188 20.875 63.0938
7221 Q16.5 59.9688 16.5 54.2031
7222 Q16.5 49.3594 19.4062 46.8906
7223 Q22.3125 44.4375 30.4219 42.9219
7224 L36.375 41.7031
7225 Q47.4062 39.5938 52.6562 34.2969
7226 Q57.9062 29 57.9062 20.125
7227 Q57.9062 9.51562 50.7969 4.04688
7228 Q43.7031 -1.42188 29.9844 -1.42188
7229 Q24.8125 -1.42188 18.9688 -0.25
7230 Q13.1406 0.921875 6.89062 3.21875
7231 L6.89062 13.375
7232 Q12.8906 10.0156 18.6562 8.29688
7233 Q24.4219 6.59375 29.9844 6.59375
7234 Q38.4219 6.59375 43.0156 9.90625
7235 Q47.6094 13.2344 47.6094 19.3906
7236 Q47.6094 24.75 44.3125 27.7812
7237 Q41.0156 30.8125 33.5 32.3281
7238 L27.4844 33.5
7239 Q16.4531 35.6875 11.5156 40.375
7240 Q6.59375 45.0625 6.59375 53.4219
7241 Q6.59375 63.0938 13.4062 68.6562
7242 Q20.2188 74.2188 32.1719 74.2188
7243 Q37.3125 74.2188 42.625 73.2812
7244 Q47.9531 72.3594 53.5156 70.5156" id="BitstreamVeraSans-Roman-53"/>
7245 <path d="
7246 M9.42188 54.6875
7247 L18.4062 54.6875
7248 L18.4062 0
7249 L9.42188 0
7250 z
7251
7252 M9.42188 75.9844
7253 L18.4062 75.9844
7254 L18.4062 64.5938
7255 L9.42188 64.5938
7256 z
7257 " id="BitstreamVeraSans-Roman-69"/>
7258 <path d="
7259 M54.8906 54.6875
7260 L35.1094 28.0781
7261 L55.9062 0
7262 L45.3125 0
7263 L29.3906 21.4844
7264 L13.4844 0
7265 L2.875 0
7266 L24.125 28.6094
7267 L4.6875 54.6875
7268 L15.2812 54.6875
7269 L29.7812 35.2031
7270 L44.2812 54.6875
7271 z
7272 " id="BitstreamVeraSans-Roman-78"/>
7273 <path d="
7274 M32.1719 -5.07812
7275 Q28.375 -14.8438 24.75 -17.8125
7276 Q21.1406 -20.7969 15.0938 -20.7969
7277 L7.90625 -20.7969
7278 L7.90625 -13.2812
7279 L13.1875 -13.2812
7280 Q16.8906 -13.2812 18.9375 -11.5156
7281 Q21 -9.76562 23.4844 -3.21875
7282 L25.0938 0.875
7283 L2.98438 54.6875
7284 L12.5 54.6875
7285 L29.5938 11.9219
7286 L46.6875 54.6875
7287 L56.2031 54.6875
7288 z
7289 " id="BitstreamVeraSans-Roman-79"/>
7290 <path d="
7291 M56.2031 29.5938
7292 L56.2031 25.2031
7293 L14.8906 25.2031
7294 Q15.4844 15.9219 20.4844 11.0625
7295 Q25.4844 6.20312 34.4219 6.20312
7296 Q39.5938 6.20312 44.4531 7.46875
7297 Q49.3125 8.73438 54.1094 11.2812
7298 L54.1094 2.78125
7299 Q49.2656 0.734375 44.1875 -0.34375
7300 Q39.1094 -1.42188 33.8906 -1.42188
7301 Q20.7969 -1.42188 13.1562 6.1875
7302 Q5.51562 13.8125 5.51562 26.8125
7303 Q5.51562 40.2344 12.7656 48.1094
7304 Q20.0156 56 32.3281 56
7305 Q43.3594 56 49.7812 48.8906
7306 Q56.2031 41.7969 56.2031 29.5938
7307 M47.2188 32.2344
7308 Q47.125 39.5938 43.0938 43.9844
7309 Q39.0625 48.3906 32.4219 48.3906
7310 Q24.9062 48.3906 20.3906 44.1406
7311 Q15.875 39.8906 15.1875 32.1719
7312 z
7313 " id="BitstreamVeraSans-Roman-65"/>
7314 <path d="
7315 M18.3125 70.2188
7316 L18.3125 54.6875
7317 L36.8125 54.6875
7318 L36.8125 47.7031
7319 L18.3125 47.7031
7320 L18.3125 18.0156
7321 Q18.3125 11.3281 20.1406 9.42188
7322 Q21.9688 7.51562 27.5938 7.51562
7323 L36.8125 7.51562
7324 L36.8125 0
7325 L27.5938 0
7326 Q17.1875 0 13.2344 3.875
7327 Q9.28125 7.76562 9.28125 18.0156
7328 L9.28125 47.7031
7329 L2.6875 47.7031
7330 L2.6875 54.6875
7331 L9.28125 54.6875
7332 L9.28125 70.2188
7333 z
7334 " id="BitstreamVeraSans-Roman-74"/>
7335 <path d="
7336 M41.1094 46.2969
7337 Q39.5938 47.1719 37.8125 47.5781
7338 Q36.0312 48 33.8906 48
7339 Q26.2656 48 22.1875 43.0469
7340 Q18.1094 38.0938 18.1094 28.8125
7341 L18.1094 0
7342 L9.07812 0
7343 L9.07812 54.6875
7344 L18.1094 54.6875
7345 L18.1094 46.1875
7346 Q20.9531 51.1719 25.4844 53.5781
7347 Q30.0312 56 36.5312 56
7348 Q37.4531 56 38.5781 55.875
7349 Q39.7031 55.7656 41.0625 55.5156
7350 z
7351 " id="BitstreamVeraSans-Roman-72"/>
7352 <path d="
7353 M44.2812 53.0781
7354 L44.2812 44.5781
7355 Q40.4844 46.5312 36.375 47.5
7356 Q32.2812 48.4844 27.875 48.4844
7357 Q21.1875 48.4844 17.8438 46.4375
7358 Q14.5 44.3906 14.5 40.2812
7359 Q14.5 37.1562 16.8906 35.375
7360 Q19.2812 33.5938 26.5156 31.9844
7361 L29.5938 31.2969
7362 Q39.1562 29.25 43.1875 25.5156
7363 Q47.2188 21.7812 47.2188 15.0938
7364 Q47.2188 7.46875 41.1875 3.01562
7365 Q35.1562 -1.42188 24.6094 -1.42188
7366 Q20.2188 -1.42188 15.4531 -0.5625
7367 Q10.6875 0.296875 5.42188 2
7368 L5.42188 11.2812
7369 Q10.4062 8.6875 15.2344 7.39062
7370 Q20.0625 6.10938 24.8125 6.10938
7371 Q31.1562 6.10938 34.5625 8.28125
7372 Q37.9844 10.4531 37.9844 14.4062
7373 Q37.9844 18.0625 35.5156 20.0156
7374 Q33.0625 21.9688 24.7031 23.7812
7375 L21.5781 24.5156
7376 Q13.2344 26.2656 9.51562 29.9062
7377 Q5.8125 33.5469 5.8125 39.8906
7378 Q5.8125 47.6094 11.2812 51.7969
7379 Q16.75 56 26.8125 56
7380 Q31.7812 56 36.1719 55.2656
7381 Q40.5781 54.5469 44.2812 53.0781" id="BitstreamVeraSans-Roman-73"/>
7382 <path d="
7383 M18.1094 8.20312
7384 L18.1094 -20.7969
7385 L9.07812 -20.7969
7386 L9.07812 54.6875
7387 L18.1094 54.6875
7388 L18.1094 46.3906
7389 Q20.9531 51.2656 25.2656 53.625
7390 Q29.5938 56 35.5938 56
7391 Q45.5625 56 51.7812 48.0938
7392 Q58.0156 40.1875 58.0156 27.2969
7393 Q58.0156 14.4062 51.7812 6.48438
7394 Q45.5625 -1.42188 35.5938 -1.42188
7395 Q29.5938 -1.42188 25.2656 0.953125
7396 Q20.9531 3.32812 18.1094 8.20312
7397 M48.6875 27.2969
7398 Q48.6875 37.2031 44.6094 42.8438
7399 Q40.5312 48.4844 33.4062 48.4844
7400 Q26.2656 48.4844 22.1875 42.8438
7401 Q18.1094 37.2031 18.1094 27.2969
7402 Q18.1094 17.3906 22.1875 11.75
7403 Q26.2656 6.10938 33.4062 6.10938
7404 Q40.5312 6.10938 44.6094 11.75
7405 Q48.6875 17.3906 48.6875 27.2969" id="BitstreamVeraSans-Roman-70"/>
7406 <path d="
7407 M48.6875 27.2969
7408 Q48.6875 37.2031 44.6094 42.8438
7409 Q40.5312 48.4844 33.4062 48.4844
7410 Q26.2656 48.4844 22.1875 42.8438
7411 Q18.1094 37.2031 18.1094 27.2969
7412 Q18.1094 17.3906 22.1875 11.75
7413 Q26.2656 6.10938 33.4062 6.10938
7414 Q40.5312 6.10938 44.6094 11.75
7415 Q48.6875 17.3906 48.6875 27.2969
7416 M18.1094 46.3906
7417 Q20.9531 51.2656 25.2656 53.625
7418 Q29.5938 56 35.5938 56
7419 Q45.5625 56 51.7812 48.0938
7420 Q58.0156 40.1875 58.0156 27.2969
7421 Q58.0156 14.4062 51.7812 6.48438
7422 Q45.5625 -1.42188 35.5938 -1.42188
7423 Q29.5938 -1.42188 25.2656 0.953125
7424 Q20.9531 3.32812 18.1094 8.20312
7425 L18.1094 0
7426 L9.07812 0
7427 L9.07812 75.9844
7428 L18.1094 75.9844
7429 z
7430 " id="BitstreamVeraSans-Roman-62"/>
7431 </defs>
7432 <g transform="translate(93.5878125 16.318125)scale(0.12 -0.12)">
7433 <use xlink:href="#BitstreamVeraSans-Roman-53"/>
7434 <use x="63.4765625" xlink:href="#BitstreamVeraSans-Roman-69"/>
7435 <use x="91.259765625" xlink:href="#BitstreamVeraSans-Roman-6d"/>
7436 <use x="188.671875" xlink:href="#BitstreamVeraSans-Roman-70"/>
7437 <use x="252.1484375" xlink:href="#BitstreamVeraSans-Roman-6c"/>
7438 <use x="279.931640625" xlink:href="#BitstreamVeraSans-Roman-65"/>
7439 <use x="341.455078125" xlink:href="#BitstreamVeraSans-Roman-73"/>
7440 <use x="393.5546875" xlink:href="#BitstreamVeraSans-Roman-74"/>
7441 <use x="432.763671875" xlink:href="#BitstreamVeraSans-Roman-20"/>
7442 <use x="464.55078125" xlink:href="#BitstreamVeraSans-Roman-65"/>
7443 <use x="526.07421875" xlink:href="#BitstreamVeraSans-Roman-72"/>
7444 <use x="565.4375" xlink:href="#BitstreamVeraSans-Roman-72"/>
7445 <use x="604.30078125" xlink:href="#BitstreamVeraSans-Roman-6f"/>
7446 <use x="665.482421875" xlink:href="#BitstreamVeraSans-Roman-72"/>
7447 <use x="706.595703125" xlink:href="#BitstreamVeraSans-Roman-62"/>
7448 <use x="770.072265625" xlink:href="#BitstreamVeraSans-Roman-61"/>
7449 <use x="831.3515625" xlink:href="#BitstreamVeraSans-Roman-72"/>
7450 <use x="872.46484375" xlink:href="#BitstreamVeraSans-Roman-73"/>
7451 <use x="924.564453125" xlink:href="#BitstreamVeraSans-Roman-2c"/>
7452 <use x="956.3515625" xlink:href="#BitstreamVeraSans-Roman-20"/>
7453 <use x="988.138671875" xlink:href="#BitstreamVeraSans-Roman-30"/>
7454 <use x="1051.76171875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
7455 <use x="1083.54882812" xlink:href="#BitstreamVeraSans-Roman-32"/>
7456 <use x="1147.171875" xlink:href="#BitstreamVeraSans-Roman-20"/>
7457 <use x="1178.95898438" xlink:href="#BitstreamVeraSans-Roman-69"/>
7458 <use x="1206.7421875" xlink:href="#BitstreamVeraSans-Roman-6e"/>
7459 <use x="1270.12109375" xlink:href="#BitstreamVeraSans-Roman-20"/>
7460 <use x="1301.90820312" xlink:href="#BitstreamVeraSans-Roman-78"/>
7461 <use x="1361.08789062" xlink:href="#BitstreamVeraSans-Roman-2c"/>
7462 <use x="1392.875" xlink:href="#BitstreamVeraSans-Roman-20"/>
7463 <use x="1424.66210938" xlink:href="#BitstreamVeraSans-Roman-30"/>
7464 <use x="1488.28515625" xlink:href="#BitstreamVeraSans-Roman-2e"/>
7465 <use x="1520.07226562" xlink:href="#BitstreamVeraSans-Roman-34"/>
7466 <use x="1583.6953125" xlink:href="#BitstreamVeraSans-Roman-20"/>
7467 <use x="1615.48242188" xlink:href="#BitstreamVeraSans-Roman-69"/>
7468 <use x="1643.265625" xlink:href="#BitstreamVeraSans-Roman-6e"/>
7469 <use x="1706.64453125" xlink:href="#BitstreamVeraSans-Roman-20"/>
7470 <use x="1738.43164062" xlink:href="#BitstreamVeraSans-Roman-79"/>
7471 </g>
7472 </g>
7473 </g>
7474 </g>
7475 <defs>
7476 <clipPath id="pb852ba6bc0">
7477 <rect height="217.44" width="334.8" x="33.8625" y="21.318125"/>
7478 </clipPath>
7479 </defs>
7480 </svg>
7481
7482 </div>
7483 </div>
7484 </div>
7485 </div>
7486 </div>
7487 <div class="text_cell_render border-box-sizing rendered_html">
7488 <p>A simple log plot</p>
7489 </div>
7490 <div class="cell border-box-sizing code_cell vbox">
7491 <div class="input hbox">
7492 <div class="prompt input_prompt">In&nbsp;[64]:</div>
7493 <div class="input_area box-flex1">
7494 <div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
7495 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
7496 <span class="n">plt</span><span class="o">.</span><span class="n">semilogy</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">);</span>
7497 </pre></div>
7498
7499 </div>
7500 </div>
7501 <div class="vbox output_wrapper">
7502 <div class="output vbox">
7503 <div class="hbox output_area">
7504 <div class="prompt output_prompt"></div>
7505 <div class="output_subarea output_display_data">
7506 <?xml version="1.0" encoding="utf-8" standalone="no"?>
7507 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
7508 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
7509 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
7510 <svg height="248pt" version="1.1" viewBox="0 0 382 248" width="382pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
7511 <defs>
7512 <style type="text/css">
7513 *{stroke-linecap:square;stroke-linejoin:round;}
7514 </style>
7515 </defs>
7516 <g id="figure_1">
7517 <g id="patch_1">
7518 <path d="
7519 M1.33227e-15 248.754
7520 L382.017 248.754
7521 L382.017 0
7522 L1.33227e-15 0
7523 z
7524 " style="fill:#ffffff;"/>
7525 </g>
7526 <g id="axes_1">
7527 <g id="patch_2">
7528 <path d="
7529 M37.5 229.99
7530 L372.3 229.99
7531 L372.3 12.55
7532 L37.5 12.55
7533 z
7534 " style="fill:#ffffff;"/>
7535 </g>
7536 <g id="line2d_1">
7537 <path clip-path="url(#p0d6f05ecc4)" d="
7538 M65.4 227.17
7539 L71.0939 210.008
7540 L76.7878 193.561
7541 L82.4816 177.828
7542 L88.1755 162.811
7543 L93.8694 148.509
7544 L99.5633 134.922
7545 L105.257 122.05
7546 L110.951 109.893
7547 L116.645 98.4518
7548 L122.339 87.7253
7549 L128.033 77.7138
7550 L133.727 68.4175
7551 L139.42 59.8362
7552 L145.114 51.9701
7553 L150.808 44.819
7554 L156.502 38.3831
7555 L162.196 32.6623
7556 L167.89 27.6566
7557 L173.584 23.3659
7558 L179.278 19.7904
7559 L184.971 16.93
7560 L190.665 14.7847
7561 L196.359 13.3545
7562 L202.053 12.6394
7563 L207.747 12.6394
7564 L213.441 13.3545
7565 L219.135 14.7847
7566 L224.829 16.93
7567 L230.522 19.7904
7568 L236.216 23.3659
7569 L241.91 27.6566
7570 L247.604 32.6623
7571 L253.298 38.3831
7572 L258.992 44.819
7573 L264.686 51.9701
7574 L270.38 59.8362
7575 L276.073 68.4175
7576 L281.767 77.7138
7577 L287.461 87.7253
7578 L293.155 98.4518
7579 L298.849 109.893
7580 L304.543 122.05
7581 L310.237 134.922
7582 L315.931 148.509
7583 L321.624 162.811
7584 L327.318 177.828
7585 L333.012 193.561
7586 L338.706 210.008
7587 L344.4 227.17" style="fill:none;stroke:#0000ff;"/>
7588 </g>
7589 <g id="matplotlib.axis_1">
7590 <g id="xtick_1">
7591 <g id="line2d_2">
7592 <defs>
7593 <path d="
7594 M0 0
7595 L0 -4" id="m1e01ff8d7c"/>
7596 </defs>
7597 <g>
7598 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m1e01ff8d7c" y="229.99"/>
7599 </g>
7600 </g>
7601 <g id="line2d_3">
7602 <defs>
7603 <path d="
7604 M0 0
7605 L0 4" id="m91aa736623"/>
7606 </defs>
7607 <g>
7608 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m91aa736623" y="12.55"/>
7609 </g>
7610 </g>
7611 <g id="text_1">
7612 <!-- −6 -->
7613 <defs>
7614 <path d="
7615 M10.5938 35.5
7616 L73.1875 35.5
7617 L73.1875 27.2031
7618 L10.5938 27.2031
7619 z
7620 " id="BitstreamVeraSans-Roman-2212"/>
7621 <path d="
7622 M33.0156 40.375
7623 Q26.375 40.375 22.4844 35.8281
7624 Q18.6094 31.2969 18.6094 23.3906
7625 Q18.6094 15.5312 22.4844 10.9531
7626 Q26.375 6.39062 33.0156 6.39062
7627 Q39.6562 6.39062 43.5312 10.9531
7628 Q47.4062 15.5312 47.4062 23.3906
7629 Q47.4062 31.2969 43.5312 35.8281
7630 Q39.6562 40.375 33.0156 40.375
7631 M52.5938 71.2969
7632 L52.5938 62.3125
7633 Q48.875 64.0625 45.0938 64.9844
7634 Q41.3125 65.9219 37.5938 65.9219
7635 Q27.8281 65.9219 22.6719 59.3281
7636 Q17.5312 52.7344 16.7969 39.4062
7637 Q19.6719 43.6562 24.0156 45.9219
7638 Q28.375 48.1875 33.5938 48.1875
7639 Q44.5781 48.1875 50.9531 41.5156
7640 Q57.3281 34.8594 57.3281 23.3906
7641 Q57.3281 12.1562 50.6875 5.35938
7642 Q44.0469 -1.42188 33.0156 -1.42188
7643 Q20.3594 -1.42188 13.6719 8.26562
7644 Q6.98438 17.9688 6.98438 36.375
7645 Q6.98438 53.6562 15.1875 63.9375
7646 Q23.3906 74.2188 37.2031 74.2188
7647 Q40.9219 74.2188 44.7031 73.4844
7648 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
7649 </defs>
7650 <g transform="translate(30.9734375 241.411875)scale(0.1 -0.1)">
7651 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
7652 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-36"/>
7653 </g>
7654 </g>
7655 </g>
7656 <g id="xtick_2">
7657 <g id="line2d_4">
7658 <defs>
7659 <path d="
7660 M0 0
7661 L0 -4" id="m1e01ff8d7c"/>
7662 </defs>
7663 <g>
7664 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="93.3" xlink:href="#m1e01ff8d7c" y="229.99"/>
7665 </g>
7666 </g>
7667 <g id="line2d_5">
7668 <defs>
7669 <path d="
7670 M0 0
7671 L0 4" id="m91aa736623"/>
7672 </defs>
7673 <g>
7674 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="93.3" xlink:href="#m91aa736623" y="12.55"/>
7675 </g>
7676 </g>
7677 <g id="text_2">
7678 <!-- −4 -->
7679 <defs>
7680 <path d="
7681 M37.7969 64.3125
7682 L12.8906 25.3906
7683 L37.7969 25.3906
7684 z
7685
7686 M35.2031 72.9062
7687 L47.6094 72.9062
7688 L47.6094 25.3906
7689 L58.0156 25.3906
7690 L58.0156 17.1875
7691 L47.6094 17.1875
7692 L47.6094 0
7693 L37.7969 0
7694 L37.7969 17.1875
7695 L4.89062 17.1875
7696 L4.89062 26.7031
7697 z
7698 " id="BitstreamVeraSans-Roman-34"/>
7699 </defs>
7700 <g transform="translate(86.7390625 241.280625)scale(0.1 -0.1)">
7701 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
7702 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-34"/>
7703 </g>
7704 </g>
7705 </g>
7706 <g id="xtick_3">
7707 <g id="line2d_6">
7708 <defs>
7709 <path d="
7710 M0 0
7711 L0 -4" id="m1e01ff8d7c"/>
7712 </defs>
7713 <g>
7714 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="149.1" xlink:href="#m1e01ff8d7c" y="229.99"/>
7715 </g>
7716 </g>
7717 <g id="line2d_7">
7718 <defs>
7719 <path d="
7720 M0 0
7721 L0 4" id="m91aa736623"/>
7722 </defs>
7723 <g>
7724 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="149.1" xlink:href="#m91aa736623" y="12.55"/>
7725 </g>
7726 </g>
7727 <g id="text_3">
7728 <!-- −2 -->
7729 <defs>
7730 <path d="
7731 M19.1875 8.29688
7732 L53.6094 8.29688
7733 L53.6094 0
7734 L7.32812 0
7735 L7.32812 8.29688
7736 Q12.9375 14.1094 22.625 23.8906
7737 Q32.3281 33.6875 34.8125 36.5312
7738 Q39.5469 41.8438 41.4219 45.5312
7739 Q43.3125 49.2188 43.3125 52.7812
7740 Q43.3125 58.5938 39.2344 62.25
7741 Q35.1562 65.9219 28.6094 65.9219
7742 Q23.9688 65.9219 18.8125 64.3125
7743 Q13.6719 62.7031 7.8125 59.4219
7744 L7.8125 69.3906
7745 Q13.7656 71.7812 18.9375 73
7746 Q24.125 74.2188 28.4219 74.2188
7747 Q39.75 74.2188 46.4844 68.5469
7748 Q53.2188 62.8906 53.2188 53.4219
7749 Q53.2188 48.9219 51.5312 44.8906
7750 Q49.8594 40.875 45.4062 35.4062
7751 Q44.1875 33.9844 37.6406 27.2188
7752 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
7753 </defs>
7754 <g transform="translate(142.759375 241.411875)scale(0.1 -0.1)">
7755 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
7756 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-32"/>
7757 </g>
7758 </g>
7759 </g>
7760 <g id="xtick_4">
7761 <g id="line2d_8">
7762 <defs>
7763 <path d="
7764 M0 0
7765 L0 -4" id="m1e01ff8d7c"/>
7766 </defs>
7767 <g>
7768 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="204.9" xlink:href="#m1e01ff8d7c" y="229.99"/>
7769 </g>
7770 </g>
7771 <g id="line2d_9">
7772 <defs>
7773 <path d="
7774 M0 0
7775 L0 4" id="m91aa736623"/>
7776 </defs>
7777 <g>
7778 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="204.9" xlink:href="#m91aa736623" y="12.55"/>
7779 </g>
7780 </g>
7781 <g id="text_4">
7782 <!-- 0 -->
7783 <defs>
7784 <path d="
7785 M31.7812 66.4062
7786 Q24.1719 66.4062 20.3281 58.9062
7787 Q16.5 51.4219 16.5 36.375
7788 Q16.5 21.3906 20.3281 13.8906
7789 Q24.1719 6.39062 31.7812 6.39062
7790 Q39.4531 6.39062 43.2812 13.8906
7791 Q47.125 21.3906 47.125 36.375
7792 Q47.125 51.4219 43.2812 58.9062
7793 Q39.4531 66.4062 31.7812 66.4062
7794 M31.7812 74.2188
7795 Q44.0469 74.2188 50.5156 64.5156
7796 Q56.9844 54.8281 56.9844 36.375
7797 Q56.9844 17.9688 50.5156 8.26562
7798 Q44.0469 -1.42188 31.7812 -1.42188
7799 Q19.5312 -1.42188 13.0625 8.26562
7800 Q6.59375 17.9688 6.59375 36.375
7801 Q6.59375 54.8281 13.0625 64.5156
7802 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
7803 </defs>
7804 <g transform="translate(202.38046875 241.411875)scale(0.1 -0.1)">
7805 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
7806 </g>
7807 </g>
7808 </g>
7809 <g id="xtick_5">
7810 <g id="line2d_10">
7811 <defs>
7812 <path d="
7813 M0 0
7814 L0 -4" id="m1e01ff8d7c"/>
7815 </defs>
7816 <g>
7817 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="260.7" xlink:href="#m1e01ff8d7c" y="229.99"/>
7818 </g>
7819 </g>
7820 <g id="line2d_11">
7821 <defs>
7822 <path d="
7823 M0 0
7824 L0 4" id="m91aa736623"/>
7825 </defs>
7826 <g>
7827 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="260.7" xlink:href="#m91aa736623" y="12.55"/>
7828 </g>
7829 </g>
7830 <g id="text_5">
7831 <!-- 2 -->
7832 <g transform="translate(258.3859375 241.411875)scale(0.1 -0.1)">
7833 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
7834 </g>
7835 </g>
7836 </g>
7837 <g id="xtick_6">
7838 <g id="line2d_12">
7839 <defs>
7840 <path d="
7841 M0 0
7842 L0 -4" id="m1e01ff8d7c"/>
7843 </defs>
7844 <g>
7845 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="316.5" xlink:href="#m1e01ff8d7c" y="229.99"/>
7846 </g>
7847 </g>
7848 <g id="line2d_13">
7849 <defs>
7850 <path d="
7851 M0 0
7852 L0 4" id="m91aa736623"/>
7853 </defs>
7854 <g>
7855 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="316.5" xlink:href="#m91aa736623" y="12.55"/>
7856 </g>
7857 </g>
7858 <g id="text_6">
7859 <!-- 4 -->
7860 <g transform="translate(313.84375 241.280625)scale(0.1 -0.1)">
7861 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
7862 </g>
7863 </g>
7864 </g>
7865 <g id="xtick_7">
7866 <g id="line2d_14">
7867 <defs>
7868 <path d="
7869 M0 0
7870 L0 -4" id="m1e01ff8d7c"/>
7871 </defs>
7872 <g>
7873 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1e01ff8d7c" y="229.99"/>
7874 </g>
7875 </g>
7876 <g id="line2d_15">
7877 <defs>
7878 <path d="
7879 M0 0
7880 L0 4" id="m91aa736623"/>
7881 </defs>
7882 <g>
7883 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m91aa736623" y="12.55"/>
7884 </g>
7885 </g>
7886 <g id="text_7">
7887 <!-- 6 -->
7888 <g transform="translate(369.7828125 241.411875)scale(0.1 -0.1)">
7889 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
7890 </g>
7891 </g>
7892 </g>
7893 </g>
7894 <g id="matplotlib.axis_2">
7895 <g id="ytick_1">
7896 <g id="line2d_16">
7897 <defs>
7898 <path d="
7899 M0 0
7900 L4 0" id="mf019e8ac8f"/>
7901 </defs>
7902 <g>
7903 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="229.99"/>
7904 </g>
7905 </g>
7906 <g id="line2d_17">
7907 <defs>
7908 <path d="
7909 M0 0
7910 L-4 0" id="m1ec148bd55"/>
7911 </defs>
7912 <g>
7913 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="229.99"/>
7914 </g>
7915 </g>
7916 <g id="text_8">
7917 <!-- $\mathdefault{10^{-11}}$ -->
7918 <defs>
7919 <path d="
7920 M12.4062 8.29688
7921 L28.5156 8.29688
7922 L28.5156 63.9219
7923 L10.9844 60.4062
7924 L10.9844 69.3906
7925 L28.4219 72.9062
7926 L38.2812 72.9062
7927 L38.2812 8.29688
7928 L54.3906 8.29688
7929 L54.3906 0
7930 L12.4062 0
7931 z
7932 " id="BitstreamVeraSans-Roman-31"/>
7933 <path d="
7934 M4.89062 31.3906
7935 L31.2031 31.3906
7936 L31.2031 23.3906
7937 L4.89062 23.3906
7938 z
7939 " id="BitstreamVeraSans-Roman-2d"/>
7940 </defs>
7941 <g transform="translate(7.2 235.29)scale(0.1 -0.1)">
7942 <use transform="translate(0.0 2.465625)" xlink:href="#BitstreamVeraSans-Roman-31"/>
7943 <use transform="translate(63.623046875 2.465625)" xlink:href="#BitstreamVeraSans-Roman-30"/>
7944 <use transform="translate(127.24609375 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
7945 <use transform="translate(152.504882812 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-31"/>
7946 <use transform="translate(197.041015625 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-31"/>
7947 </g>
7948 </g>
7949 </g>
7950 <g id="ytick_2">
7951 <g id="line2d_18">
7952 <defs>
7953 <path d="
7954 M0 0
7955 L4 0" id="mf019e8ac8f"/>
7956 </defs>
7957 <g>
7958 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="210.222727273"/>
7959 </g>
7960 </g>
7961 <g id="line2d_19">
7962 <defs>
7963 <path d="
7964 M0 0
7965 L-4 0" id="m1ec148bd55"/>
7966 </defs>
7967 <g>
7968 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="210.222727273"/>
7969 </g>
7970 </g>
7971 <g id="text_9">
7972 <!-- $\mathdefault{10^{-10}}$ -->
7973 <g transform="translate(7.2 215.572727273)scale(0.1 -0.1)">
7974 <use transform="translate(0.0 2.546875)" xlink:href="#BitstreamVeraSans-Roman-31"/>
7975 <use transform="translate(63.623046875 2.546875)" xlink:href="#BitstreamVeraSans-Roman-30"/>
7976 <use transform="translate(127.24609375 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
7977 <use transform="translate(152.504882812 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-31"/>
7978 <use transform="translate(197.041015625 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-30"/>
7979 </g>
7980 </g>
7981 </g>
7982 <g id="ytick_3">
7983 <g id="line2d_20">
7984 <defs>
7985 <path d="
7986 M0 0
7987 L4 0" id="mf019e8ac8f"/>
7988 </defs>
7989 <g>
7990 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="190.455454545"/>
7991 </g>
7992 </g>
7993 <g id="line2d_21">
7994 <defs>
7995 <path d="
7996 M0 0
7997 L-4 0" id="m1ec148bd55"/>
7998 </defs>
7999 <g>
8000 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="190.455454545"/>
8001 </g>
8002 </g>
8003 <g id="text_10">
8004 <!-- $\mathdefault{10^{-9}}$ -->
8005 <defs>
8006 <path d="
8007 M10.9844 1.51562
8008 L10.9844 10.5
8009 Q14.7031 8.73438 18.5 7.8125
8010 Q22.3125 6.89062 25.9844 6.89062
8011 Q35.75 6.89062 40.8906 13.4531
8012 Q46.0469 20.0156 46.7812 33.4062
8013 Q43.9531 29.2031 39.5938 26.9531
8014 Q35.25 24.7031 29.9844 24.7031
8015 Q19.0469 24.7031 12.6719 31.3125
8016 Q6.29688 37.9375 6.29688 49.4219
8017 Q6.29688 60.6406 12.9375 67.4219
8018 Q19.5781 74.2188 30.6094 74.2188
8019 Q43.2656 74.2188 49.9219 64.5156
8020 Q56.5938 54.8281 56.5938 36.375
8021 Q56.5938 19.1406 48.4062 8.85938
8022 Q40.2344 -1.42188 26.4219 -1.42188
8023 Q22.7031 -1.42188 18.8906 -0.6875
8024 Q15.0938 0.046875 10.9844 1.51562
8025 M30.6094 32.4219
8026 Q37.25 32.4219 41.125 36.9531
8027 Q45.0156 41.5 45.0156 49.4219
8028 Q45.0156 57.2812 41.125 61.8438
8029 Q37.25 66.4062 30.6094 66.4062
8030 Q23.9688 66.4062 20.0938 61.8438
8031 Q16.2188 57.2812 16.2188 49.4219
8032 Q16.2188 41.5 20.0938 36.9531
8033 Q23.9688 32.4219 30.6094 32.4219" id="BitstreamVeraSans-Roman-39"/>
8034 </defs>
8035 <g transform="translate(11.6 195.805454545)scale(0.1 -0.1)">
8036 <use transform="translate(0.0 2.546875)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8037 <use transform="translate(63.623046875 2.546875)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8038 <use transform="translate(127.24609375 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8039 <use transform="translate(152.504882812 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-39"/>
8040 </g>
8041 </g>
8042 </g>
8043 <g id="ytick_4">
8044 <g id="line2d_22">
8045 <defs>
8046 <path d="
8047 M0 0
8048 L4 0" id="mf019e8ac8f"/>
8049 </defs>
8050 <g>
8051 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="170.688181818"/>
8052 </g>
8053 </g>
8054 <g id="line2d_23">
8055 <defs>
8056 <path d="
8057 M0 0
8058 L-4 0" id="m1ec148bd55"/>
8059 </defs>
8060 <g>
8061 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="170.688181818"/>
8062 </g>
8063 </g>
8064 <g id="text_11">
8065 <!-- $\mathdefault{10^{-8}}$ -->
8066 <defs>
8067 <path d="
8068 M31.7812 34.625
8069 Q24.75 34.625 20.7188 30.8594
8070 Q16.7031 27.0938 16.7031 20.5156
8071 Q16.7031 13.9219 20.7188 10.1562
8072 Q24.75 6.39062 31.7812 6.39062
8073 Q38.8125 6.39062 42.8594 10.1719
8074 Q46.9219 13.9688 46.9219 20.5156
8075 Q46.9219 27.0938 42.8906 30.8594
8076 Q38.875 34.625 31.7812 34.625
8077 M21.9219 38.8125
8078 Q15.5781 40.375 12.0312 44.7188
8079 Q8.5 49.0781 8.5 55.3281
8080 Q8.5 64.0625 14.7188 69.1406
8081 Q20.9531 74.2188 31.7812 74.2188
8082 Q42.6719 74.2188 48.875 69.1406
8083 Q55.0781 64.0625 55.0781 55.3281
8084 Q55.0781 49.0781 51.5312 44.7188
8085 Q48 40.375 41.7031 38.8125
8086 Q48.8281 37.1562 52.7969 32.3125
8087 Q56.7812 27.4844 56.7812 20.5156
8088 Q56.7812 9.90625 50.3125 4.23438
8089 Q43.8438 -1.42188 31.7812 -1.42188
8090 Q19.7344 -1.42188 13.25 4.23438
8091 Q6.78125 9.90625 6.78125 20.5156
8092 Q6.78125 27.4844 10.7812 32.3125
8093 Q14.7969 37.1562 21.9219 38.8125
8094 M18.3125 54.3906
8095 Q18.3125 48.7344 21.8438 45.5625
8096 Q25.3906 42.3906 31.7812 42.3906
8097 Q38.1406 42.3906 41.7188 45.5625
8098 Q45.3125 48.7344 45.3125 54.3906
8099 Q45.3125 60.0625 41.7188 63.2344
8100 Q38.1406 66.4062 31.7812 66.4062
8101 Q25.3906 66.4062 21.8438 63.2344
8102 Q18.3125 60.0625 18.3125 54.3906" id="BitstreamVeraSans-Roman-38"/>
8103 </defs>
8104 <g transform="translate(11.6 176.038181818)scale(0.1 -0.1)">
8105 <use transform="translate(0.0 2.546875)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8106 <use transform="translate(63.623046875 2.546875)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8107 <use transform="translate(127.24609375 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8108 <use transform="translate(152.504882812 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-38"/>
8109 </g>
8110 </g>
8111 </g>
8112 <g id="ytick_5">
8113 <g id="line2d_24">
8114 <defs>
8115 <path d="
8116 M0 0
8117 L4 0" id="mf019e8ac8f"/>
8118 </defs>
8119 <g>
8120 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="150.920909091"/>
8121 </g>
8122 </g>
8123 <g id="line2d_25">
8124 <defs>
8125 <path d="
8126 M0 0
8127 L-4 0" id="m1ec148bd55"/>
8128 </defs>
8129 <g>
8130 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="150.920909091"/>
8131 </g>
8132 </g>
8133 <g id="text_12">
8134 <!-- $\mathdefault{10^{-7}}$ -->
8135 <defs>
8136 <path d="
8137 M8.20312 72.9062
8138 L55.0781 72.9062
8139 L55.0781 68.7031
8140 L28.6094 0
8141 L18.3125 0
8142 L43.2188 64.5938
8143 L8.20312 64.5938
8144 z
8145 " id="BitstreamVeraSans-Roman-37"/>
8146 </defs>
8147 <g transform="translate(11.6 156.220909091)scale(0.1 -0.1)">
8148 <use transform="translate(0.0 2.465625)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8149 <use transform="translate(63.623046875 2.465625)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8150 <use transform="translate(127.24609375 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8151 <use transform="translate(152.504882812 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-37"/>
8152 </g>
8153 </g>
8154 </g>
8155 <g id="ytick_6">
8156 <g id="line2d_26">
8157 <defs>
8158 <path d="
8159 M0 0
8160 L4 0" id="mf019e8ac8f"/>
8161 </defs>
8162 <g>
8163 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="131.153636364"/>
8164 </g>
8165 </g>
8166 <g id="line2d_27">
8167 <defs>
8168 <path d="
8169 M0 0
8170 L-4 0" id="m1ec148bd55"/>
8171 </defs>
8172 <g>
8173 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="131.153636364"/>
8174 </g>
8175 </g>
8176 <g id="text_13">
8177 <!-- $\mathdefault{10^{-6}}$ -->
8178 <g transform="translate(11.6 136.503636364)scale(0.1 -0.1)">
8179 <use transform="translate(0.0 2.546875)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8180 <use transform="translate(63.623046875 2.546875)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8181 <use transform="translate(127.24609375 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8182 <use transform="translate(152.504882812 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-36"/>
8183 </g>
8184 </g>
8185 </g>
8186 <g id="ytick_7">
8187 <g id="line2d_28">
8188 <defs>
8189 <path d="
8190 M0 0
8191 L4 0" id="mf019e8ac8f"/>
8192 </defs>
8193 <g>
8194 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="111.386363636"/>
8195 </g>
8196 </g>
8197 <g id="line2d_29">
8198 <defs>
8199 <path d="
8200 M0 0
8201 L-4 0" id="m1ec148bd55"/>
8202 </defs>
8203 <g>
8204 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="111.386363636"/>
8205 </g>
8206 </g>
8207 <g id="text_14">
8208 <!-- $\mathdefault{10^{-5}}$ -->
8209 <defs>
8210 <path d="
8211 M10.7969 72.9062
8212 L49.5156 72.9062
8213 L49.5156 64.5938
8214 L19.8281 64.5938
8215 L19.8281 46.7344
8216 Q21.9688 47.4688 24.1094 47.8281
8217 Q26.2656 48.1875 28.4219 48.1875
8218 Q40.625 48.1875 47.75 41.5
8219 Q54.8906 34.8125 54.8906 23.3906
8220 Q54.8906 11.625 47.5625 5.09375
8221 Q40.2344 -1.42188 26.9062 -1.42188
8222 Q22.3125 -1.42188 17.5469 -0.640625
8223 Q12.7969 0.140625 7.71875 1.70312
8224 L7.71875 11.625
8225 Q12.1094 9.23438 16.7969 8.0625
8226 Q21.4844 6.89062 26.7031 6.89062
8227 Q35.1562 6.89062 40.0781 11.3281
8228 Q45.0156 15.7656 45.0156 23.3906
8229 Q45.0156 31 40.0781 35.4375
8230 Q35.1562 39.8906 26.7031 39.8906
8231 Q22.75 39.8906 18.8125 39.0156
8232 Q14.8906 38.1406 10.7969 36.2812
8233 z
8234 " id="BitstreamVeraSans-Roman-35"/>
8235 </defs>
8236 <g transform="translate(11.6 116.686363636)scale(0.1 -0.1)">
8237 <use transform="translate(0.0 2.465625)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8238 <use transform="translate(63.623046875 2.465625)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8239 <use transform="translate(127.24609375 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8240 <use transform="translate(152.504882812 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-35"/>
8241 </g>
8242 </g>
8243 </g>
8244 <g id="ytick_8">
8245 <g id="line2d_30">
8246 <defs>
8247 <path d="
8248 M0 0
8249 L4 0" id="mf019e8ac8f"/>
8250 </defs>
8251 <g>
8252 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="91.6190909091"/>
8253 </g>
8254 </g>
8255 <g id="line2d_31">
8256 <defs>
8257 <path d="
8258 M0 0
8259 L-4 0" id="m1ec148bd55"/>
8260 </defs>
8261 <g>
8262 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="91.6190909091"/>
8263 </g>
8264 </g>
8265 <g id="text_15">
8266 <!-- $\mathdefault{10^{-4}}$ -->
8267 <g transform="translate(11.6 96.9190909091)scale(0.1 -0.1)">
8268 <use transform="translate(0.0 2.465625)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8269 <use transform="translate(63.623046875 2.465625)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8270 <use transform="translate(127.24609375 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8271 <use transform="translate(152.504882812 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-34"/>
8272 </g>
8273 </g>
8274 </g>
8275 <g id="ytick_9">
8276 <g id="line2d_32">
8277 <defs>
8278 <path d="
8279 M0 0
8280 L4 0" id="mf019e8ac8f"/>
8281 </defs>
8282 <g>
8283 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="71.8518181818"/>
8284 </g>
8285 </g>
8286 <g id="line2d_33">
8287 <defs>
8288 <path d="
8289 M0 0
8290 L-4 0" id="m1ec148bd55"/>
8291 </defs>
8292 <g>
8293 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="71.8518181818"/>
8294 </g>
8295 </g>
8296 <g id="text_16">
8297 <!-- $\mathdefault{10^{-3}}$ -->
8298 <defs>
8299 <path d="
8300 M40.5781 39.3125
8301 Q47.6562 37.7969 51.625 33
8302 Q55.6094 28.2188 55.6094 21.1875
8303 Q55.6094 10.4062 48.1875 4.48438
8304 Q40.7656 -1.42188 27.0938 -1.42188
8305 Q22.5156 -1.42188 17.6562 -0.515625
8306 Q12.7969 0.390625 7.625 2.20312
8307 L7.625 11.7188
8308 Q11.7188 9.32812 16.5938 8.10938
8309 Q21.4844 6.89062 26.8125 6.89062
8310 Q36.0781 6.89062 40.9375 10.5469
8311 Q45.7969 14.2031 45.7969 21.1875
8312 Q45.7969 27.6406 41.2812 31.2656
8313 Q36.7656 34.9062 28.7188 34.9062
8314 L20.2188 34.9062
8315 L20.2188 43.0156
8316 L29.1094 43.0156
8317 Q36.375 43.0156 40.2344 45.9219
8318 Q44.0938 48.8281 44.0938 54.2969
8319 Q44.0938 59.9062 40.1094 62.9062
8320 Q36.1406 65.9219 28.7188 65.9219
8321 Q24.6562 65.9219 20.0156 65.0312
8322 Q15.375 64.1562 9.8125 62.3125
8323 L9.8125 71.0938
8324 Q15.4375 72.6562 20.3438 73.4375
8325 Q25.25 74.2188 29.5938 74.2188
8326 Q40.8281 74.2188 47.3594 69.1094
8327 Q53.9062 64.0156 53.9062 55.3281
8328 Q53.9062 49.2656 50.4375 45.0938
8329 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
8330 </defs>
8331 <g transform="translate(11.6 77.2018181818)scale(0.1 -0.1)">
8332 <use transform="translate(0.0 2.546875)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8333 <use transform="translate(63.623046875 2.546875)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8334 <use transform="translate(127.24609375 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8335 <use transform="translate(152.504882812 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-33"/>
8336 </g>
8337 </g>
8338 </g>
8339 <g id="ytick_10">
8340 <g id="line2d_34">
8341 <defs>
8342 <path d="
8343 M0 0
8344 L4 0" id="mf019e8ac8f"/>
8345 </defs>
8346 <g>
8347 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="52.0845454545"/>
8348 </g>
8349 </g>
8350 <g id="line2d_35">
8351 <defs>
8352 <path d="
8353 M0 0
8354 L-4 0" id="m1ec148bd55"/>
8355 </defs>
8356 <g>
8357 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="52.0845454545"/>
8358 </g>
8359 </g>
8360 <g id="text_17">
8361 <!-- $\mathdefault{10^{-2}}$ -->
8362 <g transform="translate(11.6 57.4345454545)scale(0.1 -0.1)">
8363 <use transform="translate(0.0 2.546875)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8364 <use transform="translate(63.623046875 2.546875)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8365 <use transform="translate(127.24609375 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8366 <use transform="translate(152.504882812 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-32"/>
8367 </g>
8368 </g>
8369 </g>
8370 <g id="ytick_11">
8371 <g id="line2d_36">
8372 <defs>
8373 <path d="
8374 M0 0
8375 L4 0" id="mf019e8ac8f"/>
8376 </defs>
8377 <g>
8378 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="32.3172727273"/>
8379 </g>
8380 </g>
8381 <g id="line2d_37">
8382 <defs>
8383 <path d="
8384 M0 0
8385 L-4 0" id="m1ec148bd55"/>
8386 </defs>
8387 <g>
8388 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="32.3172727273"/>
8389 </g>
8390 </g>
8391 <g id="text_18">
8392 <!-- $\mathdefault{10^{-1}}$ -->
8393 <g transform="translate(11.6 37.6172727273)scale(0.1 -0.1)">
8394 <use transform="translate(0.0 2.465625)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8395 <use transform="translate(63.623046875 2.465625)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8396 <use transform="translate(127.24609375 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-2d"/>
8397 <use transform="translate(152.504882812 54.965625)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8398 </g>
8399 </g>
8400 </g>
8401 <g id="ytick_12">
8402 <g id="line2d_38">
8403 <defs>
8404 <path d="
8405 M0 0
8406 L4 0" id="mf019e8ac8f"/>
8407 </defs>
8408 <g>
8409 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#mf019e8ac8f" y="12.55"/>
8410 </g>
8411 </g>
8412 <g id="line2d_39">
8413 <defs>
8414 <path d="
8415 M0 0
8416 L-4 0" id="m1ec148bd55"/>
8417 </defs>
8418 <g>
8419 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m1ec148bd55" y="12.55"/>
8420 </g>
8421 </g>
8422 <g id="text_19">
8423 <!-- $\mathdefault{10^{0}}$ -->
8424 <g transform="translate(14.2 17.9)scale(0.1 -0.1)">
8425 <use transform="translate(0.0 2.546875)" xlink:href="#BitstreamVeraSans-Roman-31"/>
8426 <use transform="translate(63.623046875 2.546875)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8427 <use transform="translate(127.24609375 55.046875)scale(0.7)" xlink:href="#BitstreamVeraSans-Roman-30"/>
8428 </g>
8429 </g>
8430 </g>
8431 <g id="ytick_13">
8432 <g id="line2d_40">
8433 <defs>
8434 <path d="
8435 M0 0
8436 L2 0" id="m74abc90232"/>
8437 </defs>
8438 <g>
8439 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="229.99"/>
8440 </g>
8441 </g>
8442 <g id="line2d_41">
8443 <defs>
8444 <path d="
8445 M0 0
8446 L-2 0" id="m034d8346fd"/>
8447 </defs>
8448 <g>
8449 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="229.99"/>
8450 </g>
8451 </g>
8452 </g>
8453 <g id="ytick_14">
8454 <g id="line2d_42">
8455 <defs>
8456 <path d="
8457 M0 0
8458 L2 0" id="m74abc90232"/>
8459 </defs>
8460 <g>
8461 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="210.222727273"/>
8462 </g>
8463 </g>
8464 <g id="line2d_43">
8465 <defs>
8466 <path d="
8467 M0 0
8468 L-2 0" id="m034d8346fd"/>
8469 </defs>
8470 <g>
8471 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="210.222727273"/>
8472 </g>
8473 </g>
8474 </g>
8475 <g id="ytick_15">
8476 <g id="line2d_44">
8477 <defs>
8478 <path d="
8479 M0 0
8480 L2 0" id="m74abc90232"/>
8481 </defs>
8482 <g>
8483 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="190.455454545"/>
8484 </g>
8485 </g>
8486 <g id="line2d_45">
8487 <defs>
8488 <path d="
8489 M0 0
8490 L-2 0" id="m034d8346fd"/>
8491 </defs>
8492 <g>
8493 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="190.455454545"/>
8494 </g>
8495 </g>
8496 </g>
8497 <g id="ytick_16">
8498 <g id="line2d_46">
8499 <defs>
8500 <path d="
8501 M0 0
8502 L2 0" id="m74abc90232"/>
8503 </defs>
8504 <g>
8505 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="170.688181818"/>
8506 </g>
8507 </g>
8508 <g id="line2d_47">
8509 <defs>
8510 <path d="
8511 M0 0
8512 L-2 0" id="m034d8346fd"/>
8513 </defs>
8514 <g>
8515 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="170.688181818"/>
8516 </g>
8517 </g>
8518 </g>
8519 <g id="ytick_17">
8520 <g id="line2d_48">
8521 <defs>
8522 <path d="
8523 M0 0
8524 L2 0" id="m74abc90232"/>
8525 </defs>
8526 <g>
8527 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="150.920909091"/>
8528 </g>
8529 </g>
8530 <g id="line2d_49">
8531 <defs>
8532 <path d="
8533 M0 0
8534 L-2 0" id="m034d8346fd"/>
8535 </defs>
8536 <g>
8537 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="150.920909091"/>
8538 </g>
8539 </g>
8540 </g>
8541 <g id="ytick_18">
8542 <g id="line2d_50">
8543 <defs>
8544 <path d="
8545 M0 0
8546 L2 0" id="m74abc90232"/>
8547 </defs>
8548 <g>
8549 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="131.153636364"/>
8550 </g>
8551 </g>
8552 <g id="line2d_51">
8553 <defs>
8554 <path d="
8555 M0 0
8556 L-2 0" id="m034d8346fd"/>
8557 </defs>
8558 <g>
8559 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="131.153636364"/>
8560 </g>
8561 </g>
8562 </g>
8563 <g id="ytick_19">
8564 <g id="line2d_52">
8565 <defs>
8566 <path d="
8567 M0 0
8568 L2 0" id="m74abc90232"/>
8569 </defs>
8570 <g>
8571 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="111.386363636"/>
8572 </g>
8573 </g>
8574 <g id="line2d_53">
8575 <defs>
8576 <path d="
8577 M0 0
8578 L-2 0" id="m034d8346fd"/>
8579 </defs>
8580 <g>
8581 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="111.386363636"/>
8582 </g>
8583 </g>
8584 </g>
8585 <g id="ytick_20">
8586 <g id="line2d_54">
8587 <defs>
8588 <path d="
8589 M0 0
8590 L2 0" id="m74abc90232"/>
8591 </defs>
8592 <g>
8593 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="91.6190909091"/>
8594 </g>
8595 </g>
8596 <g id="line2d_55">
8597 <defs>
8598 <path d="
8599 M0 0
8600 L-2 0" id="m034d8346fd"/>
8601 </defs>
8602 <g>
8603 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="91.6190909091"/>
8604 </g>
8605 </g>
8606 </g>
8607 <g id="ytick_21">
8608 <g id="line2d_56">
8609 <defs>
8610 <path d="
8611 M0 0
8612 L2 0" id="m74abc90232"/>
8613 </defs>
8614 <g>
8615 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="71.8518181818"/>
8616 </g>
8617 </g>
8618 <g id="line2d_57">
8619 <defs>
8620 <path d="
8621 M0 0
8622 L-2 0" id="m034d8346fd"/>
8623 </defs>
8624 <g>
8625 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="71.8518181818"/>
8626 </g>
8627 </g>
8628 </g>
8629 <g id="ytick_22">
8630 <g id="line2d_58">
8631 <defs>
8632 <path d="
8633 M0 0
8634 L2 0" id="m74abc90232"/>
8635 </defs>
8636 <g>
8637 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="52.0845454545"/>
8638 </g>
8639 </g>
8640 <g id="line2d_59">
8641 <defs>
8642 <path d="
8643 M0 0
8644 L-2 0" id="m034d8346fd"/>
8645 </defs>
8646 <g>
8647 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="52.0845454545"/>
8648 </g>
8649 </g>
8650 </g>
8651 <g id="ytick_23">
8652 <g id="line2d_60">
8653 <defs>
8654 <path d="
8655 M0 0
8656 L2 0" id="m74abc90232"/>
8657 </defs>
8658 <g>
8659 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="32.3172727273"/>
8660 </g>
8661 </g>
8662 <g id="line2d_61">
8663 <defs>
8664 <path d="
8665 M0 0
8666 L-2 0" id="m034d8346fd"/>
8667 </defs>
8668 <g>
8669 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="32.3172727273"/>
8670 </g>
8671 </g>
8672 </g>
8673 <g id="ytick_24">
8674 <g id="line2d_62">
8675 <defs>
8676 <path d="
8677 M0 0
8678 L2 0" id="m74abc90232"/>
8679 </defs>
8680 <g>
8681 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="37.5" xlink:href="#m74abc90232" y="12.55"/>
8682 </g>
8683 </g>
8684 <g id="line2d_63">
8685 <defs>
8686 <path d="
8687 M0 0
8688 L-2 0" id="m034d8346fd"/>
8689 </defs>
8690 <g>
8691 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="372.3" xlink:href="#m034d8346fd" y="12.55"/>
8692 </g>
8693 </g>
8694 </g>
8695 </g>
8696 <g id="patch_3">
8697 <path d="
8698 M37.5 12.55
8699 L372.3 12.55" style="fill:none;stroke:#000000;"/>
8700 </g>
8701 <g id="patch_4">
8702 <path d="
8703 M372.3 229.99
8704 L372.3 12.55" style="fill:none;stroke:#000000;"/>
8705 </g>
8706 <g id="patch_5">
8707 <path d="
8708 M37.5 229.99
8709 L372.3 229.99" style="fill:none;stroke:#000000;"/>
8710 </g>
8711 <g id="patch_6">
8712 <path d="
8713 M37.5 229.99
8714 L37.5 12.55" style="fill:none;stroke:#000000;"/>
8715 </g>
8716 </g>
8717 </g>
8718 <defs>
8719 <clipPath id="p0d6f05ecc4">
8720 <rect height="217.44" width="334.8" x="37.5" y="12.55"/>
8721 </clipPath>
8722 </defs>
8723 </svg>
8724
8725 </div>
8726 </div>
8727 </div>
8728 </div>
8729 </div>
8730 <div class="text_cell_render border-box-sizing rendered_html">
8731 <p>A histogram annotated with text inside the plot, using the <code>text</code> function:</p>
8732 </div>
8733 <div class="cell border-box-sizing code_cell vbox">
8734 <div class="input hbox">
8735 <div class="prompt input_prompt">In&nbsp;[65]:</div>
8736 <div class="input_area box-flex1">
8737 <div class="highlight"><pre><span class="n">mu</span><span class="p">,</span> <span class="n">sigma</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">15</span>
8738 <span class="n">x</span> <span class="o">=</span> <span class="n">mu</span> <span class="o">+</span> <span class="n">sigma</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">10000</span><span class="p">)</span>
8739
8740 <span class="c"># the histogram of the data</span>
8741 <span class="n">n</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">patches</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="n">normed</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">facecolor</span><span class="o">=</span><span class="s">&#39;g&#39;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.75</span><span class="p">)</span>
8742
8743 <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s">&#39;Smarts&#39;</span><span class="p">)</span>
8744 <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s">&#39;Probability&#39;</span><span class="p">)</span>
8745 <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&#39;Histogram of IQ&#39;</span><span class="p">)</span>
8746 <span class="c"># This will put a text fragment at the position given:</span>
8747 <span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="mi">55</span><span class="p">,</span> <span class="o">.</span><span class="mo">027</span><span class="p">,</span> <span class="s">r&#39;$\mu=100,\ \sigma=15$&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
8748 <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">40</span><span class="p">,</span> <span class="mi">160</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">0.03</span><span class="p">])</span>
8749 <span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
8750 </pre></div>
8751
8752 </div>
8753 </div>
8754 <div class="vbox output_wrapper">
8755 <div class="output vbox">
8756 <div class="hbox output_area">
8757 <div class="prompt output_prompt"></div>
8758 <div class="output_subarea output_display_data">
8759 <?xml version="1.0" encoding="utf-8" standalone="no"?>
8760 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
8761 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
8762 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
8763 <svg height="270pt" version="1.1" viewBox="0 0 403 270" width="403pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
8764 <defs>
8765 <style type="text/css">
8766 *{stroke-linecap:square;stroke-linejoin:round;}
8767 </style>
8768 </defs>
8769 <g id="figure_1">
8770 <g id="patch_1">
8771 <path d="
8772 M0 270.086
8773 L403.845 270.086
8774 L403.845 0
8775 L0 0
8776 z
8777 " style="fill:#ffffff;"/>
8778 </g>
8779 <g id="axes_1">
8780 <g id="patch_2">
8781 <path d="
8782 M53.1828 238.758
8783 L387.983 238.758
8784 L387.983 21.3181
8785 L53.1828 21.3181
8786 z
8787 " style="fill:#ffffff;"/>
8788 </g>
8789 <g id="patch_3">
8790 <path clip-path="url(#pac08750901)" d="
8791 M65.3903 238.758
8792 L72.0461 238.758
8793 L72.0461 238.15
8794 L65.3903 238.15
8795 z
8796 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8797 </g>
8798 <g id="patch_4">
8799 <path clip-path="url(#pac08750901)" d="
8800 M72.0461 238.758
8801 L78.702 238.758
8802 L78.702 238.454
8803 L72.0461 238.454
8804 z
8805 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8806 </g>
8807 <g id="patch_5">
8808 <path clip-path="url(#pac08750901)" d="
8809 M78.702 238.758
8810 L85.3578 238.758
8811 L85.3578 237.847
8812 L78.702 237.847
8813 z
8814 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8815 </g>
8816 <g id="patch_6">
8817 <path clip-path="url(#pac08750901)" d="
8818 M85.3578 238.758
8819 L92.0137 238.758
8820 L92.0137 238.454
8821 L85.3578 238.454
8822 z
8823 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8824 </g>
8825 <g id="patch_7">
8826 <path clip-path="url(#pac08750901)" d="
8827 M92.0137 238.758
8828 L98.6695 238.758
8829 L98.6695 235.416
8830 L92.0137 235.416
8831 z
8832 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8833 </g>
8834 <g id="patch_8">
8835 <path clip-path="url(#pac08750901)" d="
8836 M98.6695 238.758
8837 L105.325 238.758
8838 L105.325 236.024
8839 L98.6695 236.024
8840 z
8841 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8842 </g>
8843 <g id="patch_9">
8844 <path clip-path="url(#pac08750901)" d="
8845 M105.325 238.758
8846 L111.981 238.758
8847 L111.981 232.986
8848 L105.325 232.986
8849 z
8850 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8851 </g>
8852 <g id="patch_10">
8853 <path clip-path="url(#pac08750901)" d="
8854 M111.981 238.758
8855 L118.637 238.758
8856 L118.637 228.428
8857 L111.981 228.428
8858 z
8859 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8860 </g>
8861 <g id="patch_11">
8862 <path clip-path="url(#pac08750901)" d="
8863 M118.637 238.758
8864 L125.293 238.758
8865 L125.293 226.605
8866 L118.637 226.605
8867 z
8868 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8869 </g>
8870 <g id="patch_12">
8871 <path clip-path="url(#pac08750901)" d="
8872 M125.293 238.758
8873 L131.949 238.758
8874 L131.949 223.567
8875 L125.293 223.567
8876 z
8877 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8878 </g>
8879 <g id="patch_13">
8880 <path clip-path="url(#pac08750901)" d="
8881 M131.949 238.758
8882 L138.605 238.758
8883 L138.605 211.414
8884 L131.949 211.414
8885 z
8886 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8887 </g>
8888 <g id="patch_14">
8889 <path clip-path="url(#pac08750901)" d="
8890 M138.605 238.758
8891 L145.26 238.758
8892 L145.26 205.338
8893 L138.605 205.338
8894 z
8895 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8896 </g>
8897 <g id="patch_15">
8898 <path clip-path="url(#pac08750901)" d="
8899 M145.26 238.758
8900 L151.916 238.758
8901 L151.916 199.869
8902 L145.26 199.869
8903 z
8904 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8905 </g>
8906 <g id="patch_16">
8907 <path clip-path="url(#pac08750901)" d="
8908 M151.916 238.758
8909 L158.572 238.758
8910 L158.572 181.336
8911 L151.916 181.336
8912 z
8913 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8914 </g>
8915 <g id="patch_17">
8916 <path clip-path="url(#pac08750901)" d="
8917 M158.572 238.758
8918 L165.228 238.758
8919 L165.228 164.018
8920 L158.572 164.018
8921 z
8922 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8923 </g>
8924 <g id="patch_18">
8925 <path clip-path="url(#pac08750901)" d="
8926 M165.228 238.758
8927 L171.884 238.758
8928 L171.884 140.624
8929 L165.228 140.624
8930 z
8931 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8932 </g>
8933 <g id="patch_19">
8934 <path clip-path="url(#pac08750901)" d="
8935 M171.884 238.758
8936 L178.54 238.758
8937 L178.54 131.509
8938 L171.884 131.509
8939 z
8940 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8941 </g>
8942 <g id="patch_20">
8943 <path clip-path="url(#pac08750901)" d="
8944 M178.54 238.758
8945 L185.196 238.758
8946 L185.196 115.103
8947 L178.54 115.103
8948 z
8949 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8950 </g>
8951 <g id="patch_21">
8952 <path clip-path="url(#pac08750901)" d="
8953 M185.196 238.758
8954 L191.851 238.758
8955 L191.851 94.7465
8956 L185.196 94.7465
8957 z
8958 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8959 </g>
8960 <g id="patch_22">
8961 <path clip-path="url(#pac08750901)" d="
8962 M191.851 238.758
8963 L198.507 238.758
8964 L198.507 79.2516
8965 L191.851 79.2516
8966 z
8967 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8968 </g>
8969 <g id="patch_23">
8970 <path clip-path="url(#pac08750901)" d="
8971 M198.507 238.758
8972 L205.163 238.758
8973 L205.163 74.6943
8974 L198.507 74.6943
8975 z
8976 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8977 </g>
8978 <g id="patch_24">
8979 <path clip-path="url(#pac08750901)" d="
8980 M205.163 238.758
8981 L211.819 238.758
8982 L211.819 60.4147
8983 L205.163 60.4147
8984 z
8985 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8986 </g>
8987 <g id="patch_25">
8988 <path clip-path="url(#pac08750901)" d="
8989 M211.819 238.758
8990 L218.475 238.758
8991 L218.475 49.1733
8992 L211.819 49.1733
8993 z
8994 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
8995 </g>
8996 <g id="patch_26">
8997 <path clip-path="url(#pac08750901)" d="
8998 M218.475 238.758
8999 L225.131 238.758
9000 L225.131 40.9701
9001 L218.475 40.9701
9002 z
9003 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9004 </g>
9005 <g id="patch_27">
9006 <path clip-path="url(#pac08750901)" d="
9007 M225.131 238.758
9008 L231.786 238.758
9009 L231.786 43.0968
9010 L225.131 43.0968
9011 z
9012 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9013 </g>
9014 <g id="patch_28">
9015 <path clip-path="url(#pac08750901)" d="
9016 M231.786 238.758
9017 L238.442 238.758
9018 L238.442 45.5274
9019 L231.786 45.5274
9020 z
9021 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9022 </g>
9023 <g id="patch_29">
9024 <path clip-path="url(#pac08750901)" d="
9025 M238.442 238.758
9026 L245.098 238.758
9027 L245.098 78.9478
9028 L238.442 78.9478
9029 z
9030 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9031 </g>
9032 <g id="patch_30">
9033 <path clip-path="url(#pac08750901)" d="
9034 M245.098 238.758
9035 L251.754 238.758
9036 L251.754 75.9096
9037 L245.098 75.9096
9038 z
9039 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9040 </g>
9041 <g id="patch_31">
9042 <path clip-path="url(#pac08750901)" d="
9043 M251.754 238.758
9044 L258.41 238.758
9045 L258.41 107.203
9046 L251.754 107.203
9047 z
9048 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9049 </g>
9050 <g id="patch_32">
9051 <path clip-path="url(#pac08750901)" d="
9052 M258.41 238.758
9053 L265.066 238.758
9054 L265.066 124.521
9055 L258.41 124.521
9056 z
9057 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9058 </g>
9059 <g id="patch_33">
9060 <path clip-path="url(#pac08750901)" d="
9061 M265.066 238.758
9062 L271.722 238.758
9063 L271.722 137.282
9064 L265.066 137.282
9065 z
9066 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9067 </g>
9068 <g id="patch_34">
9069 <path clip-path="url(#pac08750901)" d="
9070 M271.722 238.758
9071 L278.377 238.758
9072 L278.377 163.106
9073 L271.722 163.106
9074 z
9075 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9076 </g>
9077 <g id="patch_35">
9078 <path clip-path="url(#pac08750901)" d="
9079 M278.377 238.758
9080 L285.033 238.758
9081 L285.033 168.575
9082 L278.377 168.575
9083 z
9084 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9085 </g>
9086 <g id="patch_36">
9087 <path clip-path="url(#pac08750901)" d="
9088 M285.033 238.758
9089 L291.689 238.758
9090 L291.689 186.805
9091 L285.033 186.805
9092 z
9093 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9094 </g>
9095 <g id="patch_37">
9096 <path clip-path="url(#pac08750901)" d="
9097 M291.689 238.758
9098 L298.345 238.758
9099 L298.345 196.831
9100 L291.689 196.831
9101 z
9102 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9103 </g>
9104 <g id="patch_38">
9105 <path clip-path="url(#pac08750901)" d="
9106 M298.345 238.758
9107 L305.001 238.758
9108 L305.001 211.718
9109 L298.345 211.718
9110 z
9111 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9112 </g>
9113 <g id="patch_39">
9114 <path clip-path="url(#pac08750901)" d="
9115 M305.001 238.758
9116 L311.657 238.758
9117 L311.657 216.579
9118 L305.001 216.579
9119 z
9120 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9121 </g>
9122 <g id="patch_40">
9123 <path clip-path="url(#pac08750901)" d="
9124 M311.657 238.758
9125 L318.312 238.758
9126 L318.312 222.352
9127 L311.657 222.352
9128 z
9129 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9130 </g>
9131 <g id="patch_41">
9132 <path clip-path="url(#pac08750901)" d="
9133 M318.312 238.758
9134 L324.968 238.758
9135 L324.968 232.378
9136 L318.312 232.378
9137 z
9138 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9139 </g>
9140 <g id="patch_42">
9141 <path clip-path="url(#pac08750901)" d="
9142 M324.968 238.758
9143 L331.624 238.758
9144 L331.624 232.074
9145 L324.968 232.074
9146 z
9147 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9148 </g>
9149 <g id="patch_43">
9150 <path clip-path="url(#pac08750901)" d="
9151 M331.624 238.758
9152 L338.28 238.758
9153 L338.28 233.897
9154 L331.624 233.897
9155 z
9156 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9157 </g>
9158 <g id="patch_44">
9159 <path clip-path="url(#pac08750901)" d="
9160 M338.28 238.758
9161 L344.936 238.758
9162 L344.936 235.72
9163 L338.28 235.72
9164 z
9165 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9166 </g>
9167 <g id="patch_45">
9168 <path clip-path="url(#pac08750901)" d="
9169 M344.936 238.758
9170 L351.592 238.758
9171 L351.592 236.328
9172 L344.936 236.328
9173 z
9174 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9175 </g>
9176 <g id="patch_46">
9177 <path clip-path="url(#pac08750901)" d="
9178 M351.592 238.758
9179 L358.248 238.758
9180 L358.248 236.328
9181 L351.592 236.328
9182 z
9183 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9184 </g>
9185 <g id="patch_47">
9186 <path clip-path="url(#pac08750901)" d="
9187 M358.248 238.758
9188 L364.903 238.758
9189 L364.903 237.847
9190 L358.248 237.847
9191 z
9192 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9193 </g>
9194 <g id="patch_48">
9195 <path clip-path="url(#pac08750901)" d="
9196 M364.903 238.758
9197 L371.559 238.758
9198 L371.559 238.454
9199 L364.903 238.454
9200 z
9201 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9202 </g>
9203 <g id="patch_49">
9204 <path clip-path="url(#pac08750901)" d="
9205 M371.559 238.758
9206 L378.215 238.758
9207 L378.215 238.758
9208 L371.559 238.758
9209 z
9210 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9211 </g>
9212 <g id="patch_50">
9213 <path clip-path="url(#pac08750901)" d="
9214 M378.215 238.758
9215 L384.871 238.758
9216 L384.871 238.15
9217 L378.215 238.15
9218 z
9219 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9220 </g>
9221 <g id="patch_51">
9222 <path clip-path="url(#pac08750901)" d="
9223 M384.871 238.758
9224 L391.527 238.758
9225 L391.527 238.758
9226 L384.871 238.758
9227 z
9228 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9229 </g>
9230 <g id="patch_52">
9231 <path clip-path="url(#pac08750901)" d="
9232 M391.527 238.758
9233 L398.183 238.758
9234 L398.183 238.15
9235 L391.527 238.15
9236 z
9237 " style="fill:#008000;opacity:0.75;stroke:#000000;"/>
9238 </g>
9239 <g id="matplotlib.axis_1">
9240 <g id="xtick_1">
9241 <g id="line2d_1">
9242 <path clip-path="url(#pac08750901)" d="
9243 M53.1828 238.758
9244 L53.1828 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9245 </g>
9246 <g id="line2d_2">
9247 <defs>
9248 <path d="
9249 M0 0
9250 L0 -4" id="m1e01ff8d7c"/>
9251 </defs>
9252 <g>
9253 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
9254 </g>
9255 </g>
9256 <g id="line2d_3">
9257 <defs>
9258 <path d="
9259 M0 0
9260 L0 4" id="m91aa736623"/>
9261 </defs>
9262 <g>
9263 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#m91aa736623" y="21.318125"/>
9264 </g>
9265 </g>
9266 <g id="text_1">
9267 <!-- 40 -->
9268 <defs>
9269 <path d="
9270 M31.7812 66.4062
9271 Q24.1719 66.4062 20.3281 58.9062
9272 Q16.5 51.4219 16.5 36.375
9273 Q16.5 21.3906 20.3281 13.8906
9274 Q24.1719 6.39062 31.7812 6.39062
9275 Q39.4531 6.39062 43.2812 13.8906
9276 Q47.125 21.3906 47.125 36.375
9277 Q47.125 51.4219 43.2812 58.9062
9278 Q39.4531 66.4062 31.7812 66.4062
9279 M31.7812 74.2188
9280 Q44.0469 74.2188 50.5156 64.5156
9281 Q56.9844 54.8281 56.9844 36.375
9282 Q56.9844 17.9688 50.5156 8.26562
9283 Q44.0469 -1.42188 31.7812 -1.42188
9284 Q19.5312 -1.42188 13.0625 8.26562
9285 Q6.59375 17.9688 6.59375 36.375
9286 Q6.59375 54.8281 13.0625 64.5156
9287 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
9288 <path d="
9289 M37.7969 64.3125
9290 L12.8906 25.3906
9291 L37.7969 25.3906
9292 z
9293
9294 M35.2031 72.9062
9295 L47.6094 72.9062
9296 L47.6094 25.3906
9297 L58.0156 25.3906
9298 L58.0156 17.1875
9299 L47.6094 17.1875
9300 L47.6094 0
9301 L37.7969 0
9302 L37.7969 17.1875
9303 L4.89062 17.1875
9304 L4.89062 26.7031
9305 z
9306 " id="BitstreamVeraSans-Roman-34"/>
9307 </defs>
9308 <g transform="translate(47.396875 250.18)scale(0.1 -0.1)">
9309 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
9310 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
9311 </g>
9312 </g>
9313 </g>
9314 <g id="xtick_2">
9315 <g id="line2d_4">
9316 <path clip-path="url(#pac08750901)" d="
9317 M108.983 238.758
9318 L108.983 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9319 </g>
9320 <g id="line2d_5">
9321 <defs>
9322 <path d="
9323 M0 0
9324 L0 -4" id="m1e01ff8d7c"/>
9325 </defs>
9326 <g>
9327 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="108.9828125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
9328 </g>
9329 </g>
9330 <g id="line2d_6">
9331 <defs>
9332 <path d="
9333 M0 0
9334 L0 4" id="m91aa736623"/>
9335 </defs>
9336 <g>
9337 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="108.9828125" xlink:href="#m91aa736623" y="21.318125"/>
9338 </g>
9339 </g>
9340 <g id="text_2">
9341 <!-- 60 -->
9342 <defs>
9343 <path d="
9344 M33.0156 40.375
9345 Q26.375 40.375 22.4844 35.8281
9346 Q18.6094 31.2969 18.6094 23.3906
9347 Q18.6094 15.5312 22.4844 10.9531
9348 Q26.375 6.39062 33.0156 6.39062
9349 Q39.6562 6.39062 43.5312 10.9531
9350 Q47.4062 15.5312 47.4062 23.3906
9351 Q47.4062 31.2969 43.5312 35.8281
9352 Q39.6562 40.375 33.0156 40.375
9353 M52.5938 71.2969
9354 L52.5938 62.3125
9355 Q48.875 64.0625 45.0938 64.9844
9356 Q41.3125 65.9219 37.5938 65.9219
9357 Q27.8281 65.9219 22.6719 59.3281
9358 Q17.5312 52.7344 16.7969 39.4062
9359 Q19.6719 43.6562 24.0156 45.9219
9360 Q28.375 48.1875 33.5938 48.1875
9361 Q44.5781 48.1875 50.9531 41.5156
9362 Q57.3281 34.8594 57.3281 23.3906
9363 Q57.3281 12.1562 50.6875 5.35938
9364 Q44.0469 -1.42188 33.0156 -1.42188
9365 Q20.3594 -1.42188 13.6719 8.26562
9366 Q6.98438 17.9688 6.98438 36.375
9367 Q6.98438 53.6562 15.1875 63.9375
9368 Q23.3906 74.2188 37.2031 74.2188
9369 Q40.9219 74.2188 44.7031 73.4844
9370 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
9371 </defs>
9372 <g transform="translate(103.3015625 250.18)scale(0.1 -0.1)">
9373 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
9374 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
9375 </g>
9376 </g>
9377 </g>
9378 <g id="xtick_3">
9379 <g id="line2d_7">
9380 <path clip-path="url(#pac08750901)" d="
9381 M164.783 238.758
9382 L164.783 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9383 </g>
9384 <g id="line2d_8">
9385 <defs>
9386 <path d="
9387 M0 0
9388 L0 -4" id="m1e01ff8d7c"/>
9389 </defs>
9390 <g>
9391 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="164.7828125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
9392 </g>
9393 </g>
9394 <g id="line2d_9">
9395 <defs>
9396 <path d="
9397 M0 0
9398 L0 4" id="m91aa736623"/>
9399 </defs>
9400 <g>
9401 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="164.7828125" xlink:href="#m91aa736623" y="21.318125"/>
9402 </g>
9403 </g>
9404 <g id="text_3">
9405 <!-- 80 -->
9406 <defs>
9407 <path d="
9408 M31.7812 34.625
9409 Q24.75 34.625 20.7188 30.8594
9410 Q16.7031 27.0938 16.7031 20.5156
9411 Q16.7031 13.9219 20.7188 10.1562
9412 Q24.75 6.39062 31.7812 6.39062
9413 Q38.8125 6.39062 42.8594 10.1719
9414 Q46.9219 13.9688 46.9219 20.5156
9415 Q46.9219 27.0938 42.8906 30.8594
9416 Q38.875 34.625 31.7812 34.625
9417 M21.9219 38.8125
9418 Q15.5781 40.375 12.0312 44.7188
9419 Q8.5 49.0781 8.5 55.3281
9420 Q8.5 64.0625 14.7188 69.1406
9421 Q20.9531 74.2188 31.7812 74.2188
9422 Q42.6719 74.2188 48.875 69.1406
9423 Q55.0781 64.0625 55.0781 55.3281
9424 Q55.0781 49.0781 51.5312 44.7188
9425 Q48 40.375 41.7031 38.8125
9426 Q48.8281 37.1562 52.7969 32.3125
9427 Q56.7812 27.4844 56.7812 20.5156
9428 Q56.7812 9.90625 50.3125 4.23438
9429 Q43.8438 -1.42188 31.7812 -1.42188
9430 Q19.7344 -1.42188 13.25 4.23438
9431 Q6.78125 9.90625 6.78125 20.5156
9432 Q6.78125 27.4844 10.7812 32.3125
9433 Q14.7969 37.1562 21.9219 38.8125
9434 M18.3125 54.3906
9435 Q18.3125 48.7344 21.8438 45.5625
9436 Q25.3906 42.3906 31.7812 42.3906
9437 Q38.1406 42.3906 41.7188 45.5625
9438 Q45.3125 48.7344 45.3125 54.3906
9439 Q45.3125 60.0625 41.7188 63.2344
9440 Q38.1406 66.4062 31.7812 66.4062
9441 Q25.3906 66.4062 21.8438 63.2344
9442 Q18.3125 60.0625 18.3125 54.3906" id="BitstreamVeraSans-Roman-38"/>
9443 </defs>
9444 <g transform="translate(159.09140625 250.18)scale(0.1 -0.1)">
9445 <use xlink:href="#BitstreamVeraSans-Roman-38"/>
9446 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
9447 </g>
9448 </g>
9449 </g>
9450 <g id="xtick_4">
9451 <g id="line2d_10">
9452 <path clip-path="url(#pac08750901)" d="
9453 M220.583 238.758
9454 L220.583 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9455 </g>
9456 <g id="line2d_11">
9457 <defs>
9458 <path d="
9459 M0 0
9460 L0 -4" id="m1e01ff8d7c"/>
9461 </defs>
9462 <g>
9463 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="220.5828125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
9464 </g>
9465 </g>
9466 <g id="line2d_12">
9467 <defs>
9468 <path d="
9469 M0 0
9470 L0 4" id="m91aa736623"/>
9471 </defs>
9472 <g>
9473 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="220.5828125" xlink:href="#m91aa736623" y="21.318125"/>
9474 </g>
9475 </g>
9476 <g id="text_4">
9477 <!-- 100 -->
9478 <defs>
9479 <path d="
9480 M12.4062 8.29688
9481 L28.5156 8.29688
9482 L28.5156 63.9219
9483 L10.9844 60.4062
9484 L10.9844 69.3906
9485 L28.4219 72.9062
9486 L38.2812 72.9062
9487 L38.2812 8.29688
9488 L54.3906 8.29688
9489 L54.3906 0
9490 L12.4062 0
9491 z
9492 " id="BitstreamVeraSans-Roman-31"/>
9493 </defs>
9494 <g transform="translate(211.9203125 250.18)scale(0.1 -0.1)">
9495 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
9496 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
9497 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
9498 </g>
9499 </g>
9500 </g>
9501 <g id="xtick_5">
9502 <g id="line2d_13">
9503 <path clip-path="url(#pac08750901)" d="
9504 M276.383 238.758
9505 L276.383 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9506 </g>
9507 <g id="line2d_14">
9508 <defs>
9509 <path d="
9510 M0 0
9511 L0 -4" id="m1e01ff8d7c"/>
9512 </defs>
9513 <g>
9514 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="276.3828125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
9515 </g>
9516 </g>
9517 <g id="line2d_15">
9518 <defs>
9519 <path d="
9520 M0 0
9521 L0 4" id="m91aa736623"/>
9522 </defs>
9523 <g>
9524 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="276.3828125" xlink:href="#m91aa736623" y="21.318125"/>
9525 </g>
9526 </g>
9527 <g id="text_5">
9528 <!-- 120 -->
9529 <defs>
9530 <path d="
9531 M19.1875 8.29688
9532 L53.6094 8.29688
9533 L53.6094 0
9534 L7.32812 0
9535 L7.32812 8.29688
9536 Q12.9375 14.1094 22.625 23.8906
9537 Q32.3281 33.6875 34.8125 36.5312
9538 Q39.5469 41.8438 41.4219 45.5312
9539 Q43.3125 49.2188 43.3125 52.7812
9540 Q43.3125 58.5938 39.2344 62.25
9541 Q35.1562 65.9219 28.6094 65.9219
9542 Q23.9688 65.9219 18.8125 64.3125
9543 Q13.6719 62.7031 7.8125 59.4219
9544 L7.8125 69.3906
9545 Q13.7656 71.7812 18.9375 73
9546 Q24.125 74.2188 28.4219 74.2188
9547 Q39.75 74.2188 46.4844 68.5469
9548 Q53.2188 62.8906 53.2188 53.4219
9549 Q53.2188 48.9219 51.5312 44.8906
9550 Q49.8594 40.875 45.4062 35.4062
9551 Q44.1875 33.9844 37.6406 27.2188
9552 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
9553 </defs>
9554 <g transform="translate(267.7203125 250.18)scale(0.1 -0.1)">
9555 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
9556 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-32"/>
9557 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
9558 </g>
9559 </g>
9560 </g>
9561 <g id="xtick_6">
9562 <g id="line2d_16">
9563 <path clip-path="url(#pac08750901)" d="
9564 M332.183 238.758
9565 L332.183 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9566 </g>
9567 <g id="line2d_17">
9568 <defs>
9569 <path d="
9570 M0 0
9571 L0 -4" id="m1e01ff8d7c"/>
9572 </defs>
9573 <g>
9574 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="332.1828125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
9575 </g>
9576 </g>
9577 <g id="line2d_18">
9578 <defs>
9579 <path d="
9580 M0 0
9581 L0 4" id="m91aa736623"/>
9582 </defs>
9583 <g>
9584 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="332.1828125" xlink:href="#m91aa736623" y="21.318125"/>
9585 </g>
9586 </g>
9587 <g id="text_6">
9588 <!-- 140 -->
9589 <g transform="translate(323.5203125 250.18)scale(0.1 -0.1)">
9590 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
9591 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-34"/>
9592 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
9593 </g>
9594 </g>
9595 </g>
9596 <g id="xtick_7">
9597 <g id="line2d_19">
9598 <path clip-path="url(#pac08750901)" d="
9599 M387.983 238.758
9600 L387.983 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9601 </g>
9602 <g id="line2d_20">
9603 <defs>
9604 <path d="
9605 M0 0
9606 L0 -4" id="m1e01ff8d7c"/>
9607 </defs>
9608 <g>
9609 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1e01ff8d7c" y="238.758125"/>
9610 </g>
9611 </g>
9612 <g id="line2d_21">
9613 <defs>
9614 <path d="
9615 M0 0
9616 L0 4" id="m91aa736623"/>
9617 </defs>
9618 <g>
9619 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m91aa736623" y="21.318125"/>
9620 </g>
9621 </g>
9622 <g id="text_7">
9623 <!-- 160 -->
9624 <g transform="translate(379.3203125 250.18)scale(0.1 -0.1)">
9625 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
9626 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-36"/>
9627 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
9628 </g>
9629 </g>
9630 </g>
9631 <g id="text_8">
9632 <!-- Smarts -->
9633 <defs>
9634 <path d="
9635 M34.2812 27.4844
9636 Q23.3906 27.4844 19.1875 25
9637 Q14.9844 22.5156 14.9844 16.5
9638 Q14.9844 11.7188 18.1406 8.90625
9639 Q21.2969 6.10938 26.7031 6.10938
9640 Q34.1875 6.10938 38.7031 11.4062
9641 Q43.2188 16.7031 43.2188 25.4844
9642 L43.2188 27.4844
9643 z
9644
9645 M52.2031 31.2031
9646 L52.2031 0
9647 L43.2188 0
9648 L43.2188 8.29688
9649 Q40.1406 3.32812 35.5469 0.953125
9650 Q30.9531 -1.42188 24.3125 -1.42188
9651 Q15.9219 -1.42188 10.9531 3.29688
9652 Q6 8.01562 6 15.9219
9653 Q6 25.1406 12.1719 29.8281
9654 Q18.3594 34.5156 30.6094 34.5156
9655 L43.2188 34.5156
9656 L43.2188 35.4062
9657 Q43.2188 41.6094 39.1406 45
9658 Q35.0625 48.3906 27.6875 48.3906
9659 Q23 48.3906 18.5469 47.2656
9660 Q14.1094 46.1406 10.0156 43.8906
9661 L10.0156 52.2031
9662 Q14.9375 54.1094 19.5781 55.0469
9663 Q24.2188 56 28.6094 56
9664 Q40.4844 56 46.3438 49.8438
9665 Q52.2031 43.7031 52.2031 31.2031" id="BitstreamVeraSans-Roman-61"/>
9666 <path d="
9667 M52 44.1875
9668 Q55.375 50.25 60.0625 53.125
9669 Q64.75 56 71.0938 56
9670 Q79.6406 56 84.2812 50.0156
9671 Q88.9219 44.0469 88.9219 33.0156
9672 L88.9219 0
9673 L79.8906 0
9674 L79.8906 32.7188
9675 Q79.8906 40.5781 77.0938 44.375
9676 Q74.3125 48.1875 68.6094 48.1875
9677 Q61.625 48.1875 57.5625 43.5469
9678 Q53.5156 38.9219 53.5156 30.9062
9679 L53.5156 0
9680 L44.4844 0
9681 L44.4844 32.7188
9682 Q44.4844 40.625 41.7031 44.4062
9683 Q38.9219 48.1875 33.1094 48.1875
9684 Q26.2188 48.1875 22.1562 43.5312
9685 Q18.1094 38.875 18.1094 30.9062
9686 L18.1094 0
9687 L9.07812 0
9688 L9.07812 54.6875
9689 L18.1094 54.6875
9690 L18.1094 46.1875
9691 Q21.1875 51.2188 25.4844 53.6094
9692 Q29.7812 56 35.6875 56
9693 Q41.6562 56 45.8281 52.9688
9694 Q50 49.9531 52 44.1875" id="BitstreamVeraSans-Roman-6d"/>
9695 <path d="
9696 M53.5156 70.5156
9697 L53.5156 60.8906
9698 Q47.9062 63.5781 42.9219 64.8906
9699 Q37.9375 66.2188 33.2969 66.2188
9700 Q25.25 66.2188 20.875 63.0938
9701 Q16.5 59.9688 16.5 54.2031
9702 Q16.5 49.3594 19.4062 46.8906
9703 Q22.3125 44.4375 30.4219 42.9219
9704 L36.375 41.7031
9705 Q47.4062 39.5938 52.6562 34.2969
9706 Q57.9062 29 57.9062 20.125
9707 Q57.9062 9.51562 50.7969 4.04688
9708 Q43.7031 -1.42188 29.9844 -1.42188
9709 Q24.8125 -1.42188 18.9688 -0.25
9710 Q13.1406 0.921875 6.89062 3.21875
9711 L6.89062 13.375
9712 Q12.8906 10.0156 18.6562 8.29688
9713 Q24.4219 6.59375 29.9844 6.59375
9714 Q38.4219 6.59375 43.0156 9.90625
9715 Q47.6094 13.2344 47.6094 19.3906
9716 Q47.6094 24.75 44.3125 27.7812
9717 Q41.0156 30.8125 33.5 32.3281
9718 L27.4844 33.5
9719 Q16.4531 35.6875 11.5156 40.375
9720 Q6.59375 45.0625 6.59375 53.4219
9721 Q6.59375 63.0938 13.4062 68.6562
9722 Q20.2188 74.2188 32.1719 74.2188
9723 Q37.3125 74.2188 42.625 73.2812
9724 Q47.9531 72.3594 53.5156 70.5156" id="BitstreamVeraSans-Roman-53"/>
9725 <path d="
9726 M18.3125 70.2188
9727 L18.3125 54.6875
9728 L36.8125 54.6875
9729 L36.8125 47.7031
9730 L18.3125 47.7031
9731 L18.3125 18.0156
9732 Q18.3125 11.3281 20.1406 9.42188
9733 Q21.9688 7.51562 27.5938 7.51562
9734 L36.8125 7.51562
9735 L36.8125 0
9736 L27.5938 0
9737 Q17.1875 0 13.2344 3.875
9738 Q9.28125 7.76562 9.28125 18.0156
9739 L9.28125 47.7031
9740 L2.6875 47.7031
9741 L2.6875 54.6875
9742 L9.28125 54.6875
9743 L9.28125 70.2188
9744 z
9745 " id="BitstreamVeraSans-Roman-74"/>
9746 <path d="
9747 M41.1094 46.2969
9748 Q39.5938 47.1719 37.8125 47.5781
9749 Q36.0312 48 33.8906 48
9750 Q26.2656 48 22.1875 43.0469
9751 Q18.1094 38.0938 18.1094 28.8125
9752 L18.1094 0
9753 L9.07812 0
9754 L9.07812 54.6875
9755 L18.1094 54.6875
9756 L18.1094 46.1875
9757 Q20.9531 51.1719 25.4844 53.5781
9758 Q30.0312 56 36.5312 56
9759 Q37.4531 56 38.5781 55.875
9760 Q39.7031 55.7656 41.0625 55.5156
9761 z
9762 " id="BitstreamVeraSans-Roman-72"/>
9763 <path d="
9764 M44.2812 53.0781
9765 L44.2812 44.5781
9766 Q40.4844 46.5312 36.375 47.5
9767 Q32.2812 48.4844 27.875 48.4844
9768 Q21.1875 48.4844 17.8438 46.4375
9769 Q14.5 44.3906 14.5 40.2812
9770 Q14.5 37.1562 16.8906 35.375
9771 Q19.2812 33.5938 26.5156 31.9844
9772 L29.5938 31.2969
9773 Q39.1562 29.25 43.1875 25.5156
9774 Q47.2188 21.7812 47.2188 15.0938
9775 Q47.2188 7.46875 41.1875 3.01562
9776 Q35.1562 -1.42188 24.6094 -1.42188
9777 Q20.2188 -1.42188 15.4531 -0.5625
9778 Q10.6875 0.296875 5.42188 2
9779 L5.42188 11.2812
9780 Q10.4062 8.6875 15.2344 7.39062
9781 Q20.0625 6.10938 24.8125 6.10938
9782 Q31.1562 6.10938 34.5625 8.28125
9783 Q37.9844 10.4531 37.9844 14.4062
9784 Q37.9844 18.0625 35.5156 20.0156
9785 Q33.0625 21.9688 24.7031 23.7812
9786 L21.5781 24.5156
9787 Q13.2344 26.2656 9.51562 29.9062
9788 Q5.8125 33.5469 5.8125 39.8906
9789 Q5.8125 47.6094 11.2812 51.7969
9790 Q16.75 56 26.8125 56
9791 Q31.7812 56 36.1719 55.2656
9792 Q40.5781 54.5469 44.2812 53.0781" id="BitstreamVeraSans-Roman-73"/>
9793 </defs>
9794 <g transform="translate(203.42734375 262.7440625)scale(0.1 -0.1)">
9795 <use xlink:href="#BitstreamVeraSans-Roman-53"/>
9796 <use x="63.4765625" xlink:href="#BitstreamVeraSans-Roman-6d"/>
9797 <use x="160.888671875" xlink:href="#BitstreamVeraSans-Roman-61"/>
9798 <use x="222.16796875" xlink:href="#BitstreamVeraSans-Roman-72"/>
9799 <use x="263.28125" xlink:href="#BitstreamVeraSans-Roman-74"/>
9800 <use x="302.490234375" xlink:href="#BitstreamVeraSans-Roman-73"/>
9801 </g>
9802 </g>
9803 </g>
9804 <g id="matplotlib.axis_2">
9805 <g id="ytick_1">
9806 <g id="line2d_22">
9807 <path clip-path="url(#pac08750901)" d="
9808 M53.1828 238.758
9809 L387.983 238.758" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9810 </g>
9811 <g id="line2d_23">
9812 <defs>
9813 <path d="
9814 M0 0
9815 L4 0" id="mf019e8ac8f"/>
9816 </defs>
9817 <g>
9818 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#mf019e8ac8f" y="238.758125"/>
9819 </g>
9820 </g>
9821 <g id="line2d_24">
9822 <defs>
9823 <path d="
9824 M0 0
9825 L-4 0" id="m1ec148bd55"/>
9826 </defs>
9827 <g>
9828 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1ec148bd55" y="238.758125"/>
9829 </g>
9830 </g>
9831 <g id="text_9">
9832 <!-- 0.000 -->
9833 <defs>
9834 <path d="
9835 M10.6875 12.4062
9836 L21 12.4062
9837 L21 0
9838 L10.6875 0
9839 z
9840 " id="BitstreamVeraSans-Roman-2e"/>
9841 </defs>
9842 <g transform="translate(21.878125 242.39796875)scale(0.1 -0.1)">
9843 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
9844 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
9845 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
9846 <use x="159.033203125" xlink:href="#BitstreamVeraSans-Roman-30"/>
9847 <use x="222.65625" xlink:href="#BitstreamVeraSans-Roman-30"/>
9848 </g>
9849 </g>
9850 </g>
9851 <g id="ytick_2">
9852 <g id="line2d_25">
9853 <path clip-path="url(#pac08750901)" d="
9854 M53.1828 202.518
9855 L387.983 202.518" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9856 </g>
9857 <g id="line2d_26">
9858 <defs>
9859 <path d="
9860 M0 0
9861 L4 0" id="mf019e8ac8f"/>
9862 </defs>
9863 <g>
9864 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#mf019e8ac8f" y="202.518125"/>
9865 </g>
9866 </g>
9867 <g id="line2d_27">
9868 <defs>
9869 <path d="
9870 M0 0
9871 L-4 0" id="m1ec148bd55"/>
9872 </defs>
9873 <g>
9874 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1ec148bd55" y="202.518125"/>
9875 </g>
9876 </g>
9877 <g id="text_10">
9878 <!-- 0.005 -->
9879 <defs>
9880 <path d="
9881 M10.7969 72.9062
9882 L49.5156 72.9062
9883 L49.5156 64.5938
9884 L19.8281 64.5938
9885 L19.8281 46.7344
9886 Q21.9688 47.4688 24.1094 47.8281
9887 Q26.2656 48.1875 28.4219 48.1875
9888 Q40.625 48.1875 47.75 41.5
9889 Q54.8906 34.8125 54.8906 23.3906
9890 Q54.8906 11.625 47.5625 5.09375
9891 Q40.2344 -1.42188 26.9062 -1.42188
9892 Q22.3125 -1.42188 17.5469 -0.640625
9893 Q12.7969 0.140625 7.71875 1.70312
9894 L7.71875 11.625
9895 Q12.1094 9.23438 16.7969 8.0625
9896 Q21.4844 6.89062 26.7031 6.89062
9897 Q35.1562 6.89062 40.0781 11.3281
9898 Q45.0156 15.7656 45.0156 23.3906
9899 Q45.0156 31 40.0781 35.4375
9900 Q35.1562 39.8906 26.7031 39.8906
9901 Q22.75 39.8906 18.8125 39.0156
9902 Q14.8906 38.1406 10.7969 36.2812
9903 z
9904 " id="BitstreamVeraSans-Roman-35"/>
9905 </defs>
9906 <g transform="translate(22.0875 206.15796875)scale(0.1 -0.1)">
9907 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
9908 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
9909 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
9910 <use x="159.033203125" xlink:href="#BitstreamVeraSans-Roman-30"/>
9911 <use x="222.65625" xlink:href="#BitstreamVeraSans-Roman-35"/>
9912 </g>
9913 </g>
9914 </g>
9915 <g id="ytick_3">
9916 <g id="line2d_28">
9917 <path clip-path="url(#pac08750901)" d="
9918 M53.1828 166.278
9919 L387.983 166.278" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9920 </g>
9921 <g id="line2d_29">
9922 <defs>
9923 <path d="
9924 M0 0
9925 L4 0" id="mf019e8ac8f"/>
9926 </defs>
9927 <g>
9928 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#mf019e8ac8f" y="166.278125"/>
9929 </g>
9930 </g>
9931 <g id="line2d_30">
9932 <defs>
9933 <path d="
9934 M0 0
9935 L-4 0" id="m1ec148bd55"/>
9936 </defs>
9937 <g>
9938 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1ec148bd55" y="166.278125"/>
9939 </g>
9940 </g>
9941 <g id="text_11">
9942 <!-- 0.010 -->
9943 <g transform="translate(21.878125 169.91796875)scale(0.1 -0.1)">
9944 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
9945 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
9946 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
9947 <use x="159.033203125" xlink:href="#BitstreamVeraSans-Roman-31"/>
9948 <use x="222.65625" xlink:href="#BitstreamVeraSans-Roman-30"/>
9949 </g>
9950 </g>
9951 </g>
9952 <g id="ytick_4">
9953 <g id="line2d_31">
9954 <path clip-path="url(#pac08750901)" d="
9955 M53.1828 130.038
9956 L387.983 130.038" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9957 </g>
9958 <g id="line2d_32">
9959 <defs>
9960 <path d="
9961 M0 0
9962 L4 0" id="mf019e8ac8f"/>
9963 </defs>
9964 <g>
9965 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#mf019e8ac8f" y="130.038125"/>
9966 </g>
9967 </g>
9968 <g id="line2d_33">
9969 <defs>
9970 <path d="
9971 M0 0
9972 L-4 0" id="m1ec148bd55"/>
9973 </defs>
9974 <g>
9975 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1ec148bd55" y="130.038125"/>
9976 </g>
9977 </g>
9978 <g id="text_12">
9979 <!-- 0.015 -->
9980 <g transform="translate(22.0875 133.67796875)scale(0.1 -0.1)">
9981 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
9982 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
9983 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
9984 <use x="159.033203125" xlink:href="#BitstreamVeraSans-Roman-31"/>
9985 <use x="222.65625" xlink:href="#BitstreamVeraSans-Roman-35"/>
9986 </g>
9987 </g>
9988 </g>
9989 <g id="ytick_5">
9990 <g id="line2d_34">
9991 <path clip-path="url(#pac08750901)" d="
9992 M53.1828 93.7981
9993 L387.983 93.7981" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
9994 </g>
9995 <g id="line2d_35">
9996 <defs>
9997 <path d="
9998 M0 0
9999 L4 0" id="mf019e8ac8f"/>
10000 </defs>
10001 <g>
10002 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#mf019e8ac8f" y="93.798125"/>
10003 </g>
10004 </g>
10005 <g id="line2d_36">
10006 <defs>
10007 <path d="
10008 M0 0
10009 L-4 0" id="m1ec148bd55"/>
10010 </defs>
10011 <g>
10012 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1ec148bd55" y="93.798125"/>
10013 </g>
10014 </g>
10015 <g id="text_13">
10016 <!-- 0.020 -->
10017 <g transform="translate(21.878125 97.43796875)scale(0.1 -0.1)">
10018 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
10019 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
10020 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
10021 <use x="159.033203125" xlink:href="#BitstreamVeraSans-Roman-32"/>
10022 <use x="222.65625" xlink:href="#BitstreamVeraSans-Roman-30"/>
10023 </g>
10024 </g>
10025 </g>
10026 <g id="ytick_6">
10027 <g id="line2d_37">
10028 <path clip-path="url(#pac08750901)" d="
10029 M53.1828 57.5581
10030 L387.983 57.5581" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
10031 </g>
10032 <g id="line2d_38">
10033 <defs>
10034 <path d="
10035 M0 0
10036 L4 0" id="mf019e8ac8f"/>
10037 </defs>
10038 <g>
10039 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#mf019e8ac8f" y="57.558125"/>
10040 </g>
10041 </g>
10042 <g id="line2d_39">
10043 <defs>
10044 <path d="
10045 M0 0
10046 L-4 0" id="m1ec148bd55"/>
10047 </defs>
10048 <g>
10049 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1ec148bd55" y="57.558125"/>
10050 </g>
10051 </g>
10052 <g id="text_14">
10053 <!-- 0.025 -->
10054 <g transform="translate(22.0875 61.19796875)scale(0.1 -0.1)">
10055 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
10056 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
10057 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
10058 <use x="159.033203125" xlink:href="#BitstreamVeraSans-Roman-32"/>
10059 <use x="222.65625" xlink:href="#BitstreamVeraSans-Roman-35"/>
10060 </g>
10061 </g>
10062 </g>
10063 <g id="ytick_7">
10064 <g id="line2d_40">
10065 <path clip-path="url(#pac08750901)" d="
10066 M53.1828 21.3181
10067 L387.983 21.3181" style="fill:none;stroke:#000000;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-linecap:butt;stroke-width:0.5;"/>
10068 </g>
10069 <g id="line2d_41">
10070 <defs>
10071 <path d="
10072 M0 0
10073 L4 0" id="mf019e8ac8f"/>
10074 </defs>
10075 <g>
10076 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="53.1828125" xlink:href="#mf019e8ac8f" y="21.318125"/>
10077 </g>
10078 </g>
10079 <g id="line2d_42">
10080 <defs>
10081 <path d="
10082 M0 0
10083 L-4 0" id="m1ec148bd55"/>
10084 </defs>
10085 <g>
10086 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="387.9828125" xlink:href="#m1ec148bd55" y="21.318125"/>
10087 </g>
10088 </g>
10089 <g id="text_15">
10090 <!-- 0.030 -->
10091 <defs>
10092 <path d="
10093 M40.5781 39.3125
10094 Q47.6562 37.7969 51.625 33
10095 Q55.6094 28.2188 55.6094 21.1875
10096 Q55.6094 10.4062 48.1875 4.48438
10097 Q40.7656 -1.42188 27.0938 -1.42188
10098 Q22.5156 -1.42188 17.6562 -0.515625
10099 Q12.7969 0.390625 7.625 2.20312
10100 L7.625 11.7188
10101 Q11.7188 9.32812 16.5938 8.10938
10102 Q21.4844 6.89062 26.8125 6.89062
10103 Q36.0781 6.89062 40.9375 10.5469
10104 Q45.7969 14.2031 45.7969 21.1875
10105 Q45.7969 27.6406 41.2812 31.2656
10106 Q36.7656 34.9062 28.7188 34.9062
10107 L20.2188 34.9062
10108 L20.2188 43.0156
10109 L29.1094 43.0156
10110 Q36.375 43.0156 40.2344 45.9219
10111 Q44.0938 48.8281 44.0938 54.2969
10112 Q44.0938 59.9062 40.1094 62.9062
10113 Q36.1406 65.9219 28.7188 65.9219
10114 Q24.6562 65.9219 20.0156 65.0312
10115 Q15.375 64.1562 9.8125 62.3125
10116 L9.8125 71.0938
10117 Q15.4375 72.6562 20.3438 73.4375
10118 Q25.25 74.2188 29.5938 74.2188
10119 Q40.8281 74.2188 47.3594 69.1094
10120 Q53.9062 64.0156 53.9062 55.3281
10121 Q53.9062 49.2656 50.4375 45.0938
10122 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
10123 </defs>
10124 <g transform="translate(21.878125 24.95796875)scale(0.1 -0.1)">
10125 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
10126 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
10127 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
10128 <use x="159.033203125" xlink:href="#BitstreamVeraSans-Roman-33"/>
10129 <use x="222.65625" xlink:href="#BitstreamVeraSans-Roman-30"/>
10130 </g>
10131 </g>
10132 </g>
10133 <g id="text_16">
10134 <!-- Probability -->
10135 <defs>
10136 <path d="
10137 M30.6094 48.3906
10138 Q23.3906 48.3906 19.1875 42.75
10139 Q14.9844 37.1094 14.9844 27.2969
10140 Q14.9844 17.4844 19.1562 11.8438
10141 Q23.3438 6.20312 30.6094 6.20312
10142 Q37.7969 6.20312 41.9844 11.8594
10143 Q46.1875 17.5312 46.1875 27.2969
10144 Q46.1875 37.0156 41.9844 42.7031
10145 Q37.7969 48.3906 30.6094 48.3906
10146 M30.6094 56
10147 Q42.3281 56 49.0156 48.375
10148 Q55.7188 40.7656 55.7188 27.2969
10149 Q55.7188 13.875 49.0156 6.21875
10150 Q42.3281 -1.42188 30.6094 -1.42188
10151 Q18.8438 -1.42188 12.1719 6.21875
10152 Q5.51562 13.875 5.51562 27.2969
10153 Q5.51562 40.7656 12.1719 48.375
10154 Q18.8438 56 30.6094 56" id="BitstreamVeraSans-Roman-6f"/>
10155 <path d="
10156 M9.42188 75.9844
10157 L18.4062 75.9844
10158 L18.4062 0
10159 L9.42188 0
10160 z
10161 " id="BitstreamVeraSans-Roman-6c"/>
10162 <path d="
10163 M19.6719 64.7969
10164 L19.6719 37.4062
10165 L32.0781 37.4062
10166 Q38.9688 37.4062 42.7188 40.9688
10167 Q46.4844 44.5312 46.4844 51.125
10168 Q46.4844 57.6719 42.7188 61.2344
10169 Q38.9688 64.7969 32.0781 64.7969
10170 z
10171
10172 M9.8125 72.9062
10173 L32.0781 72.9062
10174 Q44.3438 72.9062 50.6094 67.3594
10175 Q56.8906 61.8125 56.8906 51.125
10176 Q56.8906 40.3281 50.6094 34.8125
10177 Q44.3438 29.2969 32.0781 29.2969
10178 L19.6719 29.2969
10179 L19.6719 0
10180 L9.8125 0
10181 z
10182 " id="BitstreamVeraSans-Roman-50"/>
10183 <path d="
10184 M9.42188 54.6875
10185 L18.4062 54.6875
10186 L18.4062 0
10187 L9.42188 0
10188 z
10189
10190 M9.42188 75.9844
10191 L18.4062 75.9844
10192 L18.4062 64.5938
10193 L9.42188 64.5938
10194 z
10195 " id="BitstreamVeraSans-Roman-69"/>
10196 <path d="
10197 M32.1719 -5.07812
10198 Q28.375 -14.8438 24.75 -17.8125
10199 Q21.1406 -20.7969 15.0938 -20.7969
10200 L7.90625 -20.7969
10201 L7.90625 -13.2812
10202 L13.1875 -13.2812
10203 Q16.8906 -13.2812 18.9375 -11.5156
10204 Q21 -9.76562 23.4844 -3.21875
10205 L25.0938 0.875
10206 L2.98438 54.6875
10207 L12.5 54.6875
10208 L29.5938 11.9219
10209 L46.6875 54.6875
10210 L56.2031 54.6875
10211 z
10212 " id="BitstreamVeraSans-Roman-79"/>
10213 <path d="
10214 M48.6875 27.2969
10215 Q48.6875 37.2031 44.6094 42.8438
10216 Q40.5312 48.4844 33.4062 48.4844
10217 Q26.2656 48.4844 22.1875 42.8438
10218 Q18.1094 37.2031 18.1094 27.2969
10219 Q18.1094 17.3906 22.1875 11.75
10220 Q26.2656 6.10938 33.4062 6.10938
10221 Q40.5312 6.10938 44.6094 11.75
10222 Q48.6875 17.3906 48.6875 27.2969
10223 M18.1094 46.3906
10224 Q20.9531 51.2656 25.2656 53.625
10225 Q29.5938 56 35.5938 56
10226 Q45.5625 56 51.7812 48.0938
10227 Q58.0156 40.1875 58.0156 27.2969
10228 Q58.0156 14.4062 51.7812 6.48438
10229 Q45.5625 -1.42188 35.5938 -1.42188
10230 Q29.5938 -1.42188 25.2656 0.953125
10231 Q20.9531 3.32812 18.1094 8.20312
10232 L18.1094 0
10233 L9.07812 0
10234 L9.07812 75.9844
10235 L18.1094 75.9844
10236 z
10237 " id="BitstreamVeraSans-Roman-62"/>
10238 </defs>
10239 <g transform="translate(16.878125 153.7475)rotate(-90.0)scale(0.1 -0.1)">
10240 <use xlink:href="#BitstreamVeraSans-Roman-50"/>
10241 <use x="58.552734375" xlink:href="#BitstreamVeraSans-Roman-72"/>
10242 <use x="97.416015625" xlink:href="#BitstreamVeraSans-Roman-6f"/>
10243 <use x="158.59765625" xlink:href="#BitstreamVeraSans-Roman-62"/>
10244 <use x="222.07421875" xlink:href="#BitstreamVeraSans-Roman-61"/>
10245 <use x="283.353515625" xlink:href="#BitstreamVeraSans-Roman-62"/>
10246 <use x="346.830078125" xlink:href="#BitstreamVeraSans-Roman-69"/>
10247 <use x="374.61328125" xlink:href="#BitstreamVeraSans-Roman-6c"/>
10248 <use x="402.396484375" xlink:href="#BitstreamVeraSans-Roman-69"/>
10249 <use x="430.1796875" xlink:href="#BitstreamVeraSans-Roman-74"/>
10250 <use x="469.388671875" xlink:href="#BitstreamVeraSans-Roman-79"/>
10251 </g>
10252 </g>
10253 </g>
10254 <g id="patch_53">
10255 <path d="
10256 M53.1828 21.3181
10257 L387.983 21.3181" style="fill:none;stroke:#000000;"/>
10258 </g>
10259 <g id="patch_54">
10260 <path d="
10261 M387.983 238.758
10262 L387.983 21.3181" style="fill:none;stroke:#000000;"/>
10263 </g>
10264 <g id="patch_55">
10265 <path d="
10266 M53.1828 238.758
10267 L387.983 238.758" style="fill:none;stroke:#000000;"/>
10268 </g>
10269 <g id="patch_56">
10270 <path d="
10271 M53.1828 238.758
10272 L53.1828 21.3181" style="fill:none;stroke:#000000;"/>
10273 </g>
10274 <g id="text_17">
10275 <!-- $\mu=100,\ \sigma=15$ -->
10276 <defs>
10277 <path d="
10278 M9.28125 0
10279 L9.28125 3.51562
10280 Q21.7812 3.51562 21.7812 6.6875
10281 L21.7812 59.1875
10282 Q16.6094 56.6875 8.6875 56.6875
10283 L8.6875 60.2031
10284 Q20.9531 60.2031 27.2031 66.6094
10285 L28.6094 66.6094
10286 Q28.9531 66.6094 29.2656 66.3281
10287 Q29.5938 66.0625 29.5938 65.7188
10288 L29.5938 6.6875
10289 Q29.5938 3.51562 42.0938 3.51562
10290 L42.0938 0
10291 z
10292 " id="Cmr10-31"/>
10293 <path d="
10294 M25 -2.20312
10295 Q12.75 -2.20312 8.32812 7.875
10296 Q3.90625 17.9688 3.90625 31.8906
10297 Q3.90625 40.5781 5.48438 48.2344
10298 Q7.07812 55.9062 11.7812 61.25
10299 Q16.5 66.6094 25 66.6094
10300 Q31.5938 66.6094 35.7812 63.375
10301 Q39.9844 60.1562 42.1875 55.0469
10302 Q44.3906 49.9531 45.1875 44.1094
10303 Q46 38.2812 46 31.8906
10304 Q46 23.2969 44.4062 15.7969
10305 Q42.8281 8.29688 38.1875 3.04688
10306 Q33.5469 -2.20312 25 -2.20312
10307 M25 0.390625
10308 Q30.5625 0.390625 33.2969 6.09375
10309 Q36.0312 11.8125 36.6719 18.75
10310 Q37.3125 25.6875 37.3125 33.5
10311 Q37.3125 41.0156 36.6719 47.3594
10312 Q36.0312 53.7188 33.3125 58.8594
10313 Q30.6094 64.0156 25 64.0156
10314 Q19.3438 64.0156 16.6094 58.8281
10315 Q13.875 53.6562 13.2344 47.3281
10316 Q12.5938 41.0156 12.5938 33.5
10317 Q12.5938 27.9375 12.8594 23
10318 Q13.1406 18.0625 14.3125 12.8125
10319 Q15.4844 7.5625 18.0938 3.96875
10320 Q20.7031 0.390625 25 0.390625" id="Cmr10-30"/>
10321 <path d="
10322 M8.6875 11.375
10323 Q9.71875 8.45312 11.8438 6.04688
10324 Q13.9688 3.65625 16.875 2.3125
10325 Q19.7812 0.984375 22.9062 0.984375
10326 Q30.125 0.984375 32.8594 6.59375
10327 Q35.5938 12.2031 35.5938 20.2188
10328 Q35.5938 23.6875 35.4688 26.0469
10329 Q35.3594 28.4219 34.8125 30.6094
10330 Q33.8906 34.125 31.5625 36.7656
10331 Q29.25 39.4062 25.875 39.4062
10332 Q22.5156 39.4062 20.0938 38.375
10333 Q17.6719 37.3594 16.1562 35.9844
10334 Q14.6562 34.625 13.4844 33.1094
10335 Q12.3125 31.5938 12.0156 31.5
10336 L10.8906 31.5
10337 Q10.6406 31.5 10.2656 31.8125
10338 Q9.90625 32.125 9.90625 32.4219
10339 L9.90625 65.8281
10340 Q9.90625 66.0625 10.2188 66.3281
10341 Q10.5469 66.6094 10.8906 66.6094
10342 L11.1875 66.6094
10343 Q17.9219 63.375 25.4844 63.375
10344 Q32.9062 63.375 39.7969 66.6094
10345 L40.0938 66.6094
10346 Q40.4375 66.6094 40.7188 66.3594
10347 Q41.0156 66.1094 41.0156 65.8281
10348 L41.0156 64.8906
10349 Q41.0156 64.4062 40.8281 64.4062
10350 Q37.4062 59.8594 32.25 57.3125
10351 Q27.0938 54.7812 21.5781 54.7812
10352 Q17.5781 54.7812 13.375 55.9062
10353 L13.375 37.0156
10354 Q16.7031 39.7031 19.3125 40.8438
10355 Q21.9219 42 25.9844 42
10356 Q31.5 42 35.8594 38.8125
10357 Q40.2344 35.6406 42.5781 30.5312
10358 Q44.9219 25.4375 44.9219 20.125
10359 Q44.9219 14.1094 41.9688 8.98438
10360 Q39.0156 3.85938 33.9375 0.828125
10361 Q28.8594 -2.20312 22.9062 -2.20312
10362 Q17.9688 -2.20312 13.8438 0.328125
10363 Q9.71875 2.875 7.34375 7.17188
10364 Q4.98438 11.4688 4.98438 16.3125
10365 Q4.98438 18.5625 6.4375 19.9688
10366 Q7.90625 21.3906 10.1094 21.3906
10367 Q12.3125 21.3906 13.7969 19.9375
10368 Q15.2812 18.5 15.2812 16.3125
10369 Q15.2812 14.1562 13.7969 12.6719
10370 Q12.3125 11.1875 10.1094 11.1875
10371 Q9.76562 11.1875 9.32812 11.25
10372 Q8.89062 11.3281 8.6875 11.375" id="Cmr10-35"/>
10373 <path d="
10374 M18.7031 -1.125
10375 Q14.2656 -1.125 10.8125 1
10376 Q7.375 3.125 5.48438 6.73438
10377 Q3.60938 10.3594 3.60938 14.7031
10378 Q3.60938 19.3438 5.70312 24.4688
10379 Q7.8125 29.5938 11.4531 33.8438
10380 Q15.0938 38.0938 19.6719 40.5938
10381 Q24.2656 43.1094 29.1094 43.1094
10382 L54.2969 43.1094
10383 Q55.3281 43.1094 56.0469 42.4219
10384 Q56.7812 41.75 56.7812 40.5781
10385 Q56.7812 39.1094 55.7344 38.0156
10386 Q54.6875 36.9219 53.2188 36.9219
10387 L41.0156 36.9219
10388 Q43.8906 32.625 43.8906 26.5156
10389 Q43.8906 21.4844 41.9375 16.5938
10390 Q39.9844 11.7188 36.5156 7.6875
10391 Q33.0625 3.65625 28.4375 1.26562
10392 Q23.8281 -1.125 18.7031 -1.125
10393 M18.7969 1.51562
10394 Q24.2656 1.51562 28.4844 5.78125
10395 Q32.7188 10.0625 34.9531 16.2344
10396 Q37.2031 22.4062 37.2031 27.6875
10397 Q37.2031 31.9844 34.8281 34.4531
10398 Q32.4688 36.9219 28.2188 36.9219
10399 Q22.4062 36.9219 18.3281 33.0156
10400 Q14.2656 29.1094 12.2344 23.1875
10401 Q10.2031 17.2812 10.2031 11.8125
10402 Q10.2031 7.51562 12.4688 4.51562
10403 Q14.75 1.51562 18.7969 1.51562" id="Cmmi10-be"/>
10404 <path d="
10405 M2.78125 -18.7969
10406 Q2.78125 -18.2188 2.875 -18.0156
10407 L17.5781 41.0156
10408 Q18.0156 42.4375 19.1562 43.3125
10409 Q20.3125 44.1875 21.7812 44.1875
10410 Q23.0469 44.1875 23.9219 43.4219
10411 Q24.8125 42.6719 24.8125 41.4062
10412 Q24.8125 41.1094 24.7812 40.9375
10413 Q24.75 40.7656 24.7031 40.5781
10414 L18.7969 17.1875
10415 Q17.8281 13.0312 17.8281 10.0156
10416 Q17.8281 6.29688 19.5781 3.90625
10417 Q21.3438 1.51562 24.9062 1.51562
10418 Q32.1719 1.51562 37.7031 10.5938
10419 Q37.75 10.6875 37.7656 10.7344
10420 Q37.7969 10.7969 37.7969 10.8906
10421 L45.0156 39.8906
10422 Q45.3594 41.2188 46.5781 42.1562
10423 Q47.7969 43.1094 49.2188 43.1094
10424 Q50.3906 43.1094 51.2969 42.3281
10425 Q52.2031 41.5469 52.2031 40.2812
10426 Q52.2031 39.7031 52.0938 39.5
10427 L44.9219 10.6875
10428 Q44.1875 7.85938 44.1875 5.8125
10429 Q44.1875 1.51562 47.125 1.51562
10430 Q50.25 1.51562 51.8281 5.375
10431 Q53.4219 9.23438 54.5938 14.7031
10432 Q54.7812 15.2812 55.4219 15.2812
10433 L56.5938 15.2812
10434 Q56.9844 15.2812 57.25 14.9688
10435 Q57.5156 14.6562 57.5156 14.3125
10436 Q55.7656 7.32812 53.6875 3.09375
10437 Q51.6094 -1.125 46.9219 -1.125
10438 Q43.6094 -1.125 41.0469 0.78125
10439 Q38.4844 2.6875 37.7031 5.90625
10440 Q35.2031 2.78125 31.8594 0.828125
10441 Q28.5156 -1.125 24.8125 -1.125
10442 Q18.5625 -1.125 14.9844 1.8125
10443 L9.90625 -18.4062
10444 Q9.625 -19.8281 8.45312 -20.7031
10445 Q7.28125 -21.5781 5.8125 -21.5781
10446 Q4.59375 -21.5781 3.6875 -20.8125
10447 Q2.78125 -20.0625 2.78125 -18.7969" id="Cmmi10-b9"/>
10448 <path d="
10449 M7.51562 13.2812
10450 Q6.6875 13.2812 6.14062 13.9062
10451 Q5.60938 14.5469 5.60938 15.2812
10452 Q5.60938 16.1094 6.14062 16.6875
10453 Q6.6875 17.2812 7.51562 17.2812
10454 L70.3125 17.2812
10455 Q71.0469 17.2812 71.5781 16.6875
10456 Q72.125 16.1094 72.125 15.2812
10457 Q72.125 14.5469 71.5781 13.9062
10458 Q71.0469 13.2812 70.3125 13.2812
10459 z
10460
10461 M7.51562 32.7188
10462 Q6.6875 32.7188 6.14062 33.2969
10463 Q5.60938 33.8906 5.60938 34.7188
10464 Q5.60938 35.4531 6.14062 36.0781
10465 Q6.6875 36.7188 7.51562 36.7188
10466 L70.3125 36.7188
10467 Q71.0469 36.7188 71.5781 36.0781
10468 Q72.125 35.4531 72.125 34.7188
10469 Q72.125 33.8906 71.5781 33.2969
10470 Q71.0469 32.7188 70.3125 32.7188
10471 z
10472 " id="Cmr10-3d"/>
10473 <path d="
10474 M9.90625 -18.0156
10475 Q9.90625 -17.5781 10.2969 -17.1875
10476 Q13.9219 -13.7188 15.9219 -9.17188
10477 Q17.9219 -4.64062 17.9219 0.390625
10478 L17.9219 1.60938
10479 Q16.3125 0 13.9219 0
10480 Q11.625 0 10.0156 1.60938
10481 Q8.40625 3.21875 8.40625 5.51562
10482 Q8.40625 7.85938 10.0156 9.42188
10483 Q11.625 10.9844 13.9219 10.9844
10484 Q17.4844 10.9844 19 7.6875
10485 Q20.5156 4.39062 20.5156 0.390625
10486 Q20.5156 -5.17188 18.2812 -10.1719
10487 Q16.0625 -15.1875 12.0156 -19.1875
10488 Q11.625 -19.3906 11.375 -19.3906
10489 Q10.8906 -19.3906 10.3906 -18.9375
10490 Q9.90625 -18.5 9.90625 -18.0156" id="Cmmi10-3b"/>
10491 </defs>
10492 <g transform="translate(95.0328125 46.142125)scale(0.14 -0.14)">
10493 <use transform="translate(0.0 22.390625)" xlink:href="#Cmmi10-b9"/>
10494 <use transform="translate(77.763671875 22.390625)" xlink:href="#Cmr10-3d"/>
10495 <use transform="translate(161.822265625 22.390625)" xlink:href="#Cmr10-31"/>
10496 <use transform="translate(211.822265625 22.390625)" xlink:href="#Cmr10-30"/>
10497 <use transform="translate(261.822265625 22.390625)" xlink:href="#Cmr10-30"/>
10498 <use transform="translate(311.822265625 22.390625)" xlink:href="#Cmmi10-3b"/>
10499 <use transform="translate(367.828125 22.390625)" xlink:href="#Cmmi10-be"/>
10500 <use transform="translate(442.466796875 22.390625)" xlink:href="#Cmr10-3d"/>
10501 <use transform="translate(526.525390625 22.390625)" xlink:href="#Cmr10-31"/>
10502 <use transform="translate(576.525390625 22.390625)" xlink:href="#Cmr10-35"/>
10503 </g>
10504 </g>
10505 <g id="text_18">
10506 <!-- Histogram of IQ -->
10507 <defs>
10508 <path id="BitstreamVeraSans-Roman-20"/>
10509 <path d="
10510 M39.4062 66.2188
10511 Q28.6562 66.2188 22.3281 58.2031
10512 Q16.0156 50.2031 16.0156 36.375
10513 Q16.0156 22.6094 22.3281 14.5938
10514 Q28.6562 6.59375 39.4062 6.59375
10515 Q50.1406 6.59375 56.4219 14.5938
10516 Q62.7031 22.6094 62.7031 36.375
10517 Q62.7031 50.2031 56.4219 58.2031
10518 Q50.1406 66.2188 39.4062 66.2188
10519 M53.2188 1.3125
10520 L66.2188 -12.8906
10521 L54.2969 -12.8906
10522 L43.5 -1.21875
10523 Q41.8906 -1.3125 41.0312 -1.35938
10524 Q40.1875 -1.42188 39.4062 -1.42188
10525 Q24.0312 -1.42188 14.8125 8.85938
10526 Q5.60938 19.1406 5.60938 36.375
10527 Q5.60938 53.6562 14.8125 63.9375
10528 Q24.0312 74.2188 39.4062 74.2188
10529 Q54.7344 74.2188 63.9062 63.9375
10530 Q73.0938 53.6562 73.0938 36.375
10531 Q73.0938 23.6875 67.9844 14.6406
10532 Q62.8906 5.60938 53.2188 1.3125" id="BitstreamVeraSans-Roman-51"/>
10533 <path d="
10534 M45.4062 27.9844
10535 Q45.4062 37.75 41.375 43.1094
10536 Q37.3594 48.4844 30.0781 48.4844
10537 Q22.8594 48.4844 18.8281 43.1094
10538 Q14.7969 37.75 14.7969 27.9844
10539 Q14.7969 18.2656 18.8281 12.8906
10540 Q22.8594 7.51562 30.0781 7.51562
10541 Q37.3594 7.51562 41.375 12.8906
10542 Q45.4062 18.2656 45.4062 27.9844
10543 M54.3906 6.78125
10544 Q54.3906 -7.17188 48.1875 -13.9844
10545 Q42 -20.7969 29.2031 -20.7969
10546 Q24.4688 -20.7969 20.2656 -20.0938
10547 Q16.0625 -19.3906 12.1094 -17.9219
10548 L12.1094 -9.1875
10549 Q16.0625 -11.3281 19.9219 -12.3438
10550 Q23.7812 -13.375 27.7812 -13.375
10551 Q36.625 -13.375 41.0156 -8.76562
10552 Q45.4062 -4.15625 45.4062 5.17188
10553 L45.4062 9.625
10554 Q42.625 4.78125 38.2812 2.39062
10555 Q33.9375 0 27.875 0
10556 Q17.8281 0 11.6719 7.65625
10557 Q5.51562 15.3281 5.51562 27.9844
10558 Q5.51562 40.6719 11.6719 48.3281
10559 Q17.8281 56 27.875 56
10560 Q33.9375 56 38.2812 53.6094
10561 Q42.625 51.2188 45.4062 46.3906
10562 L45.4062 54.6875
10563 L54.3906 54.6875
10564 z
10565 " id="BitstreamVeraSans-Roman-67"/>
10566 <path d="
10567 M37.1094 75.9844
10568 L37.1094 68.5
10569 L28.5156 68.5
10570 Q23.6875 68.5 21.7969 66.5469
10571 Q19.9219 64.5938 19.9219 59.5156
10572 L19.9219 54.6875
10573 L34.7188 54.6875
10574 L34.7188 47.7031
10575 L19.9219 47.7031
10576 L19.9219 0
10577 L10.8906 0
10578 L10.8906 47.7031
10579 L2.29688 47.7031
10580 L2.29688 54.6875
10581 L10.8906 54.6875
10582 L10.8906 58.5
10583 Q10.8906 67.625 15.1406 71.7969
10584 Q19.3906 75.9844 28.6094 75.9844
10585 z
10586 " id="BitstreamVeraSans-Roman-66"/>
10587 <path d="
10588 M9.8125 72.9062
10589 L19.6719 72.9062
10590 L19.6719 0
10591 L9.8125 0
10592 z
10593 " id="BitstreamVeraSans-Roman-49"/>
10594 <path d="
10595 M9.8125 72.9062
10596 L19.6719 72.9062
10597 L19.6719 43.0156
10598 L55.5156 43.0156
10599 L55.5156 72.9062
10600 L65.375 72.9062
10601 L65.375 0
10602 L55.5156 0
10603 L55.5156 34.7188
10604 L19.6719 34.7188
10605 L19.6719 0
10606 L9.8125 0
10607 z
10608 " id="BitstreamVeraSans-Roman-48"/>
10609 </defs>
10610 <g transform="translate(173.705 16.318125)scale(0.12 -0.12)">
10611 <use xlink:href="#BitstreamVeraSans-Roman-48"/>
10612 <use x="75.1953125" xlink:href="#BitstreamVeraSans-Roman-69"/>
10613 <use x="102.978515625" xlink:href="#BitstreamVeraSans-Roman-73"/>
10614 <use x="155.078125" xlink:href="#BitstreamVeraSans-Roman-74"/>
10615 <use x="194.287109375" xlink:href="#BitstreamVeraSans-Roman-6f"/>
10616 <use x="255.46875" xlink:href="#BitstreamVeraSans-Roman-67"/>
10617 <use x="318.9453125" xlink:href="#BitstreamVeraSans-Roman-72"/>
10618 <use x="360.05859375" xlink:href="#BitstreamVeraSans-Roman-61"/>
10619 <use x="421.337890625" xlink:href="#BitstreamVeraSans-Roman-6d"/>
10620 <use x="518.75" xlink:href="#BitstreamVeraSans-Roman-20"/>
10621 <use x="550.537109375" xlink:href="#BitstreamVeraSans-Roman-6f"/>
10622 <use x="611.71875" xlink:href="#BitstreamVeraSans-Roman-66"/>
10623 <use x="646.923828125" xlink:href="#BitstreamVeraSans-Roman-20"/>
10624 <use x="678.7109375" xlink:href="#BitstreamVeraSans-Roman-49"/>
10625 <use x="708.203125" xlink:href="#BitstreamVeraSans-Roman-51"/>
10626 </g>
10627 </g>
10628 </g>
10629 </g>
10630 <defs>
10631 <clipPath id="pac08750901">
10632 <rect height="217.44" width="334.8" x="53.1828125" y="21.318125"/>
10633 </clipPath>
10634 </defs>
10635 </svg>
10636
10637 </div>
10638 </div>
10639 </div>
10640 </div>
10641 </div>
10642 <div class="text_cell_render border-box-sizing rendered_html">
10643 <h2>
10644 Image display
10645 </h2>
10646 </div>
10647 <div class="text_cell_render border-box-sizing rendered_html">
10648 <p>The <code>imshow</code> command can display single or multi-channel images. A simple array of random numbers, plotted in grayscale:</p>
10649 </div>
10650 <div class="cell border-box-sizing code_cell vbox">
10651 <div class="input hbox">
10652 <div class="prompt input_prompt">In&nbsp;[66]:</div>
10653 <div class="input_area box-flex1">
10654 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">cm</span>
10655 <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">gray</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s">&#39;nearest&#39;</span><span class="p">);</span>
10656 </pre></div>
10657
10658 </div>
10659 </div>
10660 <div class="vbox output_wrapper">
10661 <div class="output vbox">
10662 <div class="hbox output_area">
10663 <div class="prompt output_prompt"></div>
10664 <div class="output_subarea output_display_data">
10665 <?xml version="1.0" encoding="utf-8" standalone="no"?>
10666 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
10667 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
10668 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
10669 <svg height="193pt" version="1.1" viewBox="0 0 358 193" width="358pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
10670 <defs>
10671 <style type="text/css">
10672 *{stroke-linecap:square;stroke-linejoin:round;}
10673 </style>
10674 </defs>
10675 <g id="figure_1">
10676 <g id="patch_1">
10677 <path d="
10678 M-2.44249e-15 193.364
10679 L358.512 193.364
10680 L358.512 0
10681 L-2.44249e-15 0
10682 z
10683 " style="fill:#ffffff;"/>
10684 </g>
10685 <g id="axes_1">
10686 <g id="patch_2">
10687 <path d="
10688 M16.5125 174.6
10689 L351.312 174.6
10690 L351.312 7.2
10691 L16.5125 7.2
10692 z
10693 " style="fill:#ffffff;"/>
10694 </g>
10695 <g clip-path="url(#p345e7830e9)">
10696 <image height="168" width="335" x="16.5125" xlink:href="data:image/png;base64,
10697 iVBORw0KGgoAAAANSUhEUgAAAU8AAACoCAYAAABg+2x8AAAABHNCSVQICAgIfAhkiAAAA51JREFUeJzt1jEuIAoYhdE7L6LVTCu0OgtgASqxAq2KRKnSSpREYh0koqShRqMmCrECiZk93Oafl5yzglt9ub/W19f/ZNj19fX0hCTJ8fHx9IScnJxMT0iS7O/vT0/Izc3N9IQkye/fv6cn5Ovra3pCkuTs7Gx6QtbW1qYnJEn+mx4A8H8kngAF8QQoiCdAQTwBCuIJUBBPgIJ4AhTEE6AgngAF8QQoiCdAQTwBCuIJUBBPgIJ4AhTEE6AgngAF8QQoiCdAQTwBCuIJUBBPgIJ4AhTEE6AgngAF8QQoiCdAQTwBCuIJUBBPgIJ4AhTEE6Cw8Pb2Nr0hHx8f0xOSJLe3t9MT8vr6Oj0hSbK1tTU9IXd3d9MT/hl7e3vTE5Ik29vb0xPy8vIyPSGJ5wlQEU+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEKC7u7u9Mbcnh4OD0hSbKzszM9IRsbG9MTkiSnp6fTE7K4uDg9IUny8/MzPSGrq6vTE5Ikj4+P0xNycXExPSGJ5wlQEU+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQWLi/v5/ekJWVlekJSZL39/fpCfn4+JiekCR5eHiYnpDl5eXpCUmSy8vL6QlZXFycnpAkubq6mp6Qg4OD6QlJPE+AingCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQEE+AgngCFMQToCCeAAXxBCiIJ0BBPAEK4glQ+PX09PRnesT5+fn0hCTJ8/Pz9IQsLS1NT0iSfH5+Tk/I6+vr9IQkyff39/SEbG5uTk9I8m/sODo6mp6QxPMEqIgnQEE8AQriCVAQT4CCeAIUxBOgIJ4ABfEEKIgnQEE8AQriCVAQT4CCeAIUxBOgIJ4ABfEEKIgnQEE8AQriCVAQT4CCeAIUxBOgIJ4ABfEEKIgnQEE8AQriCVAQT4CCeAIUxBOgIJ4ABfEEKPwFoyJS9JsmMHMAAAAASUVORK5CYII=" y="6.6"/>
10698 </g>
10699 <g id="matplotlib.axis_1">
10700 <g id="xtick_1">
10701 <g id="line2d_1">
10702 <defs>
10703 <path d="
10704 M0 0
10705 L0 -4" id="m1e01ff8d7c"/>
10706 </defs>
10707 <g>
10708 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.2525" xlink:href="#m1e01ff8d7c" y="174.6"/>
10709 </g>
10710 </g>
10711 <g id="line2d_2">
10712 <defs>
10713 <path d="
10714 M0 0
10715 L0 4" id="m91aa736623"/>
10716 </defs>
10717 <g>
10718 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="33.2525" xlink:href="#m91aa736623" y="7.2"/>
10719 </g>
10720 </g>
10721 <g id="text_1">
10722 <!-- 0 -->
10723 <defs>
10724 <path d="
10725 M31.7812 66.4062
10726 Q24.1719 66.4062 20.3281 58.9062
10727 Q16.5 51.4219 16.5 36.375
10728 Q16.5 21.3906 20.3281 13.8906
10729 Q24.1719 6.39062 31.7812 6.39062
10730 Q39.4531 6.39062 43.2812 13.8906
10731 Q47.125 21.3906 47.125 36.375
10732 Q47.125 51.4219 43.2812 58.9062
10733 Q39.4531 66.4062 31.7812 66.4062
10734 M31.7812 74.2188
10735 Q44.0469 74.2188 50.5156 64.5156
10736 Q56.9844 54.8281 56.9844 36.375
10737 Q56.9844 17.9688 50.5156 8.26562
10738 Q44.0469 -1.42188 31.7812 -1.42188
10739 Q19.5312 -1.42188 13.0625 8.26562
10740 Q6.59375 17.9688 6.59375 36.375
10741 Q6.59375 54.8281 13.0625 64.5156
10742 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
10743 </defs>
10744 <g transform="translate(30.73296875 186.021875)scale(0.1 -0.1)">
10745 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
10746 </g>
10747 </g>
10748 </g>
10749 <g id="xtick_2">
10750 <g id="line2d_3">
10751 <defs>
10752 <path d="
10753 M0 0
10754 L0 -4" id="m1e01ff8d7c"/>
10755 </defs>
10756 <g>
10757 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="100.2125" xlink:href="#m1e01ff8d7c" y="174.6"/>
10758 </g>
10759 </g>
10760 <g id="line2d_4">
10761 <defs>
10762 <path d="
10763 M0 0
10764 L0 4" id="m91aa736623"/>
10765 </defs>
10766 <g>
10767 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="100.2125" xlink:href="#m91aa736623" y="7.2"/>
10768 </g>
10769 </g>
10770 <g id="text_2">
10771 <!-- 2 -->
10772 <defs>
10773 <path d="
10774 M19.1875 8.29688
10775 L53.6094 8.29688
10776 L53.6094 0
10777 L7.32812 0
10778 L7.32812 8.29688
10779 Q12.9375 14.1094 22.625 23.8906
10780 Q32.3281 33.6875 34.8125 36.5312
10781 Q39.5469 41.8438 41.4219 45.5312
10782 Q43.3125 49.2188 43.3125 52.7812
10783 Q43.3125 58.5938 39.2344 62.25
10784 Q35.1562 65.9219 28.6094 65.9219
10785 Q23.9688 65.9219 18.8125 64.3125
10786 Q13.6719 62.7031 7.8125 59.4219
10787 L7.8125 69.3906
10788 Q13.7656 71.7812 18.9375 73
10789 Q24.125 74.2188 28.4219 74.2188
10790 Q39.75 74.2188 46.4844 68.5469
10791 Q53.2188 62.8906 53.2188 53.4219
10792 Q53.2188 48.9219 51.5312 44.8906
10793 Q49.8594 40.875 45.4062 35.4062
10794 Q44.1875 33.9844 37.6406 27.2188
10795 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
10796 </defs>
10797 <g transform="translate(97.8984375 186.021875)scale(0.1 -0.1)">
10798 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
10799 </g>
10800 </g>
10801 </g>
10802 <g id="xtick_3">
10803 <g id="line2d_5">
10804 <defs>
10805 <path d="
10806 M0 0
10807 L0 -4" id="m1e01ff8d7c"/>
10808 </defs>
10809 <g>
10810 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="167.1725" xlink:href="#m1e01ff8d7c" y="174.6"/>
10811 </g>
10812 </g>
10813 <g id="line2d_6">
10814 <defs>
10815 <path d="
10816 M0 0
10817 L0 4" id="m91aa736623"/>
10818 </defs>
10819 <g>
10820 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="167.1725" xlink:href="#m91aa736623" y="7.2"/>
10821 </g>
10822 </g>
10823 <g id="text_3">
10824 <!-- 4 -->
10825 <defs>
10826 <path d="
10827 M37.7969 64.3125
10828 L12.8906 25.3906
10829 L37.7969 25.3906
10830 z
10831
10832 M35.2031 72.9062
10833 L47.6094 72.9062
10834 L47.6094 25.3906
10835 L58.0156 25.3906
10836 L58.0156 17.1875
10837 L47.6094 17.1875
10838 L47.6094 0
10839 L37.7969 0
10840 L37.7969 17.1875
10841 L4.89062 17.1875
10842 L4.89062 26.7031
10843 z
10844 " id="BitstreamVeraSans-Roman-34"/>
10845 </defs>
10846 <g transform="translate(164.51625 185.890625)scale(0.1 -0.1)">
10847 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
10848 </g>
10849 </g>
10850 </g>
10851 <g id="xtick_4">
10852 <g id="line2d_7">
10853 <defs>
10854 <path d="
10855 M0 0
10856 L0 -4" id="m1e01ff8d7c"/>
10857 </defs>
10858 <g>
10859 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="234.1325" xlink:href="#m1e01ff8d7c" y="174.6"/>
10860 </g>
10861 </g>
10862 <g id="line2d_8">
10863 <defs>
10864 <path d="
10865 M0 0
10866 L0 4" id="m91aa736623"/>
10867 </defs>
10868 <g>
10869 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="234.1325" xlink:href="#m91aa736623" y="7.2"/>
10870 </g>
10871 </g>
10872 <g id="text_4">
10873 <!-- 6 -->
10874 <defs>
10875 <path d="
10876 M33.0156 40.375
10877 Q26.375 40.375 22.4844 35.8281
10878 Q18.6094 31.2969 18.6094 23.3906
10879 Q18.6094 15.5312 22.4844 10.9531
10880 Q26.375 6.39062 33.0156 6.39062
10881 Q39.6562 6.39062 43.5312 10.9531
10882 Q47.4062 15.5312 47.4062 23.3906
10883 Q47.4062 31.2969 43.5312 35.8281
10884 Q39.6562 40.375 33.0156 40.375
10885 M52.5938 71.2969
10886 L52.5938 62.3125
10887 Q48.875 64.0625 45.0938 64.9844
10888 Q41.3125 65.9219 37.5938 65.9219
10889 Q27.8281 65.9219 22.6719 59.3281
10890 Q17.5312 52.7344 16.7969 39.4062
10891 Q19.6719 43.6562 24.0156 45.9219
10892 Q28.375 48.1875 33.5938 48.1875
10893 Q44.5781 48.1875 50.9531 41.5156
10894 Q57.3281 34.8594 57.3281 23.3906
10895 Q57.3281 12.1562 50.6875 5.35938
10896 Q44.0469 -1.42188 33.0156 -1.42188
10897 Q20.3594 -1.42188 13.6719 8.26562
10898 Q6.98438 17.9688 6.98438 36.375
10899 Q6.98438 53.6562 15.1875 63.9375
10900 Q23.3906 74.2188 37.2031 74.2188
10901 Q40.9219 74.2188 44.7031 73.4844
10902 Q48.4844 72.75 52.5938 71.2969" id="BitstreamVeraSans-Roman-36"/>
10903 </defs>
10904 <g transform="translate(231.6153125 186.021875)scale(0.1 -0.1)">
10905 <use xlink:href="#BitstreamVeraSans-Roman-36"/>
10906 </g>
10907 </g>
10908 </g>
10909 <g id="xtick_5">
10910 <g id="line2d_9">
10911 <defs>
10912 <path d="
10913 M0 0
10914 L0 -4" id="m1e01ff8d7c"/>
10915 </defs>
10916 <g>
10917 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="301.0925" xlink:href="#m1e01ff8d7c" y="174.6"/>
10918 </g>
10919 </g>
10920 <g id="line2d_10">
10921 <defs>
10922 <path d="
10923 M0 0
10924 L0 4" id="m91aa736623"/>
10925 </defs>
10926 <g>
10927 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="301.0925" xlink:href="#m91aa736623" y="7.2"/>
10928 </g>
10929 </g>
10930 <g id="text_5">
10931 <!-- 8 -->
10932 <defs>
10933 <path d="
10934 M31.7812 34.625
10935 Q24.75 34.625 20.7188 30.8594
10936 Q16.7031 27.0938 16.7031 20.5156
10937 Q16.7031 13.9219 20.7188 10.1562
10938 Q24.75 6.39062 31.7812 6.39062
10939 Q38.8125 6.39062 42.8594 10.1719
10940 Q46.9219 13.9688 46.9219 20.5156
10941 Q46.9219 27.0938 42.8906 30.8594
10942 Q38.875 34.625 31.7812 34.625
10943 M21.9219 38.8125
10944 Q15.5781 40.375 12.0312 44.7188
10945 Q8.5 49.0781 8.5 55.3281
10946 Q8.5 64.0625 14.7188 69.1406
10947 Q20.9531 74.2188 31.7812 74.2188
10948 Q42.6719 74.2188 48.875 69.1406
10949 Q55.0781 64.0625 55.0781 55.3281
10950 Q55.0781 49.0781 51.5312 44.7188
10951 Q48 40.375 41.7031 38.8125
10952 Q48.8281 37.1562 52.7969 32.3125
10953 Q56.7812 27.4844 56.7812 20.5156
10954 Q56.7812 9.90625 50.3125 4.23438
10955 Q43.8438 -1.42188 31.7812 -1.42188
10956 Q19.7344 -1.42188 13.25 4.23438
10957 Q6.78125 9.90625 6.78125 20.5156
10958 Q6.78125 27.4844 10.7812 32.3125
10959 Q14.7969 37.1562 21.9219 38.8125
10960 M18.3125 54.3906
10961 Q18.3125 48.7344 21.8438 45.5625
10962 Q25.3906 42.3906 31.7812 42.3906
10963 Q38.1406 42.3906 41.7188 45.5625
10964 Q45.3125 48.7344 45.3125 54.3906
10965 Q45.3125 60.0625 41.7188 63.2344
10966 Q38.1406 66.4062 31.7812 66.4062
10967 Q25.3906 66.4062 21.8438 63.2344
10968 Q18.3125 60.0625 18.3125 54.3906" id="BitstreamVeraSans-Roman-38"/>
10969 </defs>
10970 <g transform="translate(298.5925 186.021875)scale(0.1 -0.1)">
10971 <use xlink:href="#BitstreamVeraSans-Roman-38"/>
10972 </g>
10973 </g>
10974 </g>
10975 </g>
10976 <g id="matplotlib.axis_2">
10977 <g id="ytick_1">
10978 <g id="line2d_11">
10979 <defs>
10980 <path d="
10981 M0 0
10982 L4 0" id="mf019e8ac8f"/>
10983 </defs>
10984 <g>
10985 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="16.5125" xlink:href="#mf019e8ac8f" y="23.94"/>
10986 </g>
10987 </g>
10988 <g id="line2d_12">
10989 <defs>
10990 <path d="
10991 M0 0
10992 L-4 0" id="m1ec148bd55"/>
10993 </defs>
10994 <g>
10995 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="351.3125" xlink:href="#m1ec148bd55" y="23.94"/>
10996 </g>
10997 </g>
10998 <g id="text_6">
10999 <!-- 0 -->
11000 <g transform="translate(7.4734375 27.57984375)scale(0.1 -0.1)">
11001 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
11002 </g>
11003 </g>
11004 </g>
11005 <g id="ytick_2">
11006 <g id="line2d_13">
11007 <defs>
11008 <path d="
11009 M0 0
11010 L4 0" id="mf019e8ac8f"/>
11011 </defs>
11012 <g>
11013 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="16.5125" xlink:href="#mf019e8ac8f" y="57.42"/>
11014 </g>
11015 </g>
11016 <g id="line2d_14">
11017 <defs>
11018 <path d="
11019 M0 0
11020 L-4 0" id="m1ec148bd55"/>
11021 </defs>
11022 <g>
11023 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="351.3125" xlink:href="#m1ec148bd55" y="57.42"/>
11024 </g>
11025 </g>
11026 <g id="text_7">
11027 <!-- 1 -->
11028 <defs>
11029 <path d="
11030 M12.4062 8.29688
11031 L28.5156 8.29688
11032 L28.5156 63.9219
11033 L10.9844 60.4062
11034 L10.9844 69.3906
11035 L28.4219 72.9062
11036 L38.2812 72.9062
11037 L38.2812 8.29688
11038 L54.3906 8.29688
11039 L54.3906 0
11040 L12.4062 0
11041 z
11042 " id="BitstreamVeraSans-Roman-31"/>
11043 </defs>
11044 <g transform="translate(8.171875 61.0653125)scale(0.1 -0.1)">
11045 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
11046 </g>
11047 </g>
11048 </g>
11049 <g id="ytick_3">
11050 <g id="line2d_15">
11051 <defs>
11052 <path d="
11053 M0 0
11054 L4 0" id="mf019e8ac8f"/>
11055 </defs>
11056 <g>
11057 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="16.5125" xlink:href="#mf019e8ac8f" y="90.9"/>
11058 </g>
11059 </g>
11060 <g id="line2d_16">
11061 <defs>
11062 <path d="
11063 M0 0
11064 L-4 0" id="m1ec148bd55"/>
11065 </defs>
11066 <g>
11067 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="351.3125" xlink:href="#m1ec148bd55" y="90.9"/>
11068 </g>
11069 </g>
11070 <g id="text_8">
11071 <!-- 2 -->
11072 <g transform="translate(7.884375 94.6109375)scale(0.1 -0.1)">
11073 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
11074 </g>
11075 </g>
11076 </g>
11077 <g id="ytick_4">
11078 <g id="line2d_17">
11079 <defs>
11080 <path d="
11081 M0 0
11082 L4 0" id="mf019e8ac8f"/>
11083 </defs>
11084 <g>
11085 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="16.5125" xlink:href="#mf019e8ac8f" y="124.38"/>
11086 </g>
11087 </g>
11088 <g id="line2d_18">
11089 <defs>
11090 <path d="
11091 M0 0
11092 L-4 0" id="m1ec148bd55"/>
11093 </defs>
11094 <g>
11095 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="351.3125" xlink:href="#m1ec148bd55" y="124.38"/>
11096 </g>
11097 </g>
11098 <g id="text_9">
11099 <!-- 3 -->
11100 <defs>
11101 <path d="
11102 M40.5781 39.3125
11103 Q47.6562 37.7969 51.625 33
11104 Q55.6094 28.2188 55.6094 21.1875
11105 Q55.6094 10.4062 48.1875 4.48438
11106 Q40.7656 -1.42188 27.0938 -1.42188
11107 Q22.5156 -1.42188 17.6562 -0.515625
11108 Q12.7969 0.390625 7.625 2.20312
11109 L7.625 11.7188
11110 Q11.7188 9.32812 16.5938 8.10938
11111 Q21.4844 6.89062 26.8125 6.89062
11112 Q36.0781 6.89062 40.9375 10.5469
11113 Q45.7969 14.2031 45.7969 21.1875
11114 Q45.7969 27.6406 41.2812 31.2656
11115 Q36.7656 34.9062 28.7188 34.9062
11116 L20.2188 34.9062
11117 L20.2188 43.0156
11118 L29.1094 43.0156
11119 Q36.375 43.0156 40.2344 45.9219
11120 Q44.0938 48.8281 44.0938 54.2969
11121 Q44.0938 59.9062 40.1094 62.9062
11122 Q36.1406 65.9219 28.7188 65.9219
11123 Q24.6562 65.9219 20.0156 65.0312
11124 Q15.375 64.1562 9.8125 62.3125
11125 L9.8125 71.0938
11126 Q15.4375 72.6562 20.3438 73.4375
11127 Q25.25 74.2188 29.5938 74.2188
11128 Q40.8281 74.2188 47.3594 69.1094
11129 Q53.9062 64.0156 53.9062 55.3281
11130 Q53.9062 49.2656 50.4375 45.0938
11131 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
11132 </defs>
11133 <g transform="translate(7.7140625 128.01984375)scale(0.1 -0.1)">
11134 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
11135 </g>
11136 </g>
11137 </g>
11138 <g id="ytick_5">
11139 <g id="line2d_19">
11140 <defs>
11141 <path d="
11142 M0 0
11143 L4 0" id="mf019e8ac8f"/>
11144 </defs>
11145 <g>
11146 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="16.5125" xlink:href="#mf019e8ac8f" y="157.86"/>
11147 </g>
11148 </g>
11149 <g id="line2d_20">
11150 <defs>
11151 <path d="
11152 M0 0
11153 L-4 0" id="m1ec148bd55"/>
11154 </defs>
11155 <g>
11156 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="351.3125" xlink:href="#m1ec148bd55" y="157.86"/>
11157 </g>
11158 </g>
11159 <g id="text_10">
11160 <!-- 4 -->
11161 <g transform="translate(7.2 161.5053125)scale(0.1 -0.1)">
11162 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
11163 </g>
11164 </g>
11165 </g>
11166 </g>
11167 <g id="patch_3">
11168 <path d="
11169 M16.5125 7.2
11170 L351.313 7.2" style="fill:none;stroke:#000000;"/>
11171 </g>
11172 <g id="patch_4">
11173 <path d="
11174 M351.312 174.6
11175 L351.312 7.2" style="fill:none;stroke:#000000;"/>
11176 </g>
11177 <g id="patch_5">
11178 <path d="
11179 M16.5125 174.6
11180 L351.313 174.6" style="fill:none;stroke:#000000;"/>
11181 </g>
11182 <g id="patch_6">
11183 <path d="
11184 M16.5125 174.6
11185 L16.5125 7.2" style="fill:none;stroke:#000000;"/>
11186 </g>
11187 </g>
11188 </g>
11189 <defs>
11190 <clipPath id="p345e7830e9">
11191 <rect height="167.4" width="334.8" x="16.5125" y="7.2"/>
11192 </clipPath>
11193 </defs>
11194 </svg>
11195
11196 </div>
11197 </div>
11198 </div>
11199 </div>
11200 </div>
11201 <div class="text_cell_render border-box-sizing rendered_html">
11202 <p>A real photograph is a multichannel image, <code>imshow</code> interprets it correctly:</p>
11203 </div>
11204 <div class="cell border-box-sizing code_cell vbox">
11205 <div class="input hbox">
11206 <div class="prompt input_prompt">In&nbsp;[67]:</div>
11207 <div class="input_area box-flex1">
11208 <div class="highlight"><pre><span class="n">img</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">imread</span><span class="p">(</span><span class="s">&#39;stinkbug.png&#39;</span><span class="p">)</span>
11209 <span class="k">print</span> <span class="s">&#39;Dimensions of the array img:&#39;</span><span class="p">,</span> <span class="n">img</span><span class="o">.</span><span class="n">shape</span>
11210 <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">img</span><span class="p">);</span>
11211 </pre></div>
11212
11213 </div>
11214 </div>
11215 <div class="vbox output_wrapper">
11216 <div class="output vbox">
11217 <div class="hbox output_area">
11218 <div class="prompt output_prompt"></div>
11219 <div class="output_subarea output_stream output_stdout">
11220 <pre>Dimensions of the array img: (375, 500, 3)
11221 </pre>
11222 </div>
11223 </div>
11224 <div class="hbox output_area">
11225 <div class="prompt output_prompt"></div>
11226 <div class="output_subarea output_display_data">
11227 <?xml version="1.0" encoding="utf-8" standalone="no"?>
11228 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
11229 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
11230 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
11231 <svg height="246pt" version="1.1" viewBox="0 0 326 246" width="326pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
11232 <defs>
11233 <style type="text/css">
11234 *{stroke-linecap:square;stroke-linejoin:round;}
11235 </style>
11236 </defs>
11237 <g id="figure_1">
11238 <g id="patch_1">
11239 <path d="
11240 M8.88178e-16 246.896
11241 L326.011 246.896
11242 L326.011 0
11243 L8.88178e-16 0
11244 z
11245 " style="fill:#ffffff;"/>
11246 </g>
11247 <g id="axes_1">
11248 <g id="patch_2">
11249 <path d="
11250 M28.8906 228.132
11251 L318.811 228.132
11252 L318.811 10.6921
11253 L28.8906 10.6921
11254 z
11255 " style="fill:#ffffff;"/>
11256 </g>
11257 <g clip-path="url(#p70479c23fa)">
11258 <image height="218" width="291" x="28.890625" xlink:href="data:image/png;base64,
11259 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" y="10.13211125"/>
11260 </g>
11261 <g id="matplotlib.axis_1">
11262 <g id="xtick_1">
11263 <g id="line2d_1">
11264 <defs>
11265 <path d="
11266 M0 0
11267 L0 -4" id="m1e01ff8d7c"/>
11268 </defs>
11269 <g>
11270 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="29.180545" xlink:href="#m1e01ff8d7c" y="228.13211125"/>
11271 </g>
11272 </g>
11273 <g id="line2d_2">
11274 <defs>
11275 <path d="
11276 M0 0
11277 L0 4" id="m91aa736623"/>
11278 </defs>
11279 <g>
11280 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="29.180545" xlink:href="#m91aa736623" y="10.69211125"/>
11281 </g>
11282 </g>
11283 <g id="text_1">
11284 <!-- 0 -->
11285 <defs>
11286 <path d="
11287 M31.7812 66.4062
11288 Q24.1719 66.4062 20.3281 58.9062
11289 Q16.5 51.4219 16.5 36.375
11290 Q16.5 21.3906 20.3281 13.8906
11291 Q24.1719 6.39062 31.7812 6.39062
11292 Q39.4531 6.39062 43.2812 13.8906
11293 Q47.125 21.3906 47.125 36.375
11294 Q47.125 51.4219 43.2812 58.9062
11295 Q39.4531 66.4062 31.7812 66.4062
11296 M31.7812 74.2188
11297 Q44.0469 74.2188 50.5156 64.5156
11298 Q56.9844 54.8281 56.9844 36.375
11299 Q56.9844 17.9688 50.5156 8.26562
11300 Q44.0469 -1.42188 31.7812 -1.42188
11301 Q19.5312 -1.42188 13.0625 8.26562
11302 Q6.59375 17.9688 6.59375 36.375
11303 Q6.59375 54.8281 13.0625 64.5156
11304 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
11305 </defs>
11306 <g transform="translate(26.66101375 239.55398625)scale(0.1 -0.1)">
11307 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
11308 </g>
11309 </g>
11310 </g>
11311 <g id="xtick_2">
11312 <g id="line2d_3">
11313 <defs>
11314 <path d="
11315 M0 0
11316 L0 -4" id="m1e01ff8d7c"/>
11317 </defs>
11318 <g>
11319 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="87.164545" xlink:href="#m1e01ff8d7c" y="228.13211125"/>
11320 </g>
11321 </g>
11322 <g id="line2d_4">
11323 <defs>
11324 <path d="
11325 M0 0
11326 L0 4" id="m91aa736623"/>
11327 </defs>
11328 <g>
11329 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="87.164545" xlink:href="#m91aa736623" y="10.69211125"/>
11330 </g>
11331 </g>
11332 <g id="text_2">
11333 <!-- 100 -->
11334 <defs>
11335 <path d="
11336 M12.4062 8.29688
11337 L28.5156 8.29688
11338 L28.5156 63.9219
11339 L10.9844 60.4062
11340 L10.9844 69.3906
11341 L28.4219 72.9062
11342 L38.2812 72.9062
11343 L38.2812 8.29688
11344 L54.3906 8.29688
11345 L54.3906 0
11346 L12.4062 0
11347 z
11348 " id="BitstreamVeraSans-Roman-31"/>
11349 </defs>
11350 <g transform="translate(78.502045 239.55398625)scale(0.1 -0.1)">
11351 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
11352 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11353 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11354 </g>
11355 </g>
11356 </g>
11357 <g id="xtick_3">
11358 <g id="line2d_5">
11359 <defs>
11360 <path d="
11361 M0 0
11362 L0 -4" id="m1e01ff8d7c"/>
11363 </defs>
11364 <g>
11365 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="145.148545" xlink:href="#m1e01ff8d7c" y="228.13211125"/>
11366 </g>
11367 </g>
11368 <g id="line2d_6">
11369 <defs>
11370 <path d="
11371 M0 0
11372 L0 4" id="m91aa736623"/>
11373 </defs>
11374 <g>
11375 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="145.148545" xlink:href="#m91aa736623" y="10.69211125"/>
11376 </g>
11377 </g>
11378 <g id="text_3">
11379 <!-- 200 -->
11380 <defs>
11381 <path d="
11382 M19.1875 8.29688
11383 L53.6094 8.29688
11384 L53.6094 0
11385 L7.32812 0
11386 L7.32812 8.29688
11387 Q12.9375 14.1094 22.625 23.8906
11388 Q32.3281 33.6875 34.8125 36.5312
11389 Q39.5469 41.8438 41.4219 45.5312
11390 Q43.3125 49.2188 43.3125 52.7812
11391 Q43.3125 58.5938 39.2344 62.25
11392 Q35.1562 65.9219 28.6094 65.9219
11393 Q23.9688 65.9219 18.8125 64.3125
11394 Q13.6719 62.7031 7.8125 59.4219
11395 L7.8125 69.3906
11396 Q13.7656 71.7812 18.9375 73
11397 Q24.125 74.2188 28.4219 74.2188
11398 Q39.75 74.2188 46.4844 68.5469
11399 Q53.2188 62.8906 53.2188 53.4219
11400 Q53.2188 48.9219 51.5312 44.8906
11401 Q49.8594 40.875 45.4062 35.4062
11402 Q44.1875 33.9844 37.6406 27.2188
11403 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
11404 </defs>
11405 <g transform="translate(136.3032325 239.55398625)scale(0.1 -0.1)">
11406 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
11407 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11408 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11409 </g>
11410 </g>
11411 </g>
11412 <g id="xtick_4">
11413 <g id="line2d_7">
11414 <defs>
11415 <path d="
11416 M0 0
11417 L0 -4" id="m1e01ff8d7c"/>
11418 </defs>
11419 <g>
11420 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="203.132545" xlink:href="#m1e01ff8d7c" y="228.13211125"/>
11421 </g>
11422 </g>
11423 <g id="line2d_8">
11424 <defs>
11425 <path d="
11426 M0 0
11427 L0 4" id="m91aa736623"/>
11428 </defs>
11429 <g>
11430 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="203.132545" xlink:href="#m91aa736623" y="10.69211125"/>
11431 </g>
11432 </g>
11433 <g id="text_4">
11434 <!-- 300 -->
11435 <defs>
11436 <path d="
11437 M40.5781 39.3125
11438 Q47.6562 37.7969 51.625 33
11439 Q55.6094 28.2188 55.6094 21.1875
11440 Q55.6094 10.4062 48.1875 4.48438
11441 Q40.7656 -1.42188 27.0938 -1.42188
11442 Q22.5156 -1.42188 17.6562 -0.515625
11443 Q12.7969 0.390625 7.625 2.20312
11444 L7.625 11.7188
11445 Q11.7188 9.32812 16.5938 8.10938
11446 Q21.4844 6.89062 26.8125 6.89062
11447 Q36.0781 6.89062 40.9375 10.5469
11448 Q45.7969 14.2031 45.7969 21.1875
11449 Q45.7969 27.6406 41.2812 31.2656
11450 Q36.7656 34.9062 28.7188 34.9062
11451 L20.2188 34.9062
11452 L20.2188 43.0156
11453 L29.1094 43.0156
11454 Q36.375 43.0156 40.2344 45.9219
11455 Q44.0938 48.8281 44.0938 54.2969
11456 Q44.0938 59.9062 40.1094 62.9062
11457 Q36.1406 65.9219 28.7188 65.9219
11458 Q24.6562 65.9219 20.0156 65.0312
11459 Q15.375 64.1562 9.8125 62.3125
11460 L9.8125 71.0938
11461 Q15.4375 72.6562 20.3438 73.4375
11462 Q25.25 74.2188 29.5938 74.2188
11463 Q40.8281 74.2188 47.3594 69.1094
11464 Q53.9062 64.0156 53.9062 55.3281
11465 Q53.9062 49.2656 50.4375 45.0938
11466 Q46.9688 40.9219 40.5781 39.3125" id="BitstreamVeraSans-Roman-33"/>
11467 </defs>
11468 <g transform="translate(194.30207625 239.55398625)scale(0.1 -0.1)">
11469 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
11470 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11471 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11472 </g>
11473 </g>
11474 </g>
11475 <g id="xtick_5">
11476 <g id="line2d_9">
11477 <defs>
11478 <path d="
11479 M0 0
11480 L0 -4" id="m1e01ff8d7c"/>
11481 </defs>
11482 <g>
11483 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="261.116545" xlink:href="#m1e01ff8d7c" y="228.13211125"/>
11484 </g>
11485 </g>
11486 <g id="line2d_10">
11487 <defs>
11488 <path d="
11489 M0 0
11490 L0 4" id="m91aa736623"/>
11491 </defs>
11492 <g>
11493 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="261.116545" xlink:href="#m91aa736623" y="10.69211125"/>
11494 </g>
11495 </g>
11496 <g id="text_5">
11497 <!-- 400 -->
11498 <defs>
11499 <path d="
11500 M37.7969 64.3125
11501 L12.8906 25.3906
11502 L37.7969 25.3906
11503 z
11504
11505 M35.2031 72.9062
11506 L47.6094 72.9062
11507 L47.6094 25.3906
11508 L58.0156 25.3906
11509 L58.0156 17.1875
11510 L47.6094 17.1875
11511 L47.6094 0
11512 L37.7969 0
11513 L37.7969 17.1875
11514 L4.89062 17.1875
11515 L4.89062 26.7031
11516 z
11517 " id="BitstreamVeraSans-Roman-34"/>
11518 </defs>
11519 <g transform="translate(252.1493575 239.55398625)scale(0.1 -0.1)">
11520 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
11521 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11522 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11523 </g>
11524 </g>
11525 </g>
11526 </g>
11527 <g id="matplotlib.axis_2">
11528 <g id="ytick_1">
11529 <g id="line2d_11">
11530 <defs>
11531 <path d="
11532 M0 0
11533 L4 0" id="mf019e8ac8f"/>
11534 </defs>
11535 <g>
11536 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="10.98203125"/>
11537 </g>
11538 </g>
11539 <g id="line2d_12">
11540 <defs>
11541 <path d="
11542 M0 0
11543 L-4 0" id="m1ec148bd55"/>
11544 </defs>
11545 <g>
11546 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="10.98203125"/>
11547 </g>
11548 </g>
11549 <g id="text_6">
11550 <!-- 0 -->
11551 <g transform="translate(19.8515625 14.621875)scale(0.1 -0.1)">
11552 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
11553 </g>
11554 </g>
11555 </g>
11556 <g id="ytick_2">
11557 <g id="line2d_13">
11558 <defs>
11559 <path d="
11560 M0 0
11561 L4 0" id="mf019e8ac8f"/>
11562 </defs>
11563 <g>
11564 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="39.97403125"/>
11565 </g>
11566 </g>
11567 <g id="line2d_14">
11568 <defs>
11569 <path d="
11570 M0 0
11571 L-4 0" id="m1ec148bd55"/>
11572 </defs>
11573 <g>
11574 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="39.97403125"/>
11575 </g>
11576 </g>
11577 <g id="text_7">
11578 <!-- 50 -->
11579 <defs>
11580 <path d="
11581 M10.7969 72.9062
11582 L49.5156 72.9062
11583 L49.5156 64.5938
11584 L19.8281 64.5938
11585 L19.8281 46.7344
11586 Q21.9688 47.4688 24.1094 47.8281
11587 Q26.2656 48.1875 28.4219 48.1875
11588 Q40.625 48.1875 47.75 41.5
11589 Q54.8906 34.8125 54.8906 23.3906
11590 Q54.8906 11.625 47.5625 5.09375
11591 Q40.2344 -1.42188 26.9062 -1.42188
11592 Q22.3125 -1.42188 17.5469 -0.640625
11593 Q12.7969 0.140625 7.71875 1.70312
11594 L7.71875 11.625
11595 Q12.1094 9.23438 16.7969 8.0625
11596 Q21.4844 6.89062 26.7031 6.89062
11597 Q35.1562 6.89062 40.0781 11.3281
11598 Q45.0156 15.7656 45.0156 23.3906
11599 Q45.0156 31 40.0781 35.4375
11600 Q35.1562 39.8906 26.7031 39.8906
11601 Q22.75 39.8906 18.8125 39.0156
11602 Q14.8906 38.1406 10.7969 36.2812
11603 z
11604 " id="BitstreamVeraSans-Roman-35"/>
11605 </defs>
11606 <g transform="translate(13.6015625 43.613875)scale(0.1 -0.1)">
11607 <use xlink:href="#BitstreamVeraSans-Roman-35"/>
11608 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11609 </g>
11610 </g>
11611 </g>
11612 <g id="ytick_3">
11613 <g id="line2d_15">
11614 <defs>
11615 <path d="
11616 M0 0
11617 L4 0" id="mf019e8ac8f"/>
11618 </defs>
11619 <g>
11620 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="68.96603125"/>
11621 </g>
11622 </g>
11623 <g id="line2d_16">
11624 <defs>
11625 <path d="
11626 M0 0
11627 L-4 0" id="m1ec148bd55"/>
11628 </defs>
11629 <g>
11630 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="68.96603125"/>
11631 </g>
11632 </g>
11633 <g id="text_8">
11634 <!-- 100 -->
11635 <g transform="translate(7.565625 72.605875)scale(0.1 -0.1)">
11636 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
11637 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11638 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11639 </g>
11640 </g>
11641 </g>
11642 <g id="ytick_4">
11643 <g id="line2d_17">
11644 <defs>
11645 <path d="
11646 M0 0
11647 L4 0" id="mf019e8ac8f"/>
11648 </defs>
11649 <g>
11650 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="97.95803125"/>
11651 </g>
11652 </g>
11653 <g id="line2d_18">
11654 <defs>
11655 <path d="
11656 M0 0
11657 L-4 0" id="m1ec148bd55"/>
11658 </defs>
11659 <g>
11660 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="97.95803125"/>
11661 </g>
11662 </g>
11663 <g id="text_9">
11664 <!-- 150 -->
11665 <g transform="translate(7.565625 101.597875)scale(0.1 -0.1)">
11666 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
11667 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-35"/>
11668 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11669 </g>
11670 </g>
11671 </g>
11672 <g id="ytick_5">
11673 <g id="line2d_19">
11674 <defs>
11675 <path d="
11676 M0 0
11677 L4 0" id="mf019e8ac8f"/>
11678 </defs>
11679 <g>
11680 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="126.95003125"/>
11681 </g>
11682 </g>
11683 <g id="line2d_20">
11684 <defs>
11685 <path d="
11686 M0 0
11687 L-4 0" id="m1ec148bd55"/>
11688 </defs>
11689 <g>
11690 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="126.95003125"/>
11691 </g>
11692 </g>
11693 <g id="text_10">
11694 <!-- 200 -->
11695 <g transform="translate(7.2 130.589875)scale(0.1 -0.1)">
11696 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
11697 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11698 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11699 </g>
11700 </g>
11701 </g>
11702 <g id="ytick_6">
11703 <g id="line2d_21">
11704 <defs>
11705 <path d="
11706 M0 0
11707 L4 0" id="mf019e8ac8f"/>
11708 </defs>
11709 <g>
11710 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="155.94203125"/>
11711 </g>
11712 </g>
11713 <g id="line2d_22">
11714 <defs>
11715 <path d="
11716 M0 0
11717 L-4 0" id="m1ec148bd55"/>
11718 </defs>
11719 <g>
11720 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="155.94203125"/>
11721 </g>
11722 </g>
11723 <g id="text_11">
11724 <!-- 250 -->
11725 <g transform="translate(7.2 159.581875)scale(0.1 -0.1)">
11726 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
11727 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-35"/>
11728 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11729 </g>
11730 </g>
11731 </g>
11732 <g id="ytick_7">
11733 <g id="line2d_23">
11734 <defs>
11735 <path d="
11736 M0 0
11737 L4 0" id="mf019e8ac8f"/>
11738 </defs>
11739 <g>
11740 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="184.93403125"/>
11741 </g>
11742 </g>
11743 <g id="line2d_24">
11744 <defs>
11745 <path d="
11746 M0 0
11747 L-4 0" id="m1ec148bd55"/>
11748 </defs>
11749 <g>
11750 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="184.93403125"/>
11751 </g>
11752 </g>
11753 <g id="text_12">
11754 <!-- 300 -->
11755 <g transform="translate(7.2296875 188.573875)scale(0.1 -0.1)">
11756 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
11757 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/>
11758 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11759 </g>
11760 </g>
11761 </g>
11762 <g id="ytick_8">
11763 <g id="line2d_25">
11764 <defs>
11765 <path d="
11766 M0 0
11767 L4 0" id="mf019e8ac8f"/>
11768 </defs>
11769 <g>
11770 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="28.890625" xlink:href="#mf019e8ac8f" y="213.92603125"/>
11771 </g>
11772 </g>
11773 <g id="line2d_26">
11774 <defs>
11775 <path d="
11776 M0 0
11777 L-4 0" id="m1ec148bd55"/>
11778 </defs>
11779 <g>
11780 <use style="stroke:#000000;stroke-linecap:butt;stroke-width:0.5;" x="318.810625" xlink:href="#m1ec148bd55" y="213.92603125"/>
11781 </g>
11782 </g>
11783 <g id="text_13">
11784 <!-- 350 -->
11785 <g transform="translate(7.2296875 217.565875)scale(0.1 -0.1)">
11786 <use xlink:href="#BitstreamVeraSans-Roman-33"/>
11787 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-35"/>
11788 <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/>
11789 </g>
11790 </g>
11791 </g>
11792 </g>
11793 <g id="patch_3">
11794 <path d="
11795 M28.8906 10.6921
11796 L318.811 10.6921" style="fill:none;stroke:#000000;"/>
11797 </g>
11798 <g id="patch_4">
11799 <path d="
11800 M318.811 228.132
11801 L318.811 10.6921" style="fill:none;stroke:#000000;"/>
11802 </g>
11803 <g id="patch_5">
11804 <path d="
11805 M28.8906 228.132
11806 L318.811 228.132" style="fill:none;stroke:#000000;"/>
11807 </g>
11808 <g id="patch_6">
11809 <path d="
11810 M28.8906 228.132
11811 L28.8906 10.6921" style="fill:none;stroke:#000000;"/>
11812 </g>
11813 </g>
11814 </g>
11815 <defs>
11816 <clipPath id="p70479c23fa">
11817 <rect height="217.44" width="289.92" x="28.890625" y="10.69211125"/>
11818 </clipPath>
11819 </defs>
11820 </svg>
11821
11822 </div>
11823 </div>
11824 </div>
11825 </div>
11826 </div>
11827 <div class="text_cell_render border-box-sizing rendered_html">
11828 <h2>
11829 Simple 3d plotting with matplotlib
11830 </h2>
11831 </div>
11832 <div class="text_cell_render border-box-sizing rendered_html">
11833 <p>Note that you must execute at least once in your session:</p>
11834 </div>
11835 <div class="cell border-box-sizing code_cell vbox">
11836 <div class="input hbox">
11837 <div class="prompt input_prompt">In&nbsp;[68]:</div>
11838 <div class="input_area box-flex1">
11839 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">mpl_toolkits.mplot3d</span> <span class="kn">import</span> <span class="n">Axes3D</span>
11840 </pre></div>
11841
11842 </div>
11843 </div>
11844 </div>
11845 <div class="text_cell_render border-box-sizing rendered_html">
11846 <p>One this has been done, you can create 3d axes with the <code>projection='3d'</code> keyword to <code>add_subplot</code>:</p>
11847 <pre><code>fig = plt.figure()
11848 fig.add_subplot(&lt;other arguments here&gt;, projection='3d')
11849 </code></pre>
11850 </div>
11851 <div class="text_cell_render border-box-sizing rendered_html">
11852 <p>A simple surface plot:</p>
11853 </div>
11854 <div class="cell border-box-sizing code_cell vbox">
11855 <div class="input hbox">
11856 <div class="prompt input_prompt">In&nbsp;[72]:</div>
11857 <div class="input_area box-flex1">
11858 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">mpl_toolkits.mplot3d.axes3d</span> <span class="kn">import</span> <span class="n">Axes3D</span>
11859 <span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">cm</span>
11860
11861 <span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
11862 <span class="n">ax</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">projection</span><span class="o">=</span><span class="s">&#39;3d&#39;</span><span class="p">)</span>
11863 <span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mf">0.25</span><span class="p">)</span>
11864 <span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mf">0.25</span><span class="p">)</span>
11865 <span class="n">X</span><span class="p">,</span> <span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">meshgrid</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span>
11866 <span class="n">R</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">X</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">Y</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
11867 <span class="n">Z</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">R</span><span class="p">)</span>
11868 <span class="n">surf</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot_surface</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">,</span> <span class="n">rstride</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">cstride</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">jet</span><span class="p">,</span>
11869 <span class="n">linewidth</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">antialiased</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
11870 <span class="n">ax</span><span class="o">.</span><span class="n">set_zlim3d</span><span class="p">(</span><span class="o">-</span><span class="mf">1.01</span><span class="p">,</span> <span class="mf">1.01</span><span class="p">);</span>
11871 </pre></div>
11872
11873 </div>
11874 </div>
11875 <div class="vbox output_wrapper">
11876 <div class="output vbox">
11877 <div class="hbox output_area">
11878 <div class="prompt output_prompt"></div>
11879 <div class="output_subarea output_display_data">
11880 <?xml version="1.0" encoding="utf-8" standalone="no"?>
11881 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
11882 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
11883 <!-- Created with matplotlib (http://matplotlib.sourceforge.net/) -->
11884 <svg height="231pt" version="1.1" viewBox="0 0 349 231" width="349pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
11885 <defs>
11886 <style type="text/css">
11887 *{stroke-linecap:square;stroke-linejoin:round;}
11888 </style>
11889 </defs>
11890 <g id="figure_1">
11891 <g id="patch_1">
11892 <path d="
11893 M-2.66454e-15 231.84
11894 L349.2 231.84
11895 L349.2 0
11896 L-2.66454e-15 0
11897 z
11898 " style="fill:#ffffff;"/>
11899 </g>
11900 <g id="patch_2">
11901 <path d="
11902 M7.2 224.64
11903 L342 224.64
11904 L342 7.2
11905 L7.2 7.2
11906 z
11907 " style="fill:#ffffff;"/>
11908 </g>
11909 <g id="pane3d_1">
11910 <g id="patch_3">
11911 <path d="
11912 M51.5829 176.593
11913 L147.404 123.282
11914 L145.809 21.4128
11915 z
11916 " style="fill:#f2f2f2;opacity:0.5;stroke:#f2f2f2;"/>
11917 </g>
11918 </g>
11919 <g id="pane3d_2">
11920 <g id="patch_4">
11921 <path d="
11922 M147.404 123.282
11923 L302.626 153.087
11924 L309.121 48.1455
11925 z
11926 " style="fill:#e6e6e6;opacity:0.5;stroke:#e6e6e6;"/>
11927 </g>
11928 </g>
11929 <g id="pane3d_3">
11930 <g id="patch_5">
11931 <path d="
11932 M51.5829 176.593
11933 L214.897 211.306
11934 L302.626 153.087
11935 z
11936 " style="fill:#ececec;opacity:0.5;stroke:#ececec;"/>
11937 </g>
11938 </g>
11939 <g id="axis3d_1">
11940 <g id="line2d_1">
11941 <path d="
11942 M51.5829 176.593
11943 L214.897 211.306" style="fill:none;stroke:#000000;stroke-width:0.75;"/>
11944 </g>
11945 <g id="Line3DCollection_1">
11946 <defs>
11947 <path d="
11948 M70.1633 -51.2973
11949 L165.117 -105.157
11950 L164.409 -207.383" id="C0_0_02bb915e1d"/>
11951 <path d="
11952 M101.492 -44.6385
11953 L194.951 -99.4285
11954 L195.758 -202.251" id="C0_1_47d33dfde9"/>
11955 <path d="
11956 M133.384 -37.8598
11957 L225.283 -93.6044
11958 L227.657 -197.029" id="C0_2_8735555351"/>
11959 <path d="
11960 M165.856 -30.9579
11961 L256.125 -87.6823
11962 L260.121 -191.715" id="C0_3_271e3f5f8e"/>
11963 <path d="
11964 M198.924 -23.9295
11965 L287.491 -81.6597
11966 L293.165 -186.306" id="C0_4_b8fdcc683a"/>
11967 </defs>
11968 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C0_0_02bb915e1d" y="231.84"/>
11969 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C0_1_47d33dfde9" y="231.84"/>
11970 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C0_2_8735555351" y="231.84"/>
11971 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C0_3_271e3f5f8e" y="231.84"/>
11972 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C0_4_b8fdcc683a" y="231.84"/>
11973 </g>
11974 <g id="xtick_1">
11975 <g id="line2d_2">
11976 <path d="
11977 M70.9815 180.079
11978 L68.5238 181.473" style="fill:none;stroke:#000000;"/>
11979 </g>
11980 <g id="text_1">
11981 <!-- −4 -->
11982 <defs>
11983 <path d="
11984 M10.5938 35.5
11985 L73.1875 35.5
11986 L73.1875 27.2031
11987 L10.5938 27.2031
11988 z
11989 " id="BitstreamVeraSans-Roman-2212"/>
11990 <path d="
11991 M37.7969 64.3125
11992 L12.8906 25.3906
11993 L37.7969 25.3906
11994 z
11995
11996 M35.2031 72.9062
11997 L47.6094 72.9062
11998 L47.6094 25.3906
11999 L58.0156 25.3906
12000 L58.0156 17.1875
12001 L47.6094 17.1875
12002 L47.6094 0
12003 L37.7969 0
12004 L37.7969 17.1875
12005 L4.89062 17.1875
12006 L4.89062 26.7031
12007 z
12008 " id="BitstreamVeraSans-Roman-34"/>
12009 </defs>
12010 <g transform="translate(58.1799204745 196.81377752)scale(0.1 -0.1)">
12011 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
12012 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-34"/>
12013 </g>
12014 </g>
12015 </g>
12016 <g id="xtick_2">
12017 <g id="line2d_3">
12018 <path d="
12019 M102.298 186.729
12020 L99.877 188.148" style="fill:none;stroke:#000000;"/>
12021 </g>
12022 <g id="text_2">
12023 <!-- −2 -->
12024 <defs>
12025 <path d="
12026 M19.1875 8.29688
12027 L53.6094 8.29688
12028 L53.6094 0
12029 L7.32812 0
12030 L7.32812 8.29688
12031 Q12.9375 14.1094 22.625 23.8906
12032 Q32.3281 33.6875 34.8125 36.5312
12033 Q39.5469 41.8438 41.4219 45.5312
12034 Q43.3125 49.2188 43.3125 52.7812
12035 Q43.3125 58.5938 39.2344 62.25
12036 Q35.1562 65.9219 28.6094 65.9219
12037 Q23.9688 65.9219 18.8125 64.3125
12038 Q13.6719 62.7031 7.8125 59.4219
12039 L7.8125 69.3906
12040 Q13.7656 71.7812 18.9375 73
12041 Q24.125 74.2188 28.4219 74.2188
12042 Q39.75 74.2188 46.4844 68.5469
12043 Q53.2188 62.8906 53.2188 53.4219
12044 Q53.2188 48.9219 51.5312 44.8906
12045 Q49.8594 40.875 45.4062 35.4062
12046 Q44.1875 33.9844 37.6406 27.2188
12047 Q31.1094 20.4531 19.1875 8.29688" id="BitstreamVeraSans-Roman-32"/>
12048 </defs>
12049 <g transform="translate(89.72612783 203.693854874)scale(0.1 -0.1)">
12050 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
12051 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-32"/>
12052 </g>
12053 </g>
12054 </g>
12055 <g id="xtick_3">
12056 <g id="line2d_4">
12057 <path d="
12058 M134.177 193.499
12059 L131.795 194.944" style="fill:none;stroke:#000000;"/>
12060 </g>
12061 <g id="text_3">
12062 <!-- 0 -->
12063 <defs>
12064 <path d="
12065 M31.7812 66.4062
12066 Q24.1719 66.4062 20.3281 58.9062
12067 Q16.5 51.4219 16.5 36.375
12068 Q16.5 21.3906 20.3281 13.8906
12069 Q24.1719 6.39062 31.7812 6.39062
12070 Q39.4531 6.39062 43.2812 13.8906
12071 Q47.125 21.3906 47.125 36.375
12072 Q47.125 51.4219 43.2812 58.9062
12073 Q39.4531 66.4062 31.7812 66.4062
12074 M31.7812 74.2188
12075 Q44.0469 74.2188 50.5156 64.5156
12076 Q56.9844 54.8281 56.9844 36.375
12077 Q56.9844 17.9688 50.5156 8.26562
12078 Q44.0469 -1.42188 31.7812 -1.42188
12079 Q19.5312 -1.42188 13.0625 8.26562
12080 Q6.59375 17.9688 6.59375 36.375
12081 Q6.59375 54.8281 13.0625 64.5156
12082 Q19.5312 74.2188 31.7812 74.2188" id="BitstreamVeraSans-Roman-30"/>
12083 </defs>
12084 <g transform="translate(125.438103358 210.564402589)scale(0.1 -0.1)">
12085 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
12086 </g>
12087 </g>
12088 </g>
12089 <g id="xtick_4">
12090 <g id="line2d_5">
12091 <path d="
12092 M166.636 200.392
12093 L164.295 201.863" style="fill:none;stroke:#000000;"/>
12094 </g>
12095 <g id="text_4">
12096 <!-- 2 -->
12097 <g transform="translate(158.11486487 217.559993611)scale(0.1 -0.1)">
12098 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
12099 </g>
12100 </g>
12101 </g>
12102 <g id="xtick_5">
12103 <g id="line2d_6">
12104 <path d="
12105 M199.689 207.412
12106 L197.391 208.91" style="fill:none;stroke:#000000;"/>
12107 </g>
12108 <g id="text_5">
12109 <!-- 4 -->
12110 <g transform="translate(190.840371765 224.552822956)scale(0.1 -0.1)">
12111 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
12112 </g>
12113 </g>
12114 </g>
12115 </g>
12116 <g id="axis3d_2">
12117 <g id="line2d_7">
12118 <path d="
12119 M302.626 153.087
12120 L214.897 211.306" style="fill:none;stroke:#000000;stroke-width:0.75;"/>
12121 </g>
12122 <g id="Line3DCollection_2">
12123 <defs>
12124 <path d="
12125 M57.4827 -168.606
12126 L63.7014 -61.9888
12127 L226.025 -27.9189" id="C1_0_bdacdcf66f"/>
12128 <path d="
12129 M78.2882 -178.457
12130 L83.3665 -72.9297
12131 L244.062 -39.8887" id="C1_1_a38f239468"/>
12132 <path d="
12133 M98.4518 -188.004
12134 L102.455 -83.5499
12135 L261.546 -51.4918" id="C1_2_b5fd8b32b7"/>
12136 <path d="
12137 M118.003 -197.262
12138 L120.992 -93.8632
12139 L278.503 -62.7449" id="C1_3_0720c8557e"/>
12140 <path d="
12141 M136.969 -206.242
12142 L139.001 -103.883
12143 L294.956 -73.6634" id="C1_4_ede8638283"/>
12144 </defs>
12145 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C1_0_bdacdcf66f" y="231.84"/>
12146 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C1_1_a38f239468" y="231.84"/>
12147 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C1_2_b5fd8b32b7" y="231.84"/>
12148 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C1_3_0720c8557e" y="231.84"/>
12149 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C1_4_ede8638283" y="231.84"/>
12150 </g>
12151 <g id="xtick_6">
12152 <g id="line2d_8">
12153 <path d="
12154 M224.667 203.636
12155 L228.744 204.492" style="fill:none;stroke:#000000;"/>
12156 </g>
12157 <g id="text_6">
12158 <!-- −4 -->
12159 <g transform="translate(228.830878381 219.030602898)scale(0.1 -0.1)">
12160 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
12161 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-34"/>
12162 </g>
12163 </g>
12164 </g>
12165 <g id="xtick_7">
12166 <g id="line2d_9">
12167 <path d="
12168 M242.718 191.675
12169 L246.752 192.504" style="fill:none;stroke:#000000;"/>
12170 </g>
12171 <g id="text_7">
12172 <!-- −2 -->
12173 <g transform="translate(246.935428322 207.075222221)scale(0.1 -0.1)">
12174 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
12175 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-32"/>
12176 </g>
12177 </g>
12178 </g>
12179 <g id="xtick_8">
12180 <g id="line2d_10">
12181 <path d="
12182 M260.217 180.08
12183 L264.208 180.885" style="fill:none;stroke:#000000;"/>
12184 </g>
12185 <g id="text_8">
12186 <!-- 0 -->
12187 <g transform="translate(268.093126495 195.358696116)scale(0.1 -0.1)">
12188 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
12189 </g>
12190 </g>
12191 </g>
12192 <g id="xtick_9">
12193 <g id="line2d_11">
12194 <path d="
12195 M277.188 168.835
12196 L281.137 169.615" style="fill:none;stroke:#000000;"/>
12197 </g>
12198 <g id="text_9">
12199 <!-- 2 -->
12200 <g transform="translate(285.112340941 183.995531475)scale(0.1 -0.1)">
12201 <use xlink:href="#BitstreamVeraSans-Roman-32"/>
12202 </g>
12203 </g>
12204 </g>
12205 <g id="xtick_10">
12206 <g id="line2d_12">
12207 <path d="
12208 M293.655 157.924
12209 L297.562 158.681" style="fill:none;stroke:#000000;"/>
12210 </g>
12211 <g id="text_10">
12212 <!-- 4 -->
12213 <g transform="translate(301.08434255 172.838730109)scale(0.1 -0.1)">
12214 <use xlink:href="#BitstreamVeraSans-Roman-34"/>
12215 </g>
12216 </g>
12217 </g>
12218 </g>
12219 <g id="axis3d_3">
12220 <g id="line2d_13">
12221 <path d="
12222 M302.626 153.087
12223 L309.121 48.1455" style="fill:none;stroke:#000000;stroke-width:0.75;"/>
12224 </g>
12225 <g id="Line3DCollection_3">
12226 <defs>
12227 <path d="
12228 M302.779 -81.2243
12229 L147.367 -110.962
12230 L51.4198 -57.7683" id="C2_0_638e324963"/>
12231 <path d="
12232 M304.267 -105.259
12233 L147.001 -134.33
12234 L49.8328 -82.3088" id="C2_1_aa91419280"/>
12235 <path d="
12236 M305.79 -129.88
12237 L146.626 -158.243
12238 L48.2058 -107.467" id="C2_2_9ac9ae6486"/>
12239 <path d="
12240 M307.351 -155.107
12241 L146.243 -182.72
12242 L46.5373 -133.266" id="C2_3_25add4ef56"/>
12243 <path d="
12244 M308.952 -180.964
12245 L145.851 -207.782
12246 L44.8257 -159.732" id="C2_4_c0c5f49c07"/>
12247 </defs>
12248 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C2_0_638e324963" y="231.84"/>
12249 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C2_1_aa91419280" y="231.84"/>
12250 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C2_2_9ac9ae6486" y="231.84"/>
12251 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C2_3_25add4ef56" y="231.84"/>
12252 <use style="fill:none;stroke:#e6e6e6;stroke-linecap:butt;" x="0" xlink:href="#C2_4_c0c5f49c07" y="231.84"/>
12253 </g>
12254 <g id="xtick_11">
12255 <g id="line2d_14">
12256 <path d="
12257 M301.482 150.368
12258 L305.375 151.112" style="fill:none;stroke:#000000;"/>
12259 </g>
12260 <g id="text_11">
12261 <!-- −1.0 -->
12262 <defs>
12263 <path d="
12264 M12.4062 8.29688
12265 L28.5156 8.29688
12266 L28.5156 63.9219
12267 L10.9844 60.4062
12268 L10.9844 69.3906
12269 L28.4219 72.9062
12270 L38.2812 72.9062
12271 L38.2812 8.29688
12272 L54.3906 8.29688
12273 L54.3906 0
12274 L12.4062 0
12275 z
12276 " id="BitstreamVeraSans-Roman-31"/>
12277 <path d="
12278 M10.6875 12.4062
12279 L21 12.4062
12280 L21 0
12281 L10.6875 0
12282 z
12283 " id="BitstreamVeraSans-Roman-2e"/>
12284 </defs>
12285 <g transform="translate(305.105079667 156.767960107)scale(0.1 -0.1)">
12286 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
12287 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-31"/>
12288 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
12289 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-30"/>
12290 </g>
12291 </g>
12292 </g>
12293 <g id="xtick_12">
12294 <g id="line2d_15">
12295 <path d="
12296 M302.954 126.338
12297 L306.895 127.066" style="fill:none;stroke:#000000;"/>
12298 </g>
12299 <g id="text_12">
12300 <!-- −0.5 -->
12301 <defs>
12302 <path d="
12303 M10.7969 72.9062
12304 L49.5156 72.9062
12305 L49.5156 64.5938
12306 L19.8281 64.5938
12307 L19.8281 46.7344
12308 Q21.9688 47.4688 24.1094 47.8281
12309 Q26.2656 48.1875 28.4219 48.1875
12310 Q40.625 48.1875 47.75 41.5
12311 Q54.8906 34.8125 54.8906 23.3906
12312 Q54.8906 11.625 47.5625 5.09375
12313 Q40.2344 -1.42188 26.9062 -1.42188
12314 Q22.3125 -1.42188 17.5469 -0.640625
12315 Q12.7969 0.140625 7.71875 1.70312
12316 L7.71875 11.625
12317 Q12.1094 9.23438 16.7969 8.0625
12318 Q21.4844 6.89062 26.7031 6.89062
12319 Q35.1562 6.89062 40.0781 11.3281
12320 Q45.0156 15.7656 45.0156 23.3906
12321 Q45.0156 31 40.0781 35.4375
12322 Q35.1562 39.8906 26.7031 39.8906
12323 Q22.75 39.8906 18.8125 39.0156
12324 Q14.8906 38.1406 10.7969 36.2812
12325 z
12326 " id="BitstreamVeraSans-Roman-35"/>
12327 </defs>
12328 <g transform="translate(306.857880131 132.760727977)scale(0.1 -0.1)">
12329 <use xlink:href="#BitstreamVeraSans-Roman-2212"/>
12330 <use x="83.7890625" xlink:href="#BitstreamVeraSans-Roman-30"/>
12331 <use x="147.412109375" xlink:href="#BitstreamVeraSans-Roman-2e"/>
12332 <use x="179.19921875" xlink:href="#BitstreamVeraSans-Roman-35"/>
12333 </g>
12334 </g>
12335 </g>
12336 <g id="xtick_13">
12337 <g id="line2d_16">
12338 <path d="
12339 M304.461 101.723
12340 L308.452 102.435" style="fill:none;stroke:#000000;"/>
12341 </g>
12342 <g id="text_13">
12343 <!-- 0.0 -->
12344 <g transform="translate(312.431208776 108.169970284)scale(0.1 -0.1)">
12345 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
12346 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
12347 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
12348 </g>
12349 </g>
12350 </g>
12351 <g id="xtick_14">
12352 <g id="line2d_17">
12353 <path d="
12354 M306.005 76.5022
12355 L310.047 77.195" style="fill:none;stroke:#000000;"/>
12356 </g>
12357 <g id="text_14">
12358 <!-- 0.5 -->
12359 <g transform="translate(314.265606611 82.9741503224)scale(0.1 -0.1)">
12360 <use xlink:href="#BitstreamVeraSans-Roman-30"/>
12361 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
12362 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-35"/>
12363 </g>
12364 </g>
12365 </g>
12366 <g id="xtick_15">
12367 <g id="line2d_18">
12368 <path d="
12369 M307.588 50.6518
12370 L311.682 51.325" style="fill:none;stroke:#000000;"/>
12371 </g>
12372 <g id="text_15">
12373 <!-- 1.0 -->
12374 <g transform="translate(316.15325081 57.1506583493)scale(0.1 -0.1)">
12375 <use xlink:href="#BitstreamVeraSans-Roman-31"/>
12376 <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-2e"/>
12377 <use x="95.41015625" xlink:href="#BitstreamVeraSans-Roman-30"/>
12378 </g>
12379 </g>
12380 </g>
12381 </g>
12382 <g id="axes_1">
12383 <g id="Poly3DCollection_1">
12384 <defs>
12385 <path d="
12386 M177.634 -103.331
12387 L181.395 -100.888
12388 L183.566 -105.393
12389 L179.805 -108.932
12390 L177.634 -103.331
12391 z
12392 " id="C3_0_71ba1f9eb3"/>
12393 <path d="
12394 M181.395 -100.888
12395 L185.16 -99.2703
12396 L187.327 -102.663
12397 L183.566 -105.393
12398 L181.395 -100.888
12399 z
12400 " id="C3_1_dc86a42c58"/>
12401 <path d="
12402 M187.327 -102.663
12403 L191.092 -100.631
12404 L193.263 -105.321
12405 L189.502 -108.301
12406 L187.327 -102.663
12407 z
12408 " id="C3_2_3fcfcf3bbb"/>
12409 <path d="
12410 M183.566 -105.393
12411 L187.327 -102.663
12412 L189.502 -108.301
12413 L185.743 -111.977
12414 L183.566 -105.393
12415 z
12416 " id="C3_3_bb0c7a6e03"/>
12417 <path d="
12418 M171.699 -101.892
12419 L175.46 -99.7162
12420 L177.634 -103.331
12421 L173.871 -106.722
12422 L171.699 -101.892
12423 z
12424 " id="C3_4_8fcbd53e34"/>
12425 <path d="
12426 M173.871 -106.722
12427 L177.634 -103.331
12428 L179.805 -108.932
12429 L176.041 -113.363
12430 L173.871 -106.722
12431 z
12432 " id="C3_5_386d8c3f05"/>
12433 <path d="
12434 M167.935 -105.18
12435 L171.699 -101.892
12436 L173.871 -106.722
12437 L170.102 -111.15
12438 L167.935 -105.18
12439 z
12440 " id="C3_6_2be3840058"/>
12441 <path d="
12442 M191.092 -100.631
12443 L194.866 -99.1721
12444 L197.029 -102.944
12445 L193.263 -105.321
12446 L191.092 -100.631
12447 z
12448 " id="C3_7_adf677f271"/>
12449 <path d="
12450 M175.46 -99.7162
12451 L179.223 -98.5216
12452 L181.395 -100.888
12453 L177.634 -103.331
12454 L175.46 -99.7162
12455 z
12456 " id="C3_8_2b158fb898"/>
12457 <path d="
12458 M179.805 -108.932
12459 L183.566 -105.393
12460 L185.743 -111.977
12461 L181.981 -116.423
12462 L179.805 -108.932
12463 z
12464 " id="C3_9_28f0fddcb1"/>
12465 <path d="
12466 M185.16 -99.2703
12467 L188.933 -98.3316
12468 L191.092 -100.631
12469 L187.327 -102.663
12470 L185.16 -99.2703
12471 z
12472 " id="C3_a_d5ba86840a"/>
12473 <path d="
12474 M165.758 -100.895
12475 L169.518 -98.9049
12476 L171.699 -101.892
12477 L167.935 -105.18
12478 L165.758 -100.895
12479 z
12480 " id="C3_b_6ff62cc8de"/>
12481 <path d="
12482 M161.99 -104.178
12483 L165.758 -100.895
12484 L167.935 -105.18
12485 L164.16 -109.666
12486 L161.99 -104.178
12487 z
12488 " id="C3_c_1ceb746c96"/>
12489 <path d="
12490 M169.518 -98.9049
12491 L173.278 -98.0785
12492 L175.46 -99.7162
12493 L171.699 -101.892
12494 L169.518 -98.9049
12495 z
12496 " id="C3_d_03faa3c3bc"/>
12497 <path d="
12498 M194.866 -99.1721
12499 L198.648 -98.1536
12500 L200.802 -101.069
12501 L197.029 -102.944
12502 L194.866 -99.1721
12503 z
12504 " id="C3_e_d193a1b535"/>
12505 <path d="
12506 M170.102 -111.15
12507 L173.871 -106.722
12508 L176.041 -113.363
12509 L172.267 -118.737
12510 L170.102 -111.15
12511 z
12512 " id="C3_f_9d24ad8262"/>
12513 <path d="
12514 M179.223 -98.5216
12515 L182.994 -98.1466
12516 L185.16 -99.2703
12517 L181.395 -100.888
12518 L179.223 -98.5216
12519 z
12520 " id="C3_10_d62830a0a4"/>
12521 <path d="
12522 M164.16 -109.666
12523 L167.935 -105.18
12524 L170.102 -111.15
12525 L166.321 -116.663
12526 L164.16 -109.666
12527 z
12528 " id="C3_11_228303f716"/>
12529 <path d="
12530 M159.808 -100.222
12531 L163.568 -98.2787
12532 L165.758 -100.895
12533 L161.99 -104.178
12534 L159.808 -100.222
12535 z
12536 " id="C3_12_bcbcb293ab"/>
12537 <path d="
12538 M176.041 -113.363
12539 L179.805 -108.932
12540 L181.981 -116.423
12541 L178.213 -121.686
12542 L176.041 -113.363
12543 z
12544 " id="C3_13_6d74e8536a"/>
12545 <path d="
12546 M188.933 -98.3316
12547 L192.716 -97.9133
12548 L194.866 -99.1721
12549 L191.092 -100.631
12550 L188.933 -98.3316
12551 z
12552 " id="C3_14_488b92a873"/>
12553 <path d="
12554 M156.034 -103.65
12555 L159.808 -100.222
12556 L161.99 -104.178
12557 L158.207 -108.831
12558 L156.034 -103.65
12559 z
12560 " id="C3_15_8416138838"/>
12561 <path d="
12562 M163.568 -98.2787
12563 L167.323 -97.7009
12564 L169.518 -98.9049
12565 L165.758 -100.895
12566 L163.568 -98.2787
12567 z
12568 " id="C3_16_937b27d9d4"/>
12569 <path d="
12570 M158.207 -108.831
12571 L161.99 -104.178
12572 L164.16 -109.666
12573 L160.367 -115.386
12574 L158.207 -108.831
12575 z
12576 " id="C3_17_8469ac8818"/>
12577 <path d="
12578 M198.648 -98.1536
12579 L202.441 -97.4436
12580 L204.584 -99.5897
12581 L200.802 -101.069
12582 L198.648 -98.1536
12583 z
12584 " id="C3_18_cbf20ff7f1"/>
12585 <path d="
12586 M173.278 -98.0785
12587 L177.044 -98.244
12588 L179.223 -98.5216
12589 L175.46 -99.7162
12590 L173.278 -98.0785
12591 z
12592 " id="C3_19_41c8dd479e"/>
12593 <path d="
12594 M153.846 -99.8327
12595 L157.607 -97.7454
12596 L159.808 -100.222
12597 L156.034 -103.65
12598 L153.846 -99.8327
12599 z
12600 " id="C3_1a_51a7134322"/>
12601 <path d="
12602 M182.994 -98.1466
12603 L186.777 -98.4091
12604 L188.933 -98.3316
12605 L185.16 -99.2703
12606 L182.994 -98.1466
12607 z
12608 " id="C3_1b_b652a9aa0e"/>
12609 <path d="
12610 M166.321 -116.663
12611 L170.102 -111.15
12612 L172.267 -118.737
12613 L168.479 -125.061
12614 L166.321 -116.663
12615 z
12616 " id="C3_1c_3c11bd8af6"/>
12617 <path d="
12618 M150.063 -103.596
12619 L153.846 -99.8327
12620 L156.034 -103.65
12621 L152.238 -108.617
12622 L150.063 -103.596
12623 z
12624 " id="C3_1d_8a8ec1cda2"/>
12625 <path d="
12626 M157.607 -97.7454
12627 L161.358 -97.236
12628 L163.568 -98.2787
12629 L159.808 -100.222
12630 L157.607 -97.7454
12631 z
12632 " id="C3_1e_ab59bd7c05"/>
12633 <path d="
12634 M152.238 -108.617
12635 L156.034 -103.65
12636 L158.207 -108.831
12637 L154.4 -114.866
12638 L152.238 -108.617
12639 z
12640 " id="C3_1f_10a972df40"/>
12641 <path d="
12642 M172.267 -118.737
12643 L176.041 -113.363
12644 L178.213 -121.686
12645 L174.434 -127.778
12646 L172.267 -118.737
12647 z
12648 " id="C3_20_ea103aeea3"/>
12649 <path d="
12650 M192.716 -97.9133
12651 L196.512 -97.853
12652 L198.648 -98.1536
12653 L194.866 -99.1721
12654 L192.716 -97.9133
12655 z
12656 " id="C3_21_91e963bf8d"/>
12657 <path d="
12658 M160.367 -115.386
12659 L164.16 -109.666
12660 L166.321 -116.663
12661 L162.52 -123.254
12662 L160.367 -115.386
12663 z
12664 " id="C3_22_24febd0b53"/>
12665 <path d="
12666 M167.323 -97.7009
12667 L171.081 -98.3149
12668 L173.278 -98.0785
12669 L169.518 -98.9049
12670 L167.323 -97.7009
12671 z
12672 " id="C3_23_ecc3b62136"/>
12673 <path d="
12674 M202.441 -97.4436
12675 L206.244 -96.9183
12676 L208.375 -98.4051
12677 L204.584 -99.5897
12678 L202.441 -97.4436
12679 z
12680 " id="C3_24_10cda35e24"/>
12681 <path d="
12682 M147.869 -99.7688
12683 L151.637 -97.3052
12684 L153.846 -99.8327
12685 L150.063 -103.596
12686 L147.869 -99.7688
12687 z
12688 " id="C3_25_e8483a74a7"/>
12689 <path d="
12690 M154.4 -114.866
12691 L158.207 -108.831
12692 L160.367 -115.386
12693 L156.55 -122.312
12694 L154.4 -114.866
12695 z
12696 " id="C3_26_d934aa6cf7"/>
12697 <path d="
12698 M151.637 -97.3052
12699 L155.386 -96.6314
12700 L157.607 -97.7454
12701 L153.846 -99.8327
12702 L151.637 -97.3052
12703 z
12704 " id="C3_27_0acda39405"/>
12705 <path d="
12706 M177.044 -98.244
12707 L180.822 -99.2005
12708 L182.994 -98.1466
12709 L179.223 -98.5216
12710 L177.044 -98.244
12711 z
12712 " id="C3_28_458e2cd9fc"/>
12713 <path d="
12714 M144.069 -104.084
12715 L147.869 -99.7688
12716 L150.063 -103.596
12717 L146.248 -109.054
12718 L144.069 -104.084
12719 z
12720 " id="C3_29_994302ca61"/>
12721 <path d="
12722 M161.358 -97.236
12723 L165.108 -98.1397
12724 L167.323 -97.7009
12725 L163.568 -98.2787
12726 L161.358 -97.236
12727 z
12728 " id="C3_2a_4a8ed8c33a"/>
12729 <path d="
12730 M146.248 -109.054
12731 L150.063 -103.596
12732 L152.238 -108.617
12733 L148.411 -115.102
12734 L146.248 -109.054
12735 z
12736 " id="C3_2b_b8091d68ce"/>
12737 <path d="
12738 M186.777 -98.4091
12739 L190.573 -99.1179
12740 L192.716 -97.9133
12741 L188.933 -98.3316
12742 L186.777 -98.4091
12743 z
12744 " id="C3_2c_403c2b1513"/>
12745 <path d="
12746 M196.512 -97.853
12747 L200.32 -97.9937
12748 L202.441 -97.4436
12749 L198.648 -98.1536
12750 L196.512 -97.853
12751 z
12752 " id="C3_2d_d6e00d1007"/>
12753 <path d="
12754 M206.244 -96.9183
12755 L210.057 -96.4687
12756 L212.175 -97.4243
12757 L208.375 -98.4051
12758 L206.244 -96.9183
12759 z
12760 " id="C3_2e_8a97c2a6fa"/>
12761 <path d="
12762 M141.871 -100.149
12763 L145.654 -97.0508
12764 L147.869 -99.7688
12765 L144.069 -104.084
12766 L141.871 -100.149
12767 z
12768 " id="C3_2f_45507f09ad"/>
12769 <path d="
12770 M145.654 -97.0508
12771 L149.406 -95.9393
12772 L151.637 -97.3052
12773 L147.869 -99.7688
12774 L145.654 -97.0508
12775 z
12776 " id="C3_30_08a9ab360a"/>
12777 <path d="
12778 M162.52 -123.254
12779 L166.321 -116.663
12780 L168.479 -125.061
12781 L164.672 -132.294
12782 L162.52 -123.254
12783 z
12784 " id="C3_31_8eca59e0e0"/>
12785 <path d="
12786 M168.479 -125.061
12787 L172.267 -118.737
12788 L174.434 -127.778
12789 L170.64 -134.671
12790 L168.479 -125.061
12791 z
12792 " id="C3_32_ba85453a65"/>
12793 <path d="
12794 M148.411 -115.102
12795 L152.238 -108.617
12796 L154.4 -114.866
12797 L150.562 -122.222
12798 L148.411 -115.102
12799 z
12800 " id="C3_33_ee598cfd95"/>
12801 <path d="
12802 M155.386 -96.6314
12803 L159.126 -97.6043
12804 L161.358 -97.236
12805 L157.607 -97.7454
12806 L155.386 -96.6314
12807 z
12808 " id="C3_34_3fe2e2a70a"/>
12809 <path d="
12810 M171.081 -98.3149
12811 L174.851 -99.9072
12812 L177.044 -98.244
12813 L173.278 -98.0785
12814 L171.081 -98.3149
12815 z
12816 " id="C3_35_8cc0af8f2d"/>
12817 <path d="
12818 M156.55 -122.312
12819 L160.367 -115.386
12820 L162.52 -123.254
12821 L158.696 -130.859
12822 L156.55 -122.312
12823 z
12824 " id="C3_36_1d2c2e52b9"/>
12825 <path d="
12826 M210.057 -96.4687
12827 L213.879 -96.0046
12828 L215.985 -96.5714
12829 L212.175 -97.4243
12830 L210.057 -96.4687
12831 z
12832 " id="C3_37_75d55803fa"/>
12833 <path d="
12834 M138.047 -105.245
12835 L141.871 -100.149
12836 L144.069 -104.084
12837 L140.23 -110.223
12838 L138.047 -105.245
12839 z
12840 " id="C3_38_a3f600ab32"/>
12841 <path d="
12842 M149.406 -95.9393
12843 L153.14 -96.7082
12844 L155.386 -96.6314
12845 L151.637 -97.3052
12846 L149.406 -95.9393
12847 z
12848 " id="C3_39_d4ad9ba139"/>
12849 <path d="
12850 M180.822 -99.2005
12851 L184.616 -100.73
12852 L186.777 -98.4091
12853 L182.994 -98.1466
12854 L180.822 -99.2005
12855 z
12856 " id="C3_3a_45ed72f26b"/>
12857 <path d="
12858 M140.23 -110.223
12859 L144.069 -104.084
12860 L146.248 -109.054
12861 L142.395 -116.14
12862 L140.23 -110.223
12863 z
12864 " id="C3_3b_c3be16a29c"/>
12865 <path d="
12866 M200.32 -97.9937
12867 L204.14 -98.1911
12868 L206.244 -96.9183
12869 L202.441 -97.4436
12870 L200.32 -97.9937
12871 z
12872 " id="C3_3c_ef8314e897"/>
12873 <path d="
12874 M139.652 -97.1588
12875 L143.416 -95.3125
12876 L145.654 -97.0508
12877 L141.871 -100.149
12878 L139.652 -97.1588
12879 z
12880 " id="C3_3d_30a0b19f29"/>
12881 <path d="
12882 M190.573 -99.1179
12883 L194.385 -100.083
12884 L196.512 -97.853
12885 L192.716 -97.9133
12886 L190.573 -99.1179
12887 z
12888 " id="C3_3e_40a5110ade"/>
12889 <path d="
12890 M150.562 -122.222
12891 L154.4 -114.866
12892 L156.55 -122.312
12893 L152.704 -130.348
12894 L150.562 -122.222
12895 z
12896 " id="C3_3f_a26562e732"/>
12897 <path d="
12898 M165.108 -98.1397
12899 L168.865 -100.238
12900 L171.081 -98.3149
12901 L167.323 -97.7009
12902 L165.108 -98.1397
12903 z
12904 " id="C3_40_a04e858ef3"/>
12905 <path d="
12906 M135.846 -101.156
12907 L139.652 -97.1588
12908 L141.871 -100.149
12909 L138.047 -105.245
12910 L135.846 -101.156
12911 z
12912 " id="C3_41_12e8a367bd"/>
12913 <path d="
12914 M142.395 -116.14
12915 L146.248 -109.054
12916 L148.411 -115.102
12917 L144.547 -123.001
12918 L142.395 -116.14
12919 z
12920 " id="C3_42_d109317467"/>
12921 <path d="
12922 M143.416 -95.3125
12923 L147.151 -95.5647
12924 L149.406 -95.9393
12925 L145.654 -97.0508
12926 L143.416 -95.3125
12927 z
12928 " id="C3_43_2e9d727f01"/>
12929 <path d="
12930 M213.879 -96.0046
12931 L217.709 -95.4591
12932 L219.804 -95.7894
12933 L215.985 -96.5714
12934 L213.879 -96.0046
12935 z
12936 " id="C3_44_c49a1705ad"/>
12937 <path d="
12938 M159.126 -97.6043
12939 L162.869 -100.013
12940 L165.108 -98.1397
12941 L161.358 -97.236
12942 L159.126 -97.6043
12943 z
12944 " id="C3_45_1c1e587673"/>
12945 <path d="
12946 M164.672 -132.294
12947 L168.479 -125.061
12948 L170.64 -134.671
12949 L166.826 -142.289
12950 L164.672 -132.294
12951 z
12952 " id="C3_46_6d117167b2"/>
12953 <path d="
12954 M133.624 -97.8733
12955 L137.412 -94.9924
12956 L139.652 -97.1588
12957 L135.846 -101.156
12958 L133.624 -97.8733
12959 z
12960 " id="C3_47_7436aa5a81"/>
12961 <path d="
12962 M158.696 -130.859
12963 L162.52 -123.254
12964 L164.672 -132.294
12965 L160.841 -140.336
12966 L158.696 -130.859
12967 z
12968 " id="C3_48_39c54f9e9e"/>
12969 <path d="
12970 M204.14 -98.1911
12971 L207.971 -98.3196
12972 L210.057 -96.4687
12973 L206.244 -96.9183
12974 L204.14 -98.1911
12975 z
12976 " id="C3_49_d6133ccf4c"/>
12977 <path d="
12978 M174.851 -99.9072
12979 L178.637 -102.238
12980 L180.822 -99.2005
12981 L177.044 -98.244
12982 L174.851 -99.9072
12983 z
12984 " id="C3_4a_f6ebe40053"/>
12985 <path d="
12986 M137.412 -94.9924
12987 L141.157 -94.3932
12988 L143.416 -95.3125
12989 L139.652 -97.1588
12990 L137.412 -94.9924
12991 z
12992 " id="C3_4b_89ceb16631"/>
12993 <path d="
12994 M144.547 -123.001
12995 L148.411 -115.102
12996 L150.562 -122.222
12997 L146.689 -130.763
12998 L144.547 -123.001
12999 z
13000 " id="C3_4c_4c053576a5"/>
13001 <path d="
13002 M131.986 -107.248
13003 L135.846 -101.156
13004 L138.047 -105.245
13005 L134.173 -112.247
13006 L131.986 -107.248
13007 z
13008 " id="C3_4d_7ec7ca5e29"/>
13009 <path d="
13010 M153.14 -96.7082
13011 L156.869 -99.1674
13012 L159.126 -97.6043
13013 L155.386 -96.6314
13014 L153.14 -96.7082
13015 z
13016 " id="C3_4e_f163a6c101"/>
13017 <path d="
13018 M134.173 -112.247
13019 L138.047 -105.245
13020 L140.23 -110.223
13021 L136.342 -118.058
13022 L134.173 -112.247
13023 z
13024 " id="C3_4f_8838c5ecaa"/>
13025 <path d="
13026 M152.704 -130.348
13027 L156.55 -122.312
13028 L158.696 -130.859
13029 L154.843 -139.35
13030 L152.704 -130.348
13031 z
13032 " id="C3_50_2337f63723"/>
13033 <path d="
13034 M194.385 -100.083
13035 L198.212 -101.124
13036 L200.32 -97.9937
13037 L196.512 -97.853
13038 L194.385 -100.083
13039 z
13040 " id="C3_51_69669cb5e3"/>
13041 <path d="
13042 M184.616 -100.73
13043 L188.428 -102.612
13044 L190.573 -99.1179
13045 L186.777 -98.4091
13046 L184.616 -100.73
13047 z
13048 " id="C3_52_d7e3745698"/>
13049 <path d="
13050 M217.709 -95.4591
13051 L221.545 -94.791
13052 L223.632 -95.043
13053 L219.804 -95.7894
13054 L217.709 -95.4591
13055 z
13056 " id="C3_53_da24d2e417"/>
13057 <path d="
13058 M129.781 -103.017
13059 L133.624 -97.8733
13060 L135.846 -101.156
13061 L131.986 -107.248
13062 L129.781 -103.017
13063 z
13064 " id="C3_54_c01cf761ad"/>
13065 <path d="
13066 M136.342 -118.058
13067 L140.23 -110.223
13068 L142.395 -116.14
13069 L138.497 -124.694
13070 L136.342 -118.058
13071 z
13072 " id="C3_55_8fc6aaec3c"/>
13073 <path d="
13074 M147.151 -95.5647
13075 L150.869 -97.7634
13076 L153.14 -96.7082
13077 L149.406 -95.9393
13078 L147.151 -95.5647
13079 z
13080 " id="C3_56_45e17dd955"/>
13081 <path d="
13082 M131.383 -95.2876
13083 L135.151 -93.5043
13084 L137.412 -94.9924
13085 L133.624 -97.8733
13086 L131.383 -95.2876
13087 z
13088 " id="C3_57_87ad4dd5cb"/>
13089 <path d="
13090 M168.865 -100.238
13091 L172.638 -103.276
13092 L174.851 -99.9072
13093 L171.081 -98.3149
13094 L168.865 -100.238
13095 z
13096 " id="C3_58_dfda9f2258"/>
13097 <path d="
13098 M207.971 -98.3196
13099 L211.81 -98.2768
13100 L213.879 -96.0046
13101 L210.057 -96.4687
13102 L207.971 -98.3196
13103 z
13104 " id="C3_59_89f1a843a1"/>
13105 <path d="
13106 M141.157 -94.3932
13107 L144.872 -95.9811
13108 L147.151 -95.5647
13109 L143.416 -95.3125
13110 L141.157 -94.3932
13111 z
13112 " id="C3_5a_78a4cce69a"/>
13113 <path d="
13114 M127.557 -99.4791
13115 L131.383 -95.2876
13116 L133.624 -97.8733
13117 L129.781 -103.017
13118 L127.557 -99.4791
13119 z
13120 " id="C3_5b_9683735b01"/>
13121 <path d="
13122 M146.689 -130.763
13123 L150.562 -122.222
13124 L152.704 -130.348
13125 L148.825 -139.326
13126 L146.689 -130.763
13127 z
13128 " id="C3_5c_d434cf2e3a"/>
13129 <path d="
13130 M221.545 -94.791
13131 L225.386 -93.986
13132 L227.468 -94.3203
13133 L223.632 -95.043
13134 L221.545 -94.791
13135 z
13136 " id="C3_5d_9155a8242d"/>
13137 <path d="
13138 M138.497 -124.694
13139 L142.395 -116.14
13140 L144.547 -123.001
13141 L140.641 -132.124
13142 L138.497 -124.694
13143 z
13144 " id="C3_5e_2b9cc4f24d"/>
13145 <path d="
13146 M135.151 -93.5043
13147 L138.875 -94.1113
13148 L141.157 -94.3932
13149 L137.412 -94.9924
13150 L135.151 -93.5043
13151 z
13152 " id="C3_5f_60f1231e30"/>
13153 <path d="
13154 M160.841 -140.336
13155 L164.672 -132.294
13156 L166.826 -142.289
13157 L162.99 -150.504
13158 L160.841 -140.336
13159 z
13160 " id="C3_60_e37b8c6a07"/>
13161 <path d="
13162 M198.212 -101.124
13163 L202.053 -102.079
13164 L204.14 -98.1911
13165 L200.32 -97.9937
13166 L198.212 -101.124
13167 z
13168 " id="C3_61_ee19543eb7"/>
13169 <path d="
13170 M162.869 -100.013
13171 L166.624 -103.592
13172 L168.865 -100.238
13173 L165.108 -98.1397
13174 L162.869 -100.013
13175 z
13176 " id="C3_62_2fdb1c3758"/>
13177 <path d="
13178 M178.637 -102.238
13179 L182.443 -105.054
13180 L184.616 -100.73
13181 L180.822 -99.2005
13182 L178.637 -102.238
13183 z
13184 " id="C3_63_9ea37a25d6"/>
13185 <path d="
13186 M154.843 -139.35
13187 L158.696 -130.859
13188 L160.841 -140.336
13189 L156.984 -149.033
13190 L154.843 -139.35
13191 z
13192 " id="C3_64_06395f9e03"/>
13193 <path d="
13194 M125.313 -96.5433
13195 L129.121 -93.2737
13196 L131.383 -95.2876
13197 L127.557 -99.4791
13198 L125.313 -96.5433
13199 z
13200 " id="C3_65_ae223e660f"/>
13201 <path d="
13202 M211.81 -98.2768
13203 L215.656 -97.9875
13204 L217.709 -95.4591
13205 L213.879 -96.0046
13206 L211.81 -98.2768
13207 z
13208 " id="C3_66_3fb1b2153f"/>
13209 <path d="
13210 M129.121 -93.2737
13211 L132.87 -92.5358
13212 L135.151 -93.5043
13213 L131.383 -95.2876
13214 L129.121 -93.2737
13215 z
13216 " id="C3_67_6b25c1ba38"/>
13217 <path d="
13218 M225.386 -93.986
13219 L229.231 -93.0577
13220 L231.313 -93.6333
13221 L227.468 -94.3203
13222 L225.386 -93.986
13223 z
13224 " id="C3_68_f6481e2279"/>
13225 <path d="
13226 M125.874 -110.285
13227 L129.781 -103.017
13228 L131.986 -107.248
13229 L128.066 -115.267
13230 L125.874 -110.285
13231 z
13232 " id="C3_69_95e5ab62cc"/>
13233 <path d="
13234 M188.428 -102.612
13235 L192.259 -104.629
13236 L194.385 -100.083
13237 L190.573 -99.1179
13238 L188.428 -102.612
13239 z
13240 " id="C3_6a_a9899803b3"/>
13241 <path d="
13242 M128.066 -115.267
13243 L131.986 -107.248
13244 L134.173 -112.247
13245 L130.242 -120.956
13246 L128.066 -115.267
13247 z
13248 " id="C3_6b_a33be92960"/>
13249 <path d="
13250 M140.641 -132.124
13251 L144.547 -123.001
13252 L146.689 -130.763
13253 L142.778 -140.271
13254 L140.641 -132.124
13255 z
13256 " id="C3_6c_d5979b2067"/>
13257 <path d="
13258 M156.869 -99.1674
13259 L160.605 -103.057
13260 L162.869 -100.013
13261 L159.126 -97.6043
13262 L156.869 -99.1674
13263 z
13264 " id="C3_6d_27a0e391a7"/>
13265 <path d="
13266 M123.663 -105.972
13267 L127.557 -99.4791
13268 L129.781 -103.017
13269 L125.874 -110.285
13270 L123.663 -105.972
13271 z
13272 " id="C3_6e_25c1813b8a"/>
13273 <path d="
13274 M130.242 -120.956
13275 L134.173 -112.247
13276 L136.342 -118.058
13277 L132.403 -127.363
13278 L130.242 -120.956
13279 z
13280 " id="C3_6f_16011bdc2c"/>
13281 <path d="
13282 M148.825 -139.326
13283 L152.704 -130.348
13284 L154.843 -139.35
13285 L150.961 -148.533
13286 L148.825 -139.326
13287 z
13288 " id="C3_70_049161d7c1"/>
13289 <path d="
13290 M150.869 -97.7634
13291 L154.586 -101.67
13292 L156.869 -99.1674
13293 L153.14 -96.7082
13294 L150.869 -97.7634
13295 z
13296 " id="C3_71_5e133d3421"/>
13297 <path d="
13298 M121.434 -102.268
13299 L125.313 -96.5433
13300 L127.557 -99.4791
13301 L123.663 -105.972
13302 L121.434 -102.268
13303 z
13304 " id="C3_72_b099e53362"/>
13305 <path d="
13306 M144.872 -95.9811
13307 L148.574 -99.5579
13308 L150.869 -97.7634
13309 L147.151 -95.5647
13310 L144.872 -95.9811
13311 z
13312 " id="C3_73_35cac1e159"/>
13313 <path d="
13314 M229.231 -93.0577
13315 L233.082 -92.0472
13316 L235.168 -93.0177
13317 L231.313 -93.6333
13318 L229.231 -93.0577
13319 z
13320 " id="C3_74_e3b9c32e6e"/>
13321 <path d="
13322 M215.656 -97.9875
13323 L219.505 -97.4053
13324 L221.545 -94.791
13325 L217.709 -95.4591
13326 L215.656 -97.9875
13327 z
13328 " id="C3_75_c0eeba6990"/>
13329 <path d="
13330 M138.875 -94.1113
13331 L142.571 -96.9716
13332 L144.872 -95.9811
13333 L141.157 -94.3932
13334 L138.875 -94.1113
13335 z
13336 " id="C3_76_4f2bb148c6"/>
13337 <path d="
13338 M132.403 -127.363
13339 L136.342 -118.058
13340 L138.497 -124.694
13341 L134.552 -134.464
13342 L132.403 -127.363
13343 z
13344 " id="C3_77_dd85022771"/>
13345 <path d="
13346 M123.051 -94.1072
13347 L126.842 -91.6989
13348 L129.121 -93.2737
13349 L125.313 -96.5433
13350 L123.051 -94.1072
13351 z
13352 " id="C3_78_8dbafd937a"/>
13353 <path d="
13354 M202.053 -102.079
13355 L205.906 -102.809
13356 L207.971 -98.3196
13357 L204.14 -98.1911
13358 L202.053 -102.079
13359 z
13360 " id="C3_79_c675f14266"/>
13361 <path d="
13362 M132.87 -92.5358
13363 L136.573 -94.2755
13364 L138.875 -94.1113
13365 L135.151 -93.5043
13366 L132.87 -92.5358
13367 z
13368 " id="C3_7a_7983b8fbb5"/>
13369 <path d="
13370 M172.638 -103.276
13371 L176.432 -106.973
13372 L178.637 -102.238
13373 L174.851 -99.9072
13374 L172.638 -103.276
13375 z
13376 " id="C3_7b_ef0545020a"/>
13377 <path d="
13378 M126.842 -91.6989
13379 L130.571 -91.9245
13380 L132.87 -92.5358
13381 L129.121 -93.2737
13382 L126.842 -91.6989
13383 z
13384 " id="C3_7c_e39d3cd346"/>
13385 <path d="
13386 M119.185 -99.1019
13387 L123.051 -94.1072
13388 L125.313 -96.5433
13389 L121.434 -102.268
13390 L119.185 -99.1019
13391 z
13392 " id="C3_7d_7824f19cb0"/>
13393 <path d="
13394 M142.778 -140.271
13395 L146.689 -130.763
13396 L148.825 -139.326
13397 L144.912 -149.007
13398 L142.778 -140.271
13399 z
13400 " id="C3_7e_f614b515a8"/>
13401 <path d="
13402 M233.082 -92.0472
13403 L236.94 -91.0215
13404 L239.036 -92.5309
13405 L235.168 -93.0177
13406 L233.082 -92.0472
13407 z
13408 " id="C3_7f_a3edaf2ac0"/>
13409 <path d="
13410 M219.505 -97.4053
13411 L223.357 -96.5142
13412 L225.386 -93.986
13413 L221.545 -94.791
13414 L219.505 -97.4053
13415 z
13416 " id="C3_80_70aae26779"/>
13417 <path d="
13418 M156.984 -149.033
13419 L160.841 -140.336
13420 L162.99 -150.504
13421 L159.131 -159.137
13422 L156.984 -149.033
13423 z
13424 " id="C3_81_5ddbde401a"/>
13425 <path d="
13426 M192.259 -104.629
13427 L196.107 -106.583
13428 L198.212 -101.124
13429 L194.385 -100.083
13430 L192.259 -104.629
13431 z
13432 " id="C3_82_6baf1bf9f6"/>
13433 <path d="
13434 M134.552 -134.464
13435 L138.497 -124.694
13436 L140.641 -132.124
13437 L136.693 -142.196
13438 L134.552 -134.464
13439 z
13440 " id="C3_83_5755e2cb0e"/>
13441 <path d="
13442 M182.443 -105.054
13443 L186.271 -108.107
13444 L188.428 -102.612
13445 L184.616 -100.73
13446 L182.443 -105.054
13447 z
13448 " id="C3_84_1f42b6e7cb"/>
13449 <path d="
13450 M166.624 -103.592
13451 L170.4 -108.044
13452 L172.638 -103.276
13453 L168.865 -100.238
13454 L166.624 -103.592
13455 z
13456 " id="C3_85_2ba3faae97"/>
13457 <path d="
13458 M120.772 -92.0655
13459 L124.546 -90.431
13460 L126.842 -91.6989
13461 L123.051 -94.1072
13462 L120.772 -92.0655
13463 z
13464 " id="C3_86_0f81c0beb4"/>
13465 <path d="
13466 M150.961 -148.533
13467 L154.843 -139.35
13468 L156.984 -149.033
13469 L153.101 -158.168
13470 L150.961 -148.533
13471 z
13472 " id="C3_87_fc484ab532"/>
13473 <path d="
13474 M205.906 -102.809
13475 L209.767 -103.202
13476 L211.81 -98.2768
13477 L207.971 -98.3196
13478 L205.906 -102.809
13479 z
13480 " id="C3_88_16927ac759"/>
13481 <path d="
13482 M116.918 -96.3957
13483 L120.772 -92.0655
13484 L123.051 -94.1072
13485 L119.185 -99.1019
13486 L116.918 -96.3957
13487 z
13488 " id="C3_89_1d513ffdb3"/>
13489 <path d="
13490 M236.94 -91.0215
13491 L240.807 -90.0711
13492 L242.92 -92.25
13493 L239.036 -92.5309
13494 L236.94 -91.0215
13495 z
13496 " id="C3_8a_71b8576b75"/>
13497 <path d="
13498 M223.357 -96.5142
13499 L227.209 -95.329
13500 L229.231 -93.0577
13501 L225.386 -93.986
13502 L223.357 -96.5142
13503 z
13504 " id="C3_8b_7de20b5d5b"/>
13505 <path d="
13506 M130.571 -91.9245
13507 L134.254 -94.6954
13508 L136.573 -94.2755
13509 L132.87 -92.5358
13510 L130.571 -91.9245
13511 z
13512 " id="C3_8c_b77c9201fb"/>
13513 <path d="
13514 M160.605 -103.057
13515 L164.358 -108.067
13516 L166.624 -103.592
13517 L162.869 -100.013
13518 L160.605 -103.057
13519 z
13520 " id="C3_8d_41b8d4de91"/>
13521 <path d="
13522 M136.693 -142.196
13523 L140.641 -132.124
13524 L142.778 -140.271
13525 L138.83 -150.454
13526 L136.693 -142.196
13527 z
13528 " id="C3_8e_42fd96f195"/>
13529 <path d="
13530 M124.546 -90.431
13531 L128.257 -91.513
13532 L130.571 -91.9245
13533 L126.842 -91.6989
13534 L124.546 -90.431
13535 z
13536 " id="C3_8f_da28299e4d"/>
13537 <path d="
13538 M136.573 -94.2755
13539 L140.25 -98.3141
13540 L142.571 -96.9716
13541 L138.875 -94.1113
13542 L136.573 -94.2755
13543 z
13544 " id="C3_90_22ca2821ae"/>
13545 <path d="
13546 M144.912 -149.007
13547 L148.825 -139.326
13548 L150.961 -148.533
13549 L147.049 -158.151
13550 L144.912 -149.007
13551 z
13552 " id="C3_91_f8860032ce"/>
13553 <path d="
13554 M227.209 -95.329
13555 L231.061 -93.8949
13556 L233.082 -92.0472
13557 L229.231 -93.0577
13558 L227.209 -95.329
13559 z
13560 " id="C3_92_cfd4550b6e"/>
13561 <path d="
13562 M142.571 -96.9716
13563 L146.256 -101.84
13564 L148.574 -99.5579
13565 L144.872 -95.9811
13566 L142.571 -96.9716
13567 z
13568 " id="C3_93_b765737f77"/>
13569 <path d="
13570 M154.586 -101.67
13571 L158.314 -106.976
13572 L160.605 -103.057
13573 L156.869 -99.1674
13574 L154.586 -101.67
13575 z
13576 " id="C3_94_356f07d660"/>
13577 <path d="
13578 M240.807 -90.0711
13579 L244.687 -89.3064
13580 L246.823 -92.2675
13581 L242.92 -92.25
13582 L240.807 -90.0711
13583 z
13584 " id="C3_95_34acf47aff"/>
13585 <path d="
13586 M148.574 -99.5579
13587 L152.278 -104.835
13588 L154.586 -101.67
13589 L150.869 -97.7634
13590 L148.574 -99.5579
13591 z
13592 " id="C3_96_33e6cdcbce"/>
13593 <path d="
13594 M209.767 -103.202
13595 L213.633 -103.178
13596 L215.656 -97.9875
13597 L211.81 -98.2768
13598 L209.767 -103.202
13599 z
13600 " id="C3_97_1250664f72"/>
13601 <path d="
13602 M176.432 -106.973
13603 L180.251 -111.046
13604 L182.443 -105.054
13605 L178.637 -102.238
13606 L176.432 -106.973
13607 z
13608 " id="C3_98_b266a159fd"/>
13609 <path d="
13610 M196.107 -106.583
13611 L199.971 -108.297
13612 L202.053 -102.079
13613 L198.212 -101.124
13614 L196.107 -106.583
13615 z
13616 " id="C3_99_55623795a8"/>
13617 <path d="
13618 M118.477 -90.3169
13619 L122.237 -89.3461
13620 L124.546 -90.431
13621 L120.772 -92.0655
13622 L118.477 -90.3169
13623 z
13624 " id="C3_9a_c75f840504"/>
13625 <path d="
13626 M114.634 -94.0714
13627 L118.477 -90.3169
13628 L120.772 -92.0655
13629 L116.918 -96.3957
13630 L114.634 -94.0714
13631 z
13632 " id="C3_9b_593b9fc362"/>
13633 <path d="
13634 M231.061 -93.8949
13635 L234.913 -92.2868
13636 L236.94 -91.0215
13637 L233.082 -92.0472
13638 L231.061 -93.8949
13639 z
13640 " id="C3_9c_2131fb58e2"/>
13641 <path d="
13642 M186.271 -108.107
13643 L190.122 -111.159
13644 L192.259 -104.629
13645 L188.428 -102.612
13646 L186.271 -108.107
13647 z
13648 " id="C3_9d_f17e9cc84d"/>
13649 <path d="
13650 M153.101 -158.168
13651 L156.984 -149.033
13652 L159.131 -159.137
13653 L155.249 -167.959
13654 L153.101 -158.168
13655 z
13656 " id="C3_9e_b1f6d7bbb3"/>
13657 <path d="
13658 M138.83 -150.454
13659 L142.778 -140.271
13660 L144.912 -149.007
13661 L140.967 -159.084
13662 L138.83 -150.454
13663 z
13664 " id="C3_9f_8c0d58610d"/>
13665 <path d="
13666 M244.687 -89.3064
13667 L248.587 -88.853
13668 L250.752 -92.6868
13669 L246.823 -92.2675
13670 L244.687 -89.3064
13671 z
13672 " id="C3_a0_7199f50dff"/>
13673 <path d="
13674 M234.913 -92.2868
13675 L238.769 -90.6069
13676 L240.807 -90.0711
13677 L236.94 -91.0215
13678 L234.913 -92.2868
13679 z
13680 " id="C3_a1_0bd352081c"/>
13681 <path d="
13682 M213.633 -103.178
13683 L217.501 -102.685
13684 L219.505 -97.4053
13685 L215.656 -97.9875
13686 L213.633 -103.178
13687 z
13688 " id="C3_a2_581ebe3e74"/>
13689 <path d="
13690 M122.237 -89.3461
13691 L125.931 -91.1562
13692 L128.257 -91.513
13693 L124.546 -90.431
13694 L122.237 -89.3461
13695 z
13696 " id="C3_a3_ea8d4eaa15"/>
13697 <path d="
13698 M112.334 -92.0572
13699 L116.168 -88.77
13700 L118.477 -90.3169
13701 L114.634 -94.0714
13702 L112.334 -92.0572
13703 z
13704 " id="C3_a4_acb45d3b86"/>
13705 <path d="
13706 M147.049 -158.151
13707 L150.961 -148.533
13708 L153.101 -158.168
13709 L149.192 -167.472
13710 L147.049 -158.151
13711 z
13712 " id="C3_a5_e41e8867af"/>
13713 <path d="
13714 M128.257 -91.513
13715 L131.921 -95.1906
13716 L134.254 -94.6954
13717 L130.571 -91.9245
13718 L128.257 -91.513
13719 z
13720 " id="C3_a6_0f3fb8ea07"/>
13721 <path d="
13722 M170.4 -108.044
13723 L174.202 -113.05
13724 L176.432 -106.973
13725 L172.638 -103.276
13726 L170.4 -108.044
13727 z
13728 " id="C3_a7_205cb3db93"/>
13729 <path d="
13730 M116.168 -88.77
13731 L119.917 -88.3343
13732 L122.237 -89.3461
13733 L118.477 -90.3169
13734 L116.168 -88.77
13735 z
13736 " id="C3_a8_ea8d39be02"/>
13737 <path d="
13738 M238.769 -90.6069
13739 L242.631 -88.9815
13740 L244.687 -89.3064
13741 L240.807 -90.0711
13742 L238.769 -90.6069
13743 z
13744 " id="C3_a9_c6ec724ac7"/>
13745 <path d="
13746 M199.971 -108.297
13747 L203.849 -109.625
13748 L205.906 -102.809
13749 L202.053 -102.079
13750 L199.971 -108.297
13751 z
13752 " id="C3_aa_ee99d89105"/>
13753 <path d="
13754 M134.254 -94.6954
13755 L137.911 -99.7928
13756 L140.25 -98.3141
13757 L136.573 -94.2755
13758 L134.254 -94.6954
13759 z
13760 " id="C3_ab_3dba02e418"/>
13761 <path d="
13762 M217.501 -102.685
13763 L221.368 -101.708
13764 L223.357 -96.5142
13765 L219.505 -97.4053
13766 L217.501 -102.685
13767 z
13768 " id="C3_ac_920e70828b"/>
13769 <path d="
13770 M248.587 -88.853
13771 L252.512 -88.8454
13772 L254.713 -93.616
13773 L250.752 -92.6868
13774 L248.587 -88.853
13775 z
13776 " id="C3_ad_e678d03f7b"/>
13777 <path d="
13778 M242.631 -88.9815
13779 L246.504 -87.5566
13780 L248.587 -88.853
13781 L244.687 -89.3064
13782 L242.631 -88.9815
13783 z
13784 " id="C3_ae_d22cb256c8"/>
13785 <path d="
13786 M140.967 -159.084
13787 L144.912 -149.007
13788 L147.049 -158.151
13789 L143.11 -167.888
13790 L140.967 -159.084
13791 z
13792 " id="C3_af_e8251ac784"/>
13793 <path d="
13794 M164.358 -108.067
13795 L168.136 -113.853
13796 L170.4 -108.044
13797 L166.624 -103.592
13798 L164.358 -108.067
13799 z
13800 " id="C3_b0_c7e5228508"/>
13801 <path d="
13802 M140.25 -98.3141
13803 L143.917 -104.36
13804 L146.256 -101.84
13805 L142.571 -96.9716
13806 L140.25 -98.3141
13807 z
13808 " id="C3_b1_d529aeb59e"/>
13809 <path d="
13810 M110.017 -90.2923
13811 L113.847 -87.3487
13812 L116.168 -88.77
13813 L112.334 -92.0572
13814 L110.017 -90.2923
13815 z
13816 " id="C3_b2_5cca3a4276"/>
13817 <path d="
13818 M221.368 -101.708
13819 L225.232 -100.261
13820 L227.209 -95.329
13821 L223.357 -96.5142
13822 L221.368 -101.708
13823 z
13824 " id="C3_b3_f82bc96174"/>
13825 <path d="
13826 M180.251 -111.046
13827 L184.096 -115.219
13828 L186.271 -108.107
13829 L182.443 -105.054
13830 L180.251 -111.046
13831 z
13832 " id="C3_b4_a771194b95"/>
13833 <path d="
13834 M190.122 -111.159
13835 L193.994 -113.996
13836 L196.107 -106.583
13837 L192.259 -104.629
13838 L190.122 -111.159
13839 z
13840 " id="C3_b5_0f87ef8a86"/>
13841 <path d="
13842 M119.917 -88.3343
13843 L123.596 -90.7277
13844 L125.931 -91.1562
13845 L122.237 -89.3461
13846 L119.917 -88.3343
13847 z
13848 " id="C3_b6_8f772c2ed8"/>
13849 <path d="
13850 M146.256 -101.84
13851 L149.946 -108.379
13852 L152.278 -104.835
13853 L148.574 -99.5579
13854 L146.256 -101.84
13855 z
13856 " id="C3_b7_4131732429"/>
13857 <path d="
13858 M113.847 -87.3487
13859 L117.587 -87.3051
13860 L119.917 -88.3343
13861 L116.168 -88.77
13862 L113.847 -87.3487
13863 z
13864 " id="C3_b8_a3acf56479"/>
13865 <path d="
13866 M246.504 -87.5566
13867 L250.396 -86.4918
13868 L252.512 -88.8454
13869 L248.587 -88.853
13870 L246.504 -87.5566
13871 z
13872 " id="C3_b9_9e1a1f227d"/>
13873 <path d="
13874 M158.314 -106.976
13875 L162.063 -113.322
13876 L164.358 -108.067
13877 L160.605 -103.057
13878 L158.314 -106.976
13879 z
13880 " id="C3_ba_011b57c35f"/>
13881 <path d="
13882 M149.192 -167.472
13883 L153.101 -158.168
13884 L155.249 -167.959
13885 L151.346 -176.694
13886 L149.192 -167.472
13887 z
13888 " id="C3_bb_7401b551ff"/>
13889 <path d="
13890 M225.232 -100.261
13891 L229.091 -98.392
13892 L231.061 -93.8949
13893 L227.209 -95.329
13894 L225.232 -100.261
13895 z
13896 " id="C3_bc_b9eaf6bb54"/>
13897 <path d="
13898 M152.278 -104.835
13899 L155.997 -111.454
13900 L158.314 -106.976
13901 L154.586 -101.67
13902 L152.278 -104.835
13903 z
13904 " id="C3_bd_458850f5cb"/>
13905 <path d="
13906 M203.849 -109.625
13907 L207.735 -110.448
13908 L209.767 -103.202
13909 L205.906 -102.809
13910 L203.849 -109.625
13911 z
13912 " id="C3_be_47bc3f597a"/>
13913 <path d="
13914 M125.931 -91.1562
13915 L129.577 -95.5978
13916 L131.921 -95.1906
13917 L128.257 -91.513
13918 L125.931 -91.1562
13919 z
13920 " id="C3_bf_b31ec5989b"/>
13921 <path d="
13922 M252.512 -88.8454
13923 L256.471 -89.4199
13924 L258.714 -95.1609
13925 L254.713 -93.616
13926 L252.512 -88.8454
13927 z
13928 " id="C3_c0_48e55a3f4e"/>
13929 <path d="
13930 M229.091 -98.392
13931 L232.945 -96.1816
13932 L234.913 -92.2868
13933 L231.061 -93.8949
13934 L229.091 -98.392
13935 z
13936 " id="C3_c1_a5982fa2c3"/>
13937 <path d="
13938 M143.11 -167.888
13939 L147.049 -158.151
13940 L149.192 -167.472
13941 L145.262 -176.629
13942 L143.11 -167.888
13943 z
13944 " id="C3_c2_68f60542fb"/>
13945 <path d="
13946 M232.945 -96.1816
13947 L236.794 -93.7404
13948 L238.769 -90.6069
13949 L234.913 -92.2868
13950 L232.945 -96.1816
13951 z
13952 " id="C3_c3_a5c647da22"/>
13953 <path d="
13954 M107.686 -88.7304
13955 L111.515 -85.9956
13956 L113.847 -87.3487
13957 L110.017 -90.2923
13958 L107.686 -88.7304
13959 z
13960 " id="C3_c4_252faac16f"/>
13961 <path d="
13962 M250.396 -86.4918
13963 L254.315 -85.9529
13964 L256.471 -89.4199
13965 L252.512 -88.8454
13966 L250.396 -86.4918
13967 z
13968 " id="C3_c5_ac3b0dd97c"/>
13969 <path d="
13970 M131.921 -95.1906
13971 L135.559 -101.208
13972 L137.911 -99.7928
13973 L134.254 -94.6954
13974 L131.921 -95.1906
13975 z
13976 " id="C3_c6_3470dc2f71"/>
13977 <path d="
13978 M236.794 -93.7404
13979 L240.643 -91.2078
13980 L242.631 -88.9815
13981 L238.769 -90.6069
13982 L236.794 -93.7404
13983 z
13984 " id="C3_c7_1e6c9fef25"/>
13985 <path d="
13986 M174.202 -113.05
13987 L178.034 -118.297
13988 L180.251 -111.046
13989 L176.432 -106.973
13990 L174.202 -113.05
13991 z
13992 " id="C3_c8_e22b65425c"/>
13993 <path d="
13994 M111.515 -85.9956
13995 L115.251 -86.1909
13996 L117.587 -87.3051
13997 L113.847 -87.3487
13998 L111.515 -85.9956
13999 z
14000 " id="C3_c9_df10265598"/>
14001 <path d="
14002 M117.587 -87.3051
14003 L121.256 -90.1244
14004 L123.596 -90.7277
14005 L119.917 -88.3343
14006 L117.587 -87.3051
14007 z
14008 " id="C3_ca_5841698bf8"/>
14009 <path d="
14010 M240.643 -91.2078
14011 L244.495 -88.7472
14012 L246.504 -87.5566
14013 L242.631 -88.9815
14014 L240.643 -91.2078
14015 z
14016 " id="C3_cb_391ff6cb89"/>
14017 <path d="
14018 M207.735 -110.448
14019 L211.625 -110.683
14020 L213.633 -103.178
14021 L209.767 -103.202
14022 L207.735 -110.448
14023 z
14024 " id="C3_cc_926e750e98"/>
14025 <path d="
14026 M193.994 -113.996
14027 L197.883 -116.433
14028 L199.971 -108.297
14029 L196.107 -106.583
14030 L193.994 -113.996
14031 z
14032 " id="C3_cd_e776653866"/>
14033 <path d="
14034 M244.495 -88.7472
14035 L248.358 -86.5408
14036 L250.396 -86.4918
14037 L246.504 -87.5566
14038 L244.495 -88.7472
14039 z
14040 " id="C3_ce_dcbe05b9e2"/>
14041 <path d="
14042 M256.471 -89.4199
14043 L260.472 -90.7063
14044 L262.761 -97.4178
14045 L258.714 -95.1609
14046 L256.471 -89.4199
14047 z
14048 " id="C3_cf_bd8654ecd4"/>
14049 <path d="
14050 M137.911 -99.7928
14051 L141.561 -106.88
14052 L143.917 -104.36
14053 L140.25 -98.3141
14054 L137.911 -99.7928
14055 z
14056 " id="C3_d0_3de207c61e"/>
14057 <path d="
14058 M254.315 -85.9529
14059 L258.27 -86.103
14060 L260.472 -90.7063
14061 L256.471 -89.4199
14062 L254.315 -85.9529
14063 z
14064 " id="C3_d1_2dffdef126"/>
14065 <path d="
14066 M184.096 -115.219
14067 L187.968 -119.238
14068 L190.122 -111.159
14069 L186.271 -108.107
14070 L184.096 -115.219
14071 z
14072 " id="C3_d2_072cb02517"/>
14073 <path d="
14074 M123.596 -90.7277
14075 L127.227 -95.777
14076 L129.577 -95.5978
14077 L125.931 -91.1562
14078 L123.596 -90.7277
14079 z
14080 " id="C3_d3_d5830dec10"/>
14081 <path d="
14082 M145.262 -176.629
14083 L149.192 -167.472
14084 L151.346 -176.694
14085 L147.427 -185.032
14086 L145.262 -176.629
14087 z
14088 " id="C3_d4_074cdbaeae"/>
14089 <path d="
14090 M105.341 -87.3429
14091 L109.174 -84.6752
14092 L111.515 -85.9956
14093 L107.686 -88.7304
14094 L105.341 -87.3429
14095 z
14096 " id="C3_d5_669516bc18"/>
14097 <path d="
14098 M248.358 -86.5408
14099 L252.239 -84.7823
14100 L254.315 -85.9529
14101 L250.396 -86.4918
14102 L248.358 -86.5408
14103 z
14104 " id="C3_d6_db3960e586"/>
14105 <path d="
14106 M211.625 -110.683
14107 L215.517 -110.28
14108 L217.501 -102.685
14109 L213.633 -103.178
14110 L211.625 -110.683
14111 z
14112 " id="C3_d7_575ea59d86"/>
14113 <path d="
14114 M168.136 -113.853
14115 L171.945 -120.061
14116 L174.202 -113.05
14117 L170.4 -108.044
14118 L168.136 -113.853
14119 z
14120 " id="C3_d8_c5b80954bd"/>
14121 <path d="
14122 M109.174 -84.6752
14123 L112.91 -84.9498
14124 L115.251 -86.1909
14125 L111.515 -85.9956
14126 L109.174 -84.6752
14127 z
14128 " id="C3_d9_f78d049aa4"/>
14129 <path d="
14130 M143.917 -104.36
14131 L147.593 -112.024
14132 L149.946 -108.379
14133 L146.256 -101.84
14134 L143.917 -104.36
14135 z
14136 " id="C3_da_f0eb3e7aff"/>
14137 <path d="
14138 M115.251 -86.1909
14139 L118.912 -89.27
14140 L121.256 -90.1244
14141 L117.587 -87.3051
14142 L115.251 -86.1909
14143 z
14144 " id="C3_db_099d052119"/>
14145 <path d="
14146 M252.239 -84.7823
14147 L256.15 -83.6672
14148 L258.27 -86.103
14149 L254.315 -85.9529
14150 L252.239 -84.7823
14151 z
14152 " id="C3_dc_0cdbf18c13"/>
14153 <path d="
14154 M129.577 -95.5978
14155 L133.198 -102.381
14156 L135.559 -101.208
14157 L131.921 -95.1906
14158 L129.577 -95.5978
14159 z
14160 " id="C3_dd_0d19759813"/>
14161 <path d="
14162 M215.517 -110.28
14163 L219.405 -109.22
14164 L221.368 -101.708
14165 L217.501 -102.685
14166 L215.517 -110.28
14167 z
14168 " id="C3_de_531af8bcb1"/>
14169 <path d="
14170 M162.063 -113.322
14171 L165.843 -120.318
14172 L168.136 -113.853
14173 L164.358 -108.067
14174 L162.063 -113.322
14175 z
14176 " id="C3_df_4e3dc9ffd8"/>
14177 <path d="
14178 M197.883 -116.433
14179 L201.787 -118.321
14180 L203.849 -109.625
14181 L199.971 -108.297
14182 L197.883 -116.433
14183 z
14184 " id="C3_e0_4b687d6aa3"/>
14185 <path d="
14186 M149.946 -108.379
14187 L153.655 -116.174
14188 L155.997 -111.454
14189 L152.278 -104.835
14190 L149.946 -108.379
14191 z
14192 " id="C3_e1_626fedaf1f"/>
14193 <path d="
14194 M258.27 -86.103
14195 L262.272 -87.0932
14196 L264.525 -92.8188
14197 L260.472 -90.7063
14198 L258.27 -86.103
14199 z
14200 " id="C3_e2_42e2c4a1e4"/>
14201 <path d="
14202 M102.98 -86.1204
14203 L106.823 -83.3754
14204 L109.174 -84.6752
14205 L105.341 -87.3429
14206 L102.98 -86.1204
14207 z
14208 " id="C3_e3_228447823d"/>
14209 <path d="
14210 M155.997 -111.454
14211 L159.742 -119.002
14212 L162.063 -113.322
14213 L158.314 -106.976
14214 L155.997 -111.454
14215 z
14216 " id="C3_e4_2e5178a54c"/>
14217 <path d="
14218 M260.472 -90.7063
14219 L264.525 -92.8188
14220 L266.862 -100.465
14221 L262.761 -97.4178
14222 L260.472 -90.7063
14223 z
14224 " id="C3_e5_fa8d85a21f"/>
14225 <path d="
14226 M121.256 -90.1244
14227 L124.873 -95.6155
14228 L127.227 -95.777
14229 L123.596 -90.7277
14230 L121.256 -90.1244
14231 z
14232 " id="C3_e6_1b920b5815"/>
14233 <path d="
14234 M219.405 -109.22
14235 L223.286 -107.519
14236 L225.232 -100.261
14237 L221.368 -101.708
14238 L219.405 -109.22
14239 z
14240 " id="C3_e7_fb99a8150e"/>
14241 <path d="
14242 M256.15 -83.6672
14243 L260.102 -83.3831
14244 L262.272 -87.0932
14245 L258.27 -86.103
14246 L256.15 -83.6672
14247 z
14248 " id="C3_e8_4f0d671c11"/>
14249 <path d="
14250 M106.823 -83.3754
14251 L110.565 -83.5673
14252 L112.91 -84.9498
14253 L109.174 -84.6752
14254 L106.823 -83.3754
14255 z
14256 " id="C3_e9_dc1cb17920"/>
14257 <path d="
14258 M178.034 -118.297
14259 L181.896 -123.485
14260 L184.096 -115.219
14261 L180.251 -111.046
14262 L178.034 -118.297
14263 z
14264 " id="C3_ea_261d6808b0"/>
14265 <path d="
14266 M223.286 -107.519
14267 L227.157 -105.225
14268 L229.091 -98.392
14269 L225.232 -100.261
14270 L223.286 -107.519
14271 z
14272 " id="C3_eb_6740566d9f"/>
14273 <path d="
14274 M112.91 -84.9498
14275 L116.569 -88.1174
14276 L118.912 -89.27
14277 L115.251 -86.1909
14278 L112.91 -84.9498
14279 z
14280 " id="C3_ec_8982dccdd7"/>
14281 <path d="
14282 M242.546 -92.2491
14283 L246.385 -88.8583
14284 L248.358 -86.5408
14285 L244.495 -88.7472
14286 L242.546 -92.2491
14287 z
14288 " id="C3_ed_87b18e7055"/>
14289 <path d="
14290 M187.968 -119.238
14291 L191.863 -122.88
14292 L193.994 -113.996
14293 L190.122 -111.159
14294 L187.968 -119.238
14295 z
14296 " id="C3_ee_c768391b09"/>
14297 <path d="
14298 M246.385 -88.8583
14299 L250.235 -85.8161
14300 L252.239 -84.7823
14301 L248.358 -86.5408
14302 L246.385 -88.8583
14303 z
14304 " id="C3_ef_660de66e12"/>
14305 <path d="
14306 M238.709 -95.7698
14307 L242.546 -92.2491
14308 L244.495 -88.7472
14309 L240.643 -91.2078
14310 L238.709 -95.7698
14311 z
14312 " id="C3_f0_9f5bd5ba90"/>
14313 <path d="
14314 M227.157 -105.225
14315 L231.018 -102.42
14316 L232.945 -96.1816
14317 L229.091 -98.392
14318 L227.157 -105.225
14319 z
14320 " id="C3_f1_d0784ac070"/>
14321 <path d="
14322 M234.868 -99.2191
14323 L238.709 -95.7698
14324 L240.643 -91.2078
14325 L236.794 -93.7404
14326 L234.868 -99.2191
14327 z
14328 " id="C3_f2_1a99a218cb"/>
14329 <path d="
14330 M231.018 -102.42
14331 L234.868 -99.2191
14332 L236.794 -93.7404
14333 L232.945 -96.1816
14334 L231.018 -102.42
14335 z
14336 " id="C3_f3_55c477b395"/>
14337 <path d="
14338 M135.559 -101.208
14339 L139.192 -109.184
14340 L141.561 -106.88
14341 L137.911 -99.7928
14342 L135.559 -101.208
14343 z
14344 " id="C3_f4_204aff5337"/>
14345 <path d="
14346 M250.235 -85.8161
14347 L254.105 -83.3489
14348 L256.15 -83.6672
14349 L252.239 -84.7823
14350 L250.235 -85.8161
14351 z
14352 " id="C3_f5_3a485811d5"/>
14353 <path d="
14354 M201.787 -118.321
14355 L205.701 -119.543
14356 L207.735 -110.448
14357 L203.849 -109.625
14358 L201.787 -118.321
14359 z
14360 " id="C3_f6_c4635d3095"/>
14361 <path d="
14362 M100.603 -85.0735
14363 L104.462 -82.1084
14364 L106.823 -83.3754
14365 L102.98 -86.1204
14366 L100.603 -85.0735
14367 z
14368 " id="C3_f7_7a9508c58a"/>
14369 <path d="
14370 M254.105 -83.3489
14371 L258.008 -81.68
14372 L260.102 -83.3831
14373 L256.15 -83.6672
14374 L254.105 -83.3489
14375 z
14376 " id="C3_f8_d8a47527cf"/>
14377 <path d="
14378 M262.272 -87.0932
14379 L266.331 -89.0518
14380 L268.638 -95.8469
14381 L264.525 -92.8188
14382 L262.272 -87.0932
14383 z
14384 " id="C3_f9_b3bf52fc64"/>
14385 <path d="
14386 M260.102 -83.3831
14387 L264.106 -84.0978
14388 L266.331 -89.0518
14389 L262.272 -87.0932
14390 L260.102 -83.3831
14391 z
14392 " id="C3_fa_609f0df675"/>
14393 <path d="
14394 M127.227 -95.777
14395 L130.831 -103.164
14396 L133.198 -102.381
14397 L129.577 -95.5978
14398 L127.227 -95.777
14399 z
14400 " id="C3_fb_b7243403c2"/>
14401 <path d="
14402 M118.912 -89.27
14403 L122.52 -95.0307
14404 L124.873 -95.6155
14405 L121.256 -90.1244
14406 L118.912 -89.27
14407 z
14408 " id="C3_fc_43bf258612"/>
14409 <path d="
14410 M104.462 -82.1084
14411 L108.216 -82.057
14412 L110.565 -83.5673
14413 L106.823 -83.3754
14414 L104.462 -82.1084
14415 z
14416 " id="C3_fd_c2202f5144"/>
14417 <path d="
14418 M110.565 -83.5673
14419 L114.226 -86.65
14420 L116.569 -88.1174
14421 L112.91 -84.9498
14422 L110.565 -83.5673
14423 z
14424 " id="C3_fe_c299ec0c29"/>
14425 <path d="
14426 M171.945 -120.061
14427 L175.789 -126.346
14428 L178.034 -118.297
14429 L174.202 -113.05
14430 L171.945 -120.061
14431 z
14432 " id="C3_ff_2d98633cd4"/>
14433 <path d="
14434 M141.561 -106.88
14435 L145.222 -115.516
14436 L147.593 -112.024
14437 L143.917 -104.36
14438 L141.561 -106.88
14439 z
14440 " id="C3_100_7bc181d317"/>
14441 <path d="
14442 M264.525 -92.8188
14443 L268.638 -95.8469
14444 L271.026 -104.353
14445 L266.862 -100.465
14446 L264.525 -92.8188
14447 z
14448 " id="C3_101_cc43d95075"/>
14449 <path d="
14450 M258.008 -81.68
14451 L261.958 -81.0168
14452 L264.106 -84.0978
14453 L260.102 -83.3831
14454 L258.008 -81.68
14455 z
14456 " id="C3_102_8c21623e21"/>
14457 <path d="
14458 M205.701 -119.543
14459 L209.619 -120.018
14460 L211.625 -110.683
14461 L207.735 -110.448
14462 L205.701 -119.543
14463 z
14464 " id="C3_103_1546fc799f"/>
14465 <path d="
14466 M98.209 -84.2323
14467 L102.089 -80.9103
14468 L104.462 -82.1084
14469 L100.603 -85.0735
14470 L98.209 -84.2323
14471 z
14472 " id="C3_104_2af95b87c5"/>
14473 <path d="
14474 M191.863 -122.88
14475 L195.779 -125.961
14476 L197.883 -116.433
14477 L193.994 -113.996
14478 L191.863 -122.88
14479 z
14480 " id="C3_105_acfe4a8e1c"/>
14481 <path d="
14482 M147.593 -112.024
14483 L151.292 -120.839
14484 L153.655 -116.174
14485 L149.946 -108.379
14486 L147.593 -112.024
14487 z
14488 " id="C3_106_e3d555ddca"/>
14489 <path d="
14490 M165.843 -120.318
14491 L169.66 -127.573
14492 L171.945 -120.061
14493 L168.136 -113.853
14494 L165.843 -120.318
14495 z
14496 " id="C3_107_cfd4de335c"/>
14497 <path d="
14498 M102.089 -80.9103
14499 L105.862 -80.4601
14500 L108.216 -82.057
14501 L104.462 -82.1084
14502 L102.089 -80.9103
14503 z
14504 " id="C3_108_1efef10777"/>
14505 <path d="
14506 M181.896 -123.485
14507 L185.788 -128.351
14508 L187.968 -119.238
14509 L184.096 -115.219
14510 L181.896 -123.485
14511 z
14512 " id="C3_109_b8c7eab3cb"/>
14513 <path d="
14514 M264.106 -84.0978
14515 L268.175 -85.9481
14516 L270.458 -92.0741
14517 L266.331 -89.0518
14518 L264.106 -84.0978
14519 z
14520 " id="C3_10a_ff08bc4d2a"/>
14521 <path d="
14522 M116.569 -88.1174
14523 L120.171 -93.9719
14524 L122.52 -95.0307
14525 L118.912 -89.27
14526 L116.569 -88.1174
14527 z
14528 " id="C3_10b_da639c15a8"/>
14529 <path d="
14530 M133.198 -102.381
14531 L136.814 -111.087
14532 L139.192 -109.184
14533 L135.559 -101.208
14534 L133.198 -102.381
14535 z
14536 " id="C3_10c_dd6b9f9c69"/>
14537 <path d="
14538 M108.216 -82.057
14539 L111.885 -84.8821
14540 L114.226 -86.65
14541 L110.565 -83.5673
14542 L108.216 -82.057
14543 z
14544 " id="C3_10d_e01c937039"/>
14545 <path d="
14546 M252.122 -84.9979
14547 L255.982 -81.8791
14548 L258.008 -81.68
14549 L254.105 -83.3489
14550 L252.122 -84.9979
14551 z
14552 " id="C3_10e_35db4d7f15"/>
14553 <path d="
14554 M248.287 -88.8577
14555 L252.122 -84.9979
14556 L254.105 -83.3489
14557 L250.235 -85.8161
14558 L248.287 -88.8577
14559 z
14560 " id="C3_10f_5e6f88b4d8"/>
14561 <path d="
14562 M261.958 -81.0168
14563 L265.969 -81.5382
14564 L268.175 -85.9481
14565 L264.106 -84.0978
14566 L261.958 -81.0168
14567 z
14568 " id="C3_110_dc00bd43ca"/>
14569 <path d="
14570 M124.873 -95.6155
14571 L128.464 -103.439
14572 L130.831 -103.164
14573 L127.227 -95.777
14574 L124.873 -95.6155
14575 z
14576 " id="C3_111_866da43cd7"/>
14577 <path d="
14578 M153.655 -116.174
14579 L157.396 -124.764
14580 L159.742 -119.002
14581 L155.997 -111.454
14582 L153.655 -116.174
14583 z
14584 " id="C3_112_dedb0659c0"/>
14585 <path d="
14586 M266.331 -89.0518
14587 L270.458 -92.0741
14588 L272.82 -99.8458
14589 L268.638 -95.8469
14590 L266.331 -89.0518
14591 z
14592 " id="C3_113_cb18d40004"/>
14593 <path d="
14594 M159.742 -119.002
14595 L163.523 -127.047
14596 L165.843 -120.318
14597 L162.063 -113.322
14598 L159.742 -119.002
14599 z
14600 " id="C3_114_989b793637"/>
14601 <path d="
14602 M255.982 -81.8791
14603 L259.88 -79.7482
14604 L261.958 -81.0168
14605 L258.008 -81.68
14606 L255.982 -81.8791
14607 z
14608 " id="C3_115_683e87a03f"/>
14609 <path d="
14610 M244.464 -93.2009
14611 L248.287 -88.8577
14612 L250.235 -85.8161
14613 L246.385 -88.8583
14614 L244.464 -93.2009
14615 z
14616 " id="C3_116_cc85169164"/>
14617 <path d="
14618 M209.619 -120.018
14619 L213.537 -119.698
14620 L215.517 -110.28
14621 L211.625 -110.683
14622 L209.619 -120.018
14623 z
14624 " id="C3_117_0f2431317a"/>
14625 <path d="
14626 M240.642 -97.7725
14627 L244.464 -93.2009
14628 L246.385 -88.8583
14629 L242.546 -92.2491
14630 L240.642 -97.7725
14631 z
14632 " id="C3_118_c39cc093eb"/>
14633 <path d="
14634 M95.7938 -83.6448
14635 L99.7018 -79.8394
14636 L102.089 -80.9103
14637 L98.209 -84.2323
14638 L95.7938 -83.6448
14639 z
14640 " id="C3_119_e7124f10e4"/>
14641 <path d="
14642 M259.88 -79.7482
14643 L263.834 -78.8268
14644 L265.969 -81.5382
14645 L261.958 -81.0168
14646 L259.88 -79.7482
14647 z
14648 " id="C3_11a_decc6609ac"/>
14649 <path d="
14650 M99.7018 -79.8394
14651 L103.5 -78.8441
14652 L105.862 -80.4601
14653 L102.089 -80.9103
14654 L99.7018 -79.8394
14655 z
14656 " id="C3_11b_c08e73b51e"/>
14657 <path d="
14658 M105.862 -80.4601
14659 L109.545 -82.8592
14660 L111.885 -84.8821
14661 L108.216 -82.057
14662 L105.862 -80.4601
14663 z
14664 " id="C3_11c_5296b1a15d"/>
14665 <path d="
14666 M213.537 -119.698
14667 L217.449 -118.565
14668 L219.405 -109.22
14669 L215.517 -110.28
14670 L213.537 -119.698
14671 z
14672 " id="C3_11d_176695f1bd"/>
14673 <path d="
14674 M236.813 -102.333
14675 L240.642 -97.7725
14676 L242.546 -92.2491
14677 L238.709 -95.7698
14678 L236.813 -102.333
14679 z
14680 " id="C3_11e_f5639140ae"/>
14681 <path d="
14682 M114.226 -86.65
14683 L117.827 -92.4208
14684 L120.171 -93.9719
14685 L116.569 -88.1174
14686 L114.226 -86.65
14687 z
14688 " id="C3_11f_2b86cac2b2"/>
14689 <path d="
14690 M268.638 -95.8469
14691 L272.82 -99.8458
14692 L275.257 -109.099
14693 L271.026 -104.353
14694 L268.638 -95.8469
14695 z
14696 " id="C3_120_32e3d44aa3"/>
14697 <path d="
14698 M195.779 -125.961
14699 L199.71 -128.336
14700 L201.787 -118.321
14701 L197.883 -116.433
14702 L195.779 -125.961
14703 z
14704 " id="C3_121_2e619ff729"/>
14705 <path d="
14706 M139.192 -109.184
14707 L142.839 -118.633
14708 L145.222 -115.516
14709 L141.561 -106.88
14710 L139.192 -109.184
14711 z
14712 " id="C3_122_e8997dac7c"/>
14713 <path d="
14714 M232.972 -106.666
14715 L236.813 -102.333
14716 L238.709 -95.7698
14717 L234.868 -99.2191
14718 L232.972 -106.666
14719 z
14720 " id="C3_123_6ac7725622"/>
14721 <path d="
14722 M265.969 -81.5382
14723 L270.053 -83.3814
14724 L272.32 -89.028
14725 L268.175 -85.9481
14726 L265.969 -81.5382
14727 z
14728 " id="C3_124_428565811d"/>
14729 <path d="
14730 M217.449 -118.565
14731 L221.352 -116.633
14732 L223.286 -107.519
14733 L219.405 -109.22
14734 L217.449 -118.565
14735 z
14736 " id="C3_125_6c017efcec"/>
14737 <path d="
14738 M175.789 -126.346
14739 L179.668 -132.394
14740 L181.896 -123.485
14741 L178.034 -118.297
14742 L175.789 -126.346
14743 z
14744 " id="C3_126_1cb0c997bf"/>
14745 <path d="
14746 M122.52 -95.0307
14747 L126.1 -103.12
14748 L128.464 -103.439
14749 L124.873 -95.6155
14750 L122.52 -95.0307
14751 z
14752 " id="C3_127_add5d63761"/>
14753 <path d="
14754 M229.115 -110.587
14755 L232.972 -106.666
14756 L234.868 -99.2191
14757 L231.018 -102.42
14758 L229.115 -110.587
14759 z
14760 " id="C3_128_e00a0e713a"/>
14761 <path d="
14762 M268.175 -85.9481
14763 L272.32 -89.028
14764 L274.662 -96.2125
14765 L270.458 -92.0741
14766 L268.175 -85.9481
14767 z
14768 " id="C3_129_3fb02315ff"/>
14769 <path d="
14770 M221.352 -116.633
14771 L225.241 -113.947
14772 L227.157 -105.225
14773 L223.286 -107.519
14774 L221.352 -116.633
14775 z
14776 " id="C3_12a_3e40436513"/>
14777 <path d="
14778 M225.241 -113.947
14779 L229.115 -110.587
14780 L231.018 -102.42
14781 L227.157 -105.225
14782 L225.241 -113.947
14783 z
14784 " id="C3_12b_404ea1e3e7"/>
14785 <path d="
14786 M263.834 -78.8268
14787 L267.857 -79.2964
14788 L270.053 -83.3814
14789 L265.969 -81.5382
14790 L263.834 -78.8268
14791 z
14792 " id="C3_12c_5c44d0ae8a"/>
14793 <path d="
14794 M130.831 -103.164
14795 L134.433 -112.438
14796 L136.814 -111.087
14797 L133.198 -102.381
14798 L130.831 -103.164
14799 z
14800 " id="C3_12d_07bc107167"/>
14801 <path d="
14802 M103.5 -78.8441
14803 L107.204 -80.6563
14804 L109.545 -82.8592
14805 L105.862 -80.4601
14806 L103.5 -78.8441
14807 z
14808 " id="C3_12e_760e9e2271"/>
14809 <path d="
14810 M254.008 -83.7908
14811 L257.86 -80.1494
14812 L259.88 -79.7482
14813 L255.982 -81.8791
14814 L254.008 -83.7908
14815 z
14816 " id="C3_12f_045baa9c0f"/>
14817 <path d="
14818 M185.788 -128.351
14819 L189.707 -132.671
14820 L191.863 -122.88
14821 L187.968 -119.238
14822 L185.788 -128.351
14823 z
14824 " id="C3_130_387f55258d"/>
14825 <path d="
14826 M111.885 -84.8821
14827 L115.49 -90.392
14828 L117.827 -92.4208
14829 L114.226 -86.65
14830 L111.885 -84.8821
14831 z
14832 " id="C3_131_85d3d02b40"/>
14833 <path d="
14834 M97.2966 -78.9737
14835 L101.127 -77.3007
14836 L103.5 -78.8441
14837 L99.7018 -79.8394
14838 L97.2966 -78.9737
14839 z
14840 " id="C3_132_3af90b5b1e"/>
14841 <path d="
14842 M257.86 -80.1494
14843 L261.76 -77.7167
14844 L263.834 -78.8268
14845 L259.88 -79.7482
14846 L257.86 -80.1494
14847 z
14848 " id="C3_133_ebe31f1ada"/>
14849 <path d="
14850 M93.3542 -83.3745
14851 L97.2966 -78.9737
14852 L99.7018 -79.8394
14853 L95.7938 -83.6448
14854 L93.3542 -83.3745
14855 z
14856 " id="C3_134_21b70186f6"/>
14857 <path d="
14858 M250.186 -88.3761
14859 L254.008 -83.7908
14860 L255.982 -81.8791
14861 L252.122 -84.9979
14862 L250.186 -88.3761
14863 z
14864 " id="C3_135_1c0861f6dc"/>
14865 <path d="
14866 M270.458 -92.0741
14867 L274.662 -96.2125
14868 L277.076 -104.828
14869 L272.82 -99.8458
14870 L270.458 -92.0741
14871 z
14872 " id="C3_136_30eb1e77d8"/>
14873 <path d="
14874 M145.222 -115.516
14875 L148.912 -125.184
14876 L151.292 -120.839
14877 L147.593 -112.024
14878 L145.222 -115.516
14879 z
14880 " id="C3_137_236b8df706"/>
14881 <path d="
14882 M261.76 -77.7167
14883 L265.724 -76.7198
14884 L267.857 -79.2964
14885 L263.834 -78.8268
14886 L261.76 -77.7167
14887 z
14888 " id="C3_138_3ddcce9d7c"/>
14889 <path d="
14890 M246.38 -93.6195
14891 L250.186 -88.3761
14892 L252.122 -84.9979
14893 L248.287 -88.8577
14894 L246.38 -93.6195
14895 z
14896 " id="C3_139_bbe4fb98d5"/>
14897 <path d="
14898 M199.71 -128.336
14899 L203.652 -129.898
14900 L205.701 -119.543
14901 L201.787 -118.321
14902 L199.71 -128.336
14903 z
14904 " id="C3_13a_7539293327"/>
14905 <path d="
14906 M169.66 -127.573
14907 L173.515 -134.716
14908 L175.789 -126.346
14909 L171.945 -120.061
14910 L169.66 -127.573
14911 z
14912 " id="C3_13b_8e9ddf2f88"/>
14913 <path d="
14914 M120.171 -93.9719
14915 L123.742 -102.156
14916 L126.1 -103.12
14917 L122.52 -95.0307
14918 L120.171 -93.9719
14919 z
14920 " id="C3_13c_e21526af36"/>
14921 <path d="
14922 M101.127 -77.3007
14923 L104.859 -78.3766
14924 L107.204 -80.6563
14925 L103.5 -78.8441
14926 L101.127 -77.3007
14927 z
14928 " id="C3_13d_08f9965fa7"/>
14929 <path d="
14930 M109.545 -82.8592
14931 L113.16 -87.9334
14932 L115.49 -90.392
14933 L111.885 -84.8821
14934 L109.545 -82.8592
14935 z
14936 " id="C3_13e_a62f1d9c60"/>
14937 <path d="
14938 M267.857 -79.2964
14939 L271.964 -81.2852
14940 L274.223 -86.6301
14941 L270.053 -83.3814
14942 L267.857 -79.2964
14943 z
14944 " id="C3_13f_9938d4dc99"/>
14945 <path d="
14946 M270.053 -83.3814
14947 L274.223 -86.6301
14948 L276.551 -93.3781
14949 L272.32 -89.028
14950 L270.053 -83.3814
14951 z
14952 " id="C3_140_805f8e5a41"/>
14953 <path d="
14954 M151.292 -120.839
14955 L155.028 -130.293
14956 L157.396 -124.764
14957 L153.655 -116.174
14958 L151.292 -120.839
14959 z
14960 " id="C3_141_e06e26e65a"/>
14961 <path d="
14962 M242.576 -99.2304
14963 L246.38 -93.6195
14964 L248.287 -88.8577
14965 L244.464 -93.2009
14966 L242.576 -99.2304
14967 z
14968 " id="C3_142_5ba53d3fc0"/>
14969 <path d="
14970 M272.82 -99.8458
14971 L277.076 -104.828
14972 L279.56 -114.679
14973 L275.257 -109.099
14974 L272.82 -99.8458
14975 z
14976 " id="C3_143_c815ecadd6"/>
14977 <path d="
14978 M94.8686 -78.4073
14979 L98.7376 -75.9417
14980 L101.127 -77.3007
14981 L97.2966 -78.9737
14982 L94.8686 -78.4073
14983 z
14984 " id="C3_144_798805ac1c"/>
14985 <path d="
14986 M163.523 -127.047
14987 L167.346 -135.157
14988 L169.66 -127.573
14989 L165.843 -120.318
14990 L163.523 -127.047
14991 z
14992 " id="C3_145_8815a8c9ce"/>
14993 <path d="
14994 M136.814 -111.087
14995 L140.448 -121.187
14996 L142.839 -118.633
14997 L139.192 -109.184
14998 L136.814 -111.087
14999 z
15000 " id="C3_146_c45b193047"/>
15001 <path d="
15002 M128.464 -103.439
15003 L132.052 -113.119
15004 L134.433 -112.438
15005 L130.831 -103.164
15006 L128.464 -103.439
15007 z
15008 " id="C3_147_bace1c82ea"/>
15009 <path d="
15010 M157.396 -124.764
15011 L161.178 -133.668
15012 L163.523 -127.047
15013 L159.742 -119.002
15014 L157.396 -124.764
15015 z
15016 " id="C3_148_d4853128fb"/>
15017 <path d="
15018 M265.724 -76.7198
15019 L269.768 -77.3326
15020 L271.964 -81.2852
15021 L267.857 -79.2964
15022 L265.724 -76.7198
15023 z
15024 " id="C3_149_ca6ba6b083"/>
15025 <path d="
15026 M90.8855 -83.4966
15027 L94.8686 -78.4073
15028 L97.2966 -78.9737
15029 L93.3542 -83.3745
15030 L90.8855 -83.4966
15031 z
15032 " id="C3_14a_0971d4ff4a"/>
15033 <path d="
15034 M272.32 -89.028
15035 L276.551 -93.3781
15036 L278.949 -101.467
15037 L274.662 -96.2125
15038 L272.32 -89.028
15039 z
15040 " id="C3_14b_f516845b30"/>
15041 <path d="
15042 M107.204 -80.6563
15043 L110.836 -85.1253
15044 L113.16 -87.9334
15045 L109.545 -82.8592
15046 L107.204 -80.6563
15047 z
15048 " id="C3_14c_0eeb3ada7d"/>
15049 <path d="
15050 M255.885 -82.0083
15051 L259.736 -78.0426
15052 L261.76 -77.7167
15053 L257.86 -80.1494
15054 L255.885 -82.0083
15055 z
15056 " id="C3_14d_6aa8db9efa"/>
15057 <path d="
15058 M203.652 -129.898
15059 L207.599 -130.575
15060 L209.619 -120.018
15061 L205.701 -119.543
15062 L203.652 -129.898
15063 z
15064 " id="C3_14e_ac042db153"/>
15065 <path d="
15066 M259.736 -78.0426
15067 L263.645 -75.5314
15068 L265.724 -76.7198
15069 L261.76 -77.7167
15070 L259.736 -78.0426
15071 z
15072 " id="C3_14f_c275753136"/>
15073 <path d="
15074 M98.7376 -75.9417
15075 L102.506 -76.1477
15076 L104.859 -78.3766
15077 L101.127 -77.3007
15078 L98.7376 -75.9417
15079 z
15080 " id="C3_150_38f9f2ee26"/>
15081 <path d="
15082 M117.827 -92.4208
15083 L121.394 -100.526
15084 L123.742 -102.156
15085 L120.171 -93.9719
15086 L117.827 -92.4208
15087 z
15088 " id="C3_151_e955d43f7a"/>
15089 <path d="
15090 M238.764 -104.929
15091 L242.576 -99.2304
15092 L244.464 -93.2009
15093 L240.642 -97.7725
15094 L238.764 -104.929
15095 z
15096 " id="C3_152_5d535cd975"/>
15097 <path d="
15098 M189.707 -132.671
15099 L193.648 -136.27
15100 L195.779 -125.961
15101 L191.863 -122.88
15102 L189.707 -132.671
15103 z
15104 " id="C3_153_4da573f622"/>
15105 <path d="
15106 M179.668 -132.394
15107 L183.579 -137.934
15108 L185.788 -128.351
15109 L181.896 -123.485
15110 L179.668 -132.394
15111 z
15112 " id="C3_154_d32bb0ca43"/>
15113 <path d="
15114 M252.073 -87.1547
15115 L255.885 -82.0083
15116 L257.86 -80.1494
15117 L254.008 -83.7908
15118 L252.073 -87.1547
15119 z
15120 " id="C3_155_95ab6fbb11"/>
15121 <path d="
15122 M263.645 -75.5314
15123 L267.629 -74.6962
15124 L269.768 -77.3326
15125 L265.724 -76.7198
15126 L263.645 -75.5314
15127 z
15128 " id="C3_156_6b020656de"/>
15129 <path d="
15130 M104.859 -78.3766
15131 L108.514 -82.0792
15132 L110.836 -85.1253
15133 L107.204 -80.6563
15134 L104.859 -78.3766
15135 z
15136 " id="C3_157_4b64d2ee25"/>
15137 <path d="
15138 M274.662 -96.2125
15139 L278.949 -101.467
15140 L281.413 -110.754
15141 L277.076 -104.828
15142 L274.662 -96.2125
15143 z
15144 " id="C3_158_5f4ed98576"/>
15145 <path d="
15146 M234.936 -110.458
15147 L238.764 -104.929
15148 L240.642 -97.7725
15149 L236.813 -102.333
15150 L234.936 -110.458
15151 z
15152 " id="C3_159_8f9924f041"/>
15153 <path d="
15154 M92.4119 -78.2454
15155 L96.3264 -74.8945
15156 L98.7376 -75.9417
15157 L94.8686 -78.4073
15158 L92.4119 -78.2454
15159 z
15160 " id="C3_15a_fec4e060a3"/>
15161 <path d="
15162 M207.599 -130.575
15163 L211.545 -130.325
15164 L213.537 -119.698
15165 L209.619 -120.018
15166 L207.599 -130.575
15167 z
15168 " id="C3_15b_4413b11cc5"/>
15169 <path d="
15170 M248.282 -93.1735
15171 L252.073 -87.1547
15172 L254.008 -83.7908
15173 L250.186 -88.3761
15174 L248.282 -93.1735
15175 z
15176 " id="C3_15c_9525da1a2c"/>
15177 <path d="
15178 M115.49 -90.392
15179 L119.057 -98.2461
15180 L121.394 -100.526
15181 L117.827 -92.4208
15182 L115.49 -90.392
15183 z
15184 " id="C3_15d_18142b327f"/>
15185 <path d="
15186 M96.3264 -74.8945
15187 L100.137 -74.1175
15188 L102.506 -76.1477
15189 L98.7376 -75.9417
15190 L96.3264 -74.8945
15191 z
15192 " id="C3_15e_78a9473755"/>
15193 <path d="
15194 M271.964 -81.2852
15195 L276.167 -84.8552
15196 L278.488 -91.3031
15197 L274.223 -86.6301
15198 L271.964 -81.2852
15199 z
15200 " id="C3_15f_ae6b66f051"/>
15201 <path d="
15202 M142.839 -118.633
15203 L146.519 -128.985
15204 L148.912 -125.184
15205 L145.222 -115.516
15206 L142.839 -118.633
15207 z
15208 " id="C3_160_6ed9cbb537"/>
15209 <path d="
15210 M269.768 -77.3326
15211 L273.909 -79.6621
15212 L276.167 -84.8552
15213 L271.964 -81.2852
15214 L269.768 -77.3326
15215 z
15216 " id="C3_161_5329ba402c"/>
15217 <path d="
15218 M126.1 -103.12
15219 L129.676 -113.047
15220 L132.052 -113.119
15221 L128.464 -103.439
15222 L126.1 -103.12
15223 z
15224 " id="C3_162_ba368d1222"/>
15225 <path d="
15226 M88.3826 -84.0929
15227 L92.4119 -78.2454
15228 L94.8686 -78.4073
15229 L90.8855 -83.4966
15230 L88.3826 -84.0929
15231 z
15232 " id="C3_163_381bd7bb50"/>
15233 <path d="
15234 M231.088 -115.595
15235 L234.936 -110.458
15236 L236.813 -102.333
15237 L232.972 -106.666
15238 L231.088 -115.595
15239 z
15240 " id="C3_164_ce2e02f98b"/>
15241 <path d="
15242 M102.506 -76.1477
15243 L106.191 -78.9355
15244 L108.514 -82.0792
15245 L104.859 -78.3766
15246 L102.506 -76.1477
15247 z
15248 " id="C3_165_c6cdbfb81c"/>
15249 <path d="
15250 M274.223 -86.6301
15251 L278.488 -91.3031
15252 L280.874 -98.9765
15253 L276.551 -93.3781
15254 L274.223 -86.6301
15255 z
15256 " id="C3_166_0464c6f698"/>
15257 <path d="
15258 M267.629 -74.6962
15259 L271.707 -75.69
15260 L273.909 -79.6621
15261 L269.768 -77.3326
15262 L267.629 -74.6962
15263 z
15264 " id="C3_167_c314004849"/>
15265 <path d="
15266 M211.545 -130.325
15267 L215.485 -129.133
15268 L217.449 -118.565
15269 L213.537 -119.698
15270 L211.545 -130.325
15271 z
15272 " id="C3_168_91620c8759"/>
15273 <path d="
15274 M173.515 -134.716
15275 L177.408 -141.417
15276 L179.668 -132.394
15277 L175.789 -126.346
15278 L173.515 -134.716
15279 z
15280 " id="C3_169_b7c5e90981"/>
15281 <path d="
15282 M134.433 -112.438
15283 L138.054 -123.032
15284 L140.448 -121.187
15285 L136.814 -111.087
15286 L134.433 -112.438
15287 z
15288 " id="C3_16a_4a83ce4405"/>
15289 <path d="
15290 M257.75 -79.5847
15291 L261.608 -75.5566
15292 L263.645 -75.5314
15293 L259.736 -78.0426
15294 L257.75 -79.5847
15295 z
15296 " id="C3_16b_19641d9b18"/>
15297 <path d="
15298 M261.608 -75.5566
15299 L265.537 -73.245
15300 L267.629 -74.6962
15301 L263.645 -75.5314
15302 L261.608 -75.5566
15303 z
15304 " id="C3_16c_1aec879458"/>
15305 <path d="
15306 M113.16 -87.9334
15307 L116.732 -95.3632
15308 L119.057 -98.2461
15309 L115.49 -90.392
15310 L113.16 -87.9334
15311 z
15312 " id="C3_16d_d773f92bbe"/>
15313 <path d="
15314 M244.497 -99.7403
15315 L248.282 -93.1735
15316 L250.186 -88.3761
15317 L246.38 -93.6195
15318 L244.497 -99.7403
15319 z
15320 " id="C3_16e_5ec117b112"/>
15321 <path d="
15322 M227.218 -120.155
15323 L231.088 -115.595
15324 L232.972 -106.666
15325 L229.115 -110.587
15326 L227.218 -120.155
15327 z
15328 " id="C3_16f_8affc52884"/>
15329 <path d="
15330 M193.648 -136.27
15331 L197.607 -139.02
15332 L199.71 -128.336
15333 L195.779 -125.961
15334 L193.648 -136.27
15335 z
15336 " id="C3_170_bf213e1e53"/>
15337 <path d="
15338 M277.076 -104.828
15339 L281.413 -110.754
15340 L283.935 -121.018
15341 L279.56 -114.679
15342 L277.076 -104.828
15343 z
15344 " id="C3_171_85b97cfb2f"/>
15345 <path d="
15346 M215.485 -129.133
15347 L219.413 -127.011
15348 L221.352 -116.633
15349 L217.449 -118.565
15350 L215.485 -129.133
15351 z
15352 " id="C3_172_d27119a294"/>
15353 <path d="
15354 M253.941 -85.0589
15355 L257.75 -79.5847
15356 L259.736 -78.0426
15357 L255.885 -82.0083
15358 L253.941 -85.0589
15359 z
15360 " id="C3_173_c3daaeb01e"/>
15361 <path d="
15362 M223.325 -123.995
15363 L227.218 -120.155
15364 L229.115 -110.587
15365 L225.241 -113.947
15366 L223.325 -123.995
15367 z
15368 " id="C3_174_238315ee93"/>
15369 <path d="
15370 M100.137 -74.1175
15371 L103.861 -75.8594
15372 L106.191 -78.9355
15373 L102.506 -76.1477
15374 L100.137 -74.1175
15375 z
15376 " id="C3_175_34e1932286"/>
15377 <path d="
15378 M219.413 -127.011
15379 L223.325 -123.995
15380 L225.241 -113.947
15381 L221.352 -116.633
15382 L219.413 -127.011
15383 z
15384 " id="C3_176_127f08f3a1"/>
15385 <path d="
15386 M276.551 -93.3781
15387 L280.874 -98.9765
15388 L283.323 -107.776
15389 L278.949 -101.467
15390 L276.551 -93.3781
15391 z
15392 " id="C3_177_b60180d96b"/>
15393 <path d="
15394 M148.912 -125.184
15395 L152.643 -135.317
15396 L155.028 -130.293
15397 L151.292 -120.839
15398 L148.912 -125.184
15399 z
15400 " id="C3_178_806be4a0fd"/>
15401 <path d="
15402 M89.9201 -78.5981
15403 L93.8862 -74.2958
15404 L96.3264 -74.8945
15405 L92.4119 -78.2454
15406 L89.9201 -78.5981
15407 z
15408 " id="C3_179_a2f2c85d58"/>
15409 <path d="
15410 M93.8862 -74.2958
15411 L97.7466 -72.4477
15412 L100.137 -74.1175
15413 L96.3264 -74.8945
15414 L93.8862 -74.2958
15415 z
15416 " id="C3_17a_49869630e3"/>
15417 <path d="
15418 M265.537 -73.245
15419 L269.555 -72.851
15420 L271.707 -75.69
15421 L267.629 -74.6962
15422 L265.537 -73.245
15423 z
15424 " id="C3_17b_29847c0124"/>
15425 <path d="
15426 M110.836 -85.1253
15427 L114.419 -91.9592
15428 L116.732 -95.3632
15429 L113.16 -87.9334
15430 L110.836 -85.1253
15431 z
15432 " id="C3_17c_ca21da3cae"/>
15433 <path d="
15434 M183.579 -137.934
15435 L187.52 -142.753
15436 L189.707 -132.671
15437 L185.788 -128.351
15438 L183.579 -137.934
15439 z
15440 " id="C3_17d_4adff9991b"/>
15441 <path d="
15442 M123.742 -102.156
15443 L127.309 -112.171
15444 L129.676 -113.047
15445 L126.1 -103.12
15446 L123.742 -102.156
15447 z
15448 " id="C3_17e_873f3cc403"/>
15449 <path d="
15450 M167.346 -135.157
15451 L171.211 -142.936
15452 L173.515 -134.716
15453 L169.66 -127.573
15454 L167.346 -135.157
15455 z
15456 " id="C3_17f_5a81e0e224"/>
15457 <path d="
15458 M240.704 -106.534
15459 L244.497 -99.7403
15460 L246.38 -93.6195
15461 L242.576 -99.2304
15462 L240.704 -106.534
15463 z
15464 " id="C3_180_be30d25bdc"/>
15465 <path d="
15466 M250.161 -91.6576
15467 L253.941 -85.0589
15468 L255.885 -82.0083
15469 L252.073 -87.1547
15470 L250.161 -91.6576
15471 z
15472 " id="C3_181_547db3f7e8"/>
15473 <path d="
15474 M155.028 -130.293
15475 L158.811 -139.852
15476 L161.178 -133.668
15477 L157.396 -124.764
15478 L155.028 -130.293
15479 z
15480 " id="C3_182_3939d1c6f2"/>
15481 <path d="
15482 M85.8396 -85.2465
15483 L89.9201 -78.5981
15484 L92.4119 -78.2454
15485 L88.3826 -84.0929
15486 L85.8396 -85.2465
15487 z
15488 " id="C3_183_4fbcf87dca"/>
15489 <path d="
15490 M97.7466 -72.4477
15491 L101.516 -73.0356
15492 L103.861 -75.8594
15493 L100.137 -74.1175
15494 L97.7466 -72.4477
15495 z
15496 " id="C3_184_ec0633760e"/>
15497 <path d="
15498 M108.514 -82.0792
15499 L112.115 -88.1499
15500 L114.419 -91.9592
15501 L110.836 -85.1253
15502 L108.514 -82.0792
15503 z
15504 " id="C3_185_b4f4743d11"/>
15505 <path d="
15506 M273.909 -79.6621
15507 L278.157 -83.7358
15508 L280.476 -89.9918
15509 L276.167 -84.8552
15510 L273.909 -79.6621
15511 z
15512 " id="C3_186_1f4a699bcb"/>
15513 <path d="
15514 M161.178 -133.668
15515 L165.006 -142.416
15516 L167.346 -135.157
15517 L163.523 -127.047
15518 L161.178 -133.668
15519 z
15520 " id="C3_187_f4aa57d64e"/>
15521 <path d="
15522 M271.707 -75.69
15523 L275.893 -78.5845
15524 L278.157 -83.7358
15525 L273.909 -79.6621
15526 L271.707 -75.69
15527 z
15528 " id="C3_188_6caf34fc92"/>
15529 <path d="
15530 M259.601 -76.5789
15531 L263.479 -72.8053
15532 L265.537 -73.245
15533 L261.608 -75.5566
15534 L259.601 -76.5789
15535 z
15536 " id="C3_189_59f8b076ac"/>
15537 <path d="
15538 M278.949 -101.467
15539 L283.323 -107.776
15540 L285.829 -117.53
15541 L281.413 -110.754
15542 L278.949 -101.467
15543 z
15544 " id="C3_18a_04e235de52"/>
15545 <path d="
15546 M276.167 -84.8552
15547 L280.476 -89.9918
15548 L282.855 -97.3459
15549 L278.488 -91.3031
15550 L276.167 -84.8552
15551 z
15552 " id="C3_18b_07c501650f"/>
15553 <path d="
15554 M197.607 -139.02
15555 L201.577 -140.832
15556 L203.652 -129.898
15557 L199.71 -128.336
15558 L197.607 -139.02
15559 z
15560 " id="C3_18c_6602a60ea4"/>
15561 <path d="
15562 M263.479 -72.8053
15563 L267.442 -71.0132
15564 L269.555 -72.851
15565 L265.537 -73.245
15566 L263.479 -72.8053
15567 z
15568 " id="C3_18d_93cd4c2a34"/>
15569 <path d="
15570 M269.555 -72.851
15571 L273.68 -74.4914
15572 L275.893 -78.5845
15573 L271.707 -75.69
15574 L269.555 -72.851
15575 z
15576 " id="C3_18e_e14d7ffd89"/>
15577 <path d="
15578 M132.052 -113.119
15579 L135.661 -124.06
15580 L138.054 -123.032
15581 L134.433 -112.438
15582 L132.052 -113.119
15583 z
15584 " id="C3_18f_7cc46edd05"/>
15585 <path d="
15586 M140.448 -121.187
15587 L144.118 -132.063
15588 L146.519 -128.985
15589 L142.839 -118.633
15590 L140.448 -121.187
15591 z
15592 " id="C3_190_b6664d6992"/>
15593 <path d="
15594 M106.191 -78.9355
15595 L109.817 -84.0838
15596 L112.115 -88.1499
15597 L108.514 -82.0792
15598 L106.191 -78.9355
15599 z
15600 " id="C3_191_3c5bdb023e"/>
15601 <path d="
15602 M91.4089 -74.2845
15603 L95.3252 -71.307
15604 L97.7466 -72.4477
15605 L93.8862 -74.2958
15606 L91.4089 -74.2845
15607 z
15608 " id="C3_192_9558aff60f"/>
15609 <path d="
15610 M121.394 -100.526
15611 L124.954 -110.473
15612 L127.309 -112.171
15613 L123.742 -102.156
15614 L121.394 -100.526
15615 z
15616 " id="C3_193_3e73defe0b"/>
15617 <path d="
15618 M255.786 -82.0837
15619 L259.601 -76.5789
15620 L261.608 -75.5566
15621 L257.75 -79.5847
15622 L255.786 -82.0837
15623 z
15624 " id="C3_194_e0c97027d1"/>
15625 <path d="
15626 M236.893 -113.252
15627 L240.704 -106.534
15628 L242.576 -99.2304
15629 L238.764 -104.929
15630 L236.893 -113.252
15631 z
15632 " id="C3_195_842baf86ab"/>
15633 <path d="
15634 M87.3862 -79.5738
15635 L91.4089 -74.2845
15636 L93.8862 -74.2958
15637 L89.9201 -78.5981
15638 L87.3862 -79.5738
15639 z
15640 " id="C3_196_32920d36a8"/>
15641 <path d="
15642 M246.393 -99.0281
15643 L250.161 -91.6576
15644 L252.073 -87.1547
15645 L248.282 -93.1735
15646 L246.393 -99.0281
15647 z
15648 " id="C3_197_df30733e37"/>
15649 <path d="
15650 M103.861 -75.8594
15651 L107.519 -79.9393
15652 L109.817 -84.0838
15653 L106.191 -78.9355
15654 L103.861 -75.8594
15655 z
15656 " id="C3_198_b8c51ec3b6"/>
15657 <path d="
15658 M95.3252 -71.307
15659 L99.1476 -70.6602
15660 L101.516 -73.0356
15661 L97.7466 -72.4477
15662 L95.3252 -71.307
15663 z
15664 " id="C3_199_833d30b0be"/>
15665 <path d="
15666 M278.488 -91.3031
15667 L282.855 -97.3459
15668 L285.292 -105.731
15669 L280.874 -98.9765
15670 L278.488 -91.3031
15671 z
15672 " id="C3_19a_3ef0becdef"/>
15673 <path d="
15674 M267.442 -71.0132
15675 L271.51 -71.366
15676 L273.68 -74.4914
15677 L269.555 -72.851
15678 L267.442 -71.0132
15679 z
15680 " id="C3_19b_94d206d883"/>
15681 <path d="
15682 M177.408 -141.417
15683 L181.338 -147.409
15684 L183.579 -137.934
15685 L179.668 -132.394
15686 L177.408 -141.417
15687 z
15688 " id="C3_19c_2d4d07d44b"/>
15689 <path d="
15690 M119.057 -98.2461
15691 L122.613 -107.966
15692 L124.954 -110.473
15693 L121.394 -100.526
15694 L119.057 -98.2461
15695 z
15696 " id="C3_19d_123d4e5927"/>
15697 <path d="
15698 M101.516 -73.0356
15699 L105.214 -75.9202
15700 L107.519 -79.9393
15701 L103.861 -75.8594
15702 L101.516 -73.0356
15703 z
15704 " id="C3_19e_c8048077d9"/>
15705 <path d="
15706 M252.011 -88.9986
15707 L255.786 -82.0837
15708 L257.75 -79.5847
15709 L253.941 -85.0589
15710 L252.011 -88.9986
15711 z
15712 " id="C3_19f_f1dd5087ab"/>
15713 <path d="
15714 M187.52 -142.753
15715 L191.485 -146.697
15716 L193.648 -136.27
15717 L189.707 -132.671
15718 L187.52 -142.753
15719 z
15720 " id="C3_1a0_6d09803a9d"/>
15721 <path d="
15722 M201.577 -140.832
15723 L205.553 -141.653
15724 L207.599 -130.575
15725 L203.652 -129.898
15726 L201.577 -140.832
15727 z
15728 " id="C3_1a1_7b1cefbfbc"/>
15729 <path d="
15730 M281.413 -110.754
15731 L285.829 -117.53
15732 L288.382 -127.991
15733 L283.935 -121.018
15734 L281.413 -110.754
15735 z
15736 " id="C3_1a2_8aa8b54a68"/>
15737 <path d="
15738 M233.059 -119.628
15739 L236.893 -113.252
15740 L238.764 -104.929
15741 L234.936 -110.458
15742 L233.059 -119.628
15743 z
15744 " id="C3_1a3_532f5c41bc"/>
15745 <path d="
15746 M261.446 -73.1728
15747 L265.36 -70.0119
15748 L267.442 -71.0132
15749 L263.479 -72.8053
15750 L261.446 -73.1728
15751 z
15752 " id="C3_1a4_8268864b56"/>
15753 <path d="
15754 M83.2507 -87.0351
15755 L87.3862 -79.5738
15756 L89.9201 -78.5981
15757 L85.8396 -85.2465
15758 L83.2507 -87.0351
15759 z
15760 " id="C3_1a5_3c88a1262c"/>
15761 <path d="
15762 M280.874 -98.9765
15763 L285.292 -105.731
15764 L287.783 -115.015
15765 L283.323 -107.776
15766 L280.874 -98.9765
15767 z
15768 " id="C3_1a6_aae29267be"/>
15769 <path d="
15770 M146.519 -128.985
15771 L150.245 -139.621
15772 L152.643 -135.317
15773 L148.912 -125.184
15774 L146.519 -128.985
15775 z
15776 " id="C3_1a7_dd3b04365a"/>
15777 <path d="
15778 M257.611 -78.3549
15779 L261.446 -73.1728
15780 L263.479 -72.8053
15781 L259.601 -76.5789
15782 L257.611 -78.3549
15783 z
15784 " id="C3_1a8_f7042c10a6"/>
15785 <path d="
15786 M129.676 -113.047
15787 L133.274 -124.196
15788 L135.661 -124.06
15789 L132.052 -113.119
15790 L129.676 -113.047
15791 z
15792 " id="C3_1a9_5e5e308b80"/>
15793 <path d="
15794 M88.8864 -74.9931
15795 L92.8639 -70.8614
15796 L95.3252 -71.307
15797 L91.4089 -74.2845
15798 L88.8864 -74.9931
15799 z
15800 " id="C3_1aa_bb2cf49f69"/>
15801 <path d="
15802 M99.1476 -70.6602
15803 L102.893 -72.2477
15804 L105.214 -75.9202
15805 L101.516 -73.0356
15806 L99.1476 -70.6602
15807 z
15808 " id="C3_1ab_622ec391de"/>
15809 <path d="
15810 M92.8639 -70.8614
15811 L96.7455 -68.9323
15812 L99.1476 -70.6602
15813 L95.3252 -71.307
15814 L92.8639 -70.8614
15815 z
15816 " id="C3_1ac_3515133290"/>
15817 <path d="
15818 M116.732 -95.3632
15819 L120.289 -104.694
15820 L122.613 -107.966
15821 L119.057 -98.2461
15822 L116.732 -95.3632
15823 z
15824 " id="C3_1ad_8527467a6c"/>
15825 <path d="
15826 M265.36 -70.0119
15827 L269.373 -69.0831
15828 L271.51 -71.366
15829 L267.442 -71.0132
15830 L265.36 -70.0119
15831 z
15832 " id="C3_1ae_62d9bc2910"/>
15833 <path d="
15834 M242.62 -106.808
15835 L246.393 -99.0281
15836 L248.282 -93.1735
15837 L244.497 -99.7403
15838 L242.62 -106.808
15839 z
15840 " id="C3_1af_b9f5ee61cb"/>
15841 <path d="
15842 M275.893 -78.5845
15843 L280.198 -83.3585
15844 L282.52 -89.4928
15845 L278.157 -83.7358
15846 L275.893 -78.5845
15847 z
15848 " id="C3_1b0_3bb50be6f5"/>
15849 <path d="
15850 M273.68 -74.4914
15851 L277.925 -78.1866
15852 L280.198 -83.3585
15853 L275.893 -78.5845
15854 L273.68 -74.4914
15855 z
15856 " id="C3_1b1_4886ad130d"/>
15857 <path d="
15858 M278.157 -83.7358
15859 L282.52 -89.4928
15860 L284.895 -96.5964
15861 L280.476 -89.9918
15862 L278.157 -83.7358
15863 z
15864 " id="C3_1b2_368685debe"/>
15865 <path d="
15866 M229.197 -125.439
15867 L233.059 -119.628
15868 L234.936 -110.458
15869 L231.088 -115.595
15870 L229.197 -125.439
15871 z
15872 " id="C3_1b3_67160ecc80"/>
15873 <path d="
15874 M271.51 -71.366
15875 L275.697 -73.9266
15876 L277.925 -78.1866
15877 L273.68 -74.4914
15878 L271.51 -71.366
15879 z
15880 " id="C3_1b4_5973d9db6c"/>
15881 <path d="
15882 M171.211 -142.936
15883 L175.118 -150.045
15884 L177.408 -141.417
15885 L173.515 -134.716
15886 L171.211 -142.936
15887 z
15888 " id="C3_1b5_90e3b7e45b"/>
15889 <path d="
15890 M205.553 -141.653
15891 L209.528 -141.453
15892 L211.545 -130.325
15893 L207.599 -130.575
15894 L205.553 -141.653
15895 z
15896 " id="C3_1b6_c8a784abf3"/>
15897 <path d="
15898 M138.054 -123.032
15899 L141.714 -134.29
15900 L144.118 -132.063
15901 L140.448 -121.187
15902 L138.054 -123.032
15903 z
15904 " id="C3_1b7_9ce11495f7"/>
15905 <path d="
15906 M114.419 -91.9592
15907 L117.981 -100.736
15908 L120.289 -104.694
15909 L116.732 -95.3632
15910 L114.419 -91.9592
15911 z
15912 " id="C3_1b8_4d31e14fef"/>
15913 <path d="
15914 M248.257 -96.9529
15915 L252.011 -88.9986
15916 L253.941 -85.0589
15917 L250.161 -91.6576
15918 L248.257 -96.9529
15919 z
15920 " id="C3_1b9_7d8360d0fd"/>
15921 <path d="
15922 M84.803 -81.271
15923 L88.8864 -74.9931
15924 L91.4089 -74.2845
15925 L87.3862 -79.5738
15926 L84.803 -81.271
15927 z
15928 " id="C3_1ba_cfdce1ea04"/>
15929 <path d="
15930 M96.7455 -68.9323
15931 L100.546 -69.1519
15932 L102.893 -72.2477
15933 L99.1476 -70.6602
15934 L96.7455 -68.9323
15935 z
15936 " id="C3_1bb_4ab1f84e69"/>
15937 <path d="
15938 M253.832 -85.2571
15939 L257.611 -78.3549
15940 L259.601 -76.5789
15941 L255.786 -82.0837
15942 L253.832 -85.2571
15943 z
15944 " id="C3_1bc_165208e657"/>
15945 <path d="
15946 M152.643 -135.317
15947 L156.425 -145.332
15948 L158.811 -139.852
15949 L155.028 -130.293
15950 L152.643 -135.317
15951 z
15952 " id="C3_1bd_437b808996"/>
15953 <path d="
15954 M280.476 -89.9918
15955 L284.895 -96.5964
15956 L287.324 -104.625
15957 L282.855 -97.3459
15958 L280.476 -89.9918
15959 z
15960 " id="C3_1be_304ab941af"/>
15961 <path d="
15962 M112.115 -88.1499
15963 L115.688 -96.2049
15964 L117.981 -100.736
15965 L114.419 -91.9592
15966 L112.115 -88.1499
15967 z
15968 " id="C3_1bf_d3ae7b0460"/>
15969 <path d="
15970 M269.373 -69.0831
15971 L273.507 -70.4924
15972 L275.697 -73.9266
15973 L271.51 -71.366
15974 L269.373 -69.0831
15975 z
15976 " id="C3_1c0_1085e23c2f"/>
15977 <path d="
15978 M225.307 -130.51
15979 L229.197 -125.439
15980 L231.088 -115.595
15981 L227.218 -120.155
15982 L225.307 -130.51
15983 z
15984 " id="C3_1c1_e768e4027f"/>
15985 <path d="
15986 M283.323 -107.776
15987 L287.783 -115.015
15988 L290.321 -124.999
15989 L285.829 -117.53
15990 L283.323 -107.776
15991 z
15992 " id="C3_1c2_abb306507c"/>
15993 <path d="
15994 M109.817 -84.0838
15995 L113.407 -91.2514
15996 L115.688 -96.2049
15997 L112.115 -88.1499
15998 L109.817 -84.0838
15999 z
16000 " id="C3_1c3_c200bfc9d5"/>
16001 <path d="
16002 M209.528 -141.453
16003 L213.497 -140.224
16004 L215.485 -129.133
16005 L211.545 -130.325
16006 L209.528 -141.453
16007 z
16008 " id="C3_1c4_49ce5e1329"/>
16009 <path d="
16010 M165.006 -142.416
16011 L168.881 -150.584
16012 L171.211 -142.936
16013 L167.346 -135.157
16014 L165.006 -142.416
16015 z
16016 " id="C3_1c5_7f7d5c131d"/>
16017 <path d="
16018 M263.296 -69.6618
16019 L267.262 -67.4941
16020 L269.373 -69.0831
16021 L265.36 -70.0119
16022 L263.296 -69.6618
16023 z
16024 " id="C3_1c6_7510bc14b9"/>
16025 <path d="
16026 M259.425 -74.1261
16027 L263.296 -69.6618
16028 L265.36 -70.0119
16029 L261.446 -73.1728
16030 L259.425 -74.1261
16031 z
16032 " id="C3_1c7_bd4fe705c9"/>
16033 <path d="
16034 M191.485 -146.697
16035 L195.469 -149.666
16036 L197.607 -139.02
16037 L193.648 -136.27
16038 L191.485 -146.697
16039 z
16040 " id="C3_1c8_347c0e01ec"/>
16041 <path d="
16042 M127.309 -112.171
16043 L130.896 -123.397
16044 L133.274 -124.196
16045 L129.676 -113.047
16046 L127.309 -112.171
16047 z
16048 " id="C3_1c9_ed2fcd67ad"/>
16049 <path d="
16050 M158.811 -139.852
16051 L162.643 -149.01
16052 L165.006 -142.416
16053 L161.178 -133.668
16054 L158.811 -139.852
16055 z
16056 " id="C3_1ca_9f779b55b4"/>
16057 <path d="
16058 M107.519 -79.9393
16059 L111.134 -86.0613
16060 L113.407 -91.2514
16061 L109.817 -84.0838
16062 L107.519 -79.9393
16063 z
16064 " id="C3_1cb_d18cbe89a5"/>
16065 <path d="
16066 M238.83 -114.647
16067 L242.62 -106.808
16068 L244.497 -99.7403
16069 L240.704 -106.534
16070 L238.83 -114.647
16071 z
16072 " id="C3_1cc_8586a11baa"/>
16073 <path d="
16074 M90.353 -71.2653
16075 L94.2991 -68.0429
16076 L96.7455 -68.9323
16077 L92.8639 -70.8614
16078 L90.353 -71.2653
16079 z
16080 " id="C3_1cd_23d262afe2"/>
16081 <path d="
16082 M105.214 -75.9202
16083 L108.862 -80.8524
16084 L111.134 -86.0613
16085 L107.519 -79.9393
16086 L105.214 -75.9202
16087 z
16088 " id="C3_1ce_f3fd1dd02d"/>
16089 <path d="
16090 M221.391 -134.715
16091 L225.307 -130.51
16092 L227.218 -120.155
16093 L223.325 -123.995
16094 L221.391 -134.715
16095 z
16096 " id="C3_1cf_e743d85581"/>
16097 <path d="
16098 M213.497 -140.224
16099 L217.453 -137.969
16100 L219.413 -127.011
16101 L215.485 -129.133
16102 L213.497 -140.224
16103 z
16104 " id="C3_1d0_b26e5357c5"/>
16105 <path d="
16106 M181.338 -147.409
16107 L185.299 -152.5
16108 L187.52 -142.753
16109 L183.579 -137.934
16110 L181.338 -147.409
16111 z
16112 " id="C3_1d1_9f259716a3"/>
16113 <path d="
16114 M217.453 -137.969
16115 L221.391 -134.715
16116 L223.325 -123.995
16117 L219.413 -127.011
16118 L217.453 -137.969
16119 z
16120 " id="C3_1d2_1f4495d1b2"/>
16121 <path d="
16122 M86.3103 -76.5388
16123 L90.353 -71.2653
16124 L92.8639 -70.8614
16125 L88.8864 -74.9931
16126 L86.3103 -76.5388
16127 z
16128 " id="C3_1d3_3ed7ec4234"/>
16129 <path d="
16130 M102.893 -72.2477
16131 L106.582 -75.8675
16132 L108.862 -80.8524
16133 L105.214 -75.9202
16134 L102.893 -72.2477
16135 z
16136 " id="C3_1d4_d2c1102728"/>
16137 <path d="
16138 M94.2991 -68.0429
16139 L98.161 -66.8595
16140 L100.546 -69.1519
16141 L96.7455 -68.9323
16142 L94.2991 -68.0429
16143 z
16144 " id="C3_1d5_dea3aa5624"/>
16145 <path d="
16146 M282.855 -97.3459
16147 L287.324 -104.625
16148 L289.803 -113.476
16149 L285.292 -105.731
16150 L282.855 -97.3459
16151 z
16152 " id="C3_1d6_db90a3bdef"/>
16153 <path d="
16154 M80.6101 -89.5237
16155 L84.803 -81.271
16156 L87.3862 -79.5738
16157 L83.2507 -87.0351
16158 L80.6101 -89.5237
16159 z
16160 " id="C3_1d7_e0dfbfad2c"/>
16161 <path d="
16162 M267.262 -67.4941
16163 L271.346 -67.7724
16164 L273.507 -70.4924
16165 L269.373 -69.0831
16166 L267.262 -67.4941
16167 z
16168 " id="C3_1d8_dc4ec16cbd"/>
16169 <path d="
16170 M255.626 -80.6283
16171 L259.425 -74.1261
16172 L261.446 -73.1728
16173 L257.611 -78.3549
16174 L255.626 -80.6283
16175 z
16176 " id="C3_1d9_f16b6eb5fb"/>
16177 <path d="
16178 M250.084 -93.5066
16179 L253.832 -85.2571
16180 L255.786 -82.0837
16181 L252.011 -88.9986
16182 L250.084 -93.5066
16183 z
16184 " id="C3_1da_eb288c3375"/>
16185 <path d="
16186 M244.503 -105.548
16187 L248.257 -96.9529
16188 L250.161 -91.6576
16189 L246.393 -99.0281
16190 L244.503 -105.548
16191 z
16192 " id="C3_1db_3ab95bc17a"/>
16193 <path d="
16194 M100.546 -69.1519
16195 L104.284 -71.3648
16196 L106.582 -75.8675
16197 L102.893 -72.2477
16198 L100.546 -69.1519
16199 z
16200 " id="C3_1dc_796f2a61b1"/>
16201 <path d="
16202 M144.118 -132.063
16203 L147.839 -143.05
16204 L150.245 -139.621
16205 L146.519 -128.985
16206 L144.118 -132.063
16207 z
16208 " id="C3_1dd_dbf580c558"/>
16209 <path d="
16210 M124.954 -110.473
16211 L128.532 -121.647
16212 L130.896 -123.397
16213 L127.309 -112.171
16214 L124.954 -110.473
16215 z
16216 " id="C3_1de_3ac82597f2"/>
16217 <path d="
16218 M277.925 -78.1866
16219 L282.3 -83.852
16220 L284.626 -89.8913
16221 L280.198 -83.3585
16222 L277.925 -78.1866
16223 z
16224 " id="C3_1df_e27473e613"/>
16225 <path d="
16226 M135.661 -124.06
16227 L139.311 -135.574
16228 L141.714 -134.29
16229 L138.054 -123.032
16230 L135.661 -124.06
16231 z
16232 " id="C3_1e0_54b85010d4"/>
16233 <path d="
16234 M275.697 -73.9266
16235 L280.017 -78.6477
16236 L282.3 -83.852
16237 L277.925 -78.1866
16238 L275.697 -73.9266
16239 z
16240 " id="C3_1e1_4417f6d6fe"/>
16241 <path d="
16242 M285.829 -117.53
16243 L290.321 -124.999
16244 L292.893 -135.417
16245 L288.382 -127.991
16246 L285.829 -117.53
16247 z
16248 " id="C3_1e2_487c4d6170"/>
16249 <path d="
16250 M261.241 -69.7674
16251 L265.167 -66.4365
16252 L267.262 -67.4941
16253 L263.296 -69.6618
16254 L261.241 -69.7674
16255 z
16256 " id="C3_1e3_f7f45f880c"/>
16257 <path d="
16258 M235.013 -122.226
16259 L238.83 -114.647
16260 L240.704 -106.534
16261 L236.893 -113.252
16262 L235.013 -122.226
16263 z
16264 " id="C3_1e4_dfbf2f5b51"/>
16265 <path d="
16266 M82.1639 -83.7702
16267 L86.3103 -76.5388
16268 L88.8864 -74.9931
16269 L84.803 -81.271
16270 L82.1639 -83.7702
16271 z
16272 " id="C3_1e5_62f9ebad5f"/>
16273 <path d="
16274 M98.161 -66.8595
16275 L101.955 -67.606
16276 L104.284 -71.3648
16277 L100.546 -69.1519
16278 L98.161 -66.8595
16279 z
16280 " id="C3_1e6_ca2d2d0b12"/>
16281 <path d="
16282 M280.198 -83.3585
16283 L284.626 -89.8913
16284 L287 -96.7779
16285 L282.52 -89.4928
16286 L280.198 -83.3585
16287 z
16288 " id="C3_1e7_29e5589e6d"/>
16289 <path d="
16290 M273.507 -70.4924
16291 L277.773 -74.2306
16292 L280.017 -78.6477
16293 L275.697 -73.9266
16294 L273.507 -70.4924
16295 z
16296 " id="C3_1e8_866fb42ebc"/>
16297 <path d="
16298 M285.292 -105.731
16299 L289.803 -113.476
16300 L292.326 -122.99
16301 L287.783 -115.015
16302 L285.292 -105.731
16303 z
16304 " id="C3_1e9_0ecf37d39e"/>
16305 <path d="
16306 M195.469 -149.666
16307 L199.466 -151.606
16308 L201.577 -140.832
16309 L197.607 -139.02
16310 L195.469 -149.666
16311 z
16312 " id="C3_1ea_cdc5cedb8c"/>
16313 <path d="
16314 M265.167 -66.4365
16315 L269.207 -65.638
16316 L271.346 -67.7724
16317 L267.262 -67.4941
16318 L265.167 -66.4365
16319 z
16320 " id="C3_1eb_4391c284f2"/>
16321 <path d="
16322 M257.406 -75.4386
16323 L261.241 -69.7674
16324 L263.296 -69.6618
16325 L259.425 -74.1261
16326 L257.406 -75.4386
16327 z
16328 " id="C3_1ec_ca8976a403"/>
16329 <path d="
16330 M91.7977 -68.1634
16331 L95.7263 -65.5822
16332 L98.161 -66.8595
16333 L94.2991 -68.0429
16334 L91.7977 -68.1634
16335 z
16336 " id="C3_1ed_09ee445e65"/>
16337 <path d="
16338 M87.7832 -72.6503
16339 L91.7977 -68.1634
16340 L94.2991 -68.0429
16341 L90.353 -71.2653
16342 L87.7832 -72.6503
16343 z
16344 " id="C3_1ee_6e994f65b3"/>
16345 <path d="
16346 M251.874 -88.8158
16347 L255.626 -80.6283
16348 L257.611 -78.3549
16349 L253.832 -85.2571
16350 L251.874 -88.8158
16351 z
16352 " id="C3_1ef_5422a130e2"/>
16353 <path d="
16354 M282.52 -89.4928
16355 L287 -96.7779
16356 L289.423 -104.481
16357 L284.895 -96.5964
16358 L282.52 -89.4928
16359 z
16360 " id="C3_1f0_c7d34c017b"/>
16361 <path d="
16362 M175.118 -150.045
16363 L179.064 -156.226
16364 L181.338 -147.409
16365 L177.408 -141.417
16366 L175.118 -150.045
16367 z
16368 " id="C3_1f1_f3cedcdd73"/>
16369 <path d="
16370 M122.613 -107.966
16371 L126.184 -118.954
16372 L128.532 -121.647
16373 L124.954 -110.473
16374 L122.613 -107.966
16375 z
16376 " id="C3_1f2_e9a7ab3744"/>
16377 <path d="
16378 M271.346 -67.7724
16379 L275.563 -70.5255
16380 L277.773 -74.2306
16381 L273.507 -70.4924
16382 L271.346 -67.7724
16383 z
16384 " id="C3_1f3_eba899737c"/>
16385 <path d="
16386 M95.7263 -65.5822
16387 L99.5823 -64.8423
16388 L101.955 -67.606
16389 L98.161 -66.8595
16390 L95.7263 -65.5822
16391 z
16392 " id="C3_1f4_c63916be83"/>
16393 <path d="
16394 M246.345 -102.682
16395 L250.084 -93.5066
16396 L252.011 -88.9986
16397 L248.257 -96.9529
16398 L246.345 -102.682
16399 z
16400 " id="C3_1f5_3f6a9e77a9"/>
16401 <path d="
16402 M240.734 -114.385
16403 L244.503 -105.548
16404 L246.393 -99.0281
16405 L242.62 -106.808
16406 L240.734 -114.385
16407 z
16408 " id="C3_1f6_52815f6d2e"/>
16409 <path d="
16410 M150.245 -139.621
16411 L154.027 -149.912
16412 L156.425 -145.332
16413 L152.643 -135.317
16414 L150.245 -139.621
16415 z
16416 " id="C3_1f7_83c7e2e3a9"/>
16417 <path d="
16418 M83.673 -79.0139
16419 L87.7832 -72.6503
16420 L90.353 -71.2653
16421 L86.3103 -76.5388
16422 L83.673 -79.0139
16423 z
16424 " id="C3_1f8_1d27fdc18b"/>
16425 <path d="
16426 M231.164 -129.274
16427 L235.013 -122.226
16428 L236.893 -113.252
16429 L233.059 -119.628
16430 L231.164 -129.274
16431 z
16432 " id="C3_1f9_4797af1c05"/>
16433 <path d="
16434 M185.299 -152.5
16435 L189.285 -156.568
16436 L191.485 -146.697
16437 L187.52 -142.753
16438 L185.299 -152.5
16439 z
16440 " id="C3_1fa_fa605ae814"/>
16441 <path d="
16442 M120.289 -104.694
16443 L123.856 -115.356
16444 L126.184 -118.954
16445 L122.613 -107.966
16446 L120.289 -104.694
16447 z
16448 " id="C3_1fb_8c1f96a389"/>
16449 <path d="
16450 M284.895 -96.5964
16451 L289.423 -104.481
16452 L291.891 -112.923
16453 L287.324 -104.625
16454 L284.895 -96.5964
16455 z
16456 " id="C3_1fc_24625175f4"/>
16457 <path d="
16458 M269.207 -65.638
16459 L273.379 -67.4379
16460 L275.563 -70.5255
16461 L271.346 -67.7724
16462 L269.207 -65.638
16463 z
16464 " id="C3_1fd_27774c7646"/>
16465 <path d="
16466 M253.635 -83.1439
16467 L257.406 -75.4386
16468 L259.425 -74.1261
16469 L255.626 -80.6283
16470 L253.635 -83.1439
16471 z
16472 " id="C3_1fe_39ff10d85f"/>
16473 <path d="
16474 M104.284 -71.3648
16475 L107.979 -75.3276
16476 L110.236 -81.2259
16477 L106.582 -75.8675
16478 L104.284 -71.3648
16479 z
16480 " id="C3_1ff_bb31d830f3"/>
16481 <path d="
16482 M106.582 -75.8675
16483 L110.236 -81.2259
16484 L112.484 -87.488
16485 L108.862 -80.8524
16486 L106.582 -75.8675
16487 z
16488 " id="C3_200_44274d6e4a"/>
16489 <path d="
16490 M259.186 -70.1342
16491 L263.079 -65.7441
16492 L265.167 -66.4365
16493 L261.241 -69.7674
16494 L259.186 -70.1342
16495 z
16496 " id="C3_201_abcf24c2ba"/>
16497 <path d="
16498 M263.079 -65.7441
16499 L267.081 -63.9532
16500 L269.207 -65.638
16501 L265.167 -66.4365
16502 L263.079 -65.7441
16503 z
16504 " id="C3_202_b77b5dd682"/>
16505 <path d="
16506 M133.274 -124.196
16507 L136.914 -135.861
16508 L139.311 -135.574
16509 L135.661 -124.06
16510 L133.274 -124.196
16511 z
16512 " id="C3_203_6684eebc0b"/>
16513 <path d="
16514 M77.9129 -92.7571
16515 L82.1639 -83.7702
16516 L84.803 -81.271
16517 L80.6101 -89.5237
16518 L77.9129 -92.7571
16519 z
16520 " id="C3_204_e7f338a171"/>
16521 <path d="
16522 M199.466 -151.606
16523 L203.469 -152.491
16524 L205.553 -141.653
16525 L201.577 -140.832
16526 L199.466 -151.606
16527 z
16528 " id="C3_205_13666595ec"/>
16529 <path d="
16530 M287.783 -115.015
16531 L292.326 -122.99
16532 L294.883 -132.944
16533 L290.321 -124.999
16534 L287.783 -115.015
16535 z
16536 " id="C3_206_1ea40d72bb"/>
16537 <path d="
16538 M101.955 -67.606
16539 L105.698 -70.0877
16540 L107.979 -75.3276
16541 L104.284 -71.3648
16542 L101.955 -67.606
16543 z
16544 " id="C3_207_ab6bb1a35c"/>
16545 <path d="
16546 M108.862 -80.8524
16547 L112.484 -87.488
16548 L114.732 -93.8303
16549 L111.134 -86.0613
16550 L108.862 -80.8524
16551 z
16552 " id="C3_208_dafa846fe0"/>
16553 <path d="
16554 M117.981 -100.736
16555 L121.547 -110.921
16556 L123.856 -115.356
16557 L120.289 -104.694
16558 L117.981 -100.736
16559 z
16560 " id="C3_209_7e7a2146db"/>
16561 <path d="
16562 M168.881 -150.584
16563 L172.801 -157.829
16564 L175.118 -150.045
16565 L171.211 -142.936
16566 L168.881 -150.584
16567 z
16568 " id="C3_20a_8fd747ddeb"/>
16569 <path d="
16570 M111.134 -86.0613
16571 L114.732 -93.8303
16572 L116.988 -99.9934
16573 L113.407 -91.2514
16574 L111.134 -86.0613
16575 z
16576 " id="C3_20b_09998717c6"/>
16577 <path d="
16578 M115.688 -96.2049
16579 L119.258 -105.752
16580 L121.547 -110.921
16581 L117.981 -100.736
16582 L115.688 -96.2049
16583 z
16584 " id="C3_20c_355cd0f8f8"/>
16585 <path d="
16586 M113.407 -91.2514
16587 L116.988 -99.9934
16588 L119.258 -105.752
16589 L115.688 -96.2049
16590 L113.407 -91.2514
16591 z
16592 " id="C3_20d_3e9ad3aca2"/>
16593 <path d="
16594 M156.425 -145.332
16595 L160.263 -154.681
16596 L162.643 -149.01
16597 L158.811 -139.852
16598 L156.425 -145.332
16599 z
16600 " id="C3_20e_1555944077"/>
16601 <path d="
16602 M99.5823 -64.8423
16603 L103.382 -65.7964
16604 L105.698 -70.0877
16605 L101.955 -67.606
16606 L99.5823 -64.8423
16607 z
16608 " id="C3_20f_178607cef8"/>
16609 <path d="
16610 M141.714 -134.29
16611 L145.429 -145.501
16612 L147.839 -143.05
16613 L144.118 -132.063
16614 L141.714 -134.29
16615 z
16616 " id="C3_210_3d95405017"/>
16617 <path d="
16618 M89.2311 -69.4342
16619 L93.23 -65.5027
16620 L95.7263 -65.5822
16621 L91.7977 -68.1634
16622 L89.2311 -69.4342
16623 z
16624 " id="C3_211_c566097a97"/>
16625 <path d="
16626 M162.643 -149.01
16627 L166.527 -157.315
16628 L168.881 -150.584
16629 L165.006 -142.416
16630 L162.643 -149.01
16631 z
16632 " id="C3_212_549f5a435d"/>
16633 <path d="
16634 M93.23 -65.5027
16635 L97.1536 -63.2995
16636 L99.5823 -64.8423
16637 L95.7263 -65.5822
16638 L93.23 -65.5027
16639 z
16640 " id="C3_213_ada87ffc52"/>
16641 <path d="
16642 M248.144 -98.2625
16643 L251.874 -88.8158
16644 L253.832 -85.2571
16645 L250.084 -93.5066
16646 L248.144 -98.2625
16647 z
16648 " id="C3_214_bf08ed5db3"/>
16649 <path d="
16650 M227.282 -135.578
16651 L231.164 -129.274
16652 L233.059 -119.628
16653 L229.197 -125.439
16654 L227.282 -135.578
16655 z
16656 " id="C3_215_03c0ea614d"/>
16657 <path d="
16658 M255.378 -76.8901
16659 L259.186 -70.1342
16660 L261.241 -69.7674
16661 L257.406 -75.4386
16662 L255.378 -76.8901
16663 z
16664 " id="C3_216_509935c4c8"/>
16665 <path d="
16666 M267.081 -63.9532
16667 L271.214 -64.8628
16668 L273.379 -67.4379
16669 L269.207 -65.638
16670 L267.081 -63.9532
16671 z
16672 " id="C3_217_d03fafe32f"/>
16673 <path d="
16674 M287.324 -104.625
16675 L291.891 -112.923
16676 L294.4 -121.971
16677 L289.803 -113.476
16678 L287.324 -104.625
16679 z
16680 " id="C3_218_dde945c045"/>
16681 <path d="
16682 M79.463 -87.1252
16683 L83.673 -79.0139
16684 L86.3103 -76.5388
16685 L82.1639 -83.7702
16686 L79.463 -87.1252
16687 z
16688 " id="C3_219_e7e7b64d73"/>
16689 <path d="
16690 M85.146 -75.1148
16691 L89.2311 -69.4342
16692 L91.7977 -68.1634
16693 L87.7832 -72.6503
16694 L85.146 -75.1148
16695 z
16696 " id="C3_21a_0c9df13801"/>
16697 <path d="
16698 M203.469 -152.491
16699 L207.472 -152.316
16700 L209.528 -141.453
16701 L205.553 -141.653
16702 L203.469 -152.491
16703 z
16704 " id="C3_21b_fde9c69711"/>
16705 <path d="
16706 M236.937 -123.085
16707 L240.734 -114.385
16708 L242.62 -106.808
16709 L238.83 -114.647
16710 L236.937 -123.085
16711 z
16712 " id="C3_21c_d968413759"/>
16713 <path d="
16714 M97.1536 -63.2995
16715 L101.016 -62.7233
16716 L103.382 -65.7964
16717 L99.5823 -64.8423
16718 L97.1536 -63.2995
16719 z
16720 " id="C3_21d_301a4c2d3d"/>
16721 <path d="
16722 M260.99 -65.2558
16723 L264.963 -62.5825
16724 L267.081 -63.9532
16725 L263.079 -65.7441
16726 L260.99 -65.2558
16727 z
16728 " id="C3_21e_90aa8bd95d"/>
16729 <path d="
16730 M242.596 -112.337
16731 L246.345 -102.682
16732 L248.257 -96.9529
16733 L244.503 -105.548
16734 L242.596 -112.337
16735 z
16736 " id="C3_21f_cd328c0a3d"/>
16737 <path d="
16738 M130.896 -123.397
16739 L134.527 -135.12
16740 L136.914 -135.861
16741 L133.274 -124.196
16742 L130.896 -123.397
16743 z
16744 " id="C3_220_ecf449f3ac"/>
16745 <path d="
16746 M223.367 -140.985
16747 L227.282 -135.578
16748 L229.197 -125.439
16749 L225.307 -130.51
16750 L223.367 -140.985
16751 z
16752 " id="C3_221_feda601b04"/>
16753 <path d="
16754 M249.902 -92.4788
16755 L253.635 -83.1439
16756 L255.626 -80.6283
16757 L251.874 -88.8158
16758 L249.902 -92.4788
16759 z
16760 " id="C3_222_89ea548893"/>
16761 <path d="
16762 M290.321 -124.999
16763 L294.883 -132.944
16764 L297.458 -143.062
16765 L292.893 -135.417
16766 L290.321 -124.999
16767 z
16768 " id="C3_223_e5fc047234"/>
16769 <path d="
16770 M257.123 -70.5776
16771 L260.99 -65.2558
16772 L263.079 -65.7441
16773 L259.186 -70.1342
16774 L257.123 -70.5776
16775 z
16776 " id="C3_224_8180df77d2"/>
16777 <path d="
16778 M189.285 -156.568
16779 L193.292 -159.56
16780 L195.469 -149.666
16781 L191.485 -146.697
16782 L189.285 -156.568
16783 z
16784 " id="C3_225_e12fd7f5c6"/>
16785 <path d="
16786 M179.064 -156.226
16787 L183.043 -161.317
16788 L185.299 -152.5
16789 L181.338 -147.409
16790 L179.064 -156.226
16791 z
16792 " id="C3_226_36ca5b2bfc"/>
16793 <path d="
16794 M207.472 -152.316
16795 L211.47 -151.075
16796 L213.497 -140.224
16797 L209.528 -141.453
16798 L207.472 -152.316
16799 z
16800 " id="C3_227_dd7bdc0266"/>
16801 <path d="
16802 M264.963 -62.5825
16803 L269.063 -62.6921
16804 L271.214 -64.8628
16805 L267.081 -63.9532
16806 L264.963 -62.5825
16807 z
16808 " id="C3_228_8cf3895d83"/>
16809 <path d="
16810 M219.423 -145.398
16811 L223.367 -140.985
16812 L225.307 -130.51
16813 L221.391 -134.715
16814 L219.423 -145.398
16815 z
16816 " id="C3_229_d7a9446cdc"/>
16817 <path d="
16818 M80.968 -82.4761
16819 L85.146 -75.1148
16820 L87.7832 -72.6503
16821 L83.673 -79.0139
16822 L80.968 -82.4761
16823 z
16824 " id="C3_22a_c12179d234"/>
16825 <path d="
16826 M289.803 -113.476
16827 L294.4 -121.971
16828 L296.94 -131.439
16829 L292.326 -122.99
16830 L289.803 -113.476
16831 z
16832 " id="C3_22b_d361cb181d"/>
16833 <path d="
16834 M103.382 -65.7964
16835 L107.144 -68.2277
16836 L109.412 -74.0389
16837 L105.698 -70.0877
16838 L103.382 -65.7964
16839 z
16840 " id="C3_22c_b53b5564ad"/>
16841 <path d="
16842 M105.698 -70.0877
16843 L109.412 -74.0389
16844 L111.652 -80.7247
16845 L107.979 -75.3276
16846 L105.698 -70.0877
16847 z
16848 " id="C3_22d_037bd821b6"/>
16849 <path d="
16850 M251.628 -85.6593
16851 L255.378 -76.8901
16852 L257.406 -75.4386
16853 L253.635 -83.1439
16854 L251.628 -85.6593
16855 z
16856 " id="C3_22e_b8885e09c2"/>
16857 <path d="
16858 M211.47 -151.075
16859 L215.456 -148.768
16860 L217.453 -137.969
16861 L213.497 -140.224
16862 L211.47 -151.075
16863 z
16864 " id="C3_22f_e4f2fe028c"/>
16865 <path d="
16866 M215.456 -148.768
16867 L219.423 -145.398
16868 L221.391 -134.715
16869 L217.453 -137.969
16870 L215.456 -148.768
16871 z
16872 " id="C3_230_a5e2222686"/>
16873 <path d="
16874 M147.839 -143.05
16875 L151.621 -153.469
16876 L154.027 -149.912
16877 L150.245 -139.621
16878 L147.839 -143.05
16879 z
16880 " id="C3_231_b094b35a83"/>
16881 <path d="
16882 M90.6611 -66.7625
16883 L94.6557 -63.1638
16884 L97.1536 -63.2995
16885 L93.23 -65.5027
16886 L90.6611 -66.7625
16887 z
16888 " id="C3_232_7ba99f23fb"/>
16889 <path d="
16890 M101.016 -62.7233
16891 L104.833 -63.6043
16892 L107.144 -68.2277
16893 L103.382 -65.7964
16894 L101.016 -62.7233
16895 z
16896 " id="C3_233_a7c70c27bc"/>
16897 <path d="
16898 M107.979 -75.3276
16899 L111.652 -80.7247
16900 L113.878 -87.956
16901 L110.236 -81.2259
16902 L107.979 -75.3276
16903 z
16904 " id="C3_234_7e4229c4db"/>
16905 <path d="
16906 M94.6557 -63.1638
16907 L98.5853 -61.1003
16908 L101.016 -62.7233
16909 L97.1536 -63.2995
16910 L94.6557 -63.1638
16911 z
16912 " id="C3_235_debfcdd24c"/>
16913 <path d="
16914 M128.532 -121.647
16915 L132.152 -133.338
16916 L134.527 -135.12
16917 L130.896 -123.397
16918 L128.532 -121.647
16919 z
16920 " id="C3_236_67d60a235d"/>
16921 <path d="
16922 M139.311 -135.574
16923 L143.02 -146.919
16924 L145.429 -145.501
16925 L141.714 -134.29
16926 L139.311 -135.574
16927 z
16928 " id="C3_237_cc4cac0ae2"/>
16929 <path d="
16930 M86.5901 -71.9529
16931 L90.6611 -66.7625
16932 L93.23 -65.5027
16933 L89.2311 -69.4342
16934 L86.5901 -71.9529
16935 z
16936 " id="C3_238_65315e13ad"/>
16937 <path d="
16938 M253.334 -78.2762
16939 L257.123 -70.5776
16940 L259.186 -70.1342
16941 L255.378 -76.8901
16942 L253.334 -78.2762
16943 z
16944 " id="C3_239_db773c9e46"/>
16945 <path d="
16946 M258.894 -64.8231
16947 L262.844 -61.3989
16948 L264.963 -62.5825
16949 L260.99 -65.2558
16950 L258.894 -64.8231
16951 z
16952 " id="C3_23a_4afe131652"/>
16953 <path d="
16954 M75.1551 -96.7525
16955 L79.463 -87.1252
16956 L82.1639 -83.7702
16957 L77.9129 -92.7571
16958 L75.1551 -96.7525
16959 z
16960 " id="C3_23b_7da37b5007"/>
16961 <path d="
16962 M244.413 -108.494
16963 L248.144 -98.2625
16964 L250.084 -93.5066
16965 L246.345 -102.682
16966 L244.413 -108.494
16967 z
16968 " id="C3_23c_0b6740e067"/>
16969 <path d="
16970 M233.105 -131.317
16971 L236.937 -123.085
16972 L238.83 -114.647
16973 L235.013 -122.226
16974 L233.105 -131.317
16975 z
16976 " id="C3_23d_c7b2ee759e"/>
16977 <path d="
16978 M110.236 -81.2259
16979 L113.878 -87.956
16980 L116.102 -95.4072
16981 L112.484 -87.488
16982 L110.236 -81.2259
16983 z
16984 " id="C3_23e_b22471036d"/>
16985 <path d="
16986 M262.844 -61.3989
16987 L266.918 -60.8217
16988 L269.063 -62.6921
16989 L264.963 -62.5825
16990 L262.844 -61.3989
16991 z
16992 " id="C3_23f_6653ce9ae0"/>
16993 <path d="
16994 M172.801 -157.829
16995 L176.761 -163.908
16996 L179.064 -156.226
16997 L175.118 -150.045
16998 L172.801 -157.829
16999 z
17000 " id="C3_240_a21844247e"/>
17001 <path d="
17002 M98.5853 -61.1003
17003 L102.464 -60.448
17004 L104.833 -63.6043
17005 L101.016 -62.7233
17006 L98.5853 -61.1003
17007 z
17008 " id="C3_241_5266e6a11e"/>
17009 <path d="
17010 M255.044 -70.9307
17011 L258.894 -64.8231
17012 L260.99 -65.2558
17013 L257.123 -70.5776
17014 L255.044 -70.9307
17015 z
17016 " id="C3_242_0bca7b70da"/>
17017 <path d="
17018 M238.822 -122.036
17019 L242.596 -112.337
17020 L244.503 -105.548
17021 L240.734 -114.385
17022 L238.822 -122.036
17023 z
17024 " id="C3_243_43f68e1e67"/>
17025 <path d="
17026 M193.292 -159.56
17027 L197.312 -161.47
17028 L199.466 -151.606
17029 L195.469 -149.666
17030 L193.292 -159.56
17031 z
17032 " id="C3_244_69aad94ecb"/>
17033 <path d="
17034 M112.484 -87.488
17035 L116.102 -95.4072
17036 L118.335 -102.773
17037 L114.732 -93.8303
17038 L112.484 -87.488
17039 z
17040 " id="C3_245_ff23be62f0"/>
17041 <path d="
17042 M292.326 -122.99
17043 L296.94 -131.439
17044 L299.5 -141.092
17045 L294.883 -132.944
17046 L292.326 -122.99
17047 z
17048 " id="C3_246_e83695a79d"/>
17049 <path d="
17050 M154.027 -149.912
17051 L157.869 -159.263
17052 L160.263 -154.681
17053 L156.425 -145.332
17054 L154.027 -149.912
17055 z
17056 " id="C3_247_6dc09038c4"/>
17057 <path d="
17058 M126.184 -118.954
17059 L129.795 -130.52
17060 L132.152 -133.338
17061 L128.532 -121.647
17062 L126.184 -118.954
17063 z
17064 " id="C3_248_85ed1a2294"/>
17065 <path d="
17066 M82.4345 -78.714
17067 L86.5901 -71.9529
17068 L89.2311 -69.4342
17069 L85.146 -75.1148
17070 L82.4345 -78.714
17071 z
17072 " id="C3_249_ca42a71a6d"/>
17073 <path d="
17074 M246.182 -102.964
17075 L249.902 -92.4788
17076 L251.874 -88.8158
17077 L248.144 -98.2625
17078 L246.182 -102.964
17079 z
17080 " id="C3_24a_ff18f56a31"/>
17081 <path d="
17082 M76.6958 -91.355
17083 L80.968 -82.4761
17084 L83.673 -79.0139
17085 L79.463 -87.1252
17086 L76.6958 -91.355
17087 z
17088 " id="C3_24b_e83567b842"/>
17089 <path d="
17090 M114.732 -93.8303
17091 L118.335 -102.773
17092 L120.583 -109.785
17093 L116.988 -99.9934
17094 L114.732 -93.8303
17095 z
17096 " id="C3_24c_f7b06220cc"/>
17097 <path d="
17098 M166.527 -157.315
17099 L170.459 -164.416
17100 L172.801 -157.829
17101 L168.881 -150.584
17102 L166.527 -157.315
17103 z
17104 " id="C3_24d_8804d04267"/>
17105 <path d="
17106 M160.263 -154.681
17107 L164.156 -162.884
17108 L166.527 -157.315
17109 L162.643 -149.01
17110 L160.263 -154.681
17111 z
17112 " id="C3_24e_55ef1f2945"/>
17113 <path d="
17114 M104.833 -63.6043
17115 L108.621 -65.7181
17116 L110.885 -71.8649
17117 L107.144 -68.2277
17118 L104.833 -63.6043
17119 z
17120 " id="C3_24f_da8c60e14d"/>
17121 <path d="
17122 M183.043 -161.317
17123 L187.048 -165.247
17124 L189.285 -156.568
17125 L185.299 -152.5
17126 L183.043 -161.317
17127 z
17128 " id="C3_250_f4d5c74f26"/>
17129 <path d="
17130 M123.856 -115.356
17131 L127.458 -126.689
17132 L129.795 -130.52
17133 L126.184 -118.954
17134 L123.856 -115.356
17135 z
17136 " id="C3_251_a9ada3ec2c"/>
17137 <path d="
17138 M256.784 -64.3167
17139 L260.72 -60.2898
17140 L262.844 -61.3989
17141 L258.894 -64.8231
17142 L256.784 -64.3167
17143 z
17144 " id="C3_252_ed423bf3df"/>
17145 <path d="
17146 M229.235 -138.812
17147 L233.105 -131.317
17148 L235.013 -122.226
17149 L231.164 -129.274
17150 L229.235 -138.812
17151 z
17152 " id="C3_253_2b2b6240ee"/>
17153 <path d="
17154 M247.906 -95.9868
17155 L251.628 -85.6593
17156 L253.635 -83.1439
17157 L249.902 -92.4788
17158 L247.906 -95.9868
17159 z
17160 " id="C3_254_b4d2a48995"/>
17161 <path d="
17162 M107.144 -68.2277
17163 L110.885 -71.8649
17164 L113.114 -79.141
17165 L109.412 -74.0389
17166 L107.144 -68.2277
17167 z
17168 " id="C3_255_57d5718037"/>
17169 <path d="
17170 M260.72 -60.2898
17171 L264.776 -59.158
17172 L266.918 -60.8217
17173 L262.844 -61.3989
17174 L260.72 -60.2898
17175 z
17176 " id="C3_256_4fe3f327eb"/>
17177 <path d="
17178 M116.988 -99.9934
17179 L120.583 -109.785
17180 L122.851 -116.216
17181 L119.258 -105.752
17182 L116.988 -99.9934
17183 z
17184 " id="C3_257_917355db85"/>
17185 <path d="
17186 M92.0775 -64.5674
17187 L96.0774 -61.1061
17188 L98.5853 -61.1003
17189 L94.6557 -63.1638
17190 L92.0775 -64.5674
17191 z
17192 " id="C3_258_e933b43f4e"/>
17193 <path d="
17194 M102.464 -60.448
17195 L106.306 -61.0276
17196 L108.621 -65.7181
17197 L104.833 -63.6043
17198 L102.464 -60.448
17199 z
17200 " id="C3_259_c7bfac1178"/>
17201 <path d="
17202 M121.547 -110.921
17203 L125.143 -121.893
17204 L127.458 -126.689
17205 L123.856 -115.356
17206 L121.547 -110.921
17207 z
17208 " id="C3_25a_388198ab63"/>
17209 <path d="
17210 M119.258 -105.752
17211 L122.851 -116.216
17212 L125.143 -121.893
17213 L121.547 -110.921
17214 L119.258 -105.752
17215 z
17216 " id="C3_25b_c761d16ba1"/>
17217 <path d="
17218 M96.0774 -61.1061
17219 L100.022 -58.985
17220 L102.464 -60.448
17221 L98.5853 -61.1003
17222 L96.0774 -61.1061
17223 z
17224 " id="C3_25c_590c306f73"/>
17225 <path d="
17226 M249.596 -87.9555
17227 L253.334 -78.2762
17228 L255.378 -76.8901
17229 L251.628 -85.6593
17230 L249.596 -87.9555
17231 z
17232 " id="C3_25d_e50f87a99f"/>
17233 <path d="
17234 M136.914 -135.861
17235 L140.615 -147.277
17236 L143.02 -146.919
17237 L139.311 -135.574
17238 L136.914 -135.861
17239 z
17240 " id="C3_25e_51b0af95a0"/>
17241 <path d="
17242 M88.0106 -69.4485
17243 L92.0775 -64.5674
17244 L94.6557 -63.1638
17245 L90.6611 -66.7625
17246 L88.0106 -69.4485
17247 z
17248 " id="C3_25f_24dd607b6d"/>
17249 <path d="
17250 M251.268 -79.4159
17251 L255.044 -70.9307
17252 L257.123 -70.5776
17253 L253.334 -78.2762
17254 L251.268 -79.4159
17255 z
17256 " id="C3_260_7beb822682"/>
17257 <path d="
17258 M109.412 -74.0389
17259 L113.114 -79.141
17260 L115.324 -87.1882
17261 L111.652 -80.7247
17262 L109.412 -74.0389
17263 z
17264 " id="C3_261_f99a9c8bfc"/>
17265 <path d="
17266 M197.312 -161.47
17267 L201.339 -162.32
17268 L203.469 -152.491
17269 L199.466 -151.606
17270 L197.312 -161.47
17271 z
17272 " id="C3_262_e87ad01f79"/>
17273 <path d="
17274 M145.429 -145.501
17275 L149.209 -155.948
17276 L151.621 -153.469
17277 L147.839 -143.05
17278 L145.429 -145.501
17279 z
17280 " id="C3_263_fb0e6f9393"/>
17281 <path d="
17282 M252.945 -71.0505
17283 L256.784 -64.3167
17284 L258.894 -64.8231
17285 L255.044 -70.9307
17286 L252.945 -71.0505
17287 z
17288 " id="C3_264_714964224f"/>
17289 <path d="
17290 M78.1905 -86.9399
17291 L82.4345 -78.714
17292 L85.146 -75.1148
17293 L80.968 -82.4761
17294 L78.1905 -86.9399
17295 z
17296 " id="C3_265_70b70c3821"/>
17297 <path d="
17298 M240.662 -119.019
17299 L244.413 -108.494
17300 L246.345 -102.682
17301 L242.596 -112.337
17302 L240.662 -119.019
17303 z
17304 " id="C3_266_10d9d4bffd"/>
17305 <path d="
17306 M294.883 -132.944
17307 L299.5 -141.092
17308 L302.063 -150.645
17309 L297.458 -143.062
17310 L294.883 -132.944
17311 z
17312 " id="C3_267_c186f3356b"/>
17313 <path d="
17314 M100.022 -58.985
17315 L103.924 -58.0695
17316 L106.306 -61.0276
17317 L102.464 -60.448
17318 L100.022 -58.985
17319 z
17320 " id="C3_268_46c832da2c"/>
17321 <path d="
17322 M83.8679 -75.7629
17323 L88.0106 -69.4485
17324 L90.6611 -66.7625
17325 L86.5901 -71.9529
17326 L83.8679 -75.7629
17327 z
17328 " id="C3_269_8d958a4ed8"/>
17329 <path d="
17330 M235.012 -131.373
17331 L238.822 -122.036
17332 L240.734 -114.385
17333 L236.937 -123.085
17334 L235.012 -131.373
17335 z
17336 " id="C3_26a_9e07988cb1"/>
17337 <path d="
17338 M225.326 -145.379
17339 L229.235 -138.812
17340 L231.164 -129.274
17341 L227.282 -135.578
17342 L225.326 -145.379
17343 z
17344 " id="C3_26b_13968958ec"/>
17345 <path d="
17346 M111.652 -80.7247
17347 L115.324 -87.1882
17348 L117.528 -95.6393
17349 L113.878 -87.956
17350 L111.652 -80.7247
17351 z
17352 " id="C3_26c_b393ce1a58"/>
17353 <path d="
17354 M258.586 -59.1624
17355 L262.632 -57.6226
17356 L264.776 -59.158
17357 L260.72 -60.2898
17358 L258.586 -59.1624
17359 z
17360 " id="C3_26d_9386bb35a2"/>
17361 <path d="
17362 M254.658 -63.6309
17363 L258.586 -59.1624
17364 L260.72 -60.2898
17365 L256.784 -64.3167
17366 L254.658 -63.6309
17367 z
17368 " id="C3_26e_39ae23dee3"/>
17369 <path d="
17370 M72.3345 -101.492
17371 L76.6958 -91.355
17372 L79.463 -87.1252
17373 L75.1551 -96.7525
17374 L72.3345 -101.492
17375 z
17376 " id="C3_26f_8f8f25fd07"/>
17377 <path d="
17378 M106.306 -61.0276
17379 L110.127 -62.6186
17380 L112.397 -68.8005
17381 L108.621 -65.7181
17382 L106.306 -61.0276
17383 z
17384 " id="C3_270_48e77d0f86"/>
17385 <path d="
17386 M176.761 -163.908
17387 L180.756 -168.697
17388 L183.043 -161.317
17389 L179.064 -156.226
17390 L176.761 -163.908
17391 z
17392 " id="C3_271_4067e2dcf5"/>
17393 <path d="
17394 M201.339 -162.32
17395 L205.369 -162.132
17396 L207.472 -152.316
17397 L203.469 -152.491
17398 L201.339 -162.32
17399 z
17400 " id="C3_272_ce18b7b126"/>
17401 <path d="
17402 M108.621 -65.7181
17403 L112.397 -68.8005
17404 L114.623 -76.4005
17405 L110.885 -71.8649
17406 L108.621 -65.7181
17407 z
17408 " id="C3_273_684bb7a690"/>
17409 <path d="
17410 M134.527 -135.12
17411 L138.218 -146.566
17412 L140.615 -147.277
17413 L136.914 -135.861
17414 L134.527 -135.12
17415 z
17416 " id="C3_274_25d7728121"/>
17417 <path d="
17418 M242.451 -114.07
17419 L246.182 -102.964
17420 L248.144 -98.2625
17421 L244.413 -108.494
17422 L242.451 -114.07
17423 z
17424 " id="C3_275_b36cb50845"/>
17425 <path d="
17426 M103.924 -58.0695
17427 L107.797 -58.1816
17428 L110.127 -62.6186
17429 L106.306 -61.0276
17430 L103.924 -58.0695
17431 z
17432 " id="C3_276_09b8ce577f"/>
17433 <path d="
17434 M187.048 -165.247
17435 L191.074 -168.026
17436 L193.292 -159.56
17437 L189.285 -156.568
17438 L187.048 -165.247
17439 z
17440 " id="C3_277_bfd170e2f8"/>
17441 <path d="
17442 M221.382 -150.901
17443 L225.326 -145.379
17444 L227.282 -135.578
17445 L223.367 -140.985
17446 L221.382 -150.901
17447 z
17448 " id="C3_278_2d23bf5379"/>
17449 <path d="
17450 M113.878 -87.956
17451 L117.528 -95.6393
17452 L119.739 -104.14
17453 L116.102 -95.4072
17454 L113.878 -87.956
17455 z
17456 " id="C3_279_fdbcf59c25"/>
17457 <path d="
17458 M93.4811 -62.8517
17459 L97.4939 -59.3735
17460 L100.022 -58.985
17461 L96.0774 -61.1061
17462 L93.4811 -62.8517
17463 z
17464 " id="C3_27a_ee67e30cbe"/>
17465 <path d="
17466 M151.621 -153.469
17467 L155.467 -162.684
17468 L157.869 -159.263
17469 L154.027 -149.912
17470 L151.621 -153.469
17471 z
17472 " id="C3_27b_59a11626fa"/>
17473 <path d="
17474 M79.644 -83.4498
17475 L83.8679 -75.7629
17476 L86.5901 -71.9529
17477 L82.4345 -78.714
17478 L79.644 -83.4498
17479 z
17480 " id="C3_27c_a8924efe2c"/>
17481 <path d="
17482 M97.4939 -59.3735
17483 L101.459 -57.05
17484 L103.924 -58.0695
17485 L100.022 -58.985
17486 L97.4939 -59.3735
17487 z
17488 " id="C3_27d_45a1896367"/>
17489 <path d="
17490 M250.823 -70.8216
17491 L254.658 -63.6309
17492 L256.784 -64.3167
17493 L252.945 -71.0505
17494 L250.823 -70.8216
17495 z
17496 " id="C3_27e_e21579c783"/>
17497 <path d="
17498 M249.174 -80.1568
17499 L252.945 -71.0505
17500 L255.044 -70.9307
17501 L251.268 -79.4159
17502 L249.174 -80.1568
17503 z
17504 " id="C3_27f_2d809e1e47"/>
17505 <path d="
17506 M89.41 -67.5759
17507 L93.4811 -62.8517
17508 L96.0774 -61.1061
17509 L92.0775 -64.5674
17510 L89.41 -67.5759
17511 z
17512 " id="C3_280_fe56a35f7f"/>
17513 <path d="
17514 M205.369 -162.132
17515 L209.394 -160.915
17516 L211.47 -151.075
17517 L207.472 -152.316
17518 L205.369 -162.132
17519 z
17520 " id="C3_281_f0cbc31b1d"/>
17521 <path d="
17522 M244.189 -107.339
17523 L247.906 -95.9868
17524 L249.902 -92.4788
17525 L246.182 -102.964
17526 L244.189 -107.339
17527 z
17528 " id="C3_282_df5dbd626f"/>
17529 <path d="
17530 M110.885 -71.8649
17531 L114.623 -76.4005
17532 L116.823 -85.0419
17533 L113.114 -79.141
17534 L110.885 -71.8649
17535 z
17536 " id="C3_283_4a9a317bb9"/>
17537 <path d="
17538 M247.535 -89.843
17539 L251.268 -79.4159
17540 L253.334 -78.2762
17541 L249.596 -87.9555
17542 L247.535 -89.843
17543 z
17544 " id="C3_284_d53d33cd65"/>
17545 <path d="
17546 M73.8601 -96.4356
17547 L78.1905 -86.9399
17548 L80.968 -82.4761
17549 L76.6958 -91.355
17550 L73.8601 -96.4356
17551 z
17552 " id="C3_285_6b344b40d0"/>
17553 <path d="
17554 M256.441 -57.9474
17555 L260.483 -56.1567
17556 L262.632 -57.6226
17557 L258.586 -59.1624
17558 L256.441 -57.9474
17559 z
17560 " id="C3_286_3fd12a655b"/>
17561 <path d="
17562 M245.88 -99.1121
17563 L249.596 -87.9555
17564 L251.628 -85.6593
17565 L247.906 -95.9868
17566 L245.88 -99.1121
17567 z
17568 " id="C3_287_da34b9d266"/>
17569 <path d="
17570 M217.407 -155.326
17571 L221.382 -150.901
17572 L223.367 -140.985
17573 L219.423 -145.398
17574 L217.407 -155.326
17575 z
17576 " id="C3_288_76485921d3"/>
17577 <path d="
17578 M170.459 -164.416
17579 L174.433 -170.091
17580 L176.761 -163.908
17581 L172.801 -157.829
17582 L170.459 -164.416
17583 z
17584 " id="C3_289_caa5b21e22"/>
17585 <path d="
17586 M252.513 -62.6876
17587 L256.441 -57.9474
17588 L258.586 -59.1624
17589 L254.658 -63.6309
17590 L252.513 -62.6876
17591 z
17592 " id="C3_28a_fa2be286c9"/>
17593 <path d="
17594 M209.394 -160.915
17595 L213.409 -158.656
17596 L215.456 -148.768
17597 L211.47 -151.075
17598 L209.394 -160.915
17599 z
17600 " id="C3_28b_5d67826191"/>
17601 <path d="
17602 M143.02 -146.919
17603 L146.797 -157.341
17604 L149.209 -155.948
17605 L145.429 -145.501
17606 L143.02 -146.919
17607 z
17608 " id="C3_28c_f8f27b6324"/>
17609 <path d="
17610 M101.459 -57.05
17611 L105.39 -55.7456
17612 L107.797 -58.1816
17613 L103.924 -58.0695
17614 L101.459 -57.05
17615 z
17616 " id="C3_28d_bc74a2c98b"/>
17617 <path d="
17618 M231.158 -140.01
17619 L235.012 -131.373
17620 L236.937 -123.085
17621 L233.105 -131.317
17622 L231.158 -140.01
17623 z
17624 " id="C3_28e_fe63505cbb"/>
17625 <path d="
17626 M213.409 -158.656
17627 L217.407 -155.326
17628 L219.423 -145.398
17629 L215.456 -148.768
17630 L213.409 -158.656
17631 z
17632 " id="C3_28f_a618db99ec"/>
17633 <path d="
17634 M116.102 -95.4072
17635 L119.739 -104.14
17636 L121.966 -112.368
17637 L118.335 -102.773
17638 L116.102 -95.4072
17639 z
17640 " id="C3_290_82bdf06ec5"/>
17641 <path d="
17642 M157.869 -159.263
17643 L161.77 -167.166
17644 L164.156 -162.884
17645 L160.263 -154.681
17646 L157.869 -159.263
17647 z
17648 " id="C3_291_e5216a442e"/>
17649 <path d="
17650 M85.2717 -73.5826
17651 L89.41 -67.5759
17652 L92.0775 -64.5674
17653 L88.0106 -69.4485
17654 L85.2717 -73.5826
17655 z
17656 " id="C3_292_a07983d3a1"/>
17657 <path d="
17658 M236.875 -129.358
17659 L240.662 -119.019
17660 L242.596 -112.337
17661 L238.822 -122.036
17662 L236.875 -129.358
17663 z
17664 " id="C3_293_cc8d8af46a"/>
17665 <path d="
17666 M132.152 -133.338
17667 L135.834 -144.78
17668 L138.218 -146.566
17669 L134.527 -135.12
17670 L132.152 -133.338
17671 z
17672 " id="C3_294_7cd36b2ab2"/>
17673 <path d="
17674 M164.156 -162.884
17675 L168.099 -169.582
17676 L170.459 -164.416
17677 L166.527 -157.315
17678 L164.156 -162.884
17679 z
17680 " id="C3_295_f99aa3328e"/>
17681 <path d="
17682 M107.797 -58.1816
17683 L111.654 -59.1133
17684 L113.941 -64.9731
17685 L110.127 -62.6186
17686 L107.797 -58.1816
17687 z
17688 " id="C3_296_8be2ae7dcf"/>
17689 <path d="
17690 M110.127 -62.6186
17691 L113.941 -64.9731
17692 L116.175 -72.5647
17693 L112.397 -68.8005
17694 L110.127 -62.6186
17695 z
17696 " id="C3_297_c33488ca23"/>
17697 <path d="
17698 M113.114 -79.141
17699 L116.823 -85.0419
17700 L119.013 -94.321
17701 L115.324 -87.1882
17702 L113.114 -79.141
17703 z
17704 " id="C3_298_ca05655ce4"/>
17705 <path d="
17706 M191.074 -168.026
17707 L195.113 -169.718
17708 L197.312 -161.47
17709 L193.292 -159.56
17710 L191.074 -168.026
17711 z
17712 " id="C3_299_5a619dd764"/>
17713 <path d="
17714 M105.39 -55.7456
17715 L109.296 -55.2924
17716 L111.654 -59.1133
17717 L107.797 -58.1816
17718 L105.39 -55.7456
17719 z
17720 " id="C3_29a_fdbafcc379"/>
17721 <path d="
17722 M118.335 -102.773
17723 L121.966 -112.368
17724 L124.215 -120.05
17725 L120.583 -109.785
17726 L118.335 -102.773
17727 z
17728 " id="C3_29b_8f607d55e2"/>
17729 <path d="
17730 M248.674 -70.1595
17731 L252.513 -62.6876
17732 L254.658 -63.6309
17733 L250.823 -70.8216
17734 L248.674 -70.1595
17735 z
17736 " id="C3_29c_b1fee782ef"/>
17737 <path d="
17738 M254.282 -56.6018
17739 L258.328 -54.7238
17740 L260.483 -56.1567
17741 L256.441 -57.9474
17742 L254.282 -56.6018
17743 z
17744 " id="C3_29d_2a3feb94d9"/>
17745 <path d="
17746 M129.795 -130.52
17747 L133.465 -141.917
17748 L135.834 -144.78
17749 L132.152 -133.338
17750 L129.795 -130.52
17751 z
17752 " id="C3_29e_2025c7a4d9"/>
17753 <path d="
17754 M180.756 -168.697
17755 L184.776 -172.192
17756 L187.048 -165.247
17757 L183.043 -161.317
17758 L180.756 -168.697
17759 z
17760 " id="C3_29f_3b70c0d741"/>
17761 <path d="
17762 M75.3385 -92.3681
17763 L79.644 -83.4498
17764 L82.4345 -78.714
17765 L78.1905 -86.9399
17766 L75.3385 -92.3681
17767 z
17768 " id="C3_2a0_5f74e1da89"/>
17769 <path d="
17770 M250.348 -61.4386
17771 L254.282 -56.6018
17772 L256.441 -57.9474
17773 L252.513 -62.6876
17774 L250.348 -61.4386
17775 z
17776 " id="C3_2a1_47fcbc7caf"/>
17777 <path d="
17778 M112.397 -68.8005
17779 L116.175 -72.5647
17780 L118.373 -81.509
17781 L114.623 -76.4005
17782 L112.397 -68.8005
17783 z
17784 " id="C3_2a2_c356442bb0"/>
17785 <path d="
17786 M247.05 -80.3782
17787 L250.823 -70.8216
17788 L252.945 -71.0505
17789 L249.174 -80.1568
17790 L247.05 -80.3782
17791 z
17792 " id="C3_2a3_b221cd4168"/>
17793 <path d="
17794 M81.0601 -80.8444
17795 L85.2717 -73.5826
17796 L88.0106 -69.4485
17797 L83.8679 -75.7629
17798 L81.0601 -80.8444
17799 z
17800 " id="C3_2a4_f907e9d85b"/>
17801 <path d="
17802 M120.583 -109.785
17803 L124.215 -120.05
17804 L126.489 -126.971
17805 L122.851 -116.216
17806 L120.583 -109.785
17807 z
17808 " id="C3_2a5_ebed53ae1d"/>
17809 <path d="
17810 M94.8698 -61.6889
17811 L98.901 -58.0905
17812 L101.459 -57.05
17813 L97.4939 -59.3735
17814 L94.8698 -61.6889
17815 z
17816 " id="C3_2a6_fc04ed697d"/>
17817 <path d="
17818 M238.689 -125.258
17819 L242.451 -114.07
17820 L244.413 -108.494
17821 L240.662 -119.019
17822 L238.689 -125.258
17823 z
17824 " id="C3_2a7_8aaa010aba"/>
17825 <path d="
17826 M98.901 -58.0905
17827 L102.892 -55.4793
17828 L105.39 -55.7456
17829 L101.459 -57.05
17830 L98.901 -58.0905
17831 z
17832 " id="C3_2a8_e7f1f0b76a"/>
17833 <path d="
17834 M227.26 -147.688
17835 L231.158 -140.01
17836 L233.105 -131.317
17837 L229.235 -138.812
17838 L227.26 -147.688
17839 z
17840 " id="C3_2a9_31f8d16df7"/>
17841 <path d="
17842 M127.458 -126.689
17843 L131.116 -137.977
17844 L133.465 -141.917
17845 L129.795 -130.52
17846 L127.458 -126.689
17847 z
17848 " id="C3_2aa_0f00724451"/>
17849 <path d="
17850 M115.324 -87.1882
17851 L119.013 -94.321
17852 L121.205 -103.833
17853 L117.528 -95.6393
17854 L115.324 -87.1882
17855 z
17856 " id="C3_2ab_bc30fa16aa"/>
17857 <path d="
17858 M90.7881 -66.3682
17859 L94.8698 -61.6889
17860 L97.4939 -59.3735
17861 L93.4811 -62.8517
17862 L90.7881 -66.3682
17863 z
17864 " id="C3_2ac_2fd9669498"/>
17865 <path d="
17866 M245.441 -91.1665
17867 L249.174 -80.1568
17868 L251.268 -79.4159
17869 L247.535 -89.843
17870 L245.441 -91.1665
17871 z
17872 " id="C3_2ad_21d8d037ad"/>
17873 <path d="
17874 M122.851 -116.216
17875 L126.489 -126.971
17876 L128.79 -132.978
17877 L125.143 -121.893
17878 L122.851 -116.216
17879 z
17880 " id="C3_2ae_041a8902da"/>
17881 <path d="
17882 M149.209 -155.948
17883 L153.059 -164.953
17884 L155.467 -162.684
17885 L151.621 -153.469
17886 L149.209 -155.948
17887 z
17888 " id="C3_2af_4c9026591d"/>
17889 <path d="
17890 M125.143 -121.893
17891 L128.79 -132.978
17892 L131.116 -137.977
17893 L127.458 -126.689
17894 L125.143 -121.893
17895 z
17896 " id="C3_2b0_77ab0c9098"/>
17897 <path d="
17898 M140.615 -147.277
17899 L144.388 -157.669
17900 L146.797 -157.341
17901 L143.02 -146.919
17902 L140.615 -147.277
17903 z
17904 " id="C3_2b1_aa0dd78f8d"/>
17905 <path d="
17906 M111.654 -59.1133
17907 L115.507 -60.6392
17908 L117.76 -67.831
17909 L113.941 -64.9731
17910 L111.654 -59.1133
17911 z
17912 " id="C3_2b2_53f71901b0"/>
17913 <path d="
17914 M109.296 -55.2924
17915 L113.191 -55.5012
17916 L115.507 -60.6392
17917 L111.654 -59.1133
17918 L109.296 -55.2924
17919 z
17920 " id="C3_2b3_a2ea0e8e1e"/>
17921 <path d="
17922 M69.4515 -106.918
17923 L73.8601 -96.4356
17924 L76.6958 -91.355
17925 L72.3345 -101.492
17926 L69.4515 -106.918
17927 z
17928 " id="C3_2b4_a5d7508d6a"/>
17929 <path d="
17930 M102.892 -55.4793
17931 L106.853 -53.727
17932 L109.296 -55.2924
17933 L105.39 -55.7456
17934 L102.892 -55.4793
17935 z
17936 " id="C3_2b5_5d24ce0ef5"/>
17937 <path d="
17938 M195.113 -169.718
17939 L199.161 -170.409
17940 L201.339 -162.32
17941 L197.312 -161.47
17942 L195.113 -169.718
17943 z
17944 " id="C3_2b6_d8c1aade9d"/>
17945 <path d="
17946 M252.11 -55.1109
17947 L256.165 -53.3116
17948 L258.328 -54.7238
17949 L254.282 -56.6018
17950 L252.11 -55.1109
17951 z
17952 " id="C3_2b7_2668647327"/>
17953 <path d="
17954 M243.817 -101.665
17955 L247.535 -89.843
17956 L249.596 -87.9555
17957 L245.88 -99.1121
17958 L243.817 -101.665
17959 z
17960 " id="C3_2b8_3c3050185f"/>
17961 <path d="
17962 M240.45 -119.135
17963 L244.189 -107.339
17964 L246.182 -102.964
17965 L242.451 -114.07
17966 L240.45 -119.135
17967 z
17968 " id="C3_2b9_5379375180"/>
17969 <path d="
17970 M246.499 -69.0123
17971 L250.348 -61.4386
17972 L252.513 -62.6876
17973 L248.674 -70.1595
17974 L246.499 -69.0123
17975 z
17976 " id="C3_2ba_c42afbf79b"/>
17977 <path d="
17978 M114.623 -76.4005
17979 L118.373 -81.509
17980 L120.554 -91.378
17981 L116.823 -85.0419
17982 L114.623 -76.4005
17983 z
17984 " id="C3_2bb_3f9ebb3b95"/>
17985 <path d="
17986 M233.043 -139.085
17987 L236.875 -129.358
17988 L238.822 -122.036
17989 L235.012 -131.373
17990 L233.043 -139.085
17991 z
17992 " id="C3_2bc_3399efc307"/>
17993 <path d="
17994 M86.6474 -72.1775
17995 L90.7881 -66.3682
17996 L93.4811 -62.8517
17997 L89.41 -67.5759
17998 L86.6474 -72.1775
17999 z
18000 " id="C3_2bd_9df391fb36"/>
18001 <path d="
18002 M248.163 -59.8668
18003 L252.11 -55.1109
18004 L254.282 -56.6018
18005 L250.348 -61.4386
18006 L248.163 -59.8668
18007 z
18008 " id="C3_2be_4abf4d9c99"/>
18009 <path d="
18010 M174.433 -170.091
18011 L178.441 -174.263
18012 L180.756 -168.697
18013 L176.761 -163.908
18014 L174.433 -170.091
18015 z
18016 " id="C3_2bf_df4bae441a"/>
18017 <path d="
18018 M242.158 -111.161
18019 L245.88 -99.1121
18020 L247.906 -95.9868
18021 L244.189 -107.339
18022 L242.158 -111.161
18023 z
18024 " id="C3_2c0_6fb71280b5"/>
18025 <path d="
18026 M113.941 -64.9731
18027 L117.76 -67.831
18028 L119.967 -76.7174
18029 L116.175 -72.5647
18030 L113.941 -64.9731
18031 z
18032 " id="C3_2c1_cfef758d0a"/>
18033 <path d="
18034 M106.853 -53.727
18035 L110.794 -52.6816
18036 L113.191 -55.5012
18037 L109.296 -55.2924
18038 L106.853 -53.727
18039 z
18040 " id="C3_2c2_0366a9743f"/>
18041 <path d="
18042 M76.7731 -89.2632
18043 L81.0601 -80.8444
18044 L83.8679 -75.7629
18045 L79.644 -83.4498
18046 L76.7731 -89.2632
18047 z
18048 " id="C3_2c3_5da5ed225d"/>
18049 <path d="
18050 M244.894 -79.993
18051 L248.674 -70.1595
18052 L250.823 -70.8216
18053 L247.05 -80.3782
18054 L244.894 -79.993
18055 z
18056 " id="C3_2c4_2e8995aa9d"/>
18057 <path d="
18058 M223.319 -154.246
18059 L227.26 -147.688
18060 L229.235 -138.812
18061 L225.326 -145.379
18062 L223.319 -154.246
18063 z
18064 " id="C3_2c5_ca52648fa7"/>
18065 <path d="
18066 M117.528 -95.6393
18067 L121.205 -103.833
18068 L123.413 -113.195
18069 L119.739 -104.14
18070 L117.528 -95.6393
18071 z
18072 " id="C3_2c6_3c5da6219b"/>
18073 <path d="
18074 M155.467 -162.684
18075 L159.376 -170.154
18076 L161.77 -167.166
18077 L157.869 -159.263
18078 L155.467 -162.684
18079 z
18080 " id="C3_2c7_94a22460ae"/>
18081 <path d="
18082 M184.776 -172.192
18083 L188.816 -174.487
18084 L191.074 -168.026
18085 L187.048 -165.247
18086 L184.776 -172.192
18087 z
18088 " id="C3_2c8_71b7f502ff"/>
18089 <path d="
18090 M70.9564 -102.294
18091 L75.3385 -92.3681
18092 L78.1905 -86.9399
18093 L73.8601 -96.4356
18094 L70.9564 -102.294
18095 z
18096 " id="C3_2c9_c4c80f3828"/>
18097 <path d="
18098 M199.161 -170.409
18099 L203.212 -170.166
18100 L205.369 -162.132
18101 L201.339 -162.32
18102 L199.161 -170.409
18103 z
18104 " id="C3_2ca_2f10d2ca6e"/>
18105 <path d="
18106 M168.099 -169.582
18107 L172.085 -174.568
18108 L174.433 -170.091
18109 L170.459 -164.416
18110 L168.099 -169.582
18111 z
18112 " id="C3_2cb_d03ed4091c"/>
18113 <path d="
18114 M113.191 -55.5012
18115 L117.083 -56.1734
18116 L119.368 -62.5296
18117 L115.507 -60.6392
18118 L113.191 -55.5012
18119 z
18120 " id="C3_2cc_9b599f984d"/>
18121 <path d="
18122 M82.4412 -79.1123
18123 L86.6474 -72.1775
18124 L89.41 -67.5759
18125 L85.2717 -73.5826
18126 L82.4412 -79.1123
18127 z
18128 " id="C3_2cd_ed90538a0d"/>
18129 <path d="
18130 M161.77 -167.166
18131 L165.725 -173.247
18132 L168.099 -169.582
18133 L164.156 -162.884
18134 L161.77 -167.166
18135 z
18136 " id="C3_2ce_c732f2e645"/>
18137 <path d="
18138 M138.218 -146.566
18139 L141.985 -156.952
18140 L144.388 -157.669
18141 L140.615 -147.277
18142 L138.218 -146.566
18143 z
18144 " id="C3_2cf_1460f764b1"/>
18145 <path d="
18146 M249.925 -53.4884
18147 L253.995 -51.9326
18148 L256.165 -53.3116
18149 L252.11 -55.1109
18150 L249.925 -53.4884
18151 z
18152 " id="C3_2d0_59a94d435d"/>
18153 <path d="
18154 M244.299 -67.3611
18155 L248.163 -59.8668
18156 L250.348 -61.4386
18157 L246.499 -69.0123
18158 L244.299 -67.3611
18159 z
18160 " id="C3_2d1_05b9519f6d"/>
18161 <path d="
18162 M110.794 -52.6816
18163 L114.725 -52.1778
18164 L117.083 -56.1734
18165 L113.191 -55.5012
18166 L110.794 -52.6816
18167 z
18168 " id="C3_2d2_ff733df4c4"/>
18169 <path d="
18170 M245.96 -57.987
18171 L249.925 -53.4884
18172 L252.11 -55.1109
18173 L248.163 -59.8668
18174 L245.96 -57.987
18175 z
18176 " id="C3_2d3_333dae58bd"/>
18177 <path d="
18178 M115.507 -60.6392
18179 L119.368 -62.5296
18180 L121.595 -70.9336
18181 L117.76 -67.831
18182 L115.507 -60.6392
18183 z
18184 " id="C3_2d4_bfb25700de"/>
18185 <path d="
18186 M116.175 -72.5647
18187 L119.967 -76.7174
18188 L122.148 -86.8658
18189 L118.373 -81.509
18190 L116.175 -72.5647
18191 z
18192 " id="C3_2d5_532f1a2b2e"/>
18193 <path d="
18194 M116.823 -85.0419
18195 L120.554 -91.378
18196 L122.733 -101.721
18197 L119.013 -94.321
18198 L116.823 -85.0419
18199 z
18200 " id="C3_2d6_eaad4099c9"/>
18201 <path d="
18202 M243.31 -91.8063
18203 L247.05 -80.3782
18204 L249.174 -80.1568
18205 L245.441 -91.1665
18206 L243.31 -91.8063
18207 z
18208 " id="C3_2d7_0946137d07"/>
18209 <path d="
18210 M219.341 -159.619
18211 L223.319 -154.246
18212 L225.326 -145.379
18213 L221.382 -150.901
18214 L219.341 -159.619
18215 z
18216 " id="C3_2d8_5e6e0cb683"/>
18217 <path d="
18218 M96.2393 -61.2154
18219 L100.292 -57.4497
18220 L102.892 -55.4793
18221 L98.901 -58.0905
18222 L96.2393 -61.2154
18223 z
18224 " id="C3_2d9_0b3d699b3c"/>
18225 <path d="
18226 M100.292 -57.4497
18227 L104.31 -54.5278
18228 L106.853 -53.727
18229 L102.892 -55.4793
18230 L100.292 -57.4497
18231 z
18232 " id="C3_2da_736bdf87d6"/>
18233 <path d="
18234 M203.212 -170.166
18235 L207.262 -169.013
18236 L209.394 -160.915
18237 L205.369 -162.132
18238 L203.212 -170.166
18239 z
18240 " id="C3_2db_5b4d5dd401"/>
18241 <path d="
18242 M234.883 -136.008
18243 L238.689 -125.258
18244 L240.662 -119.019
18245 L236.875 -129.358
18246 L234.883 -136.008
18247 z
18248 " id="C3_2dc_c6ae99e648"/>
18249 <path d="
18250 M119.739 -104.14
18251 L123.413 -113.195
18252 L125.643 -122.074
18253 L121.966 -112.368
18254 L119.739 -104.14
18255 z
18256 " id="C3_2dd_a27ff504de"/>
18257 <path d="
18258 M146.797 -157.341
18259 L150.649 -166.132
18260 L153.059 -164.953
18261 L149.209 -155.948
18262 L146.797 -157.341
18263 z
18264 " id="C3_2de_a621b5b15c"/>
18265 <path d="
18266 M92.1427 -65.9135
18267 L96.2393 -61.2154
18268 L98.901 -58.0905
18269 L94.8698 -61.6889
18270 L92.1427 -65.9135
18271 z
18272 " id="C3_2df_3568016cff"/>
18273 <path d="
18274 M104.31 -54.5278
18275 L108.302 -52.3351
18276 L110.794 -52.6816
18277 L106.853 -53.727
18278 L104.31 -54.5278
18279 z
18280 " id="C3_2e0_32783cf9c4"/>
18281 <path d="
18282 M229.161 -147.852
18283 L233.043 -139.085
18284 L235.012 -131.373
18285 L231.158 -140.01
18286 L229.161 -147.852
18287 z
18288 " id="C3_2e1_bdaf230c20"/>
18289 <path d="
18290 M242.707 -78.9477
18291 L246.499 -69.0123
18292 L248.674 -70.1595
18293 L244.894 -79.993
18294 L242.707 -78.9477
18295 z
18296 " id="C3_2e2_9cdd065099"/>
18297 <path d="
18298 M215.334 -163.821
18299 L219.341 -159.619
18300 L221.382 -150.901
18301 L217.407 -155.326
18302 L215.334 -163.821
18303 z
18304 " id="C3_2e3_963751487c"/>
18305 <path d="
18306 M207.262 -169.013
18307 L211.305 -166.923
18308 L213.409 -158.656
18309 L209.394 -160.915
18310 L207.262 -169.013
18311 z
18312 " id="C3_2e4_a73a8a3d04"/>
18313 <path d="
18314 M211.305 -166.923
18315 L215.334 -163.821
18316 L217.407 -155.326
18317 L213.409 -158.656
18318 L211.305 -166.923
18319 z
18320 " id="C3_2e5_674b2a61b9"/>
18321 <path d="
18322 M241.715 -103.495
18323 L245.441 -91.1665
18324 L247.535 -89.843
18325 L243.817 -101.665
18326 L241.715 -103.495
18327 z
18328 " id="C3_2e6_76e0786368"/>
18329 <path d="
18330 M114.725 -52.1778
18331 L118.655 -52.0465
18332 L120.983 -57.1118
18333 L117.083 -56.1734
18334 L114.725 -52.1778
18335 z
18336 " id="C3_2e7_45419eddb9"/>
18337 <path d="
18338 M178.441 -174.263
18339 L182.474 -177.005
18340 L184.776 -172.192
18341 L180.756 -168.697
18342 L178.441 -174.263
18343 z
18344 " id="C3_2e8_e970f4bb05"/>
18345 <path d="
18346 M188.816 -174.487
18347 L192.87 -175.741
18348 L195.113 -169.718
18349 L191.074 -168.026
18350 L188.816 -174.487
18351 z
18352 " id="C3_2e9_371336c6a9"/>
18353 <path d="
18354 M135.834 -144.78
18355 L139.59 -155.196
18356 L141.985 -156.952
18357 L138.218 -146.566
18358 L135.834 -144.78
18359 z
18360 " id="C3_2ea_72f41ab3a6"/>
18361 <path d="
18362 M117.083 -56.1734
18363 L120.983 -57.1118
18364 L123.244 -64.5613
18365 L119.368 -62.5296
18366 L117.083 -56.1734
18367 z
18368 " id="C3_2eb_dfb809fece"/>
18369 <path d="
18370 M72.4132 -98.6657
18371 L76.7731 -89.2632
18372 L79.644 -83.4498
18373 L75.3385 -92.3681
18374 L72.4132 -98.6657
18375 z
18376 " id="C3_2ec_065e8cd476"/>
18377 <path d="
18378 M242.076 -65.2211
18379 L245.96 -57.987
18380 L248.163 -59.8668
18381 L244.299 -67.3611
18382 L242.076 -65.2211
18383 z
18384 " id="C3_2ed_52855fd490"/>
18385 <path d="
18386 M117.76 -67.831
18387 L121.595 -70.9336
18388 L123.786 -80.9742
18389 L119.967 -76.7174
18390 L117.76 -67.831
18391 z
18392 " id="C3_2ee_08c0028316"/>
18393 <path d="
18394 M247.729 -51.7767
18395 L251.82 -50.6237
18396 L253.995 -51.9326
18397 L249.925 -53.4884
18398 L247.729 -51.7767
18399 z
18400 " id="C3_2ef_6a805d3be1"/>
18401 <path d="
18402 M243.741 -55.8455
18403 L247.729 -51.7767
18404 L249.925 -53.4884
18405 L245.96 -57.987
18406 L243.741 -55.8455
18407 z
18408 " id="C3_2f0_3797db6a07"/>
18409 <path d="
18410 M108.302 -52.3351
18411 L112.277 -50.7403
18412 L114.725 -52.1778
18413 L110.794 -52.6816
18414 L108.302 -52.3351
18415 z
18416 " id="C3_2f1_44238a468e"/>
18417 <path d="
18418 M78.1665 -87.1067
18419 L82.4412 -79.1123
18420 L85.2717 -73.5826
18421 L81.0601 -80.8444
18422 L78.1665 -87.1067
18423 z
18424 " id="C3_2f2_c360c4b721"/>
18425 <path d="
18426 M87.9943 -71.5972
18427 L92.1427 -65.9135
18428 L94.8698 -61.6889
18429 L90.7881 -66.3682
18430 L87.9943 -71.5972
18431 z
18432 " id="C3_2f3_32fa27d8cc"/>
18433 <path d="
18434 M121.966 -112.368
18435 L125.643 -122.074
18436 L127.901 -130.199
18437 L124.215 -120.05
18438 L121.966 -112.368
18439 z
18440 " id="C3_2f4_2925dd6c74"/>
18441 <path d="
18442 M236.672 -130.783
18443 L240.45 -119.135
18444 L242.451 -114.07
18445 L238.689 -125.258
18446 L236.672 -130.783
18447 z
18448 " id="C3_2f5_597cfbff98"/>
18449 <path d="
18450 M119.013 -94.321
18451 L122.733 -101.721
18452 L124.924 -112.096
18453 L121.205 -103.833
18454 L119.013 -94.321
18455 z
18456 " id="C3_2f6_b5f9e9377a"/>
18457 <path d="
18458 M118.373 -81.509
18459 L122.148 -86.8658
18460 L124.32 -97.7956
18461 L120.554 -91.378
18462 L118.373 -81.509
18463 z
18464 " id="C3_2f7_6b6c0cf4c6"/>
18465 <path d="
18466 M240.085 -114.249
18467 L243.817 -101.665
18468 L245.88 -99.1121
18469 L242.158 -111.161
18470 L240.085 -114.249
18471 z
18472 " id="C3_2f8_585dac970d"/>
18473 <path d="
18474 M238.406 -123.469
18475 L242.158 -111.161
18476 L244.189 -107.339
18477 L240.45 -119.135
18478 L238.406 -123.469
18479 z
18480 " id="C3_2f9_4854d02264"/>
18481 <path d="
18482 M112.277 -50.7403
18483 L116.242 -49.6047
18484 L118.655 -52.0465
18485 L114.725 -52.1778
18486 L112.277 -50.7403
18487 z
18488 " id="C3_2fa_b23210bd1a"/>
18489 <path d="
18490 M153.059 -164.953
18491 L156.976 -171.94
18492 L159.376 -170.154
18493 L155.467 -162.684
18494 L153.059 -164.953
18495 z
18496 " id="C3_2fb_94d3b568f4"/>
18497 <path d="
18498 M241.143 -91.6774
18499 L244.894 -79.993
18500 L247.05 -80.3782
18501 L243.31 -91.8063
18502 L241.143 -91.6774
18503 z
18504 " id="C3_2fc_bb39b322e7"/>
18505 <path d="
18506 M119.368 -62.5296
18507 L123.244 -64.5613
18508 L125.455 -74.0357
18509 L121.595 -70.9336
18510 L119.368 -62.5296
18511 z
18512 " id="C3_2fd_56f3f53905"/>
18513 <path d="
18514 M66.5088 -112.924
18515 L70.9564 -102.294
18516 L73.8601 -96.4356
18517 L69.4515 -106.918
18518 L66.5088 -112.924
18519 z
18520 " id="C3_2fe_d4d5dad373"/>
18521 <path d="
18522 M240.49 -77.2229
18523 L244.299 -67.3611
18524 L246.499 -69.0123
18525 L242.707 -78.9477
18526 L240.49 -77.2229
18527 z
18528 " id="C3_2ff_7081703355"/>
18529 <path d="
18530 M133.465 -141.917
18531 L137.209 -152.387
18532 L139.59 -155.196
18533 L135.834 -144.78
18534 L133.465 -141.917
18535 z
18536 " id="C3_300_0777aa3fea"/>
18537 <path d="
18538 M172.085 -174.568
18539 L176.105 -177.817
18540 L178.441 -174.263
18541 L174.433 -170.091
18542 L172.085 -174.568
18543 z
18544 " id="C3_301_71c324b63a"/>
18545 <path d="
18546 M239.833 -62.6411
18547 L243.741 -55.8455
18548 L245.96 -57.987
18549 L242.076 -65.2211
18550 L239.833 -62.6411
18551 z
18552 " id="C3_302_5d67d80b9b"/>
18553 <path d="
18554 M118.655 -52.0465
18555 L122.59 -52.1243
18556 L124.896 -58.1292
18557 L120.983 -57.1118
18558 L118.655 -52.0465
18559 z
18560 " id="C3_303_c6a1e8abbd"/>
18561 <path d="
18562 M124.215 -120.05
18563 L127.901 -130.199
18564 L130.188 -137.377
18565 L126.489 -126.971
18566 L124.215 -120.05
18567 z
18568 " id="C3_304_b758ed8b2a"/>
18569 <path d="
18570 M241.51 -53.5194
18571 L245.525 -50.045
18572 L247.729 -51.7767
18573 L243.741 -55.8455
18574 L241.51 -53.5194
18575 z
18576 " id="C3_305_e7a4039e2d"/>
18577 <path d="
18578 M83.788 -78.2752
18579 L87.9943 -71.5972
18580 L90.7881 -66.3682
18581 L86.6474 -72.1775
18582 L83.788 -78.2752
18583 z
18584 " id="C3_306_f61adddce2"/>
18585 <path d="
18586 M225.229 -155.418
18587 L229.161 -147.852
18588 L231.158 -140.01
18589 L227.26 -147.688
18590 L225.229 -155.418
18591 z
18592 " id="C3_307_bb4b54ae55"/>
18593 <path d="
18594 M144.388 -157.669
18595 L148.239 -166.304
18596 L150.649 -166.132
18597 L146.797 -157.341
18598 L144.388 -157.669
18599 z
18600 " id="C3_308_478fe5490a"/>
18601 <path d="
18602 M192.87 -175.741
18603 L196.933 -176.127
18604 L199.161 -170.409
18605 L195.113 -169.718
18606 L192.87 -175.741
18607 z
18608 " id="C3_309_196cc2d546"/>
18609 <path d="
18610 M245.525 -50.045
18611 L249.641 -49.4449
18612 L251.82 -50.6237
18613 L247.729 -51.7767
18614 L245.525 -50.045
18615 z
18616 " id="C3_30a_4c3db8f6a8"/>
18617 <path d="
18618 M159.376 -170.154
18619 L163.342 -175.482
18620 L165.725 -173.247
18621 L161.77 -167.166
18622 L159.376 -170.154
18623 z
18624 " id="C3_30b_fa58bfcfe8"/>
18625 <path d="
18626 M131.116 -137.977
18627 L134.845 -148.495
18628 L137.209 -152.387
18629 L133.465 -141.917
18630 L131.116 -137.977
18631 z
18632 " id="C3_30c_d3f9da2fed"/>
18633 <path d="
18634 M165.725 -173.247
18635 L169.724 -177.31
18636 L172.085 -174.568
18637 L168.099 -169.582
18638 L165.725 -173.247
18639 z
18640 " id="C3_30d_8d45e28480"/>
18641 <path d="
18642 M120.983 -57.1118
18643 L124.896 -58.1292
18644 L127.141 -66.5275
18645 L123.244 -64.5613
18646 L120.983 -57.1118
18647 z
18648 " id="C3_30e_802bb6e441"/>
18649 <path d="
18650 M126.489 -126.971
18651 L130.188 -137.377
18652 L132.504 -143.492
18653 L128.79 -132.978
18654 L126.489 -126.971
18655 z
18656 " id="C3_30f_7854ac5307"/>
18657 <path d="
18658 M116.242 -49.6047
18659 L120.206 -48.7907
18660 L122.59 -52.1243
18661 L118.655 -52.0465
18662 L116.242 -49.6047
18663 z
18664 " id="C3_310_6d1a46dea8"/>
18665 <path d="
18666 M119.967 -76.7174
18667 L123.786 -80.9742
18668 L125.957 -92.1648
18669 L122.148 -86.8658
18670 L119.967 -76.7174
18671 z
18672 " id="C3_311_9b56e03949"/>
18673 <path d="
18674 M231.023 -145.868
18675 L234.883 -136.008
18676 L236.875 -129.358
18677 L233.043 -139.085
18678 L231.023 -145.868
18679 z
18680 " id="C3_312_7d7c87d3a2"/>
18681 <path d="
18682 M128.79 -132.978
18683 L132.504 -143.492
18684 L134.845 -148.495
18685 L131.116 -137.977
18686 L128.79 -132.978
18687 z
18688 " id="C3_313_945a0b3a91"/>
18689 <path d="
18690 M182.474 -177.005
18691 L186.525 -178.519
18692 L188.816 -174.487
18693 L184.776 -172.192
18694 L182.474 -177.005
18695 z
18696 " id="C3_314_cce962f7d4"/>
18697 <path d="
18698 M73.8239 -96.0284
18699 L78.1665 -87.1067
18700 L81.0601 -80.8444
18701 L76.7731 -89.2632
18702 L73.8239 -96.0284
18703 z
18704 " id="C3_315_975bfce67a"/>
18705 <path d="
18706 M237.573 -59.7033
18707 L241.51 -53.5194
18708 L243.741 -55.8455
18709 L239.833 -62.6411
18710 L237.573 -59.7033
18711 z
18712 " id="C3_316_cf96787b9b"/>
18713 <path d="
18714 M101.659 -57.6897
18715 L105.704 -54.4949
18716 L108.302 -52.3351
18717 L104.31 -54.5278
18718 L101.659 -57.6897
18719 z
18720 " id="C3_317_06f6d2cd0d"/>
18721 <path d="
18722 M238.245 -74.833
18723 L242.076 -65.2211
18724 L244.299 -67.3611
18725 L240.49 -77.2229
18726 L238.245 -74.833
18727 z
18728 " id="C3_318_3c16546e49"/>
18729 <path d="
18730 M97.5834 -61.6129
18731 L101.659 -57.6897
18732 L104.31 -54.5278
18733 L100.292 -57.4497
18734 L97.5834 -61.6129
18735 z
18736 " id="C3_319_42897d836d"/>
18737 <path d="
18738 M182.292 -119.134
18739 L186.362 -130.93
18740 L188.703 -137.268
18741 L184.635 -132.959
18742 L182.292 -119.134
18743 z
18744 " id="C3_31a_8ff3f128b2"/>
18745 <path d="
18746 M121.205 -103.833
18747 L124.924 -112.096
18748 L127.137 -122.094
18749 L123.413 -113.195
18750 L121.205 -103.833
18751 z
18752 " id="C3_31b_62de2bd818"/>
18753 <path d="
18754 M239.573 -104.492
18755 L243.31 -91.8063
18756 L245.441 -91.1665
18757 L241.715 -103.495
18758 L239.573 -104.492
18759 z
18760 " id="C3_31c_b21473c551"/>
18761 <path d="
18762 M178.271 -132.417
18763 L182.292 -119.134
18764 L184.635 -132.959
18765 L180.603 -138.741
18766 L178.271 -132.417
18767 z
18768 " id="C3_31d_ca7820431e"/>
18769 <path d="
18770 M105.704 -54.4949
18771 L109.726 -51.9318
18772 L112.277 -50.7403
18773 L108.302 -52.3351
18774 L105.704 -54.4949
18775 z
18776 " id="C3_31e_89919d0c95"/>
18777 <path d="
18778 M239.269 -51.1142
18779 L243.315 -48.3871
18780 L245.525 -50.045
18781 L241.51 -53.5194
18782 L239.269 -51.1142
18783 z
18784 " id="C3_31f_90f999b19c"/>
18785 <path d="
18786 M67.9884 -108.804
18787 L72.4132 -98.6657
18788 L75.3385 -92.3681
18789 L70.9564 -102.294
18790 L67.9884 -108.804
18791 z
18792 " id="C3_320_5ae3cc5551"/>
18793 <path d="
18794 M121.595 -70.9336
18795 L125.455 -74.0357
18796 L127.637 -85.073
18797 L123.786 -80.9742
18798 L121.595 -70.9336
18799 z
18800 " id="C3_321_dc4f6a0cdc"/>
18801 <path d="
18802 M120.554 -91.378
18803 L124.32 -97.7956
18804 L126.498 -109.008
18805 L122.733 -101.721
18806 L120.554 -91.378
18807 z
18808 " id="C3_322_75d8935a5f"/>
18809 <path d="
18810 M122.59 -52.1243
18811 L126.536 -52.261
18812 L128.828 -59.0572
18813 L124.896 -58.1292
18814 L122.59 -52.1243
18815 z
18816 " id="C3_323_739e309ee9"/>
18817 <path d="
18818 M238.941 -90.7285
18819 L242.707 -78.9477
18820 L244.894 -79.993
18821 L241.143 -91.6774
18822 L238.941 -90.7285
18823 z
18824 " id="C3_324_606cd60617"/>
18825 <path d="
18826 M196.933 -176.127
18827 L201.002 -175.776
18828 L203.212 -170.166
18829 L199.161 -170.409
18830 L196.933 -176.127
18831 z
18832 " id="C3_325_a6f1a3224a"/>
18833 <path d="
18834 M93.4696 -66.3424
18835 L97.5834 -61.6129
18836 L100.292 -57.4497
18837 L96.2393 -61.2154
18838 L93.4696 -66.3424
18839 z
18840 " id="C3_326_c0d66d7267"/>
18841 <path d="
18842 M109.726 -51.9318
18843 L113.732 -49.893
18844 L116.242 -49.6047
18845 L112.277 -50.7403
18846 L109.726 -51.9318
18847 z
18848 " id="C3_327_5db8659080"/>
18849 <path d="
18850 M79.5202 -85.9043
18851 L83.788 -78.2752
18852 L86.6474 -72.1775
18853 L82.4412 -79.1123
18854 L79.5202 -85.9043
18855 z
18856 " id="C3_328_795462806d"/>
18857 <path d="
18858 M120.206 -48.7907
18859 L124.173 -48.1693
18860 L126.536 -52.261
18861 L122.59 -52.1243
18862 L120.206 -48.7907
18863 z
18864 " id="C3_329_9f4598cbbf"/>
18865 <path d="
18866 M221.253 -161.665
18867 L225.229 -155.418
18868 L227.26 -147.688
18869 L223.319 -154.246
18870 L221.253 -161.665
18871 z
18872 " id="C3_32a_ad379ca8fa"/>
18873 <path d="
18874 M243.315 -48.3871
18875 L247.46 -48.4763
18876 L249.641 -49.4449
18877 L245.525 -50.045
18878 L243.315 -48.3871
18879 z
18880 " id="C3_32b_c0c837dd13"/>
18881 <path d="
18882 M123.244 -64.5613
18883 L127.141 -66.5275
18884 L129.345 -76.916
18885 L125.455 -74.0357
18886 L123.244 -64.5613
18887 z
18888 " id="C3_32c_fe17e41a9a"/>
18889 <path d="
18890 M235.301 -56.5218
18891 L239.269 -51.1142
18892 L241.51 -53.5194
18893 L237.573 -59.7033
18894 L235.301 -56.5218
18895 z
18896 " id="C3_32d_3132983948"/>
18897 <path d="
18898 M141.985 -156.952
18899 L145.831 -165.536
18900 L148.239 -166.304
18901 L144.388 -157.669
18902 L141.985 -156.952
18903 z
18904 " id="C3_32e_d229849b9a"/>
18905 <path d="
18906 M235.977 -71.827
18907 L239.833 -62.6411
18908 L242.076 -65.2211
18909 L238.245 -74.833
18910 L235.977 -71.827
18911 z
18912 " id="C3_32f_22f9814712"/>
18913 <path d="
18914 M150.649 -166.132
18915 L154.571 -172.683
18916 L156.976 -171.94
18917 L153.059 -164.953
18918 L150.649 -166.132
18919 z
18920 " id="C3_330_c946690aa5"/>
18921 <path d="
18922 M176.105 -177.817
18923 L180.148 -179.485
18924 L182.474 -177.005
18925 L178.441 -174.263
18926 L176.105 -177.817
18927 z
18928 " id="C3_331_3031fe641f"/>
18929 <path d="
18930 M113.732 -49.893
18931 L117.729 -48.2682
18932 L120.206 -48.7907
18933 L116.242 -49.6047
18934 L113.732 -49.893
18935 z
18936 " id="C3_332_3503e15c61"/>
18937 <path d="
18938 M89.3103 -71.9281
18939 L93.4696 -66.3424
18940 L96.2393 -61.2154
18941 L92.1427 -65.9135
18942 L89.3103 -71.9281
18943 z
18944 " id="C3_333_4dc442fe04"/>
18945 <path d="
18946 M124.896 -58.1292
18947 L128.828 -59.0572
18948 L131.065 -68.2456
18949 L127.141 -66.5275
18950 L124.896 -58.1292
18951 z
18952 " id="C3_334_aabba72f91"/>
18953 <path d="
18954 M232.841 -141.724
18955 L236.672 -130.783
18956 L238.689 -125.258
18957 L234.883 -136.008
18958 L232.841 -141.724
18959 z
18960 " id="C3_335_33c887af9a"/>
18961 <path d="
18962 M237.97 -116.469
18963 L241.715 -103.495
18964 L243.817 -101.665
18965 L240.085 -114.249
18966 L237.97 -116.469
18967 z
18968 " id="C3_336_a7cfcf23be"/>
18969 <path d="
18970 M201.002 -175.776
18971 L205.073 -174.737
18972 L207.262 -169.013
18973 L203.212 -170.166
18974 L201.002 -175.776
18975 z
18976 " id="C3_337_891191296d"/>
18977 <path d="
18978 M186.525 -178.519
18979 L190.588 -179.085
18980 L192.87 -175.741
18981 L188.816 -174.487
18982 L186.525 -178.519
18983 z
18984 " id="C3_338_c820ec9c58"/>
18985 <path d="
18986 M237.024 -48.7606
18987 L241.104 -46.9177
18988 L243.315 -48.3871
18989 L239.269 -51.1142
18990 L237.024 -48.7606
18991 z
18992 " id="C3_339_b24ab9dad0"/>
18993 <path d="
18994 M217.239 -166.593
18995 L221.253 -161.665
18996 L223.319 -154.246
18997 L219.341 -159.619
18998 L217.239 -166.593
18999 z
19000 " id="C3_33a_4e4d4c22c9"/>
19001 <path d="
19002 M124.173 -48.1693
19003 L128.148 -47.6265
19004 L130.497 -52.3256
19005 L126.536 -52.261
19006 L124.173 -48.1693
19007 z
19008 " id="C3_33b_75c1714ab0"/>
19009 <path d="
19010 M123.413 -113.195
19011 L127.137 -122.094
19012 L129.379 -131.372
19013 L125.643 -122.074
19014 L123.413 -113.195
19015 z
19016 " id="C3_33c_63ccdbbb90"/>
19017 <path d="
19018 M126.536 -52.261
19019 L130.497 -52.3256
19020 L132.781 -59.7512
19021 L128.828 -59.0572
19022 L126.536 -52.261
19023 z
19024 " id="C3_33d_47ed6f75b8"/>
19025 <path d="
19026 M122.148 -86.8658
19027 L125.957 -92.1648
19028 L128.128 -103.971
19029 L124.32 -97.7956
19030 L122.148 -86.8658
19031 z
19032 " id="C3_33e_86834c31bc"/>
19033 <path d="
19034 M233.022 -53.2401
19035 L237.024 -48.7606
19036 L239.269 -51.1142
19037 L235.301 -56.5218
19038 L233.022 -53.2401
19039 z
19040 " id="C3_33f_beb661c0b0"/>
19041 <path d="
19042 M233.689 -68.2885
19043 L237.573 -59.7033
19044 L239.833 -62.6411
19045 L235.977 -71.827
19046 L233.689 -68.2885
19047 z
19048 " id="C3_340_d74a165220"/>
19049 <path d="
19050 M236.705 -88.9405
19051 L240.49 -77.2229
19052 L242.707 -78.9477
19053 L238.941 -90.7285
19054 L236.705 -88.9405
19055 z
19056 " id="C3_341_216b66a5bc"/>
19057 <path d="
19058 M117.729 -48.2682
19059 L121.723 -46.9515
19060 L124.173 -48.1693
19061 L120.206 -48.7907
19062 L117.729 -48.2682
19063 z
19064 " id="C3_342_d264391b94"/>
19065 <path d="
19066 M205.073 -174.737
19067 L209.14 -172.957
19068 L211.305 -166.923
19069 L207.262 -169.013
19070 L205.073 -174.737
19071 z
19072 " id="C3_343_472d30612f"/>
19073 <path d="
19074 M227.107 -154.485
19075 L231.023 -145.868
19076 L233.043 -139.085
19077 L229.161 -147.852
19078 L227.107 -154.485
19079 z
19080 " id="C3_344_16c5e86aff"/>
19081 <path d="
19082 M169.724 -177.31
19083 L173.755 -179.369
19084 L176.105 -177.817
19085 L172.085 -174.568
19086 L169.724 -177.31
19087 z
19088 " id="C3_345_f2337ee73e"/>
19089 <path d="
19090 M236.317 -126.913
19091 L240.085 -114.249
19092 L242.158 -111.161
19093 L238.406 -123.469
19094 L236.317 -126.913
19095 z
19096 " id="C3_346_6b9c6c8689"/>
19097 <path d="
19098 M234.607 -135.395
19099 L238.406 -123.469
19100 L240.45 -119.135
19101 L236.672 -130.783
19102 L234.607 -135.395
19103 z
19104 " id="C3_347_6bdb6d78e6"/>
19105 <path d="
19106 M180.603 -138.741
19107 L184.635 -132.959
19108 L186.994 -146.11
19109 L182.945 -149.46
19110 L180.603 -138.741
19111 z
19112 " id="C3_348_971f1caf7b"/>
19113 <path d="
19114 M175.926 -136.185
19115 L179.98 -130.384
19116 L182.292 -119.134
19117 L178.271 -132.417
19118 L175.926 -136.185
19119 z
19120 " id="C3_349_7928e8d0c0"/>
19121 <path d="
19122 M156.976 -171.94
19123 L160.952 -176.487
19124 L163.342 -175.482
19125 L159.376 -170.154
19126 L156.976 -171.94
19127 z
19128 " id="C3_34a_ca9ef90d3a"/>
19129 <path d="
19130 M213.199 -170.302
19131 L217.239 -166.593
19132 L219.341 -159.619
19133 L215.334 -163.821
19134 L213.199 -170.302
19135 z
19136 " id="C3_34b_7056e11669"/>
19137 <path d="
19138 M209.14 -172.957
19139 L213.199 -170.302
19140 L215.334 -163.821
19141 L211.305 -166.923
19142 L209.14 -172.957
19143 z
19144 " id="C3_34c_804aa4311e"/>
19145 <path d="
19146 M237.392 -104.581
19147 L241.143 -91.6774
19148 L243.31 -91.8063
19149 L239.573 -104.492
19150 L237.392 -104.581
19151 z
19152 " id="C3_34d_377b3bde43"/>
19153 <path d="
19154 M85.1 -78.3842
19155 L89.3103 -71.9281
19156 L92.1427 -65.9135
19157 L87.9943 -71.5972
19158 L85.1 -78.3842
19159 z
19160 " id="C3_34e_1aa3e54dc2"/>
19161 <path d="
19162 M163.342 -175.482
19163 L167.353 -178.471
19164 L169.724 -177.31
19165 L165.725 -173.247
19166 L163.342 -175.482
19167 z
19168 " id="C3_34f_8b40f232f4"/>
19169 <path d="
19170 M69.4193 -105.676
19171 L73.8239 -96.0284
19172 L76.7731 -89.2632
19173 L72.4132 -98.6657
19174 L69.4193 -105.676
19175 z
19176 " id="C3_350_9e55b7b2a0"/>
19177 <path d="
19178 M241.104 -46.9177
19179 L245.28 -47.8144
19180 L247.46 -48.4763
19181 L243.315 -48.3871
19182 L241.104 -46.9177
19183 z
19184 " id="C3_351_83a38394fa"/>
19185 <path d="
19186 M122.733 -101.721
19187 L126.498 -109.008
19188 L128.695 -120.022
19189 L124.924 -112.096
19190 L122.733 -101.721
19191 z
19192 " id="C3_352_c8439ea9df"/>
19193 <path d="
19194 M184.635 -132.959
19195 L188.703 -137.268
19196 L191.072 -148.006
19197 L186.994 -146.11
19198 L184.635 -132.959
19199 z
19200 " id="C3_353_e618df2bd0"/>
19201 <path d="
19202 M75.1906 -94.3835
19203 L79.5202 -85.9043
19204 L82.4412 -79.1123
19205 L78.1665 -87.1067
19206 L75.1906 -94.3835
19207 z
19208 " id="C3_354_7febb26efe"/>
19209 <path d="
19210 M139.59 -155.196
19211 L143.429 -163.851
19212 L145.831 -165.536
19213 L141.985 -156.952
19214 L139.59 -155.196
19215 z
19216 " id="C3_355_78477136b9"/>
19217 <path d="
19218 M123.786 -80.9742
19219 L127.637 -85.073
19220 L129.808 -97.1326
19221 L125.957 -92.1648
19222 L123.786 -80.9742
19223 z
19224 " id="C3_356_aab11fab20"/>
19225 <path d="
19226 M179.98 -130.384
19227 L184.047 -134.7
19228 L186.362 -130.93
19229 L182.292 -119.134
19230 L179.98 -130.384
19231 z
19232 " id="C3_357_2c3a27b88c"/>
19233 <path d="
19234 M231.386 -64.3357
19235 L235.301 -56.5218
19236 L237.573 -59.7033
19237 L233.689 -68.2885
19238 L231.386 -64.3357
19239 z
19240 " id="C3_358_be1d1658ad"/>
19241 <path d="
19242 M121.723 -46.9515
19243 L125.719 -45.8477
19244 L128.148 -47.6265
19245 L124.173 -48.1693
19246 L121.723 -46.9515
19247 z
19248 " id="C3_359_1257dd7257"/>
19249 <path d="
19250 M128.148 -47.6265
19251 L132.134 -47.0684
19252 L134.474 -52.2118
19253 L130.497 -52.3256
19254 L128.148 -47.6265
19255 z
19256 " id="C3_35a_c8f654504e"/>
19257 <path d="
19258 M190.588 -179.085
19259 L194.661 -178.997
19260 L196.933 -176.127
19261 L192.87 -175.741
19262 L190.588 -179.085
19263 z
19264 " id="C3_35b_869998db0c"/>
19265 <path d="
19266 M230.74 -50.0272
19267 L234.778 -46.6098
19268 L237.024 -48.7606
19269 L233.022 -53.2401
19270 L230.74 -50.0272
19271 z
19272 " id="C3_35c_c6d98a7c24"/>
19273 <path d="
19274 M128.828 -59.0572
19275 L132.781 -59.7512
19276 L135.017 -69.5621
19277 L131.065 -68.2456
19278 L128.828 -59.0572
19279 z
19280 " id="C3_35d_5f2773fb98"/>
19281 <path d="
19282 M125.455 -74.0357
19283 L129.345 -76.916
19284 L131.525 -88.784
19285 L127.637 -85.073
19286 L125.455 -74.0357
19287 z
19288 " id="C3_35e_8793cdbd21"/>
19289 <path d="
19290 M127.141 -66.5275
19291 L131.065 -68.2456
19292 L133.267 -79.3835
19293 L129.345 -76.916
19294 L127.141 -66.5275
19295 z
19296 " id="C3_35f_b88bd326c2"/>
19297 <path d="
19298 M180.148 -179.485
19299 L184.206 -179.9
19300 L186.525 -178.519
19301 L182.474 -177.005
19302 L180.148 -179.485
19303 z
19304 " id="C3_360_991817c9f4"/>
19305 <path d="
19306 M234.778 -46.6098
19307 L238.893 -45.7675
19308 L241.104 -46.9177
19309 L237.024 -48.7606
19310 L234.778 -46.6098
19311 z
19312 " id="C3_361_de580f05a4"/>
19313 <path d="
19314 M125.643 -122.074
19315 L129.379 -131.372
19316 L131.653 -139.673
19317 L127.901 -130.199
19318 L125.643 -122.074
19319 z
19320 " id="C3_362_926a69094c"/>
19321 <path d="
19322 M130.497 -52.3256
19323 L134.474 -52.2118
19324 L136.756 -60.0953
19325 L132.781 -59.7512
19326 L130.497 -52.3256
19327 z
19328 " id="C3_363_b1bd376d5b"/>
19329 <path d="
19330 M234.439 -86.3263
19331 L238.245 -74.833
19332 L240.49 -77.2229
19333 L236.705 -88.9405
19334 L234.439 -86.3263
19335 z
19336 " id="C3_364_7281f01d8a"/>
19337 <path d="
19338 M174.211 -145.041
19339 L178.271 -132.417
19340 L180.603 -138.741
19341 L176.555 -148.929
19342 L174.211 -145.041
19343 z
19344 " id="C3_365_aaf3a3b4bd"/>
19345 <path d="
19346 M229.074 -60.1204
19347 L233.022 -53.2401
19348 L235.301 -56.5218
19349 L231.386 -64.3357
19350 L229.074 -60.1204
19351 z
19352 " id="C3_366_f311108cf3"/>
19353 <path d="
19354 M63.5127 -119.358
19355 L67.9884 -108.804
19356 L70.9564 -102.294
19357 L66.5088 -112.924
19358 L63.5127 -119.358
19359 z
19360 " id="C3_367_eb22b491cc"/>
19361 <path d="
19362 M148.239 -166.304
19363 L152.165 -172.552
19364 L154.571 -172.683
19365 L150.649 -166.132
19366 L148.239 -166.304
19367 z
19368 " id="C3_368_09d1a99c4d"/>
19369 <path d="
19370 M102.994 -59.0652
19371 L107.065 -55.6886
19372 L109.726 -51.9318
19373 L105.704 -54.4949
19374 L102.994 -59.0652
19375 z
19376 " id="C3_369_d9c9899ec2"/>
19377 <path d="
19378 M125.719 -45.8477
19379 L129.718 -44.8775
19380 L132.134 -47.0684
19381 L128.148 -47.6265
19382 L125.719 -45.8477
19383 z
19384 " id="C3_36a_c0dc62e6b4"/>
19385 <path d="
19386 M176.555 -148.929
19387 L180.603 -138.741
19388 L182.945 -149.46
19389 L178.895 -156.347
19390 L176.555 -148.929
19391 z
19392 " id="C3_36b_0a4663f416"/>
19393 <path d="
19394 M137.209 -152.387
19395 L141.035 -161.218
19396 L143.429 -163.851
19397 L139.59 -155.196
19398 L137.209 -152.387
19399 z
19400 " id="C3_36c_6485a22d33"/>
19401 <path d="
19402 M107.065 -55.6886
19403 L111.114 -52.8782
19404 L113.732 -49.893
19405 L109.726 -51.9318
19406 L107.065 -55.6886
19407 z
19408 " id="C3_36d_78e2f2859f"/>
19409 <path d="
19410 M80.8351 -85.6815
19411 L85.1 -78.3842
19412 L87.9943 -71.5972
19413 L83.788 -78.2752
19414 L80.8351 -85.6815
19415 z
19416 " id="C3_36e_3f6955302d"/>
19417 <path d="
19418 M98.8961 -63.084
19419 L102.994 -59.0652
19420 L105.704 -54.4949
19421 L101.659 -57.6897
19422 L98.8961 -63.084
19423 z
19424 " id="C3_36f_93cdcd1ec0"/>
19425 <path d="
19426 M226.757 -55.8248
19427 L230.74 -50.0272
19428 L233.022 -53.2401
19429 L229.074 -60.1204
19430 L226.757 -55.8248
19431 z
19432 " id="C3_370_ef9ad50fb1"/>
19433 <path d="
19434 M132.134 -47.0684
19435 L136.131 -46.4251
19436 L138.469 -51.841
19437 L134.474 -52.2118
19438 L132.134 -47.0684
19439 z
19440 " id="C3_371_bb4e392c60"/>
19441 <path d="
19442 M223.138 -161.638
19443 L227.107 -154.485
19444 L229.161 -147.852
19445 L225.229 -155.418
19446 L223.138 -161.638
19447 z
19448 " id="C3_372_429013948b"/>
19449 <path d="
19450 M173.755 -179.369
19451 L177.806 -179.665
19452 L180.148 -179.485
19453 L176.105 -177.817
19454 L173.755 -179.369
19455 z
19456 " id="C3_373_bfaf60e394"/>
19457 <path d="
19458 M194.661 -178.997
19459 L198.741 -178.478
19460 L201.002 -175.776
19461 L196.933 -176.127
19462 L194.661 -178.997
19463 z
19464 " id="C3_374_a7a60e65b7"/>
19465 <path d="
19466 M228.46 -47.0718
19467 L232.536 -44.8277
19468 L234.778 -46.6098
19469 L230.74 -50.0272
19470 L228.46 -47.0718
19471 z
19472 " id="C3_375_0d8273b350"/>
19473 <path d="
19474 M235.812 -117.731
19475 L239.573 -104.492
19476 L241.715 -103.495
19477 L237.97 -116.469
19478 L235.812 -117.731
19479 z
19480 " id="C3_376_18e6df86bd"/>
19481 <path d="
19482 M111.114 -52.8782
19483 L115.149 -50.5515
19484 L117.729 -48.2682
19485 L113.732 -49.893
19486 L111.114 -52.8782
19487 z
19488 " id="C3_377_83f5ab99cd"/>
19489 <path d="
19490 M228.949 -151.477
19491 L232.841 -141.724
19492 L234.883 -136.008
19493 L231.023 -145.868
19494 L228.949 -151.477
19495 z
19496 " id="C3_378_4b409ffdca"/>
19497 <path d="
19498 M127.901 -130.199
19499 L131.653 -139.673
19500 L133.959 -146.834
19501 L130.188 -137.377
19502 L127.901 -130.199
19503 z
19504 " id="C3_379_ef358daa9b"/>
19505 <path d="
19506 M232.146 -82.9314
19507 L235.977 -71.827
19508 L238.245 -74.833
19509 L234.439 -86.3263
19510 L232.146 -82.9314
19511 z
19512 " id="C3_37a_671d8980e1"/>
19513 <path d="
19514 M238.893 -45.7675
19515 L243.104 -47.5673
19516 L245.28 -47.8144
19517 L241.104 -46.9177
19518 L238.893 -45.7675
19519 z
19520 " id="C3_37b_8d08edc957"/>
19521 <path d="
19522 M235.172 -103.716
19523 L238.941 -90.7285
19524 L241.143 -91.6774
19525 L237.392 -104.581
19526 L235.172 -103.716
19527 z
19528 " id="C3_37c_2dba07855f"/>
19529 <path d="
19530 M124.32 -97.7956
19531 L128.128 -103.971
19532 L130.314 -115.845
19533 L126.498 -109.008
19534 L124.32 -97.7956
19535 z
19536 " id="C3_37d_aab24ddd63"/>
19537 <path d="
19538 M94.7643 -67.8079
19539 L98.8961 -63.084
19540 L101.659 -57.6897
19541 L97.5834 -61.6129
19542 L94.7643 -67.8079
19543 z
19544 " id="C3_37e_dc4b4796bd"/>
19545 <path d="
19546 M184.206 -179.9
19547 L188.274 -179.5
19548 L190.588 -179.085
19549 L186.525 -178.519
19550 L184.206 -179.9
19551 z
19552 " id="C3_37f_62d8414671"/>
19553 <path d="
19554 M134.474 -52.2118
19555 L138.469 -51.841
19556 L140.754 -60.0048
19557 L136.756 -60.0953
19558 L134.474 -52.2118
19559 z
19560 " id="C3_380_2330082b08"/>
19561 <path d="
19562 M224.442 -51.6571
19563 L228.46 -47.0718
19564 L230.74 -50.0272
19565 L226.757 -55.8248
19566 L224.442 -51.6571
19567 z
19568 " id="C3_381_4bd9f68470"/>
19569 <path d="
19570 M182.945 -149.46
19571 L186.994 -146.11
19572 L189.364 -157.814
19573 L185.299 -160.042
19574 L182.945 -149.46
19575 z
19576 " id="C3_382_dd54c19ad8"/>
19577 <path d="
19578 M134.845 -148.495
19579 L138.656 -157.562
19580 L141.035 -161.218
19581 L137.209 -152.387
19582 L134.845 -148.495
19583 z
19584 " id="C3_383_692b2f1e6c"/>
19585 <path d="
19586 M132.781 -59.7512
19587 L136.756 -60.0953
19588 L138.996 -70.3559
19589 L135.017 -69.5621
19590 L132.781 -59.7512
19591 z
19592 " id="C3_384_1f6fd4437f"/>
19593 <path d="
19594 M115.149 -50.5515
19595 L119.175 -48.6269
19596 L121.723 -46.9515
19597 L117.729 -48.2682
19598 L115.149 -50.5515
19599 z
19600 " id="C3_385_af224d500a"/>
19601 <path d="
19602 M154.571 -172.683
19603 L158.557 -176.542
19604 L160.952 -176.487
19605 L156.976 -171.94
19606 L154.571 -172.683
19607 z
19608 " id="C3_386_a5c6736134"/>
19609 <path d="
19610 M167.353 -178.471
19611 L171.395 -179.158
19612 L173.755 -179.369
19613 L169.724 -177.31
19614 L167.353 -178.471
19615 z
19616 " id="C3_387_b6ab2b294a"/>
19617 <path d="
19618 M232.536 -44.8277
19619 L236.688 -45.0765
19620 L238.893 -45.7675
19621 L234.778 -46.6098
19622 L232.536 -44.8277
19623 z
19624 " id="C3_388_36f58cb3b1"/>
19625 <path d="
19626 M124.924 -112.096
19627 L128.695 -120.022
19628 L130.922 -130.404
19629 L127.137 -122.094
19630 L124.924 -112.096
19631 z
19632 " id="C3_389_63045713de"/>
19633 <path d="
19634 M129.718 -44.8775
19635 L133.725 -43.9811
19636 L136.131 -46.4251
19637 L132.134 -47.0684
19638 L129.718 -44.8775
19639 z
19640 " id="C3_38a_45d36702b8"/>
19641 <path d="
19642 M130.188 -137.377
19643 L133.959 -146.834
19644 L136.295 -152.792
19645 L132.504 -143.492
19646 L130.188 -137.377
19647 z
19648 " id="C3_38b_9d6780ea3f"/>
19649 <path d="
19650 M229.832 -78.8357
19651 L233.689 -68.2885
19652 L235.977 -71.827
19653 L232.146 -82.9314
19654 L229.832 -78.8357
19655 z
19656 " id="C3_38c_44b030739f"/>
19657 <path d="
19658 M132.504 -143.492
19659 L136.295 -152.792
19660 L138.656 -157.562
19661 L134.845 -148.495
19662 L132.504 -143.492
19663 z
19664 " id="C3_38d_dbd194b0db"/>
19665 <path d="
19666 M160.952 -176.487
19667 L164.976 -178.377
19668 L167.353 -178.471
19669 L163.342 -175.482
19670 L160.952 -176.487
19671 z
19672 " id="C3_38e_63ef234392"/>
19673 <path d="
19674 M70.803 -103.55
19675 L75.1906 -94.3835
19676 L78.1665 -87.1067
19677 L73.8239 -96.0284
19678 L70.803 -103.55
19679 z
19680 " id="C3_38f_543d60118b"/>
19681 <path d="
19682 M136.131 -46.4251
19683 L140.14 -45.6535
19684 L142.48 -51.1648
19685 L138.469 -51.841
19686 L136.131 -46.4251
19687 z
19688 " id="C3_390_b4d1d2afe1"/>
19689 <path d="
19690 M198.741 -178.478
19691 L202.827 -177.608
19692 L205.073 -174.737
19693 L201.002 -175.776
19694 L198.741 -178.478
19695 z
19696 " id="C3_391_b6bf736e4f"/>
19697 <path d="
19698 M131.065 -68.2456
19699 L135.017 -69.5621
19700 L137.224 -81.2821
19701 L133.267 -79.3835
19702 L131.065 -68.2456
19703 z
19704 " id="C3_392_ee7ae4d28b"/>
19705 <path d="
19706 M90.5926 -73.2784
19707 L94.7643 -67.8079
19708 L97.5834 -61.6129
19709 L93.4696 -66.3424
19710 L90.5926 -73.2784
19711 z
19712 " id="C3_393_fb439a72f1"/>
19713 <path d="
19714 M171.846 -146.403
19715 L175.926 -136.185
19716 L178.271 -132.417
19717 L174.211 -145.041
19718 L171.846 -146.403
19719 z
19720 " id="C3_394_1e1562762f"/>
19721 <path d="
19722 M186.362 -130.93
19723 L190.486 -142.104
19724 L192.83 -146.01
19725 L188.703 -137.268
19726 L186.362 -130.93
19727 z
19728 " id="C3_395_1b6162b957"/>
19729 <path d="
19730 M119.175 -48.6269
19731 L123.196 -47.0289
19732 L125.719 -45.8477
19733 L121.723 -46.9515
19734 L119.175 -48.6269
19735 z
19736 " id="C3_396_444082bdb8"/>
19737 <path d="
19738 M178.895 -156.347
19739 L182.945 -149.46
19740 L185.299 -160.042
19741 L181.24 -164.575
19742 L178.895 -156.347
19743 z
19744 " id="C3_397_1aead51b88"/>
19745 <path d="
19746 M64.9635 -115.782
19747 L69.4193 -105.676
19748 L72.4132 -98.6657
19749 L67.9884 -108.804
19750 L64.9635 -115.782
19751 z
19752 " id="C3_398_38def47e97"/>
19753 <path d="
19754 M186.994 -146.11
19755 L191.072 -148.006
19756 L193.452 -158.609
19757 L189.364 -157.814
19758 L186.994 -146.11
19759 z
19760 " id="C3_399_60e557de26"/>
19761 <path d="
19762 M222.131 -47.843
19763 L226.186 -44.5745
19764 L228.46 -47.0718
19765 L224.442 -51.6571
19766 L222.131 -47.843
19767 z
19768 " id="C3_39a_5b7f6264ce"/>
19769 <path d="
19770 M227.5 -74.1556
19771 L231.386 -64.3357
19772 L233.689 -68.2885
19773 L229.832 -78.8357
19774 L227.5 -74.1556
19775 z
19776 " id="C3_39b_9e1d004f50"/>
19777 <path d="
19778 M145.831 -165.536
19779 L149.756 -171.68
19780 L152.165 -172.552
19781 L148.239 -166.304
19782 L145.831 -165.536
19783 z
19784 " id="C3_39c_af81f95500"/>
19785 <path d="
19786 M234.183 -129.364
19787 L237.97 -116.469
19788 L240.085 -114.249
19789 L236.317 -126.913
19790 L234.183 -129.364
19791 z
19792 " id="C3_39d_87c9561015"/>
19793 <path d="
19794 M177.806 -179.665
19795 L181.869 -178.66
19796 L184.206 -179.9
19797 L180.148 -179.485
19798 L177.806 -179.665
19799 z
19800 " id="C3_39e_5589f41e04"/>
19801 <path d="
19802 M125.957 -92.1648
19803 L129.808 -97.1326
19804 L131.985 -109.626
19805 L128.128 -103.971
19806 L125.957 -92.1648
19807 z
19808 " id="C3_39f_f57f4d176e"/>
19809 <path d="
19810 M219.124 -167.257
19811 L223.138 -161.638
19812 L225.229 -155.418
19813 L221.253 -161.665
19814 L219.124 -167.257
19815 z
19816 " id="C3_3a0_82c28bb26f"/>
19817 <path d="
19818 M226.186 -44.5745
19819 L230.299 -43.5865
19820 L232.536 -44.8277
19821 L228.46 -47.0718
19822 L226.186 -44.5745
19823 z
19824 " id="C3_3a1_7ad5ef6190"/>
19825 <path d="
19826 M230.748 -146.337
19827 L234.607 -135.395
19828 L236.672 -130.783
19829 L232.841 -141.724
19830 L230.748 -146.337
19831 z
19832 " id="C3_3a2_d57513a399"/>
19833 <path d="
19834 M129.345 -76.916
19835 L133.267 -79.3835
19836 L135.454 -91.9161
19837 L131.525 -88.784
19838 L129.345 -76.916
19839 z
19840 " id="C3_3a3_ac270475fd"/>
19841 <path d="
19842 M188.274 -179.5
19843 L192.35 -178.743
19844 L194.661 -178.997
19845 L190.588 -179.085
19846 L188.274 -179.5
19847 z
19848 " id="C3_3a4_2e97ac61bd"/>
19849 <path d="
19850 M138.469 -51.841
19851 L142.48 -51.1648
19852 L144.772 -59.4278
19853 L140.754 -60.0048
19854 L138.469 -51.841
19855 z
19856 " id="C3_3a5_0f53a863ab"/>
19857 <path d="
19858 M225.158 -69.0444
19859 L229.074 -60.1204
19860 L231.386 -64.3357
19861 L227.5 -74.1556
19862 L225.158 -69.0444
19863 z
19864 " id="C3_3a6_3ea12adc48"/>
19865 <path d="
19866 M133.725 -43.9811
19867 L137.739 -43.1217
19868 L140.14 -45.6535
19869 L136.131 -46.4251
19870 L133.725 -43.9811
19871 z
19872 " id="C3_3a7_3ac5a7e834"/>
19873 <path d="
19874 M127.637 -85.073
19875 L131.525 -88.784
19876 L133.703 -101.539
19877 L129.808 -97.1326
19878 L127.637 -85.073
19879 z
19880 " id="C3_3a8_e39ae7d886"/>
19881 <path d="
19882 M202.827 -177.608
19883 L206.915 -176.304
19884 L209.14 -172.957
19885 L205.073 -174.737
19886 L202.827 -177.608
19887 z
19888 " id="C3_3a9_2cbaad6454"/>
19889 <path d="
19890 M76.5146 -93.7414
19891 L80.8351 -85.6815
19892 L83.788 -78.2752
19893 L79.5202 -85.9043
19894 L76.5146 -93.7414
19895 z
19896 " id="C3_3aa_9f4e1437f4"/>
19897 <path d="
19898 M222.809 -63.692
19899 L226.757 -55.8248
19900 L229.074 -60.1204
19901 L225.158 -69.0444
19902 L222.809 -63.692
19903 z
19904 " id="C3_3ab_3ab9816925"/>
19905 <path d="
19906 M232.495 -138.969
19907 L236.317 -126.913
19908 L238.406 -123.469
19909 L234.607 -135.395
19910 L232.495 -138.969
19911 z
19912 " id="C3_3ac_83a0a4d8a5"/>
19913 <path d="
19914 M188.703 -137.268
19915 L192.83 -146.01
19916 L195.197 -153.459
19917 L191.072 -148.006
19918 L188.703 -137.268
19919 z
19920 " id="C3_3ad_afb88c9045"/>
19921 <path d="
19922 M232.917 -101.881
19923 L236.705 -88.9405
19924 L238.941 -90.7285
19925 L235.172 -103.716
19926 L232.917 -101.881
19927 z
19928 " id="C3_3ae_80933b2b0a"/>
19929 <path d="
19930 M220.46 -58.3203
19931 L224.442 -51.6571
19932 L226.757 -55.8248
19933 L222.809 -63.692
19934 L220.46 -58.3203
19935 z
19936 " id="C3_3af_b48e910b1b"/>
19937 <path d="
19938 M140.14 -45.6535
19939 L144.162 -44.7387
19940 L146.505 -50.1666
19941 L142.48 -51.1648
19942 L140.14 -45.6535
19943 z
19944 " id="C3_3b0_1a2b512aac"/>
19945 <path d="
19946 M123.196 -47.0289
19947 L127.216 -45.6938
19948 L129.718 -44.8775
19949 L125.719 -45.8477
19950 L123.196 -47.0289
19951 z
19952 " id="C3_3b1_d4a50d4059"/>
19953 <path d="
19954 M136.756 -60.0953
19955 L140.754 -60.0048
19956 L143.003 -70.5398
19957 L138.996 -70.3559
19958 L136.756 -60.0953
19959 z
19960 " id="C3_3b2_f57ba3ee3c"/>
19961 <path d="
19962 M171.395 -179.158
19963 L175.456 -177.844
19964 L177.806 -179.665
19965 L173.755 -179.369
19966 L171.395 -179.158
19967 z
19968 " id="C3_3b3_2331b1b6de"/>
19969 <path d="
19970 M215.074 -171.422
19971 L219.124 -167.257
19972 L221.253 -161.665
19973 L217.239 -166.593
19974 L215.074 -171.422
19975 z
19976 " id="C3_3b4_3dac2fb99a"/>
19977 <path d="
19978 M218.116 -53.1771
19979 L222.131 -47.843
19980 L224.442 -51.6571
19981 L220.46 -58.3203
19982 L218.116 -53.1771
19983 z
19984 " id="C3_3b5_f8e8507881"/>
19985 <path d="
19986 M172.479 -158.993
19987 L176.555 -148.929
19988 L178.895 -156.347
19989 L174.827 -164.054
19990 L172.479 -158.993
19991 z
19992 " id="C3_3b6_c3b346c186"/>
19993 <path d="
19994 M86.376 -79.5088
19995 L90.5926 -73.2784
19996 L93.4696 -66.3424
19997 L89.3103 -71.9281
19998 L86.376 -79.5088
19999 z
20000 " id="C3_3b7_e2c677be41"/>
20001 <path d="
20002 M206.915 -176.304
20003 L211.001 -174.342
20004 L213.199 -170.302
20005 L209.14 -172.957
20006 L206.915 -176.304
20007 z
20008 " id="C3_3b8_c3475a5e58"/>
20009 <path d="
20010 M181.869 -178.66
20011 L185.938 -176.983
20012 L188.274 -179.5
20013 L184.206 -179.9
20014 L181.869 -178.66
20015 z
20016 " id="C3_3b9_857c33e477"/>
20017 <path d="
20018 M236.688 -45.0765
20019 L240.933 -47.8481
20020 L243.104 -47.5673
20021 L238.893 -45.7675
20022 L236.688 -45.0765
20023 z
20024 " id="C3_3ba_03f60ee8c9"/>
20025 <path d="
20026 M219.83 -44.6174
20027 L223.921 -42.7387
20028 L226.186 -44.5745
20029 L222.131 -47.843
20030 L219.83 -44.6174
20031 z
20032 " id="C3_3bb_44f28d5ecf"/>
20033 <path d="
20034 M211.001 -174.342
20035 L215.074 -171.422
20036 L217.239 -166.593
20037 L213.199 -170.302
20038 L211.001 -174.342
20039 z
20040 " id="C3_3bc_3186dece5e"/>
20041 <path d="
20042 M230.299 -43.5865
20043 L234.489 -44.9873
20044 L236.688 -45.0765
20045 L232.536 -44.8277
20046 L230.299 -43.5865
20047 z
20048 " id="C3_3bd_1172434673"/>
20049 <path d="
20050 M142.48 -51.1648
20051 L146.505 -50.1666
20052 L148.807 -58.3463
20053 L144.772 -59.4278
20054 L142.48 -51.1648
20055 z
20056 " id="C3_3be_80e1fe1124"/>
20057 <path d="
20058 M233.613 -117.977
20059 L237.392 -104.581
20060 L239.573 -104.492
20061 L235.812 -117.731
20062 L233.613 -117.977
20063 z
20064 " id="C3_3bf_ebe2bcf902"/>
20065 <path d="
20066 M192.35 -178.743
20067 L196.435 -177.982
20068 L198.741 -178.478
20069 L194.661 -178.997
20070 L192.35 -178.743
20071 z
20072 " id="C3_3c0_2c56482ad3"/>
20073 <path d="
20074 M224.997 -159.682
20075 L228.949 -151.477
20076 L231.023 -145.868
20077 L227.107 -154.485
20078 L224.997 -159.682
20079 z
20080 " id="C3_3c1_efaf70590e"/>
20081 <path d="
20082 M170.12 -156.233
20083 L174.211 -145.041
20084 L176.555 -148.929
20085 L172.479 -158.993
20086 L170.12 -156.233
20087 z
20088 " id="C3_3c2_f990908c87"/>
20089 <path d="
20090 M185.299 -160.042
20091 L189.364 -157.814
20092 L191.735 -167.374
20093 L187.658 -168.929
20094 L185.299 -160.042
20095 z
20096 " id="C3_3c3_a07f36efa7"/>
20097 <path d="
20098 M127.137 -122.094
20099 L130.922 -130.404
20100 L133.182 -139.806
20101 L129.379 -131.372
20102 L127.137 -122.094
20103 z
20104 " id="C3_3c4_84c1a8cf32"/>
20105 <path d="
20106 M215.781 -48.5255
20107 L219.83 -44.6174
20108 L222.131 -47.843
20109 L218.116 -53.1771
20110 L215.781 -48.5255
20111 z
20112 " id="C3_3c5_303793f3f2"/>
20113 <path d="
20114 M181.24 -164.575
20115 L185.299 -160.042
20116 L187.658 -168.929
20117 L183.59 -171.806
20118 L181.24 -164.575
20119 z
20120 " id="C3_3c6_c4464e3587"/>
20121 <path d="
20122 M174.827 -164.054
20123 L178.895 -156.347
20124 L181.24 -164.575
20125 L177.175 -169.901
20126 L174.827 -164.054
20127 z
20128 " id="C3_3c7_204fb0eb30"/>
20129 <path d="
20130 M137.739 -43.1217
20131 L141.762 -42.2868
20132 L144.162 -44.7387
20133 L140.14 -45.6535
20134 L137.739 -43.1217
20135 z
20136 " id="C3_3c8_168108e44c"/>
20137 <path d="
20138 M164.976 -178.377
20139 L169.031 -177.641
20140 L171.395 -179.158
20141 L167.353 -178.471
20142 L164.976 -178.377
20143 z
20144 " id="C3_3c9_85892ab81d"/>
20145 <path d="
20146 M152.165 -172.552
20147 L156.158 -175.938
20148 L158.557 -176.542
20149 L154.571 -172.683
20150 L152.165 -172.552
20151 z
20152 " id="C3_3ca_9ef3c35f69"/>
20153 <path d="
20154 M127.216 -45.6938
20155 L131.237 -44.5732
20156 L133.725 -43.9811
20157 L129.718 -44.8775
20158 L127.216 -45.6938
20159 z
20160 " id="C3_3cb_849e771197"/>
20161 <path d="
20162 M175.456 -177.844
20163 L179.523 -175.112
20164 L181.869 -178.66
20165 L177.806 -179.665
20166 L175.456 -177.844
20167 z
20168 " id="C3_3cc_27f56a7647"/>
20169 <path d="
20170 M144.162 -44.7387
20171 L148.194 -43.6951
20172 L150.544 -48.8618
20173 L146.505 -50.1666
20174 L144.162 -44.7387
20175 z
20176 " id="C3_3cd_d1933ae458"/>
20177 <path d="
20178 M126.498 -109.008
20179 L130.314 -115.845
20180 L132.525 -127.265
20181 L128.695 -120.022
20182 L126.498 -109.008
20183 z
20184 " id="C3_3ce_5db3bfc24f"/>
20185 <path d="
20186 M135.017 -69.5621
20187 L138.996 -70.3559
20188 L141.213 -82.4919
20189 L137.224 -81.2821
20190 L135.017 -69.5621
20191 z
20192 " id="C3_3cf_a5e44a5462"/>
20193 <path d="
20194 M143.429 -163.851
20195 L147.348 -170.112
20196 L149.756 -171.68
20197 L145.831 -165.536
20198 L143.429 -163.851
20199 z
20200 " id="C3_3d0_a37d3bc1a9"/>
20201 <path d="
20202 M223.921 -42.7387
20203 L228.072 -43.0566
20204 L230.299 -43.5865
20205 L226.186 -44.5745
20206 L223.921 -42.7387
20207 z
20208 " id="C3_3d1_1988f2d9f3"/>
20209 <path d="
20210 M185.938 -176.983
20211 L190.012 -175.319
20212 L192.35 -178.743
20213 L188.274 -179.5
20214 L185.938 -176.983
20215 z
20216 " id="C3_3d2_b1afb401c9"/>
20217 <path d="
20218 M158.557 -176.542
20219 L162.593 -177.463
20220 L164.976 -178.377
20221 L160.952 -176.487
20222 L158.557 -176.542
20223 z
20224 " id="C3_3d3_377dc230fc"/>
20225 <path d="
20226 M179.523 -175.112
20227 L183.59 -171.806
20228 L185.938 -176.983
20229 L181.869 -178.66
20230 L179.523 -175.112
20231 z
20232 " id="C3_3d4_191fc1df1e"/>
20233 <path d="
20234 M177.175 -169.901
20235 L181.24 -164.575
20236 L183.59 -171.806
20237 L179.523 -175.112
20238 L177.175 -169.901
20239 z
20240 " id="C3_3d5_9240d84b06"/>
20241 <path d="
20242 M230.63 -99.0847
20243 L234.439 -86.3263
20244 L236.705 -88.9405
20245 L232.917 -101.881
20246 L230.63 -99.0847
20247 z
20248 " id="C3_3d6_222ab5a42b"/>
20249 <path d="
20250 M140.754 -60.0048
20251 L144.772 -59.4278
20252 L147.033 -70.0609
20253 L143.003 -70.5398
20254 L140.754 -60.0048
20255 z
20256 " id="C3_3d7_9fb9e14f81"/>
20257 <path d="
20258 M184.047 -134.7
20259 L188.163 -143.462
20260 L190.486 -142.104
20261 L186.362 -130.93
20262 L184.047 -134.7
20263 z
20264 " id="C3_3d8_125fd3fb10"/>
20265 <path d="
20266 M183.59 -171.806
20267 L187.658 -168.929
20268 L190.012 -175.319
20269 L185.938 -176.983
20270 L183.59 -171.806
20271 z
20272 " id="C3_3d9_e55b2761f1"/>
20273 <path d="
20274 M146.505 -50.1666
20275 L150.544 -48.8618
20276 L152.858 -56.7763
20277 L148.807 -58.3463
20278 L146.505 -50.1666
20279 z
20280 " id="C3_3da_f26e24b4e7"/>
20281 <path d="
20282 M213.458 -44.6323
20283 L217.539 -42.2116
20284 L219.83 -44.6174
20285 L215.781 -48.5255
20286 L213.458 -44.6323
20287 z
20288 " id="C3_3db_edcdab4b08"/>
20289 <path d="
20290 M189.364 -157.814
20291 L193.452 -158.609
20292 L195.831 -167.513
20293 L191.735 -167.374
20294 L189.364 -157.814
20295 z
20296 " id="C3_3dc_1f3598658d"/>
20297 <path d="
20298 M196.435 -177.982
20299 L200.531 -177.35
20300 L202.827 -177.608
20301 L198.741 -178.478
20302 L196.435 -177.982
20303 z
20304 " id="C3_3dd_4c4476b78e"/>
20305 <path d="
20306 M169.031 -177.641
20307 L173.102 -174.6
20308 L175.456 -177.844
20309 L171.395 -179.158
20310 L169.031 -177.641
20311 z
20312 " id="C3_3de_eeb7bfc9b9"/>
20313 <path d="
20314 M173.102 -174.6
20315 L177.175 -169.901
20316 L179.523 -175.112
20317 L175.456 -177.844
20318 L173.102 -174.6
20319 z
20320 " id="C3_3df_f8e8ee0cb1"/>
20321 <path d="
20322 M141.762 -42.2868
20323 L145.793 -41.4889
20324 L148.194 -43.6951
20325 L144.162 -44.7387
20326 L141.762 -42.2868
20327 z
20328 " id="C3_3e0_b6479167d6"/>
20329 <path d="
20330 M191.072 -148.006
20331 L195.197 -153.459
20332 L197.577 -161.72
20333 L193.452 -158.609
20334 L191.072 -148.006
20335 z
20336 " id="C3_3e1_6d9b26885e"/>
20337 <path d="
20338 M148.194 -43.6951
20339 L152.235 -42.5653
20340 L154.593 -47.2975
20341 L150.544 -48.8618
20342 L148.194 -43.6951
20343 z
20344 " id="C3_3e2_a569f770bb"/>
20345 <path d="
20346 M66.3661 -113.18
20347 L70.803 -103.55
20348 L73.8239 -96.0284
20349 L69.4193 -105.676
20350 L66.3661 -113.18
20351 z
20352 " id="C3_3e3_d1fbb7c4c6"/>
20353 <path d="
20354 M82.1112 -86.4768
20355 L86.376 -79.5088
20356 L89.3103 -71.9281
20357 L85.1 -78.3842
20358 L82.1112 -86.4768
20359 z
20360 " id="C3_3e4_96ff68c087"/>
20361 <path d="
20362 M211.759 -54.2073
20363 L215.781 -48.5255
20364 L218.116 -53.1771
20365 L214.123 -60.2699
20366 L211.759 -54.2073
20367 z
20368 " id="C3_3e5_1074b69fb7"/>
20369 <path d="
20370 M217.539 -42.2116
20371 L221.666 -41.7595
20372 L223.921 -42.7387
20373 L219.83 -44.6174
20374 L217.539 -42.2116
20375 z
20376 " id="C3_3e6_118999895f"/>
20377 <path d="
20378 M131.237 -44.5732
20379 L135.262 -43.6369
20380 L137.739 -43.1217
20381 L133.725 -43.9811
20382 L131.237 -44.5732
20383 z
20384 " id="C3_3e7_fda60fcbbb"/>
20385 <path d="
20386 M187.658 -168.929
20387 L191.735 -167.374
20388 L194.096 -174.224
20389 L190.012 -175.319
20390 L187.658 -168.929
20391 z
20392 " id="C3_3e8_8160ecd780"/>
20393 <path d="
20394 M173.549 -144.397
20395 L177.631 -141.022
20396 L179.98 -130.384
20397 L175.926 -136.185
20398 L173.549 -144.397
20399 z
20400 " id="C3_3e9_6532f5f7ec"/>
20401 <path d="
20402 M209.406 -48.8152
20403 L213.458 -44.6323
20404 L215.781 -48.5255
20405 L211.759 -54.2073
20406 L209.406 -48.8152
20407 z
20408 " id="C3_3ea_ff40685bd3"/>
20409 <path d="
20410 M190.012 -175.319
20411 L194.096 -174.224
20412 L196.435 -177.982
20413 L192.35 -178.743
20414 L190.012 -175.319
20415 z
20416 " id="C3_3eb_8ef134f0c5"/>
20417 <path d="
20418 M214.123 -60.2699
20419 L218.116 -53.1771
20420 L220.46 -58.3203
20421 L216.496 -66.7032
20422 L214.123 -60.2699
20423 z
20424 " id="C3_3ec_c6d8353831"/>
20425 <path d="
20426 M133.267 -79.3835
20427 L137.224 -81.2821
20428 L139.421 -94.3192
20429 L135.454 -91.9161
20430 L133.267 -79.3835
20431 z
20432 " id="C3_3ed_af677fd029"/>
20433 <path d="
20434 M170.746 -170.775
20435 L174.827 -164.054
20436 L177.175 -169.901
20437 L173.102 -174.6
20438 L170.746 -170.775
20439 z
20440 " id="C3_3ee_13130c2328"/>
20441 <path d="
20442 M150.544 -48.8618
20443 L154.593 -47.2975
20444 L156.919 -54.7677
20445 L152.858 -56.7763
20446 L150.544 -48.8618
20447 z
20448 " id="C3_3ef_b9146b0850"/>
20449 <path d="
20450 M228.315 -95.3658
20451 L232.146 -82.9314
20452 L234.439 -86.3263
20453 L230.63 -99.0847
20454 L228.315 -95.3658
20455 z
20456 " id="C3_3f0_c0e4ab67d4"/>
20457 <path d="
20458 M72.1412 -102.431
20459 L76.5146 -93.7414
20460 L79.5202 -85.9043
20461 L75.1906 -94.3835
20462 L72.1412 -102.431
20463 z
20464 " id="C3_3f1_eb35188162"/>
20465 <path d="
20466 M129.379 -131.372
20467 L133.182 -139.806
20468 L135.479 -147.986
20469 L131.653 -139.673
20470 L129.379 -131.372
20471 z
20472 " id="C3_3f2_908262949d"/>
20473 <path d="
20474 M216.496 -66.7032
20475 L220.46 -58.3203
20476 L222.809 -63.692
20477 L218.874 -73.2185
20478 L216.496 -66.7032
20479 z
20480 " id="C3_3f3_32b9d81faf"/>
20481 <path d="
20482 M144.772 -59.4278
20483 L148.807 -58.3463
20484 L151.083 -68.9006
20485 L147.033 -70.0609
20486 L144.772 -59.4278
20487 z
20488 " id="C3_3f4_e107731247"/>
20489 <path d="
20490 M128.128 -103.971
20491 L131.985 -109.626
20492 L134.184 -121.957
20493 L130.314 -115.845
20494 L128.128 -103.971
20495 z
20496 " id="C3_3f5_7f06961367"/>
20497 <path d="
20498 M141.035 -161.218
20499 L144.944 -167.797
20500 L147.348 -170.112
20501 L143.429 -163.851
20502 L141.035 -161.218
20503 z
20504 " id="C3_3f6_20b3c8f746"/>
20505 <path d="
20506 M207.068 -44.389
20507 L211.148 -41.7531
20508 L213.458 -44.6323
20509 L209.406 -48.8152
20510 L207.068 -44.389
20511 z
20512 " id="C3_3f7_70f60b4822"/>
20513 <path d="
20514 M232.005 -130.765
20515 L235.812 -117.731
20516 L237.97 -116.469
20517 L234.183 -129.364
20518 L232.005 -130.765
20519 z
20520 " id="C3_3f8_d23ed7c295"/>
20521 <path d="
20522 M60.4731 -126.017
20523 L64.9635 -115.782
20524 L67.9884 -108.804
20525 L63.5127 -119.358
20526 L60.4731 -126.017
20527 z
20528 " id="C3_3f9_9f62e8e856"/>
20529 <path d="
20530 M220.989 -166.136
20531 L224.997 -159.682
20532 L227.107 -154.485
20533 L223.138 -161.638
20534 L220.989 -166.136
20535 z
20536 " id="C3_3fa_91f870f225"/>
20537 <path d="
20538 M168.384 -167.374
20539 L172.479 -158.993
20540 L174.827 -164.054
20541 L170.746 -170.775
20542 L168.384 -167.374
20543 z
20544 " id="C3_3fb_7d7ccf952a"/>
20545 <path d="
20546 M226.822 -155.784
20547 L230.748 -146.337
20548 L232.841 -141.724
20549 L228.949 -151.477
20550 L226.822 -155.784
20551 z
20552 " id="C3_3fc_0161aff973"/>
20553 <path d="
20554 M167.738 -156.498
20555 L171.846 -146.403
20556 L174.211 -145.041
20557 L170.12 -156.233
20558 L167.738 -156.498
20559 z
20560 " id="C3_3fd_4076f5ceba"/>
20561 <path d="
20562 M152.235 -42.5653
20563 L156.285 -41.4193
20564 L158.65 -45.5518
20565 L154.593 -47.2975
20566 L152.235 -42.5653
20567 z
20568 " id="C3_3fe_be0196a5bc"/>
20569 <path d="
20570 M162.593 -177.463
20571 L166.662 -175.448
20572 L169.031 -177.641
20573 L164.976 -178.377
20574 L162.593 -177.463
20575 z
20576 " id="C3_3ff_652f90f928"/>
20577 <path d="
20578 M200.531 -177.35
20579 L204.635 -176.714
20580 L206.915 -176.304
20581 L202.827 -177.608
20582 L200.531 -177.35
20583 z
20584 " id="C3_400_c6b8edc4d5"/>
20585 <path d="
20586 M218.874 -73.2185
20587 L222.809 -63.692
20588 L225.158 -69.0444
20589 L221.25 -79.5516
20590 L218.874 -73.2185
20591 z
20592 " id="C3_401_e791e9750f"/>
20593 <path d="
20594 M211.148 -41.7531
20595 L215.262 -40.8417
20596 L217.539 -42.2116
20597 L213.458 -44.6323
20598 L211.148 -41.7531
20599 z
20600 " id="C3_402_9f1ab2e9bf"/>
20601 <path d="
20602 M154.593 -47.2975
20603 L158.65 -45.5518
20604 L160.988 -52.4039
20605 L156.919 -54.7677
20606 L154.593 -47.2975
20607 z
20608 " id="C3_403_cb953ca0f5"/>
20609 <path d="
20610 M138.996 -70.3559
20611 L143.003 -70.5398
20612 L145.233 -82.9282
20613 L141.213 -82.4919
20614 L138.996 -70.3559
20615 z
20616 " id="C3_404_f822d871f8"/>
20617 <path d="
20618 M177.631 -141.022
20619 L181.718 -142.921
20620 L184.047 -134.7
20621 L179.98 -130.384
20622 L177.631 -141.022
20623 z
20624 " id="C3_405_7e5ac3655c"/>
20625 <path d="
20626 M225.976 -90.7931
20627 L229.832 -78.8357
20628 L232.146 -82.9314
20629 L228.315 -95.3658
20630 L225.976 -90.7931
20631 z
20632 " id="C3_406_a75db6220c"/>
20633 <path d="
20634 M145.793 -41.4889
20635 L149.832 -40.7654
20636 L152.235 -42.5653
20637 L148.194 -43.6951
20638 L145.793 -41.4889
20639 z
20640 " id="C3_407_c23940f3ec"/>
20641 <path d="
20642 M131.525 -88.784
20643 L135.454 -91.9161
20644 L137.642 -105.204
20645 L133.703 -101.539
20646 L131.525 -88.784
20647 z
20648 " id="C3_408_e2c187e1db"/>
20649 <path d="
20650 M231.375 -117.176
20651 L235.172 -103.716
20652 L237.392 -104.581
20653 L233.613 -117.977
20654 L231.375 -117.176
20655 z
20656 " id="C3_409_5b1fcc9907"/>
20657 <path d="
20658 M149.756 -171.68
20659 L153.753 -174.898
20660 L156.158 -175.938
20661 L152.165 -172.552
20662 L149.756 -171.68
20663 z
20664 " id="C3_40a_8aa44ede01"/>
20665 <path d="
20666 M191.735 -167.374
20667 L195.831 -167.513
20668 L198.195 -173.917
20669 L194.096 -174.224
20670 L191.735 -167.374
20671 z
20672 " id="C3_40b_d3d036010a"/>
20673 <path d="
20674 M166.662 -175.448
20675 L170.746 -170.775
20676 L173.102 -174.6
20677 L169.031 -177.641
20678 L166.662 -175.448
20679 z
20680 " id="C3_40c_ee38f3fd60"/>
20681 <path d="
20682 M228.072 -43.0566
20683 L232.298 -45.6358
20684 L234.489 -44.9873
20685 L230.299 -43.5865
20686 L228.072 -43.0566
20687 z
20688 " id="C3_40d_12a52b8093"/>
20689 <path d="
20690 M135.262 -43.6369
20691 L139.293 -42.8751
20692 L141.762 -42.2868
20693 L137.739 -43.1217
20694 L135.262 -43.6369
20695 z
20696 " id="C3_40e_bac8112b1b"/>
20697 <path d="
20698 M234.489 -44.9873
20699 L238.769 -48.7681
20700 L240.933 -47.8481
20701 L236.688 -45.0765
20702 L234.489 -44.9873
20703 z
20704 " id="C3_40f_3932bc667f"/>
20705 <path d="
20706 M221.25 -79.5516
20707 L225.158 -69.0444
20708 L227.5 -74.1556
20709 L223.619 -85.4728
20710 L221.25 -79.5516
20711 z
20712 " id="C3_410_c04aef0896"/>
20713 <path d="
20714 M194.096 -174.224
20715 L198.195 -173.917
20716 L200.531 -177.35
20717 L196.435 -177.982
20718 L194.096 -174.224
20719 z
20720 " id="C3_411_d94fbd9315"/>
20721 <path d="
20722 M203.008 -48.5218
20723 L207.068 -44.389
20724 L209.406 -48.8152
20725 L205.37 -54.4835
20726 L203.008 -48.5218
20727 z
20728 " id="C3_412_e2dd410b03"/>
20729 <path d="
20730 M223.619 -85.4728
20731 L227.5 -74.1556
20732 L229.832 -78.8357
20733 L225.976 -90.7931
20734 L223.619 -85.4728
20735 z
20736 " id="C3_413_91899e2500"/>
20737 <path d="
20738 M129.808 -97.1326
20739 L133.703 -101.539
20740 L135.893 -114.542
20741 L131.985 -109.626
20742 L129.808 -97.1326
20743 z
20744 " id="C3_414_16fed3643f"/>
20745 <path d="
20746 M205.37 -54.4835
20747 L209.406 -48.8152
20748 L211.759 -54.2073
20749 L207.746 -61.3347
20750 L205.37 -54.4835
20751 z
20752 " id="C3_415_c9a2744238"/>
20753 <path d="
20754 M158.65 -45.5518
20755 L162.713 -43.731
20756 L165.061 -49.8003
20757 L160.988 -52.4039
20758 L158.65 -45.5518
20759 z
20760 " id="C3_416_90f69a67d8"/>
20761 <path d="
20762 M148.807 -58.3463
20763 L152.858 -56.7763
20764 L155.149 -67.0748
20765 L151.083 -68.9006
20766 L148.807 -58.3463
20767 z
20768 " id="C3_417_a277a055bb"/>
20769 <path d="
20770 M221.666 -41.7595
20771 L225.854 -43.3959
20772 L228.072 -43.0566
20773 L223.921 -42.7387
20774 L221.666 -41.7595
20775 z
20776 " id="C3_418_1a2957c554"/>
20777 <path d="
20778 M156.158 -175.938
20779 L160.204 -176.189
20780 L162.593 -177.463
20781 L158.557 -176.542
20782 L156.158 -175.938
20783 z
20784 " id="C3_419_5e4c2efb8f"/>
20785 <path d="
20786 M200.661 -43.7681
20787 L204.744 -41.2028
20788 L207.068 -44.389
20789 L203.008 -48.5218
20790 L200.661 -43.7681
20791 z
20792 " id="C3_41a_fdf51c0c80"/>
20793 <path d="
20794 M156.285 -41.4193
20795 L160.342 -40.3516
20796 L162.713 -43.731
20797 L158.65 -45.5518
20798 L156.285 -41.4193
20799 z
20800 " id="C3_41b_ae32e86370"/>
20801 <path d="
20802 M131.653 -139.673
20803 L135.479 -147.986
20804 L137.809 -154.826
20805 L133.959 -146.834
20806 L131.653 -139.673
20807 z
20808 " id="C3_41c_5bc0d42d55"/>
20809 <path d="
20810 M138.656 -157.562
20811 L142.548 -164.595
20812 L144.944 -167.797
20813 L141.035 -161.218
20814 L138.656 -157.562
20815 z
20816 " id="C3_41d_3cc71b8e73"/>
20817 <path d="
20818 M193.452 -158.609
20819 L197.577 -161.72
20820 L199.953 -168.981
20821 L195.831 -167.513
20822 L193.452 -158.609
20823 z
20824 " id="C3_41e_77fe79b19c"/>
20825 <path d="
20826 M128.695 -120.022
20827 L132.525 -127.265
20828 L134.771 -137.773
20829 L130.922 -130.404
20830 L128.695 -120.022
20831 z
20832 " id="C3_41f_0abacd5071"/>
20833 <path d="
20834 M204.635 -176.714
20835 L208.745 -175.72
20836 L211.001 -174.342
20837 L206.915 -176.304
20838 L204.635 -176.714
20839 z
20840 " id="C3_420_b0f5a4d50b"/>
20841 <path d="
20842 M230.335 -141.449
20843 L234.183 -129.364
20844 L236.317 -126.913
20845 L232.495 -138.969
20846 L230.335 -141.449
20847 z
20848 " id="C3_421_a18766bb08"/>
20849 <path d="
20850 M204.744 -41.2028
20851 L208.851 -40.1184
20852 L211.148 -41.7531
20853 L207.068 -44.389
20854 L204.744 -41.2028
20855 z
20856 " id="C3_422_d8849af62e"/>
20857 <path d="
20858 M228.605 -149.773
20859 L232.495 -138.969
20860 L234.607 -135.395
20861 L230.748 -146.337
20862 L228.605 -149.773
20863 z
20864 " id="C3_423_e0f8e3f0dd"/>
20865 <path d="
20866 M166.01 -165.292
20867 L170.12 -156.233
20868 L172.479 -158.993
20869 L168.384 -167.374
20870 L166.01 -165.292
20871 z
20872 " id="C3_424_b95ebdc418"/>
20873 <path d="
20874 M169.449 -151.328
20875 L173.549 -144.397
20876 L175.926 -136.185
20877 L171.846 -146.403
20878 L169.449 -151.328
20879 z
20880 " id="C3_425_8420d462be"/>
20881 <path d="
20882 M162.713 -43.731
20883 L166.781 -41.9668
20884 L169.137 -47.1014
20885 L165.061 -49.8003
20886 L162.713 -43.731
20887 z
20888 " id="C3_426_a734991764"/>
20889 <path d="
20890 M196.591 -47.5802
20891 L200.661 -43.7681
20892 L203.008 -48.5218
20893 L198.956 -53.8704
20894 L196.591 -47.5802
20895 z
20896 " id="C3_427_9e40a6371c"/>
20897 <path d="
20898 M207.746 -61.3347
20899 L211.759 -54.2073
20900 L214.123 -60.2699
20901 L210.135 -68.7413
20902 L207.746 -61.3347
20903 z
20904 " id="C3_428_3d7b39e03e"/>
20905 <path d="
20906 M216.935 -170.821
20907 L220.989 -166.136
20908 L223.138 -161.638
20909 L219.124 -167.257
20910 L216.935 -170.821
20911 z
20912 " id="C3_429_67dfe38742"/>
20913 <path d="
20914 M152.858 -56.7763
20915 L156.919 -54.7677
20916 L159.226 -64.6335
20917 L155.149 -67.0748
20918 L152.858 -56.7763
20919 z
20920 " id="C3_42a_ea67e10e10"/>
20921 <path d="
20922 M77.7972 -94.1185
20923 L82.1112 -86.4768
20924 L85.1 -78.3842
20925 L80.8351 -85.6815
20926 L77.7972 -94.1185
20927 z
20928 " id="C3_42b_a9af5408c4"/>
20929 <path d="
20930 M215.262 -40.8417
20931 L219.423 -41.8124
20932 L221.666 -41.7595
20933 L217.539 -42.2116
20934 L215.262 -40.8417
20935 z
20936 " id="C3_42c_5c368ff120"/>
20937 <path d="
20938 M149.832 -40.7654
20939 L153.879 -40.1765
20940 L156.285 -41.4193
20941 L152.235 -42.5653
20942 L149.832 -40.7654
20943 z
20944 " id="C3_42d_425b674201"/>
20945 <path d="
20946 M136.295 -152.792
20947 L140.167 -160.328
20948 L142.548 -164.595
20949 L138.656 -157.562
20950 L136.295 -152.792
20951 z
20952 " id="C3_42e_6d02d5e7d7"/>
20953 <path d="
20954 M133.959 -146.834
20955 L137.809 -154.826
20956 L140.167 -160.328
20957 L136.295 -152.792
20958 L133.959 -146.834
20959 z
20960 " id="C3_42f_f9d9886100"/>
20961 <path d="
20962 M194.24 -42.769
20963 L198.327 -40.5057
20964 L200.661 -43.7681
20965 L196.591 -47.5802
20966 L194.24 -42.769
20967 z
20968 " id="C3_430_e4fd447e8c"/>
20969 <path d="
20970 M139.293 -42.8751
20971 L143.329 -42.2984
20972 L145.793 -41.4889
20973 L141.762 -42.2868
20974 L139.293 -42.8751
20975 z
20976 " id="C3_431_f52d5719fb"/>
20977 <path d="
20978 M164.286 -173.264
20979 L168.384 -167.374
20980 L170.746 -170.775
20981 L166.662 -175.448
20982 L164.286 -173.264
20983 z
20984 " id="C3_432_795afc2995"/>
20985 <path d="
20986 M156.919 -54.7677
20987 L160.988 -52.4039
20988 L163.31 -61.662
20989 L159.226 -64.6335
20990 L156.919 -54.7677
20991 z
20992 " id="C3_433_fb03617ec8"/>
20993 <path d="
20994 M208.745 -175.72
20995 L212.849 -173.904
20996 L215.074 -171.422
20997 L211.001 -174.342
20998 L208.745 -175.72
20999 z
21000 " id="C3_434_67a9b58e1b"/>
21001 <path d="
21002 M166.781 -41.9668
21003 L170.853 -40.4112
21004 L173.214 -44.4773
21005 L169.137 -47.1014
21006 L166.781 -41.9668
21007 z
21008 " id="C3_435_a1c7973ad3"/>
21009 <path d="
21010 M198.956 -53.8704
21011 L203.008 -48.5218
21012 L205.37 -54.4835
21013 L201.335 -61.3076
21014 L198.956 -53.8704
21015 z
21016 " id="C3_436_8b953baed4"/>
21017 <path d="
21018 M143.003 -70.5398
21019 L147.033 -70.0609
21020 L149.279 -82.5407
21021 L145.233 -82.9282
21022 L143.003 -70.5398
21023 z
21024 " id="C3_437_a5fe4903aa"/>
21025 <path d="
21026 M190.163 -46.0538
21027 L194.24 -42.769
21028 L196.591 -47.5802
21029 L192.525 -52.3666
21030 L190.163 -46.0538
21031 z
21032 " id="C3_438_cc80355584"/>
21033 <path d="
21034 M198.195 -173.917
21035 L202.31 -174.181
21036 L204.635 -176.714
21037 L200.531 -177.35
21038 L198.195 -173.917
21039 z
21040 " id="C3_439_999af0e638"/>
21041 <path d="
21042 M160.342 -40.3516
21043 L164.405 -39.4775
21044 L166.781 -41.9668
21045 L162.713 -43.731
21046 L160.342 -40.3516
21047 z
21048 " id="C3_43a_c7edf109e5"/>
21049 <path d="
21050 M212.849 -173.904
21051 L216.935 -170.821
21052 L219.124 -167.257
21053 L215.074 -171.422
21054 L212.849 -173.904
21055 z
21056 " id="C3_43b_202a6a7a3a"/>
21057 <path d="
21058 M160.988 -52.4039
21059 L165.061 -49.8003
21060 L167.396 -58.2799
21061 L163.31 -61.662
21062 L160.988 -52.4039
21063 z
21064 " id="C3_43c_1a8b177d78"/>
21065 <path d="
21066 M169.137 -47.1014
21067 L173.214 -44.4773
21068 L175.567 -50.927
21069 L171.483 -54.6404
21070 L169.137 -47.1014
21071 z
21072 " id="C3_43d_4dd9932549"/>
21073 <path d="
21074 M198.327 -40.5057
21075 L202.433 -39.4927
21076 L204.744 -41.2028
21077 L200.661 -43.7681
21078 L198.327 -40.5057
21079 z
21080 " id="C3_43e_3d4c8271bc"/>
21081 <path d="
21082 M165.061 -49.8003
21083 L169.137 -47.1014
21084 L171.483 -54.6404
21085 L167.396 -58.2799
21086 L165.061 -49.8003
21087 z
21088 " id="C3_43f_ddae59b448"/>
21089 <path d="
21090 M160.204 -176.189
21091 L164.286 -173.264
21092 L166.662 -175.448
21093 L162.593 -177.463
21094 L160.204 -176.189
21095 z
21096 " id="C3_440_776ee323fd"/>
21097 <path d="
21098 M137.224 -81.2821
21099 L141.213 -82.4919
21100 L143.425 -95.8824
21101 L139.421 -94.3192
21102 L137.224 -81.2821
21103 z
21104 " id="C3_441_6c328f79df"/>
21105 <path d="
21106 M173.214 -44.4773
21107 L177.292 -42.1173
21108 L179.648 -47.3485
21109 L175.567 -50.927
21110 L173.214 -44.4773
21111 z
21112 " id="C3_442_23ec588cca"/>
21113 <path d="
21114 M183.729 -44.1314
21115 L187.811 -41.5103
21116 L190.163 -46.0538
21117 L186.087 -50.105
21118 L183.729 -44.1314
21119 z
21120 " id="C3_443_cf0381a0e3"/>
21121 <path d="
21122 M195.831 -167.513
21123 L199.953 -168.981
21124 L202.31 -174.181
21125 L198.195 -173.917
21126 L195.831 -167.513
21127 z
21128 " id="C3_444_effcd7055e"/>
21129 <path d="
21130 M187.811 -41.5103
21131 L191.9 -39.7164
21132 L194.24 -42.769
21133 L190.163 -46.0538
21134 L187.811 -41.5103
21135 z
21136 " id="C3_445_1677143f6d"/>
21137 <path d="
21138 M208.851 -40.1184
21139 L212.996 -40.6943
21140 L215.262 -40.8417
21141 L211.148 -41.7531
21142 L208.851 -40.1184
21143 z
21144 " id="C3_446_bc5a15ef84"/>
21145 <path d="
21146 M177.292 -42.1173
21147 L181.374 -40.2223
21148 L183.729 -44.1314
21149 L179.648 -47.3485
21150 L177.292 -42.1173
21151 z
21152 " id="C3_447_224c3c14ed"/>
21153 <path d="
21154 M210.135 -68.7413
21155 L214.123 -60.2699
21156 L216.496 -66.7032
21157 L212.532 -76.3721
21158 L210.135 -68.7413
21159 z
21160 " id="C3_448_6a424df19f"/>
21161 <path d="
21162 M229.101 -115.316
21163 L232.917 -101.881
21164 L235.172 -103.716
21165 L231.375 -117.176
21166 L229.101 -115.316
21167 z
21168 " id="C3_449_6012e084e1"/>
21169 <path d="
21170 M179.648 -47.3485
21171 L183.729 -44.1314
21172 L186.087 -50.105
21173 L182.007 -54.6566
21174 L179.648 -47.3485
21175 z
21176 " id="C3_44a_33e75f88a6"/>
21177 <path d="
21178 M192.525 -52.3666
21179 L196.591 -47.5802
21180 L198.956 -53.8704
21181 L194.901 -60.1179
21182 L192.525 -52.3666
21183 z
21184 " id="C3_44b_d7692f7e2b"/>
21185 <path d="
21186 M192.83 -146.01
21187 L197.002 -154.66
21188 L199.364 -159.755
21189 L195.197 -153.459
21190 L192.83 -146.01
21191 z
21192 " id="C3_44c_4789e0e227"/>
21193 <path d="
21194 M147.348 -170.112
21195 L151.342 -173.504
21196 L153.753 -174.898
21197 L149.756 -171.68
21198 L147.348 -170.112
21199 z
21200 " id="C3_44d_a1a46baa9b"/>
21201 <path d="
21202 M170.853 -40.4112
21203 L174.931 -39.2303
21204 L177.292 -42.1173
21205 L173.214 -44.4773
21206 L170.853 -40.4112
21207 z
21208 " id="C3_44e_35e79d5b6b"/>
21209 <path d="
21210 M186.087 -50.105
21211 L190.163 -46.0538
21212 L192.525 -52.3666
21213 L188.455 -57.8327
21214 L186.087 -50.105
21215 z
21216 " id="C3_44f_afcf10bff5"/>
21217 <path d="
21218 M153.879 -40.1765
21219 L157.935 -39.8026
21220 L160.342 -40.3516
21221 L156.285 -41.4193
21222 L153.879 -40.1765
21223 z
21224 " id="C3_450_eb92d9ffd9"/>
21225 <path d="
21226 M61.8933 -122.992
21227 L66.3661 -113.18
21228 L69.4193 -105.676
21229 L64.9635 -115.782
21230 L61.8933 -122.992
21231 z
21232 " id="C3_451_feebd46c74"/>
21233 <path d="
21234 M67.7216 -111.564
21235 L72.1412 -102.431
21236 L75.1906 -94.3835
21237 L70.803 -103.55
21238 L67.7216 -111.564
21239 z
21240 " id="C3_452_6bfa063957"/>
21241 <path d="
21242 M181.374 -40.2223
21243 L185.463 -38.9956
21244 L187.811 -41.5103
21245 L183.729 -44.1314
21246 L181.374 -40.2223
21247 z
21248 " id="C3_453_e307353147"/>
21249 <path d="
21250 M190.486 -142.104
21251 L194.657 -151.875
21252 L197.002 -154.66
21253 L192.83 -146.01
21254 L190.486 -142.104
21255 z
21256 " id="C3_454_4e5b455124"/>
21257 <path d="
21258 M191.9 -39.7164
21259 L196.004 -38.9647
21260 L198.327 -40.5057
21261 L194.24 -42.769
21262 L191.9 -39.7164
21263 z
21264 " id="C3_455_a0d47f8903"/>
21265 <path d="
21266 M201.335 -61.3076
21267 L205.37 -54.4835
21268 L207.746 -61.3347
21269 L203.73 -69.5287
21270 L201.335 -61.3076
21271 z
21272 " id="C3_456_2eabbef3af"/>
21273 <path d="
21274 M222.832 -163.362
21275 L226.822 -155.784
21276 L228.949 -151.477
21277 L224.997 -159.682
21278 L222.832 -163.362
21279 z
21280 " id="C3_457_7f7f6dfb6e"/>
21281 <path d="
21282 M175.567 -50.927
21283 L179.648 -47.3485
21284 L182.007 -54.6566
21285 L177.921 -59.4449
21286 L175.567 -50.927
21287 z
21288 " id="C3_458_27f2a79ed9"/>
21289 <path d="
21290 M164.405 -39.4775
21291 L168.476 -38.928
21292 L170.853 -40.4112
21293 L166.781 -41.9668
21294 L164.405 -39.4775
21295 z
21296 " id="C3_459_d0d2bb94eb"/>
21297 <path d="
21298 M153.753 -174.898
21299 L157.806 -174.907
21300 L160.204 -176.189
21301 L156.158 -175.938
21302 L153.753 -174.898
21303 z
21304 " id="C3_45a_45f10bd7f4"/>
21305 <path d="
21306 M143.329 -42.2984
21307 L147.372 -41.9378
21308 L149.832 -40.7654
21309 L145.793 -41.4889
21310 L143.329 -42.2984
21311 z
21312 " id="C3_45b_ea59e1f8b4"/>
21313 <path d="
21314 M229.785 -131.087
21315 L233.613 -117.977
21316 L235.812 -117.731
21317 L232.005 -130.765
21318 L229.785 -131.087
21319 z
21320 " id="C3_45c_72370c87f6"/>
21321 <path d="
21322 M202.433 -39.4927
21323 L206.566 -39.9178
21324 L208.851 -40.1184
21325 L204.744 -41.2028
21326 L202.433 -39.4927
21327 z
21328 " id="C3_45d_23587427e4"/>
21329 <path d="
21330 M147.033 -70.0609
21331 L151.083 -68.9006
21332 L153.347 -81.3113
21333 L149.279 -82.5407
21334 L147.033 -70.0609
21335 z
21336 " id="C3_45e_4406069e81"/>
21337 <path d="
21338 M195.197 -153.459
21339 L199.364 -159.755
21340 L201.734 -165.641
21341 L197.577 -161.72
21342 L195.197 -153.459
21343 z
21344 " id="C3_45f_c0735532a6"/>
21345 <path d="
21346 M130.314 -115.845
21347 L134.184 -121.957
21348 L136.415 -133.561
21349 L132.525 -127.265
21350 L130.314 -115.845
21351 z
21352 " id="C3_460_86855477aa"/>
21353 <path d="
21354 M212.532 -76.3721
21355 L216.496 -66.7032
21356 L218.874 -73.2185
21357 L214.932 -83.9169
21358 L212.532 -76.3721
21359 z
21360 " id="C3_461_5b7b6febc4"/>
21361 <path d="
21362 M161.898 -171.646
21363 L166.01 -165.292
21364 L168.384 -167.374
21365 L164.286 -173.264
21366 L161.898 -171.646
21367 z
21368 " id="C3_462_4500075a07"/>
21369 <path d="
21370 M174.931 -39.2303
21371 L179.017 -38.5967
21372 L181.374 -40.2223
21373 L177.292 -42.1173
21374 L174.931 -39.2303
21375 z
21376 " id="C3_463_60f7306911"/>
21377 <path d="
21378 M163.615 -164.906
21379 L167.738 -156.498
21380 L170.12 -156.233
21381 L166.01 -165.292
21382 L163.615 -164.906
21383 z
21384 " id="C3_464_675f3ab564"/>
21385 <path d="
21386 M202.31 -174.181
21387 L206.44 -174.463
21388 L208.745 -175.72
21389 L204.635 -176.714
21390 L202.31 -174.181
21391 z
21392 " id="C3_465_a630b58c9f"/>
21393 <path d="
21394 M171.483 -54.6404
21395 L175.567 -50.927
21396 L177.921 -59.4449
21397 L173.829 -64.2219
21398 L171.483 -54.6404
21399 z
21400 " id="C3_466_a350da0502"/>
21401 <path d="
21402 M182.007 -54.6566
21403 L186.087 -50.105
21404 L188.455 -57.8327
21405 L184.375 -63.679
21406 L182.007 -54.6566
21407 z
21408 " id="C3_467_e78ba2d7d7"/>
21409 <path d="
21410 M225.854 -43.3959
21411 L230.116 -47.1423
21412 L232.298 -45.6358
21413 L228.072 -43.0566
21414 L225.854 -43.3959
21415 z
21416 " id="C3_468_f5255f3e1a"/>
21417 <path d="
21418 M135.454 -91.9161
21419 L139.421 -94.3192
21420 L141.625 -107.993
21421 L137.642 -105.204
21422 L135.454 -91.9161
21423 z
21424 " id="C3_469_515c51fef7"/>
21425 <path d="
21426 M130.922 -130.404
21427 L134.771 -137.773
21428 L137.056 -147.015
21429 L133.182 -139.806
21430 L130.922 -130.404
21431 z
21432 " id="C3_46a_ec2163bd9f"/>
21433 <path d="
21434 M185.463 -38.9956
21435 L189.565 -38.6319
21436 L191.9 -39.7164
21437 L187.811 -41.5103
21438 L185.463 -38.9956
21439 z
21440 " id="C3_46b_717ca673e3"/>
21441 <path d="
21442 M194.901 -60.1179
21443 L198.956 -53.8704
21444 L201.335 -61.3076
21445 L197.292 -68.926
21446 L194.901 -60.1179
21447 z
21448 " id="C3_46c_d2e94600a2"/>
21449 <path d="
21450 M232.298 -45.6358
21451 L236.613 -50.4289
21452 L238.769 -48.7681
21453 L234.489 -44.9873
21454 L232.298 -45.6358
21455 z
21456 " id="C3_46d_d37bb4ebfc"/>
21457 <path d="
21458 M219.423 -41.8124
21459 L223.646 -44.7393
21460 L225.854 -43.3959
21461 L221.666 -41.7595
21462 L219.423 -41.8124
21463 z
21464 " id="C3_46e_3c14599f1a"/>
21465 <path d="
21466 M226.794 -112.4
21467 L230.63 -99.0847
21468 L232.917 -101.881
21469 L229.101 -115.316
21470 L226.794 -112.4
21471 z
21472 " id="C3_46f_042e7b14de"/>
21473 <path d="
21474 M188.455 -57.8327
21475 L192.525 -52.3666
21476 L194.901 -60.1179
21477 L190.836 -66.9309
21478 L188.455 -57.8327
21479 z
21480 " id="C3_470_af9042ecb5"/>
21481 <path d="
21482 M151.083 -68.9006
21483 L155.149 -67.0748
21484 L157.431 -79.2544
21485 L153.347 -81.3113
21486 L151.083 -68.9006
21487 z
21488 " id="C3_471_e8352b908a"/>
21489 <path d="
21490 M157.806 -174.907
21491 L161.898 -171.646
21492 L164.286 -173.264
21493 L160.204 -176.189
21494 L157.806 -174.907
21495 z
21496 " id="C3_472_6786878fa7"/>
21497 <path d="
21498 M167.396 -58.2799
21499 L171.483 -54.6404
21500 L173.829 -64.2219
21501 L169.73 -68.7643
21502 L167.396 -58.2799
21503 z
21504 " id="C3_473_7cca28645c"/>
21505 <path d="
21506 M73.4357 -102.324
21507 L77.7972 -94.1185
21508 L80.8351 -85.6815
21509 L76.5146 -93.7414
21510 L73.4357 -102.324
21511 z
21512 " id="C3_474_7953e44eda"/>
21513 <path d="
21514 M165.328 -159.085
21515 L169.449 -151.328
21516 L171.846 -146.403
21517 L167.738 -156.498
21518 L165.328 -159.085
21519 z
21520 " id="C3_475_daea220348"/>
21521 <path d="
21522 M196.004 -38.9647
21523 L200.13 -39.4405
21524 L202.433 -39.4927
21525 L198.327 -40.5057
21526 L196.004 -38.9647
21527 z
21528 " id="C3_476_8d7006ef29"/>
21529 <path d="
21530 M197.577 -161.72
21531 L201.734 -165.641
21532 L204.098 -170.887
21533 L199.953 -168.981
21534 L197.577 -161.72
21535 z
21536 " id="C3_477_8db007fffb"/>
21537 <path d="
21538 M157.935 -39.8026
21539 L161.998 -39.7408
21540 L164.405 -39.4775
21541 L160.342 -40.3516
21542 L157.935 -39.8026
21543 z
21544 " id="C3_478_90584cfc6f"/>
21545 <path d="
21546 M181.718 -142.921
21547 L185.837 -148.395
21548 L188.163 -143.462
21549 L184.047 -134.7
21550 L181.718 -142.921
21551 z
21552 " id="C3_479_c69db034ea"/>
21553 <path d="
21554 M144.944 -167.797
21555 L148.929 -171.67
21556 L151.342 -173.504
21557 L147.348 -170.112
21558 L144.944 -167.797
21559 z
21560 " id="C3_47a_3aaa9f877b"/>
21561 <path d="
21562 M141.213 -82.4919
21563 L145.233 -82.9282
21564 L147.462 -96.5309
21565 L143.425 -95.8824
21566 L141.213 -82.4919
21567 z
21568 " id="C3_47b_743799be85"/>
21569 <path d="
21570 M203.73 -69.5287
21571 L207.746 -61.3347
21572 L210.135 -68.7413
21573 L206.136 -78.1609
21574 L203.73 -69.5287
21575 z
21576 " id="C3_47c_d67fb2c8f3"/>
21577 <path d="
21578 M214.932 -83.9169
21579 L218.874 -73.2185
21580 L221.25 -79.5516
21581 L217.331 -91.1012
21582 L214.932 -83.9169
21583 z
21584 " id="C3_47d_1632d32832"/>
21585 <path d="
21586 M168.476 -38.928
21587 L172.556 -38.8436
21588 L174.931 -39.2303
21589 L170.853 -40.4112
21590 L168.476 -38.928
21591 z
21592 " id="C3_47e_e3b05563df"/>
21593 <path d="
21594 M199.953 -168.981
21595 L204.098 -170.887
21596 L206.44 -174.463
21597 L202.31 -174.181
21598 L199.953 -168.981
21599 z
21600 " id="C3_47f_291604087b"/>
21601 <path d="
21602 M212.996 -40.6943
21603 L217.19 -43.0412
21604 L219.423 -41.8124
21605 L215.262 -40.8417
21606 L212.996 -40.6943
21607 z
21608 " id="C3_480_fb3cdad000"/>
21609 <path d="
21610 M163.31 -61.662
21611 L167.396 -58.2799
21612 L169.73 -68.7643
21613 L165.628 -72.8811
21614 L163.31 -61.662
21615 z
21616 " id="C3_481_65cb173a14"/>
21617 <path d="
21618 M131.985 -109.626
21619 L135.893 -114.542
21620 L138.11 -127.144
21621 L134.184 -121.957
21622 L131.985 -109.626
21623 z
21624 " id="C3_482_4c2f1e0e23"/>
21625 <path d="
21626 M133.703 -101.539
21627 L137.642 -105.204
21628 L139.849 -118.558
21629 L135.893 -114.542
21630 L133.703 -101.539
21631 z
21632 " id="C3_483_446460cced"/>
21633 <path d="
21634 M155.149 -67.0748
21635 L159.226 -64.6335
21636 L161.527 -76.4171
21637 L157.431 -79.2544
21638 L155.149 -67.0748
21639 z
21640 " id="C3_484_c8d1cb4261"/>
21641 <path d="
21642 M147.372 -41.9378
21643 L151.423 -41.8428
21644 L153.879 -40.1765
21645 L149.832 -40.7654
21646 L147.372 -41.9378
21647 z
21648 " id="C3_485_cd6812d379"/>
21649 <path d="
21650 M159.226 -64.6335
21651 L163.31 -61.662
21652 L165.628 -72.8811
21653 L161.527 -76.4171
21654 L159.226 -64.6335
21655 z
21656 " id="C3_486_c10a0f5fe6"/>
21657 <path d="
21658 M179.017 -38.5967
21659 L183.114 -38.6803
21660 L185.463 -38.9956
21661 L181.374 -40.2223
21662 L179.017 -38.5967
21663 z
21664 " id="C3_487_4afaaf7d73"/>
21665 <path d="
21666 M206.44 -174.463
21667 L210.572 -174.071
21668 L212.849 -173.904
21669 L208.745 -175.72
21670 L206.44 -174.463
21671 z
21672 " id="C3_488_f0a02db8bd"/>
21673 <path d="
21674 M224.646 -158.78
21675 L228.605 -149.773
21676 L230.748 -146.337
21677 L226.822 -155.784
21678 L224.646 -158.78
21679 z
21680 " id="C3_489_bcc1411260"/>
21681 <path d="
21682 M177.921 -59.4449
21683 L182.007 -54.6566
21684 L184.375 -63.679
21685 L180.285 -69.6166
21686 L177.921 -59.4449
21687 z
21688 " id="C3_48a_4addf0930f"/>
21689 <path d="
21690 M218.784 -168.882
21691 L222.832 -163.362
21692 L224.997 -159.682
21693 L220.989 -166.136
21694 L218.784 -168.882
21695 z
21696 " id="C3_48b_a134d225e8"/>
21697 <path d="
21698 M228.133 -142.827
21699 L232.005 -130.765
21700 L234.183 -129.364
21701 L230.335 -141.449
21702 L228.133 -142.827
21703 z
21704 " id="C3_48c_86b38780ff"/>
21705 <path d="
21706 M224.459 -108.452
21707 L228.315 -95.3658
21708 L230.63 -99.0847
21709 L226.794 -112.4
21710 L224.459 -108.452
21711 z
21712 " id="C3_48d_437ee38c79"/>
21713 <path d="
21714 M217.331 -91.1012
21715 L221.25 -79.5516
21716 L223.619 -85.4728
21717 L219.723 -97.6959
21718 L217.331 -91.1012
21719 z
21720 " id="C3_48e_e39f60dc7c"/>
21721 <path d="
21722 M189.565 -38.6319
21723 L193.685 -39.3057
21724 L196.004 -38.9647
21725 L191.9 -39.7164
21726 L189.565 -38.6319
21727 z
21728 " id="C3_48f_0bb15d0ae5"/>
21729 <path d="
21730 M206.566 -39.9178
21731 L210.741 -41.9139
21732 L212.996 -40.6943
21733 L208.851 -40.1184
21734 L206.566 -39.9178
21735 z
21736 " id="C3_490_03e0d2532b"/>
21737 <path d="
21738 M151.342 -173.504
21739 L155.397 -173.751
21740 L157.806 -174.907
21741 L153.753 -174.898
21742 L151.342 -173.504
21743 z
21744 " id="C3_491_5bae18572e"/>
21745 <path d="
21746 M188.163 -143.462
21747 L192.326 -152.131
21748 L194.657 -151.875
21749 L190.486 -142.104
21750 L188.163 -143.462
21751 z
21752 " id="C3_492_79d9cc29b9"/>
21753 <path d="
21754 M222.101 -103.523
21755 L225.976 -90.7931
21756 L228.315 -95.3658
21757 L224.459 -108.452
21758 L222.101 -103.523
21759 z
21760 " id="C3_493_79f57d5a78"/>
21761 <path d="
21762 M219.723 -97.6959
21763 L223.619 -85.4728
21764 L225.976 -90.7931
21765 L222.101 -103.523
21766 L219.723 -97.6959
21767 z
21768 " id="C3_494_e47a418ab7"/>
21769 <path d="
21770 M226.417 -152.041
21771 L230.335 -141.449
21772 L232.495 -138.969
21773 L228.605 -149.773
21774 L226.417 -152.041
21775 z
21776 " id="C3_495_417072d669"/>
21777 <path d="
21778 M133.182 -139.806
21779 L137.056 -147.015
21780 L139.378 -154.771
21781 L135.479 -147.986
21782 L133.182 -139.806
21783 z
21784 " id="C3_496_4d079b9567"/>
21785 <path d="
21786 M197.292 -68.926
21787 L201.335 -61.3076
21788 L203.73 -69.5287
21789 L199.699 -78.3819
21790 L197.292 -68.926
21791 z
21792 " id="C3_497_4e43cb79e9"/>
21793 <path d="
21794 M159.495 -170.815
21795 L163.615 -164.906
21796 L166.01 -165.292
21797 L161.898 -171.646
21798 L159.495 -170.815
21799 z
21800 " id="C3_498_83aa60d1cc"/>
21801 <path d="
21802 M210.572 -174.071
21803 L214.692 -172.368
21804 L216.935 -170.821
21805 L212.849 -173.904
21806 L210.572 -174.071
21807 z
21808 " id="C3_499_1c0561faf7"/>
21809 <path d="
21810 M214.692 -172.368
21811 L218.784 -168.882
21812 L220.989 -166.136
21813 L216.935 -170.821
21814 L214.692 -172.368
21815 z
21816 " id="C3_49a_9bb9a6fe34"/>
21817 <path d="
21818 M184.375 -63.679
21819 L188.455 -57.8327
21820 L190.836 -66.9309
21821 L186.757 -73.9787
21822 L184.375 -63.679
21823 z
21824 " id="C3_49b_3d64b1c231"/>
21825 <path d="
21826 M142.548 -164.595
21827 L146.519 -169.169
21828 L148.929 -171.67
21829 L144.944 -167.797
21830 L142.548 -164.595
21831 z
21832 " id="C3_49c_4847f36a5b"/>
21833 <path d="
21834 M161.998 -39.7408
21835 L166.072 -40.0991
21836 L168.476 -38.928
21837 L164.405 -39.4775
21838 L161.998 -39.7408
21839 z
21840 " id="C3_49d_eb61013c2f"/>
21841 <path d="
21842 M227.528 -130.322
21843 L231.375 -117.176
21844 L233.613 -117.977
21845 L229.785 -131.087
21846 L227.528 -130.322
21847 z
21848 " id="C3_49e_e533807ff1"/>
21849 <path d="
21850 M172.556 -38.8436
21851 L176.647 -39.3667
21852 L179.017 -38.5967
21853 L174.931 -39.2303
21854 L172.556 -38.8436
21855 z
21856 " id="C3_49f_ee64b99883"/>
21857 <path d="
21858 M206.136 -78.1609
21859 L210.135 -68.7413
21860 L212.532 -76.3721
21861 L208.551 -86.8441
21862 L206.136 -78.1609
21863 z
21864 " id="C3_4a0_519d8ad743"/>
21865 <path d="
21866 M190.836 -66.9309
21867 L194.901 -60.1179
21868 L197.292 -68.926
21869 L193.234 -76.9668
21870 L190.836 -66.9309
21871 z
21872 " id="C3_4a1_e453a219e8"/>
21873 <path d="
21874 M173.829 -64.2219
21875 L177.921 -59.4449
21876 L180.285 -69.6166
21877 L176.182 -75.3805
21878 L173.829 -64.2219
21879 z
21880 " id="C3_4a2_e8132d8b38"/>
21881 <path d="
21882 M145.233 -82.9282
21883 L149.279 -82.5407
21884 L151.527 -96.2213
21885 L147.462 -96.5309
21886 L145.233 -82.9282
21887 z
21888 " id="C3_4a3_ab405478e9"/>
21889 <path d="
21890 M200.13 -39.4405
21891 L204.29 -41.2864
21892 L206.566 -39.9178
21893 L202.433 -39.4927
21894 L200.13 -39.4405
21895 z
21896 " id="C3_4a4_0b1080a25d"/>
21897 <path d="
21898 M63.2671 -120.899
21899 L67.7216 -111.564
21900 L70.803 -103.55
21901 L66.3661 -113.18
21902 L63.2671 -120.899
21903 z
21904 " id="C3_4a5_6cbd450680"/>
21905 <path d="
21906 M151.423 -41.8428
21907 L155.482 -42.079
21908 L157.935 -39.8026
21909 L153.879 -40.1765
21910 L151.423 -41.8428
21911 z
21912 " id="C3_4a6_4f5f0e4ca5"/>
21913 <path d="
21914 M155.397 -173.751
21915 L159.495 -170.815
21916 L161.898 -171.646
21917 L157.806 -174.907
21918 L155.397 -173.751
21919 z
21920 " id="C3_4a7_a51f03550e"/>
21921 <path d="
21922 M183.114 -38.6803
21923 L187.228 -39.6387
21924 L189.565 -38.6319
21925 L185.463 -38.9956
21926 L183.114 -38.6803
21927 z
21928 " id="C3_4a8_3138511a35"/>
21929 <path d="
21930 M132.525 -127.265
21931 L136.415 -133.561
21932 L138.685 -143.953
21933 L134.771 -137.773
21934 L132.525 -127.265
21935 z
21936 " id="C3_4a9_30ebd993cb"/>
21937 <path d="
21938 M57.4036 -132.654
21939 L61.8933 -122.992
21940 L64.9635 -115.782
21941 L60.4731 -126.017
21942 L57.4036 -132.654
21943 z
21944 " id="C3_4aa_29a3571b4a"/>
21945 <path d="
21946 M139.421 -94.3192
21947 L143.425 -95.8824
21948 L145.647 -109.815
21949 L141.625 -107.993
21950 L139.421 -94.3192
21951 z
21952 " id="C3_4ab_894232280e"/>
21953 <path d="
21954 M204.098 -170.887
21955 L208.255 -172.224
21956 L210.572 -174.071
21957 L206.44 -174.463
21958 L204.098 -170.887
21959 z
21960 " id="C3_4ac_bd4d404c21"/>
21961 <path d="
21962 M135.479 -147.986
21963 L139.378 -154.771
21964 L141.734 -160.971
21965 L137.809 -154.826
21966 L135.479 -147.986
21967 z
21968 " id="C3_4ad_bf0b7c2734"/>
21969 <path d="
21970 M140.167 -160.328
21971 L144.117 -165.7
21972 L146.519 -169.169
21973 L142.548 -164.595
21974 L140.167 -160.328
21975 z
21976 " id="C3_4ae_39d9ef2825"/>
21977 <path d="
21978 M161.198 -165.85
21979 L165.328 -159.085
21980 L167.738 -156.498
21981 L163.615 -164.906
21982 L161.198 -165.85
21983 z
21984 " id="C3_4af_13c3c46f81"/>
21985 <path d="
21986 M171.14 -152.523
21987 L175.247 -150.266
21988 L177.631 -141.022
21989 L173.549 -144.397
21990 L171.14 -152.523
21991 z
21992 " id="C3_4b0_b62f863841"/>
21993 <path d="
21994 M137.809 -154.826
21995 L141.734 -160.971
21996 L144.117 -165.7
21997 L140.167 -160.328
21998 L137.809 -154.826
21999 z
22000 " id="C3_4b1_3cb2fba44d"/>
22001 <path d="
22002 M69.0322 -110.934
22003 L73.4357 -102.324
22004 L76.5146 -93.7414
22005 L72.1412 -102.431
22006 L69.0322 -110.934
22007 z
22008 " id="C3_4b2_5d0cdd5134"/>
22009 <path d="
22010 M169.73 -68.7643
22011 L173.829 -64.2219
22012 L176.182 -75.3805
22013 L172.07 -80.7398
22014 L169.73 -68.7643
22015 z
22016 " id="C3_4b3_98d71b3812"/>
22017 <path d="
22018 M193.685 -39.3057
22019 L197.833 -41.1595
22020 L200.13 -39.4405
22021 L196.004 -38.9647
22022 L193.685 -39.3057
22023 z
22024 " id="C3_4b4_831eb1480b"/>
22025 <path d="
22026 M148.929 -171.67
22027 L152.979 -172.589
22028 L155.397 -173.751
22029 L151.342 -173.504
22030 L148.929 -171.67
22031 z
22032 " id="C3_4b5_9d56219ae7"/>
22033 <path d="
22034 M201.734 -165.641
22035 L205.912 -168.945
22036 L208.255 -172.224
22037 L204.098 -170.887
22038 L201.734 -165.641
22039 z
22040 " id="C3_4b6_56d8cd62be"/>
22041 <path d="
22042 M220.619 -165.597
22043 L224.646 -158.78
22044 L226.822 -155.784
22045 L222.832 -163.362
22046 L220.619 -165.597
22047 z
22048 " id="C3_4b7_0ee2958968"/>
22049 <path d="
22050 M149.279 -82.5407
22051 L153.347 -81.3113
22052 L155.614 -94.9382
22053 L151.527 -96.2213
22054 L149.279 -82.5407
22055 z
22056 " id="C3_4b8_f05e1c33f5"/>
22057 <path d="
22058 M223.646 -44.7393
22059 L227.942 -49.6019
22060 L230.116 -47.1423
22061 L225.854 -43.3959
22062 L223.646 -44.7393
22063 z
22064 " id="C3_4b9_221ea7f8e7"/>
22065 <path d="
22066 M208.551 -86.8441
22067 L212.532 -76.3721
22068 L214.932 -83.9169
22069 L210.97 -95.2511
22070 L208.551 -86.8441
22071 z
22072 " id="C3_4ba_72e06eaae5"/>
22073 <path d="
22074 M167.023 -157.104
22075 L171.14 -152.523
22076 L173.549 -144.397
22077 L169.449 -151.328
22078 L167.023 -157.104
22079 z
22080 " id="C3_4bb_b99193a8f1"/>
22081 <path d="
22082 M180.285 -69.6166
22083 L184.375 -63.679
22084 L186.757 -73.9787
22085 L182.661 -80.9508
22086 L180.285 -69.6166
22087 z
22088 " id="C3_4bc_233035a645"/>
22089 <path d="
22090 M199.364 -159.755
22091 L203.557 -165.081
22092 L205.912 -168.945
22093 L201.734 -165.641
22094 L199.364 -159.755
22095 z
22096 " id="C3_4bd_f79c23d5d3"/>
22097 <path d="
22098 M217.19 -43.0412
22099 L221.447 -47.1883
22100 L223.646 -44.7393
22101 L219.423 -41.8124
22102 L217.19 -43.0412
22103 z
22104 " id="C3_4be_221b5abaaf"/>
22105 <path d="
22106 M199.699 -78.3819
22107 L203.73 -69.5287
22108 L206.136 -78.1609
22109 L202.117 -88.0748
22110 L199.699 -78.3819
22111 z
22112 " id="C3_4bf_ae59f1c87e"/>
22113 <path d="
22114 M166.072 -40.0991
22115 L170.157 -40.9909
22116 L172.556 -38.8436
22117 L168.476 -38.928
22118 L166.072 -40.0991
22119 z
22120 " id="C3_4c0_c2b604832f"/>
22121 <path d="
22122 M230.116 -47.1423
22123 L234.464 -52.9133
22124 L236.613 -50.4289
22125 L232.298 -45.6358
22126 L230.116 -47.1423
22127 z
22128 " id="C3_4c1_b104ea0de6"/>
22129 <path d="
22130 M176.647 -39.3667
22131 L180.754 -40.6329
22132 L183.114 -38.6803
22133 L179.017 -38.5967
22134 L176.647 -39.3667
22135 z
22136 " id="C3_4c2_9778492585"/>
22137 <path d="
22138 M165.628 -72.8811
22139 L169.73 -68.7643
22140 L172.07 -80.7398
22141 L167.953 -85.5038
22142 L165.628 -72.8811
22143 z
22144 " id="C3_4c3_0e32cc5a95"/>
22145 <path d="
22146 M197.002 -154.66
22147 L201.204 -161.644
22148 L203.557 -165.081
22149 L199.364 -159.755
22150 L197.002 -154.66
22151 z
22152 " id="C3_4c4_19df706dff"/>
22153 <path d="
22154 M175.247 -150.266
22155 L179.357 -151.056
22156 L181.718 -142.921
22157 L177.631 -141.022
22158 L175.247 -150.266
22159 z
22160 " id="C3_4c5_b5747e3f97"/>
22161 <path d="
22162 M225.235 -128.464
22163 L229.101 -115.316
22164 L231.375 -117.176
22165 L227.528 -130.322
22166 L225.235 -128.464
22167 z
22168 " id="C3_4c6_076a12c86f"/>
22169 <path d="
22170 M155.482 -42.079
22171 L159.55 -42.7235
22172 L161.998 -39.7408
22173 L157.935 -39.8026
22174 L155.482 -42.079
22175 z
22176 " id="C3_4c7_eaed21f643"/>
22177 <path d="
22178 M137.642 -105.204
22179 L141.625 -107.993
22180 L143.851 -121.571
22181 L139.849 -118.558
22182 L137.642 -105.204
22183 z
22184 " id="C3_4c8_c420eb9f56"/>
22185 <path d="
22186 M210.741 -41.9139
22187 L214.966 -45.5457
22188 L217.19 -43.0412
22189 L212.996 -40.6943
22190 L210.741 -41.9139
22191 z
22192 " id="C3_4c9_f58bdbfef7"/>
22193 <path d="
22194 M134.184 -121.957
22195 L138.11 -127.144
22196 L140.363 -138.741
22197 L136.415 -133.561
22198 L134.184 -121.957
22199 z
22200 " id="C3_4ca_73ba963bd0"/>
22201 <path d="
22202 M153.347 -81.3113
22203 L157.431 -79.2544
22204 L159.719 -92.6926
22205 L155.614 -94.9382
22206 L153.347 -81.3113
22207 z
22208 " id="C3_4cb_5599618535"/>
22209 <path d="
22210 M208.255 -172.224
22211 L212.406 -172.137
22212 L214.692 -172.368
22213 L210.572 -174.071
22214 L208.255 -172.224
22215 z
22216 " id="C3_4cc_62ef6ef0fb"/>
22217 <path d="
22218 M225.892 -143.123
22219 L229.785 -131.087
22220 L232.005 -130.765
22221 L228.133 -142.827
22222 L225.892 -143.123
22223 z
22224 " id="C3_4cd_63c78b259e"/>
22225 <path d="
22226 M157.075 -170.555
22227 L161.198 -165.85
22228 L163.615 -164.906
22229 L159.495 -170.815
22230 L157.075 -170.555
22231 z
22232 " id="C3_4ce_5344e56ba1"/>
22233 <path d="
22234 M186.757 -73.9787
22235 L190.836 -66.9309
22236 L193.234 -76.9668
22237 L189.155 -85.0701
22238 L186.757 -73.9787
22239 z
22240 " id="C3_4cf_47260c91bd"/>
22241 <path d="
22242 M161.527 -76.4171
22243 L165.628 -72.8811
22244 L167.953 -85.5038
22245 L163.833 -89.5241
22246 L161.527 -76.4171
22247 z
22248 " id="C3_4d0_c90e4f9ec1"/>
22249 <path d="
22250 M193.234 -76.9668
22251 L197.292 -68.926
22252 L199.699 -78.3819
22253 L195.646 -87.4844
22254 L193.234 -76.9668
22255 z
22256 " id="C3_4d1_fe3f811637"/>
22257 <path d="
22258 M157.431 -79.2544
22259 L161.527 -76.4171
22260 L163.833 -89.5241
22261 L159.719 -92.6926
22262 L157.431 -79.2544
22263 z
22264 " id="C3_4d2_43f6fa1777"/>
22265 <path d="
22266 M187.228 -39.6387
22267 L191.366 -41.6059
22268 L193.685 -39.3057
22269 L189.565 -38.6319
22270 L187.228 -39.6387
22271 z
22272 " id="C3_4d3_53d706bff6"/>
22273 <path d="
22274 M152.979 -172.589
22275 L157.075 -170.555
22276 L159.495 -170.815
22277 L155.397 -173.751
22278 L152.979 -172.589
22279 z
22280 " id="C3_4d4_99e2087274"/>
22281 <path d="
22282 M135.893 -114.542
22283 L139.849 -118.558
22284 L142.087 -131.283
22285 L138.11 -127.144
22286 L135.893 -114.542
22287 z
22288 " id="C3_4d5_df01fb0f9a"/>
22289 <path d="
22290 M216.534 -170.033
22291 L220.619 -165.597
22292 L222.832 -163.362
22293 L218.784 -168.882
22294 L216.534 -170.033
22295 z
22296 " id="C3_4d6_6ce210ebf7"/>
22297 <path d="
22298 M204.29 -41.2864
22299 L208.492 -44.5898
22300 L210.741 -41.9139
22301 L206.566 -39.9178
22302 L204.29 -41.2864
22303 z
22304 " id="C3_4d7_530c3b1314"/>
22305 <path d="
22306 M143.425 -95.8824
22307 L147.462 -96.5309
22308 L149.704 -110.615
22309 L145.647 -109.815
22310 L143.425 -95.8824
22311 z
22312 " id="C3_4d8_d5b7f443ea"/>
22313 <path d="
22314 M210.97 -95.2511
22315 L214.932 -83.9169
22316 L217.331 -91.1012
22317 L213.385 -103.104
22318 L210.97 -95.2511
22319 z
22320 " id="C3_4d9_f3cf0c44b2"/>
22321 <path d="
22322 M134.771 -137.773
22323 L138.685 -143.953
22324 L140.996 -152.772
22325 L137.056 -147.015
22326 L134.771 -137.773
22327 z
22328 " id="C3_4da_750c45c2cc"/>
22329 <path d="
22330 M222.426 -160.56
22331 L226.417 -152.041
22332 L228.605 -149.773
22333 L224.646 -158.78
22334 L222.426 -160.56
22335 z
22336 " id="C3_4db_17995e2677"/>
22337 <path d="
22338 M194.657 -151.875
22339 L198.859 -159.534
22340 L201.204 -161.644
22341 L197.002 -154.66
22342 L194.657 -151.875
22343 z
22344 " id="C3_4dc_877a29cc44"/>
22345 <path d="
22346 M212.406 -172.137
22347 L216.534 -170.033
22348 L218.784 -168.882
22349 L214.692 -172.368
22350 L212.406 -172.137
22351 z
22352 " id="C3_4dd_fc592a99a4"/>
22353 <path d="
22354 M146.519 -169.169
22355 L150.555 -171.063
22356 L152.979 -172.589
22357 L148.929 -171.67
22358 L146.519 -169.169
22359 z
22360 " id="C3_4de_3038d52cd3"/>
22361 <path d="
22362 M162.894 -162.485
22363 L167.023 -157.104
22364 L169.449 -151.328
22365 L165.328 -159.085
22366 L162.894 -162.485
22367 z
22368 " id="C3_4df_028c55c49a"/>
22369 <path d="
22370 M224.189 -153.203
22371 L228.133 -142.827
22372 L230.335 -141.449
22373 L226.417 -152.041
22374 L224.189 -153.203
22375 z
22376 " id="C3_4e0_152e27940f"/>
22377 <path d="
22378 M176.182 -75.3805
22379 L180.285 -69.6166
22380 L182.661 -80.9508
22381 L178.55 -87.5714
22382 L176.182 -75.3805
22383 z
22384 " id="C3_4e1_eca3feb9b5"/>
22385 <path d="
22386 M222.912 -125.51
22387 L226.794 -112.4
22388 L229.101 -115.316
22389 L225.235 -128.464
22390 L222.912 -125.51
22391 z
22392 " id="C3_4e2_be2ee019d4"/>
22393 <path d="
22394 M185.837 -148.395
22395 L189.994 -154.718
22396 L192.326 -152.131
22397 L188.163 -143.462
22398 L185.837 -148.395
22399 z
22400 " id="C3_4e3_8e3bafd8b4"/>
22401 <path d="
22402 M58.7936 -130.146
22403 L63.2671 -120.899
22404 L66.3661 -113.18
22405 L61.8933 -122.992
22406 L58.7936 -130.146
22407 z
22408 " id="C3_4e4_33a8db380f"/>
22409 <path d="
22410 M202.117 -88.0748
22411 L206.136 -78.1609
22412 L208.551 -86.8441
22413 L204.544 -97.6175
22414 L202.117 -88.0748
22415 z
22416 " id="C3_4e5_f0d527d26d"/>
22417 <path d="
22418 M170.157 -40.9909
22419 L174.257 -42.5273
22420 L176.647 -39.3667
22421 L172.556 -38.8436
22422 L170.157 -40.9909
22423 z
22424 " id="C3_4e6_941cb7157a"/>
22425 <path d="
22426 M205.912 -168.945
22427 L210.09 -170.591
22428 L212.406 -172.137
22429 L208.255 -172.224
22430 L205.912 -168.945
22431 z
22432 " id="C3_4e7_b693b3bdec"/>
22433 <path d="
22434 M197.833 -41.1595
22435 L202.016 -44.2915
22436 L204.29 -41.2864
22437 L200.13 -39.4405
22438 L197.833 -41.1595
22439 z
22440 " id="C3_4e8_bb95dce7af"/>
22441 <path d="
22442 M213.385 -103.104
22443 L217.331 -91.1012
22444 L219.723 -97.6959
22445 L215.793 -110.184
22446 L213.385 -103.104
22447 z
22448 " id="C3_4e9_cd2065d8e9"/>
22449 <path d="
22450 M159.55 -42.7235
22451 L163.631 -43.8607
22452 L166.072 -40.0991
22453 L161.998 -39.7408
22454 L159.55 -42.7235
22455 z
22456 " id="C3_4ea_33838c88fe"/>
22457 <path d="
22458 M64.596 -119.744
22459 L69.0322 -110.934
22460 L72.1412 -102.431
22461 L67.7216 -111.564
22462 L64.596 -119.744
22463 z
22464 " id="C3_4eb_0f58803519"/>
22465 <path d="
22466 M180.754 -40.6329
22467 L184.882 -42.7619
22468 L187.228 -39.6387
22469 L183.114 -38.6803
22470 L180.754 -40.6329
22471 z
22472 " id="C3_4ec_2988893939"/>
22473 <path d="
22474 M220.561 -121.461
22475 L224.459 -108.452
22476 L226.794 -112.4
22477 L222.912 -125.51
22478 L220.561 -121.461
22479 z
22480 " id="C3_4ed_408f8494a1"/>
22481 <path d="
22482 M144.117 -165.7
22483 L148.135 -168.707
22484 L150.555 -171.063
22485 L146.519 -169.169
22486 L144.117 -165.7
22487 z
22488 " id="C3_4ee_edc422d7d5"/>
22489 <path d="
22490 M158.762 -167.233
22491 L162.894 -162.485
22492 L165.328 -159.085
22493 L161.198 -165.85
22494 L158.762 -167.233
22495 z
22496 " id="C3_4ef_93e135e98a"/>
22497 <path d="
22498 M137.056 -147.015
22499 L140.996 -152.772
22500 L143.346 -159.817
22501 L139.378 -154.771
22502 L137.056 -147.015
22503 z
22504 " id="C3_4f0_7104a84fdf"/>
22505 <path d="
22506 M215.793 -110.184
22507 L219.723 -97.6959
22508 L222.101 -103.523
22509 L218.187 -116.335
22510 L215.793 -110.184
22511 z
22512 " id="C3_4f1_ac46060acc"/>
22513 <path d="
22514 M147.462 -96.5309
22515 L151.527 -96.2213
22516 L153.789 -110.363
22517 L149.704 -110.615
22518 L147.462 -96.5309
22519 z
22520 " id="C3_4f2_3054e707ff"/>
22521 <path d="
22522 M182.661 -80.9508
22523 L186.757 -73.9787
22524 L189.155 -85.0701
22525 L185.054 -92.9082
22526 L182.661 -80.9508
22527 z
22528 " id="C3_4f3_6ee9be7d1a"/>
22529 <path d="
22530 M172.07 -80.7398
22531 L176.182 -75.3805
22532 L178.55 -87.5714
22533 L174.425 -93.6103
22534 L172.07 -80.7398
22535 z
22536 " id="C3_4f4_4417ad737d"/>
22537 <path d="
22538 M218.187 -116.335
22539 L222.101 -103.523
22540 L224.459 -108.452
22541 L220.561 -121.461
22542 L218.187 -116.335
22543 z
22544 " id="C3_4f5_68f39402cb"/>
22545 <path d="
22546 M150.555 -171.063
22547 L154.643 -170.311
22548 L157.075 -170.555
22549 L152.979 -172.589
22550 L150.555 -171.063
22551 z
22552 " id="C3_4f6_8f57afe2cb"/>
22553 <path d="
22554 M179.357 -151.056
22555 L183.488 -154.181
22556 L185.837 -148.395
22557 L181.718 -142.921
22558 L179.357 -151.056
22559 z
22560 " id="C3_4f7_265defaf12"/>
22561 <path d="
22562 M223.615 -142.356
22563 L227.528 -130.322
22564 L229.785 -131.087
22565 L225.892 -143.123
22566 L223.615 -142.356
22567 z
22568 " id="C3_4f8_c9e6dff151"/>
22569 <path d="
22570 M141.625 -107.993
22571 L145.647 -109.815
22572 L147.893 -123.525
22573 L143.851 -121.571
22574 L141.625 -107.993
22575 z
22576 " id="C3_4f9_975e5c40c6"/>
22577 <path d="
22578 M195.646 -87.4844
22579 L199.699 -78.3819
22580 L202.117 -88.0748
22581 L198.071 -98.0346
22582 L195.646 -87.4844
22583 z
22584 " id="C3_4fa_ecfa00b8ed"/>
22585 <path d="
22586 M218.365 -166.587
22587 L222.426 -160.56
22588 L224.646 -158.78
22589 L220.619 -165.597
22590 L218.365 -166.587
22591 z
22592 " id="C3_4fb_2a0f909f21"/>
22593 <path d="
22594 M203.557 -165.081
22595 L207.755 -168.362
22596 L210.09 -170.591
22597 L205.912 -168.945
22598 L203.557 -165.081
22599 z
22600 " id="C3_4fc_74981ec638"/>
22601 <path d="
22602 M136.415 -133.561
22603 L140.363 -138.741
22604 L142.659 -148.816
22605 L138.685 -143.953
22606 L136.415 -133.561
22607 z
22608 " id="C3_4fd_9b7ded7668"/>
22609 <path d="
22610 M141.734 -160.971
22611 L145.729 -165.072
22612 L148.135 -168.707
22613 L144.117 -165.7
22614 L141.734 -160.971
22615 z
22616 " id="C3_4fe_5d4e048bd7"/>
22617 <path d="
22618 M154.643 -170.311
22619 L158.762 -167.233
22620 L161.198 -165.85
22621 L157.075 -170.555
22622 L154.643 -170.311
22623 z
22624 " id="C3_4ff_16504a3d9b"/>
22625 <path d="
22626 M139.378 -154.771
22627 L143.346 -159.817
22628 L145.729 -165.072
22629 L141.734 -160.971
22630 L139.378 -154.771
22631 z
22632 " id="C3_500_64b58e1155"/>
22633 <path d="
22634 M192.326 -152.131
22635 L196.521 -159.13
22636 L198.859 -159.534
22637 L194.657 -151.875
22638 L192.326 -152.131
22639 z
22640 " id="C3_501_fe5e041302"/>
22641 <path d="
22642 M191.366 -41.6059
22643 L195.534 -44.6818
22644 L197.833 -41.1595
22645 L193.685 -39.3057
22646 L191.366 -41.6059
22647 z
22648 " id="C3_502_0fb45561b6"/>
22649 <path d="
22650 M189.155 -85.0701
22651 L193.234 -76.9668
22652 L195.646 -87.4844
22653 L191.568 -96.4492
22654 L189.155 -85.0701
22655 z
22656 " id="C3_503_85033b33ee"/>
22657 <path d="
22658 M210.09 -170.591
22659 L214.248 -169.916
22660 L216.534 -170.033
22661 L212.406 -172.137
22662 L210.09 -170.591
22663 z
22664 " id="C3_504_ee3ff2b1dc"/>
22665 <path d="
22666 M221.447 -47.1883
22667 L225.775 -53.0743
22668 L227.942 -49.6019
22669 L223.646 -44.7393
22670 L221.447 -47.1883
22671 z
22672 " id="C3_505_7f24db2d6e"/>
22673 <path d="
22674 M204.544 -97.6175
22675 L208.551 -86.8441
22676 L210.97 -95.2511
22677 L206.974 -106.67
22678 L204.544 -97.6175
22679 z
22680 " id="C3_506_20681ede6d"/>
22681 <path d="
22682 M214.966 -45.5457
22683 L219.253 -50.7996
22684 L221.447 -47.1883
22685 L217.19 -43.0412
22686 L214.966 -45.5457
22687 z
22688 " id="C3_507_d310e8138c"/>
22689 <path d="
22690 M167.953 -85.5038
22691 L172.07 -80.7398
22692 L174.425 -93.6103
22693 L170.291 -98.8872
22694 L167.953 -85.5038
22695 z
22696 " id="C3_508_b31992645d"/>
22697 <path d="
22698 M227.942 -49.6019
22699 L232.322 -56.2772
22700 L234.464 -52.9133
22701 L230.116 -47.1423
22702 L227.942 -49.6019
22703 z
22704 " id="C3_509_f8955bc8b4"/>
22705 <path d="
22706 M151.527 -96.2213
22707 L155.614 -94.9382
22708 L157.897 -109.048
22709 L153.789 -110.363
22710 L151.527 -96.2213
22711 z
22712 " id="C3_50a_551ae7e341"/>
22713 <path d="
22714 M214.248 -169.916
22715 L218.365 -166.587
22716 L220.619 -165.597
22717 L216.534 -170.033
22718 L214.248 -169.916
22719 z
22720 " id="C3_50b_45cc021639"/>
22721 <path d="
22722 M139.849 -118.558
22723 L143.851 -121.571
22724 L146.11 -134.318
22725 L142.087 -131.283
22726 L139.849 -118.558
22727 z
22728 " id="C3_50c_664a1a397b"/>
22729 <path d="
22730 M174.257 -42.5273
22731 L178.376 -44.8092
22732 L180.754 -40.6329
22733 L176.647 -39.3667
22734 L174.257 -42.5273
22735 z
22736 " id="C3_50d_2fe9240551"/>
22737 <path d="
22738 M138.11 -127.144
22739 L142.087 -131.283
22740 L144.364 -142.733
22741 L140.363 -138.741
22742 L138.11 -127.144
22743 z
22744 " id="C3_50e_7f01756ed2"/>
22745 <path d="
22746 M163.631 -43.8607
22747 L167.725 -45.5761
22748 L170.157 -40.9909
22749 L166.072 -40.0991
22750 L163.631 -43.8607
22751 z
22752 " id="C3_50f_6530f348b7"/>
22753 <path d="
22754 M201.204 -161.644
22755 L205.414 -166.142
22756 L207.755 -168.362
22757 L203.557 -165.081
22758 L201.204 -161.644
22759 z
22760 " id="C3_510_aaa2e6a736"/>
22761 <path d="
22762 M221.925 -153.345
22763 L225.892 -143.123
22764 L228.133 -142.827
22765 L224.189 -153.203
22766 L221.925 -153.345
22767 z
22768 " id="C3_511_dc27f906d6"/>
22769 <path d="
22770 M220.169 -161.282
22771 L224.189 -153.203
22772 L226.417 -152.041
22773 L222.426 -160.56
22774 L220.169 -161.282
22775 z
22776 " id="C3_512_318f56526a"/>
22777 <path d="
22778 M208.492 -44.5898
22779 L212.746 -49.3713
22780 L214.966 -45.5457
22781 L210.741 -41.9139
22782 L208.492 -44.5898
22783 z
22784 " id="C3_513_75cc0af294"/>
22785 <path d="
22786 M163.833 -89.5241
22787 L167.953 -85.5038
22788 L170.291 -98.8872
22789 L166.155 -103.271
22790 L163.833 -89.5241
22791 z
22792 " id="C3_514_bb6d2beed2"/>
22793 <path d="
22794 M155.614 -94.9382
22795 L159.719 -92.6926
22796 L162.021 -106.675
22797 L157.897 -109.048
22798 L155.614 -94.9382
22799 z
22800 " id="C3_515_e93da87761"/>
22801 <path d="
22802 M148.135 -168.707
22803 L152.207 -169.387
22804 L154.643 -170.311
22805 L150.555 -171.063
22806 L148.135 -168.707
22807 z
22808 " id="C3_516_7a5bee1189"/>
22809 <path d="
22810 M178.55 -87.5714
22811 L182.661 -80.9508
22812 L185.054 -92.9082
22813 L180.934 -100.202
22814 L178.55 -87.5714
22815 z
22816 " id="C3_517_575685a4c1"/>
22817 <path d="
22818 M54.3214 -138.981
22819 L58.7936 -130.146
22820 L61.8933 -122.992
22821 L57.4036 -132.654
22822 L54.3214 -138.981
22823 z
22824 " id="C3_518_bb54347df9"/>
22825 <path d="
22826 M221.307 -140.536
22827 L225.235 -128.464
22828 L227.528 -130.322
22829 L223.615 -142.356
22830 L221.307 -140.536
22831 z
22832 " id="C3_519_b6a9380656"/>
22833 <path d="
22834 M159.719 -92.6926
22835 L163.833 -89.5241
22836 L166.155 -103.271
22837 L162.021 -106.675
22838 L159.719 -92.6926
22839 z
22840 " id="C3_51a_a62f0d6e0b"/>
22841 <path d="
22842 M184.882 -42.7619
22843 L189.037 -45.8477
22844 L191.366 -41.6059
22845 L187.228 -39.6387
22846 L184.882 -42.7619
22847 z
22848 " id="C3_51b_ce32a45d61"/>
22849 <path d="
22850 M60.1406 -128.501
22851 L64.596 -119.744
22852 L67.7216 -111.564
22853 L63.2671 -120.899
22854 L60.1406 -128.501
22855 z
22856 " id="C3_51c_e3aeac762e"/>
22857 <path d="
22858 M138.685 -143.953
22859 L142.659 -148.816
22860 L144.997 -156.998
22861 L140.996 -152.772
22862 L138.685 -143.953
22863 z
22864 " id="C3_51d_69ca0b1896"/>
22865 <path d="
22866 M202.016 -44.2915
22867 L206.244 -48.7449
22868 L208.492 -44.5898
22869 L204.29 -41.2864
22870 L202.016 -44.2915
22871 z
22872 " id="C3_51e_f2e7da1eb8"/>
22873 <path d="
22874 M145.647 -109.815
22875 L149.704 -110.615
22876 L151.971 -124.395
22877 L147.893 -123.525
22878 L145.647 -109.815
22879 z
22880 " id="C3_51f_0fc06b83b7"/>
22881 <path d="
22882 M164.578 -161.911
22883 L168.709 -158.987
22884 L171.14 -152.523
22885 L167.023 -157.104
22886 L164.578 -161.911
22887 z
22888 " id="C3_520_5e6c289b33"/>
22889 <path d="
22890 M206.974 -106.67
22891 L210.97 -95.2511
22892 L213.385 -103.104
22893 L209.4 -114.959
22894 L206.974 -106.67
22895 z
22896 " id="C3_521_fcc8a8500f"/>
22897 <path d="
22898 M168.709 -158.987
22899 L172.836 -157.4
22900 L175.247 -150.266
22901 L171.14 -152.523
22902 L168.709 -158.987
22903 z
22904 " id="C3_522_2a625c2fee"/>
22905 <path d="
22906 M207.755 -168.362
22907 L211.937 -168.972
22908 L214.248 -169.916
22909 L210.09 -170.591
22910 L207.755 -168.362
22911 z
22912 " id="C3_523_eee8de83e5"/>
22913 <path d="
22914 M198.071 -98.0346
22915 L202.117 -88.0748
22916 L204.544 -97.6175
22917 L200.503 -108.205
22918 L198.071 -98.0346
22919 z
22920 " id="C3_524_fb3ccbb79d"/>
22921 <path d="
22922 M160.444 -165.268
22923 L164.578 -161.911
22924 L167.023 -157.104
22925 L162.894 -162.485
22926 L160.444 -165.268
22927 z
22928 " id="C3_525_7365830bab"/>
22929 <path d="
22930 M198.859 -159.534
22931 L203.073 -164.493
22932 L205.414 -166.142
22933 L201.204 -161.644
22934 L198.859 -159.534
22935 z
22936 " id="C3_526_7b6db1d6e3"/>
22937 <path d="
22938 M152.207 -169.387
22939 L156.316 -168.044
22940 L158.762 -167.233
22941 L154.643 -170.311
22942 L152.207 -169.387
22943 z
22944 " id="C3_527_3ba5dd8743"/>
22945 <path d="
22946 M185.054 -92.9082
22947 L189.155 -85.0701
22948 L191.568 -96.4492
22949 L187.463 -104.936
22950 L185.054 -92.9082
22951 z
22952 " id="C3_528_1b1e14725c"/>
22953 <path d="
22954 M216.081 -166.617
22955 L220.169 -161.282
22956 L222.426 -160.56
22957 L218.365 -166.587
22958 L216.081 -166.617
22959 z
22960 " id="C3_529_848fe72433"/>
22961 <path d="
22962 M156.316 -168.044
22963 L160.444 -165.268
22964 L162.894 -162.485
22965 L158.762 -167.233
22966 L156.316 -168.044
22967 z
22968 " id="C3_52a_573b2e957d"/>
22969 <path d="
22970 M145.729 -165.072
22971 L149.78 -167.141
22972 L152.207 -169.387
22973 L148.135 -168.707
22974 L145.729 -165.072
22975 z
22976 " id="C3_52b_3b2a4c8a89"/>
22977 <path d="
22978 M191.568 -96.4492
22979 L195.646 -87.4844
22980 L198.071 -98.0346
22981 L193.993 -107.628
22982 L191.568 -96.4492
22983 z
22984 " id="C3_52c_14285c4fa3"/>
22985 <path d="
22986 M218.97 -137.645
22987 L222.912 -125.51
22988 L225.235 -128.464
22989 L221.307 -140.536
22990 L218.97 -137.645
22991 z
22992 " id="C3_52d_808390e89f"/>
22993 <path d="
22994 M140.996 -152.772
22995 L144.997 -156.998
22996 L147.373 -163.097
22997 L143.346 -159.817
22998 L140.996 -152.772
22999 z
23000 " id="C3_52e_7d45d7285d"/>
23001 <path d="
23002 M211.937 -168.972
23003 L216.081 -166.617
23004 L218.365 -166.587
23005 L214.248 -169.916
23006 L211.937 -168.972
23007 z
23008 " id="C3_52f_fa04e028b9"/>
23009 <path d="
23010 M195.534 -44.6818
23011 L199.74 -48.9218
23012 L202.016 -44.2915
23013 L197.833 -41.1595
23014 L195.534 -44.6818
23015 z
23016 " id="C3_530_ec9eaea0d8"/>
23017 <path d="
23018 M174.425 -93.6103
23019 L178.55 -87.5714
23020 L180.934 -100.202
23021 L176.797 -106.731
23022 L174.425 -93.6103
23023 z
23024 " id="C3_531_c72a529500"/>
23025 <path d="
23026 M189.994 -154.718
23027 L194.182 -160.066
23028 L196.521 -159.13
23029 L192.326 -152.131
23030 L189.994 -154.718
23031 z
23032 " id="C3_532_eb44ccb921"/>
23033 <path d="
23034 M172.836 -157.4
23035 L176.968 -157.526
23036 L179.357 -151.056
23037 L175.247 -150.266
23038 L172.836 -157.4
23039 z
23040 " id="C3_533_1706cf506f"/>
23041 <path d="
23042 M183.488 -154.181
23043 L187.647 -158.123
23044 L189.994 -154.718
23045 L185.837 -148.395
23046 L183.488 -154.181
23047 z
23048 " id="C3_534_7a7220f039"/>
23049 <path d="
23050 M209.4 -114.959
23051 L213.385 -103.104
23052 L215.793 -110.184
23053 L211.818 -122.287
23054 L209.4 -114.959
23055 z
23056 " id="C3_535_213e7bc254"/>
23057 <path d="
23058 M167.725 -45.5761
23059 L171.838 -47.9492
23060 L174.257 -42.5273
23061 L170.157 -40.9909
23062 L167.725 -45.5761
23063 z
23064 " id="C3_536_727305c82e"/>
23065 <path d="
23066 M143.346 -159.817
23067 L147.373 -163.097
23068 L149.78 -167.141
23069 L145.729 -165.072
23070 L143.346 -159.817
23071 z
23072 " id="C3_537_e4b49f5815"/>
23073 <path d="
23074 M219.63 -152.532
23075 L223.615 -142.356
23076 L225.892 -143.123
23077 L221.925 -153.345
23078 L219.63 -152.532
23079 z
23080 " id="C3_538_84f669a930"/>
23081 <path d="
23082 M140.363 -138.741
23083 L144.364 -142.733
23084 L146.684 -152.358
23085 L142.659 -148.816
23086 L140.363 -138.741
23087 z
23088 " id="C3_539_68864767b8"/>
23089 <path d="
23090 M178.376 -44.8092
23091 L182.52 -47.9189
23092 L184.882 -42.7619
23093 L180.754 -40.6329
23094 L178.376 -44.8092
23095 z
23096 " id="C3_53a_aeb51f1a96"/>
23097 <path d="
23098 M143.851 -121.571
23099 L147.893 -123.525
23100 L150.174 -136.242
23101 L146.11 -134.318
23102 L143.851 -121.571
23103 z
23104 " id="C3_53b_16949f3139"/>
23105 <path d="
23106 M149.704 -110.615
23107 L153.789 -110.363
23108 L156.076 -124.172
23109 L151.971 -124.395
23110 L149.704 -110.615
23111 z
23112 " id="C3_53c_d152b0bfb7"/>
23113 <path d="
23114 M217.883 -161.121
23115 L221.925 -153.345
23116 L224.189 -153.203
23117 L220.169 -161.282
23118 L217.883 -161.121
23119 z
23120 " id="C3_53d_a7cd2be29a"/>
23121 <path d="
23122 M216.607 -133.654
23123 L220.561 -121.461
23124 L222.912 -125.51
23125 L218.97 -137.645
23126 L216.607 -133.654
23127 z
23128 " id="C3_53e_949163b5ea"/>
23129 <path d="
23130 M205.414 -166.142
23131 L209.612 -167.664
23132 L211.937 -168.972
23133 L207.755 -168.362
23134 L205.414 -166.142
23135 z
23136 " id="C3_53f_e38bd51134"/>
23137 <path d="
23138 M211.818 -122.287
23139 L215.793 -110.184
23140 L218.187 -116.335
23141 L214.222 -128.535
23142 L211.818 -122.287
23143 z
23144 " id="C3_540_4d4363dc7c"/>
23145 <path d="
23146 M214.222 -128.535
23147 L218.187 -116.335
23148 L220.561 -121.461
23149 L216.607 -133.654
23150 L214.222 -128.535
23151 z
23152 " id="C3_541_bdd37259ae"/>
23153 <path d="
23154 M142.087 -131.283
23155 L146.11 -134.318
23156 L148.41 -145.546
23157 L144.364 -142.733
23158 L142.087 -131.283
23159 z
23160 " id="C3_542_b60ebdd406"/>
23161 <path d="
23162 M200.503 -108.205
23163 L204.544 -97.6175
23164 L206.974 -106.67
23165 L202.938 -117.647
23166 L200.503 -108.205
23167 z
23168 " id="C3_543_dd068e1911"/>
23169 <path d="
23170 M170.291 -98.8872
23171 L174.425 -93.6103
23172 L176.797 -106.731
23173 L172.649 -112.338
23174 L170.291 -98.8872
23175 z
23176 " id="C3_544_ce91aaf187"/>
23177 <path d="
23178 M196.521 -159.13
23179 L200.731 -163.637
23180 L203.073 -164.493
23181 L198.859 -159.534
23182 L196.521 -159.13
23183 z
23184 " id="C3_545_b21084b0fb"/>
23185 <path d="
23186 M55.6838 -136.919
23187 L60.1406 -128.501
23188 L63.2671 -120.899
23189 L58.7936 -130.146
23190 L55.6838 -136.919
23191 z
23192 " id="C3_546_afb390e475"/>
23193 <path d="
23194 M149.78 -167.141
23195 L153.873 -167.424
23196 L156.316 -168.044
23197 L152.207 -169.387
23198 L149.78 -167.141
23199 z
23200 " id="C3_547_741291a3c1"/>
23201 <path d="
23202 M189.037 -45.8477
23203 L193.226 -49.9489
23204 L195.534 -44.6818
23205 L191.366 -41.6059
23206 L189.037 -45.8477
23207 z
23208 " id="C3_548_a1dd69d8fb"/>
23209 <path d="
23210 M219.253 -50.7996
23211 L223.61 -57.5748
23212 L225.775 -53.0743
23213 L221.447 -47.1883
23214 L219.253 -50.7996
23215 z
23216 " id="C3_549_18aa964946"/>
23217 <path d="
23218 M153.789 -110.363
23219 L157.897 -109.048
23220 L160.203 -122.853
23221 L156.076 -124.172
23222 L153.789 -110.363
23223 z
23224 " id="C3_54a_5c34146e3c"/>
23225 <path d="
23226 M180.934 -100.202
23227 L185.054 -92.9082
23228 L187.463 -104.936
23229 L183.335 -112.669
23230 L180.934 -100.202
23231 z
23232 " id="C3_54b_822876c578"/>
23233 <path d="
23234 M225.775 -53.0743
23235 L230.182 -60.5405
23236 L232.322 -56.2772
23237 L227.942 -49.6019
23238 L225.775 -53.0743
23239 z
23240 " id="C3_54c_afd0ba5afe"/>
23241 <path d="
23242 M212.746 -49.3713
23243 L217.061 -55.5759
23244 L219.253 -50.7996
23245 L214.966 -45.5457
23246 L212.746 -49.3713
23247 z
23248 " id="C3_54d_40ee11bba1"/>
23249 <path d="
23250 M176.968 -157.526
23251 L181.114 -158.995
23252 L183.488 -154.181
23253 L179.357 -151.056
23254 L176.968 -157.526
23255 z
23256 " id="C3_54e_921fbdbdce"/>
23257 <path d="
23258 M213.774 -165.981
23259 L217.883 -161.121
23260 L220.169 -161.282
23261 L216.081 -166.617
23262 L213.774 -165.981
23263 z
23264 " id="C3_54f_75551e0f46"/>
23265 <path d="
23266 M209.612 -167.664
23267 L213.774 -165.981
23268 L216.081 -166.617
23269 L211.937 -168.972
23270 L209.612 -167.664
23271 z
23272 " id="C3_550_b510ab3686"/>
23273 <path d="
23274 M217.308 -150.789
23275 L221.307 -140.536
23276 L223.615 -142.356
23277 L219.63 -152.532
23278 L217.308 -150.789
23279 z
23280 " id="C3_551_73d53e187e"/>
23281 <path d="
23282 M166.155 -103.271
23283 L170.291 -98.8872
23284 L172.649 -112.338
23285 L168.496 -116.924
23286 L166.155 -103.271
23287 z
23288 " id="C3_552_fb41d12831"/>
23289 <path d="
23290 M142.659 -148.816
23291 L146.684 -152.358
23292 L149.047 -159.767
23293 L144.997 -156.998
23294 L142.659 -148.816
23295 z
23296 " id="C3_553_18a16f5097"/>
23297 <path d="
23298 M193.993 -107.628
23299 L198.071 -98.0346
23300 L200.503 -108.205
23301 L196.426 -118.169
23302 L193.993 -107.628
23303 z
23304 " id="C3_554_9a5a765d11"/>
23305 <path d="
23306 M157.897 -109.048
23307 L162.021 -106.675
23308 L164.346 -120.435
23309 L160.203 -122.853
23310 L157.897 -109.048
23311 z
23312 " id="C3_555_2b3d5c4a0c"/>
23313 <path d="
23314 M203.073 -164.493
23315 L207.277 -166.347
23316 L209.612 -167.664
23317 L205.414 -166.142
23318 L203.073 -164.493
23319 z
23320 " id="C3_556_11f62a530e"/>
23321 <path d="
23322 M153.873 -167.424
23323 L157.993 -166.386
23324 L160.444 -165.268
23325 L156.316 -168.044
23326 L153.873 -167.424
23327 z
23328 " id="C3_557_d241439e89"/>
23329 <path d="
23330 M162.021 -106.675
23331 L166.155 -103.271
23332 L168.496 -116.924
23333 L164.346 -120.435
23334 L162.021 -106.675
23335 z
23336 " id="C3_558_f7903a3332"/>
23337 <path d="
23338 M187.463 -104.936
23339 L191.568 -96.4492
23340 L193.993 -107.628
23341 L189.885 -116.505
23342 L187.463 -104.936
23343 z
23344 " id="C3_559_66d3751afd"/>
23345 <path d="
23346 M206.244 -48.7449
23347 L210.525 -54.4983
23348 L212.746 -49.3713
23349 L208.492 -44.5898
23350 L206.244 -48.7449
23351 z
23352 " id="C3_55a_85b910e1b1"/>
23353 <path d="
23354 M147.373 -163.097
23355 L151.446 -164.772
23356 L153.873 -167.424
23357 L149.78 -167.141
23358 L147.373 -163.097
23359 z
23360 " id="C3_55b_a307e6eaa3"/>
23361 <path d="
23362 M147.893 -123.525
23363 L151.971 -124.395
23364 L154.271 -137.077
23365 L150.174 -136.242
23366 L147.893 -123.525
23367 z
23368 " id="C3_55c_b3f13cb11d"/>
23369 <path d="
23370 M202.938 -117.647
23371 L206.974 -106.67
23372 L209.4 -114.959
23373 L205.37 -126.098
23374 L202.938 -117.647
23375 z
23376 " id="C3_55d_7acd573bf6"/>
23377 <path d="
23378 M215.572 -160.208
23379 L219.63 -152.532
23380 L221.925 -153.345
23381 L217.883 -161.121
23382 L215.572 -160.208
23383 z
23384 " id="C3_55e_d9f39f294f"/>
23385 <path d="
23386 M171.838 -47.9492
23387 L175.972 -51.0468
23388 L178.376 -44.8092
23389 L174.257 -42.5273
23390 L171.838 -47.9492
23391 z
23392 " id="C3_55f_c0acf0d7ee"/>
23393 <path d="
23394 M144.997 -156.998
23395 L149.047 -159.767
23396 L151.446 -164.772
23397 L147.373 -163.097
23398 L144.997 -156.998
23399 z
23400 " id="C3_560_c2294eb3f5"/>
23401 <path d="
23402 M157.993 -166.386
23403 L162.127 -164.667
23404 L164.578 -161.911
23405 L160.444 -165.268
23406 L157.993 -166.386
23407 z
23408 " id="C3_561_f6e5303d92"/>
23409 <path d="
23410 M162.127 -164.667
23411 L166.266 -162.962
23412 L168.709 -158.987
23413 L164.578 -161.911
23414 L162.127 -164.667
23415 z
23416 " id="C3_562_749c2f5554"/>
23417 <path d="
23418 M144.364 -142.733
23419 L148.41 -145.546
23420 L150.753 -154.674
23421 L146.684 -152.358
23422 L144.364 -142.733
23423 z
23424 " id="C3_563_5bb61fef6b"/>
23425 <path d="
23426 M182.52 -47.9189
23427 L186.693 -51.9111
23428 L189.037 -45.8477
23429 L184.882 -42.7619
23430 L182.52 -47.9189
23431 z
23432 " id="C3_564_e50ebe8b29"/>
23433 <path d="
23434 M214.961 -148.085
23435 L218.97 -137.645
23436 L221.307 -140.536
23437 L217.308 -150.789
23438 L214.961 -148.085
23439 z
23440 " id="C3_565_79b3319919"/>
23441 <path d="
23442 M176.797 -106.731
23443 L180.934 -100.202
23444 L183.335 -112.669
23445 L179.187 -119.45
23446 L176.797 -106.731
23447 z
23448 " id="C3_566_0366c291b9"/>
23449 <path d="
23450 M187.647 -158.123
23451 L191.831 -161.443
23452 L194.182 -160.066
23453 L189.994 -154.718
23454 L187.647 -158.123
23455 z
23456 " id="C3_567_9e925f3ee2"/>
23457 <path d="
23458 M146.11 -134.318
23459 L150.174 -136.242
23460 L152.495 -147.246
23461 L148.41 -145.546
23462 L146.11 -134.318
23463 z
23464 " id="C3_568_7b583cf8a0"/>
23465 <path d="
23466 M199.74 -48.9218
23467 L203.992 -54.3266
23468 L206.244 -48.7449
23469 L202.016 -44.2915
23470 L199.74 -48.9218
23471 z
23472 " id="C3_569_4087b89c17"/>
23473 <path d="
23474 M194.182 -160.066
23475 L198.385 -163.357
23476 L200.731 -163.637
23477 L196.521 -159.13
23478 L194.182 -160.066
23479 z
23480 " id="C3_56a_b7ae7b05bf"/>
23481 <path d="
23482 M51.247 -144.685
23483 L55.6838 -136.919
23484 L58.7936 -130.146
23485 L54.3214 -138.981
23486 L51.247 -144.685
23487 z
23488 " id="C3_56b_dcd8e9d310"/>
23489 <path d="
23490 M166.266 -162.962
23491 L170.408 -161.834
23492 L172.836 -157.4
23493 L168.709 -158.987
23494 L166.266 -162.962
23495 z
23496 " id="C3_56c_8514531564"/>
23497 <path d="
23498 M205.37 -126.098
23499 L209.4 -114.959
23500 L211.818 -122.287
23501 L207.793 -133.395
23502 L205.37 -126.098
23503 z
23504 " id="C3_56d_a64234fb79"/>
23505 <path d="
23506 M207.277 -166.347
23507 L211.45 -164.904
23508 L213.774 -165.981
23509 L209.612 -167.664
23510 L207.277 -166.347
23511 z
23512 " id="C3_56e_f051e78f84"/>
23513 <path d="
23514 M211.45 -164.904
23515 L215.572 -160.208
23516 L217.883 -161.121
23517 L213.774 -165.981
23518 L211.45 -164.904
23519 z
23520 " id="C3_56f_547580eac0"/>
23521 <path d="
23522 M151.971 -124.395
23523 L156.076 -124.172
23524 L158.395 -136.847
23525 L154.271 -137.077
23526 L151.971 -124.395
23527 z
23528 " id="C3_570_a31a9c42da"/>
23529 <path d="
23530 M151.446 -164.772
23531 L155.553 -165.172
23532 L157.993 -166.386
23533 L153.873 -167.424
23534 L151.446 -164.772
23535 z
23536 " id="C3_571_6c44ef3013"/>
23537 <path d="
23538 M200.731 -163.637
23539 L204.935 -165.159
23540 L207.277 -166.347
23541 L203.073 -164.493
23542 L200.731 -163.637
23543 z
23544 " id="C3_572_2a454c387f"/>
23545 <path d="
23546 M212.592 -144.343
23547 L216.607 -133.654
23548 L218.97 -137.645
23549 L214.961 -148.085
23550 L212.592 -144.343
23551 z
23552 " id="C3_573_796eb6a1d6"/>
23553 <path d="
23554 M196.426 -118.169
23555 L200.503 -108.205
23556 L202.938 -117.647
23557 L198.862 -127.719
23558 L196.426 -118.169
23559 z
23560 " id="C3_574_1859314908"/>
23561 <path d="
23562 M181.114 -158.995
23563 L185.279 -160.908
23564 L187.647 -158.123
23565 L183.488 -154.181
23566 L181.114 -158.995
23567 z
23568 " id="C3_575_2331117cc3"/>
23569 <path d="
23570 M207.793 -133.395
23571 L211.818 -122.287
23572 L214.222 -128.535
23573 L210.201 -139.471
23574 L207.793 -133.395
23575 z
23576 " id="C3_576_c3e45b2feb"/>
23577 <path d="
23578 M213.24 -158.591
23579 L217.308 -150.789
23580 L219.63 -152.532
23581 L215.572 -160.208
23582 L213.24 -158.591
23583 z
23584 " id="C3_577_3e767eb009"/>
23585 <path d="
23586 M210.201 -139.471
23587 L214.222 -128.535
23588 L216.607 -133.654
23589 L212.592 -144.343
23590 L210.201 -139.471
23591 z
23592 " id="C3_578_4d8b2422bd"/>
23593 <path d="
23594 M146.684 -152.358
23595 L150.753 -154.674
23596 L153.136 -161.284
23597 L149.047 -159.767
23598 L146.684 -152.358
23599 z
23600 " id="C3_579_e075e39492"/>
23601 <path d="
23602 M183.335 -112.669
23603 L187.463 -104.936
23604 L189.885 -116.505
23605 L185.75 -124.404
23606 L183.335 -112.669
23607 z
23608 " id="C3_57a_7de6aa0113"/>
23609 <path d="
23610 M172.649 -112.338
23611 L176.797 -106.731
23612 L179.187 -119.45
23613 L175.027 -125.158
23614 L172.649 -112.338
23615 z
23616 " id="C3_57b_15cfd8f130"/>
23617 <path d="
23618 M170.408 -161.834
23619 L174.556 -161.504
23620 L176.968 -157.526
23621 L172.836 -157.4
23622 L170.408 -161.834
23623 z
23624 " id="C3_57c_e14acee7fd"/>
23625 <path d="
23626 M193.226 -49.9489
23627 L197.454 -55.0792
23628 L199.74 -48.9218
23629 L195.534 -44.6818
23630 L193.226 -49.9489
23631 z
23632 " id="C3_57d_d53edbc008"/>
23633 <path d="
23634 M149.047 -159.767
23635 L153.136 -161.284
23636 L155.553 -165.172
23637 L151.446 -164.772
23638 L149.047 -159.767
23639 z
23640 " id="C3_57e_c266f5b367"/>
23641 <path d="
23642 M189.885 -116.505
23643 L193.993 -107.628
23644 L196.426 -118.169
23645 L192.315 -127.155
23646 L189.885 -116.505
23647 z
23648 " id="C3_57f_01e7bd9fb2"/>
23649 <path d="
23650 M156.076 -124.172
23651 L160.203 -122.853
23652 L162.539 -135.559
23653 L158.395 -136.847
23654 L156.076 -124.172
23655 z
23656 " id="C3_580_36e9ae1b32"/>
23657 <path d="
23658 M155.553 -165.172
23659 L159.681 -164.743
23660 L162.127 -164.667
23661 L157.993 -166.386
23662 L155.553 -165.172
23663 z
23664 " id="C3_581_cf08386059"/>
23665 <path d="
23666 M150.174 -136.242
23667 L154.271 -137.077
23668 L156.609 -147.92
23669 L152.495 -147.246
23670 L150.174 -136.242
23671 z
23672 " id="C3_582_708199f174"/>
23673 <path d="
23674 M168.496 -116.924
23675 L172.649 -112.338
23676 L175.027 -125.158
23677 L170.861 -129.742
23678 L168.496 -116.924
23679 z
23680 " id="C3_583_8f6ec266bf"/>
23681 <path d="
23682 M175.972 -51.0468
23683 L180.133 -54.9144
23684 L182.52 -47.9189
23685 L178.376 -44.8092
23686 L175.972 -51.0468
23687 z
23688 " id="C3_584_4407590e93"/>
23689 <path d="
23690 M148.41 -145.546
23691 L152.495 -147.246
23692 L154.856 -155.926
23693 L150.753 -154.674
23694 L148.41 -145.546
23695 z
23696 " id="C3_585_9ad2c6e01e"/>
23697 <path d="
23698 M204.935 -165.159
23699 L209.11 -163.468
23700 L211.45 -164.904
23701 L207.277 -166.347
23702 L204.935 -165.159
23703 z
23704 " id="C3_586_8e15b2edc9"/>
23705 <path d="
23706 M209.11 -163.468
23707 L213.24 -158.591
23708 L215.572 -160.208
23709 L211.45 -164.904
23710 L209.11 -163.468
23711 z
23712 " id="C3_587_5cac9637ef"/>
23713 <path d="
23714 M160.203 -122.853
23715 L164.346 -120.435
23716 L166.696 -133.2
23717 L162.539 -135.559
23718 L160.203 -122.853
23719 z
23720 " id="C3_588_98d9248326"/>
23721 <path d="
23722 M210.887 -156.216
23723 L214.961 -148.085
23724 L217.308 -150.789
23725 L213.24 -158.591
23726 L210.887 -156.216
23727 z
23728 " id="C3_589_0aa8935531"/>
23729 <path d="
23730 M164.346 -120.435
23731 L168.496 -116.924
23732 L170.861 -129.742
23733 L166.696 -133.2
23734 L164.346 -120.435
23735 z
23736 " id="C3_58a_b8f6f698aa"/>
23737 <path d="
23738 M198.862 -127.719
23739 L202.938 -117.647
23740 L205.37 -126.098
23741 L201.294 -136.032
23742 L198.862 -127.719
23743 z
23744 " id="C3_58b_ae6c8bcc40"/>
23745 <path d="
23746 M198.385 -163.357
23747 L202.583 -163.963
23748 L204.935 -165.159
23749 L200.731 -163.637
23750 L198.385 -163.357
23751 z
23752 " id="C3_58c_234fe79361"/>
23753 <path d="
23754 M174.556 -161.504
23755 L178.716 -161.754
23756 L181.114 -158.995
23757 L176.968 -157.526
23758 L174.556 -161.504
23759 z
23760 " id="C3_58d_8bf84436b4"/>
23761 <path d="
23762 M159.681 -164.743
23763 L163.822 -163.951
23764 L166.266 -162.962
23765 L162.127 -164.667
23766 L159.681 -164.743
23767 z
23768 " id="C3_58e_abc3064b93"/>
23769 <path d="
23770 M217.061 -55.5759
23771 L221.444 -63.0662
23772 L223.61 -57.5748
23773 L219.253 -50.7996
23774 L217.061 -55.5759
23775 z
23776 " id="C3_58f_599ff7ad5a"/>
23777 <path d="
23778 M191.831 -161.443
23779 L196.027 -163.091
23780 L198.385 -163.357
23781 L194.182 -160.066
23782 L191.831 -161.443
23783 z
23784 " id="C3_590_26e2800821"/>
23785 <path d="
23786 M223.61 -57.5748
23787 L228.042 -65.6793
23788 L230.182 -60.5405
23789 L225.775 -53.0743
23790 L223.61 -57.5748
23791 z
23792 " id="C3_591_a2cde95222"/>
23793 <path d="
23794 M179.187 -119.45
23795 L183.335 -112.669
23796 L185.75 -124.404
23797 L181.594 -131.156
23798 L179.187 -119.45
23799 z
23800 " id="C3_592_8e9f7f9d40"/>
23801 <path d="
23802 M153.136 -161.284
23803 L157.254 -161.836
23804 L159.681 -164.743
23805 L155.553 -165.172
23806 L153.136 -161.284
23807 z
23808 " id="C3_593_ffe9e460be"/>
23809 <path d="
23810 M186.693 -51.9111
23811 L190.902 -56.8044
23812 L193.226 -49.9489
23813 L189.037 -45.8477
23814 L186.693 -51.9111
23815 z
23816 " id="C3_594_49539baed6"/>
23817 <path d="
23818 M210.525 -54.4983
23819 L214.866 -61.4577
23820 L217.061 -55.5759
23821 L212.746 -49.3713
23822 L210.525 -54.4983
23823 z
23824 " id="C3_595_30662059ed"/>
23825 <path d="
23826 M150.753 -154.674
23827 L154.856 -155.926
23828 L157.254 -161.836
23829 L153.136 -161.284
23830 L150.753 -154.674
23831 z
23832 " id="C3_596_76cae48581"/>
23833 <path d="
23834 M185.279 -160.908
23835 L189.462 -162.244
23836 L191.831 -161.443
23837 L187.647 -158.123
23838 L185.279 -160.908
23839 z
23840 " id="C3_597_f3da03a64e"/>
23841 <path d="
23842 M208.515 -152.943
23843 L212.592 -144.343
23844 L214.961 -148.085
23845 L210.887 -156.216
23846 L208.515 -152.943
23847 z
23848 " id="C3_598_d48c27ac79"/>
23849 <path d="
23850 M154.271 -137.077
23851 L158.395 -136.847
23852 L160.748 -147.637
23853 L156.609 -147.92
23854 L154.271 -137.077
23855 z
23856 " id="C3_599_7742476920"/>
23857 <path d="
23858 M201.294 -136.032
23859 L205.37 -126.098
23860 L207.793 -133.395
23861 L203.716 -142.989
23862 L201.294 -136.032
23863 z
23864 " id="C3_59a_0079940d4f"/>
23865 <path d="
23866 M192.315 -127.155
23867 L196.426 -118.169
23868 L198.862 -127.719
23869 L194.748 -136.526
23870 L192.315 -127.155
23871 z
23872 " id="C3_59b_030ca01e3c"/>
23873 <path d="
23874 M163.822 -163.951
23875 L167.973 -163.155
23876 L170.408 -161.834
23877 L166.266 -162.962
23878 L163.822 -163.951
23879 z
23880 " id="C3_59c_79e5578f98"/>
23881 <path d="
23882 M185.75 -124.404
23883 L189.885 -116.505
23884 L192.315 -127.155
23885 L188.174 -134.916
23886 L185.75 -124.404
23887 z
23888 " id="C3_59d_a582792350"/>
23889 <path d="
23890 M206.757 -161.588
23891 L210.887 -156.216
23892 L213.24 -158.591
23893 L209.11 -163.468
23894 L206.757 -161.588
23895 z
23896 " id="C3_59e_84c471d82b"/>
23897 <path d="
23898 M202.583 -163.963
23899 L206.757 -161.588
23900 L209.11 -163.468
23901 L204.935 -165.159
23902 L202.583 -163.963
23903 z
23904 " id="C3_59f_4445bfe32d"/>
23905 <path d="
23906 M203.992 -54.3266
23907 L208.297 -60.835
23908 L210.525 -54.4983
23909 L206.244 -48.7449
23910 L203.992 -54.3266
23911 z
23912 " id="C3_5a0_67245db461"/>
23913 <path d="
23914 M152.495 -147.246
23915 L156.609 -147.92
23916 L158.984 -156.291
23917 L154.856 -155.926
23918 L152.495 -147.246
23919 z
23920 " id="C3_5a1_a46806d019"/>
23921 <path d="
23922 M206.125 -148.591
23923 L210.201 -139.471
23924 L212.592 -144.343
23925 L208.515 -152.943
23926 L206.125 -148.591
23927 z
23928 " id="C3_5a2_fc626ea09e"/>
23929 <path d="
23930 M203.716 -142.989
23931 L207.793 -133.395
23932 L210.201 -139.471
23933 L206.125 -148.591
23934 L203.716 -142.989
23935 z
23936 " id="C3_5a3_a0cab89afc"/>
23937 <path d="
23938 M175.027 -125.158
23939 L179.187 -119.45
23940 L181.594 -131.156
23941 L177.424 -136.694
23942 L175.027 -125.158
23943 z
23944 " id="C3_5a4_f232f3a079"/>
23945 <path d="
23946 M178.716 -161.754
23947 L182.889 -162.02
23948 L185.279 -160.908
23949 L181.114 -158.995
23950 L178.716 -161.754
23951 z
23952 " id="C3_5a5_45ac8c4846"/>
23953 <path d="
23954 M157.254 -161.836
23955 L161.392 -161.721
23956 L163.822 -163.951
23957 L159.681 -164.743
23958 L157.254 -161.836
23959 z
23960 " id="C3_5a6_812a2f881f"/>
23961 <path d="
23962 M158.395 -136.847
23963 L162.539 -135.559
23964 L164.904 -146.423
23965 L160.748 -147.637
23966 L158.395 -136.847
23967 z
23968 " id="C3_5a7_b7580c8ac1"/>
23969 <path d="
23970 M167.973 -163.155
23971 L172.133 -162.491
23972 L174.556 -161.504
23973 L170.408 -161.834
23974 L167.973 -163.155
23975 z
23976 " id="C3_5a8_bd0071b79f"/>
23977 <path d="
23978 M196.027 -163.091
23979 L200.218 -162.4
23980 L202.583 -163.963
23981 L198.385 -163.357
23982 L196.027 -163.091
23983 z
23984 " id="C3_5a9_c197d927dc"/>
23985 <path d="
23986 M154.856 -155.926
23987 L158.984 -156.291
23988 L161.392 -161.721
23989 L157.254 -161.836
23990 L154.856 -155.926
23991 z
23992 " id="C3_5aa_0aa5942b00"/>
23993 <path d="
23994 M204.386 -159.032
23995 L208.515 -152.943
23996 L210.887 -156.216
23997 L206.757 -161.588
23998 L204.386 -159.032
23999 z
24000 " id="C3_5ab_775c8ac11d"/>
24001 <path d="
24002 M170.861 -129.742
24003 L175.027 -125.158
24004 L177.424 -136.694
24005 L173.248 -141.034
24006 L170.861 -129.742
24007 z
24008 " id="C3_5ac_15ca528d07"/>
24009 <path d="
24010 M194.748 -136.526
24011 L198.862 -127.719
24012 L201.294 -136.032
24013 L197.176 -144.394
24014 L194.748 -136.526
24015 z
24016 " id="C3_5ad_1d41bce16b"/>
24017 <path d="
24018 M197.454 -55.0792
24019 L201.729 -61.1996
24020 L203.992 -54.3266
24021 L199.74 -48.9218
24022 L197.454 -55.0792
24023 z
24024 " id="C3_5ae_6b9ee24ec9"/>
24025 <path d="
24026 M162.539 -135.559
24027 L166.696 -133.2
24028 L169.073 -144.246
24029 L164.904 -146.423
24030 L162.539 -135.559
24031 z
24032 " id="C3_5af_8d9f0d19e1"/>
24033 <path d="
24034 M189.462 -162.244
24035 L193.652 -162.141
24036 L196.027 -163.091
24037 L191.831 -161.443
24038 L189.462 -162.244
24039 z
24040 " id="C3_5b0_ea7766af88"/>
24041 <path d="
24042 M180.133 -54.9144
24043 L184.325 -59.5692
24044 L186.693 -51.9111
24045 L182.52 -47.9189
24046 L180.133 -54.9144
24047 z
24048 " id="C3_5b1_980469a1ee"/>
24049 <path d="
24050 M166.696 -133.2
24051 L170.861 -129.742
24052 L173.248 -141.034
24053 L169.073 -144.246
24054 L166.696 -133.2
24055 z
24056 " id="C3_5b2_2ba948e3dc"/>
24057 <path d="
24058 M156.609 -147.92
24059 L160.748 -147.637
24060 L163.133 -155.903
24061 L158.984 -156.291
24062 L156.609 -147.92
24063 z
24064 " id="C3_5b3_3373df600a"/>
24065 <path d="
24066 M200.218 -162.4
24067 L204.386 -159.032
24068 L206.757 -161.588
24069 L202.583 -163.963
24070 L200.218 -162.4
24071 z
24072 " id="C3_5b4_b913ec5a2a"/>
24073 <path d="
24074 M181.594 -131.156
24075 L185.75 -124.404
24076 L188.174 -134.916
24077 L184.011 -141.33
24078 L181.594 -131.156
24079 z
24080 " id="C3_5b5_dcb0ccbf86"/>
24081 <path d="
24082 M161.392 -161.721
24083 L165.545 -161.165
24084 L167.973 -163.155
24085 L163.822 -163.951
24086 L161.392 -161.721
24087 z
24088 " id="C3_5b6_e2b97e88a6"/>
24089 <path d="
24090 M188.174 -134.916
24091 L192.315 -127.155
24092 L194.748 -136.526
24093 L190.602 -143.842
24094 L188.174 -134.916
24095 z
24096 " id="C3_5b7_361d666da3"/>
24097 <path d="
24098 M172.133 -162.491
24099 L176.303 -161.822
24100 L178.716 -161.754
24101 L174.556 -161.504
24102 L172.133 -162.491
24103 z
24104 " id="C3_5b8_ed09543cdd"/>
24105 <path d="
24106 M201.999 -155.498
24107 L206.125 -148.591
24108 L208.515 -152.943
24109 L204.386 -159.032
24110 L201.999 -155.498
24111 z
24112 " id="C3_5b9_88fc217275"/>
24113 <path d="
24114 M197.176 -144.394
24115 L201.294 -136.032
24116 L203.716 -142.989
24117 L199.595 -150.69
24118 L197.176 -144.394
24119 z
24120 " id="C3_5ba_779768cfee"/>
24121 <path d="
24122 M182.889 -162.02
24123 L187.073 -161.604
24124 L189.462 -162.244
24125 L185.279 -160.908
24126 L182.889 -162.02
24127 z
24128 " id="C3_5bb_2d84a3dc87"/>
24129 <path d="
24130 M158.984 -156.291
24131 L163.133 -155.903
24132 L165.545 -161.165
24133 L161.392 -161.721
24134 L158.984 -156.291
24135 z
24136 " id="C3_5bc_e2f4481f7c"/>
24137 <path d="
24138 M199.595 -150.69
24139 L203.716 -142.989
24140 L206.125 -148.591
24141 L201.999 -155.498
24142 L199.595 -150.69
24143 z
24144 " id="C3_5bd_ce6c030086"/>
24145 <path d="
24146 M160.748 -147.637
24147 L164.904 -146.423
24148 L167.296 -154.81
24149 L163.133 -155.903
24150 L160.748 -147.637
24151 z
24152 " id="C3_5be_bbb3f2943a"/>
24153 <path d="
24154 M193.652 -162.141
24155 L197.837 -159.999
24156 L200.218 -162.4
24157 L196.027 -163.091
24158 L193.652 -162.141
24159 z
24160 " id="C3_5bf_93f2b2c73d"/>
24161 <path d="
24162 M165.545 -161.165
24163 L169.709 -160.253
24164 L172.133 -162.491
24165 L167.973 -163.155
24166 L165.545 -161.165
24167 z
24168 " id="C3_5c0_4878d79b69"/>
24169 <path d="
24170 M177.424 -136.694
24171 L181.594 -131.156
24172 L184.011 -141.33
24173 L179.835 -146.396
24174 L177.424 -136.694
24175 z
24176 " id="C3_5c1_26727d34a3"/>
24177 <path d="
24178 M197.837 -159.999
24179 L201.999 -155.498
24180 L204.386 -159.032
24181 L200.218 -162.4
24182 L197.837 -159.999
24183 z
24184 " id="C3_5c2_7262af8205"/>
24185 <path d="
24186 M190.902 -56.8044
24187 L195.152 -62.5737
24188 L197.454 -55.0792
24189 L193.226 -49.9489
24190 L190.902 -56.8044
24191 z
24192 " id="C3_5c3_ebfadb64c7"/>
24193 <path d="
24194 M176.303 -161.822
24195 L180.482 -160.789
24196 L182.889 -162.02
24197 L178.716 -161.754
24198 L176.303 -161.822
24199 z
24200 " id="C3_5c4_f130046856"/>
24201 <path d="
24202 M190.602 -143.842
24203 L194.748 -136.526
24204 L197.176 -144.394
24205 L193.025 -150.978
24206 L190.602 -143.842
24207 z
24208 " id="C3_5c5_073daef199"/>
24209 <path d="
24210 M164.904 -146.423
24211 L169.073 -144.246
24212 L171.471 -152.962
24213 L167.296 -154.81
24214 L164.904 -146.423
24215 z
24216 " id="C3_5c6_a60e549bb7"/>
24217 <path d="
24218 M163.133 -155.903
24219 L167.296 -154.81
24220 L169.709 -160.253
24221 L165.545 -161.165
24222 L163.133 -155.903
24223 z
24224 " id="C3_5c7_5baf707fba"/>
24225 <path d="
24226 M187.073 -161.604
24227 L191.26 -159.858
24228 L193.652 -162.141
24229 L189.462 -162.244
24230 L187.073 -161.604
24231 z
24232 " id="C3_5c8_bbcf41923e"/>
24233 <path d="
24234 M184.011 -141.33
24235 L188.174 -134.916
24236 L190.602 -143.842
24237 L186.433 -149.596
24238 L184.011 -141.33
24239 z
24240 " id="C3_5c9_8f04f4583e"/>
24241 <path d="
24242 M173.248 -141.034
24243 L177.424 -136.694
24244 L179.835 -146.396
24245 L175.652 -150.217
24246 L173.248 -141.034
24247 z
24248 " id="C3_5ca_974b7a4991"/>
24249 <path d="
24250 M169.073 -144.246
24251 L173.248 -141.034
24252 L175.652 -150.217
24253 L171.471 -152.962
24254 L169.073 -144.246
24255 z
24256 " id="C3_5cb_f987fa990e"/>
24257 <path d="
24258 M195.438 -156.306
24259 L199.595 -150.69
24260 L201.999 -155.498
24261 L197.837 -159.999
24262 L195.438 -156.306
24263 z
24264 " id="C3_5cc_5cbe5bbbd7"/>
24265 <path d="
24266 M169.709 -160.253
24267 L173.884 -158.898
24268 L176.303 -161.822
24269 L172.133 -162.491
24270 L169.709 -160.253
24271 z
24272 " id="C3_5cd_456660d3ff"/>
24273 <path d="
24274 M221.444 -63.0662
24275 L225.897 -71.6195
24276 L228.042 -65.6793
24277 L223.61 -57.5748
24278 L221.444 -63.0662
24279 z
24280 " id="C3_5ce_e4f7769c26"/>
24281 <path d="
24282 M193.025 -150.978
24283 L197.176 -144.394
24284 L199.595 -150.69
24285 L195.438 -156.306
24286 L193.025 -150.978
24287 z
24288 " id="C3_5cf_d88145817b"/>
24289 <path d="
24290 M214.866 -61.4577
24291 L219.27 -69.4518
24292 L221.444 -63.0662
24293 L217.061 -55.5759
24294 L214.866 -61.4577
24295 z
24296 " id="C3_5d0_631dbe2884"/>
24297 <path d="
24298 M191.26 -159.858
24299 L195.438 -156.306
24300 L197.837 -159.999
24301 L193.652 -162.141
24302 L191.26 -159.858
24303 z
24304 " id="C3_5d1_ff372e8e93"/>
24305 <path d="
24306 M180.482 -160.789
24307 L184.667 -158.92
24308 L187.073 -161.604
24309 L182.889 -162.02
24310 L180.482 -160.789
24311 z
24312 " id="C3_5d2_f2b6adf216"/>
24313 <path d="
24314 M167.296 -154.81
24315 L171.471 -152.962
24316 L173.884 -158.898
24317 L169.709 -160.253
24318 L167.296 -154.81
24319 z
24320 " id="C3_5d3_9a5ccf5036"/>
24321 <path d="
24322 M179.835 -146.396
24323 L184.011 -141.33
24324 L186.433 -149.596
24325 L182.252 -153.868
24326 L179.835 -146.396
24327 z
24328 " id="C3_5d4_d379424ede"/>
24329 <path d="
24330 M186.433 -149.596
24331 L190.602 -143.842
24332 L193.025 -150.978
24333 L188.852 -155.763
24334 L186.433 -149.596
24335 z
24336 " id="C3_5d5_33cadd8858"/>
24337 <path d="
24338 M208.297 -60.835
24339 L212.66 -68.317
24340 L214.866 -61.4577
24341 L210.525 -54.4983
24342 L208.297 -60.835
24343 z
24344 " id="C3_5d6_78e0a16a67"/>
24345 <path d="
24346 M173.884 -158.898
24347 L178.066 -156.871
24348 L180.482 -160.789
24349 L176.303 -161.822
24350 L173.884 -158.898
24351 z
24352 " id="C3_5d7_dd24f90618"/>
24353 <path d="
24354 M188.852 -155.763
24355 L193.025 -150.978
24356 L195.438 -156.306
24357 L191.26 -159.858
24358 L188.852 -155.763
24359 z
24360 " id="C3_5d8_cf20b1187f"/>
24361 <path d="
24362 M171.471 -152.962
24363 L175.652 -150.217
24364 L178.066 -156.871
24365 L173.884 -158.898
24366 L171.471 -152.962
24367 z
24368 " id="C3_5d9_1d0e73ac75"/>
24369 <path d="
24370 M184.667 -158.92
24371 L188.852 -155.763
24372 L191.26 -159.858
24373 L187.073 -161.604
24374 L184.667 -158.92
24375 z
24376 " id="C3_5da_a23705afea"/>
24377 <path d="
24378 M175.652 -150.217
24379 L179.835 -146.396
24380 L182.252 -153.868
24381 L178.066 -156.871
24382 L175.652 -150.217
24383 z
24384 " id="C3_5db_1132605c72"/>
24385 <path d="
24386 M178.066 -156.871
24387 L182.252 -153.868
24388 L184.667 -158.92
24389 L180.482 -160.789
24390 L178.066 -156.871
24391 z
24392 " id="C3_5dc_b168791a14"/>
24393 <path d="
24394 M184.325 -59.5692
24395 L188.554 -64.9923
24396 L190.902 -56.8044
24397 L186.693 -51.9111
24398 L184.325 -59.5692
24399 z
24400 " id="C3_5dd_a989cd7b29"/>
24401 <path d="
24402 M182.252 -153.868
24403 L186.433 -149.596
24404 L188.852 -155.763
24405 L184.667 -158.92
24406 L182.252 -153.868
24407 z
24408 " id="C3_5de_0c477b3ca0"/>
24409 <path d="
24410 M201.729 -61.1996
24411 L206.056 -68.2119
24412 L208.297 -60.835
24413 L203.992 -54.3266
24414 L201.729 -61.1996
24415 z
24416 " id="C3_5df_6478e58a6e"/>
24417 <path d="
24418 M195.152 -62.5737
24419 L199.448 -69.143
24420 L201.729 -61.1996
24421 L197.454 -55.0792
24422 L195.152 -62.5737
24423 z
24424 " id="C3_5e0_423c15d4a5"/>
24425 <path d="
24426 M188.554 -64.9923
24427 L192.825 -71.1226
24428 L195.152 -62.5737
24429 L190.902 -56.8044
24430 L188.554 -64.9923
24431 z
24432 " id="C3_5e1_3f5a79965d"/>
24433 <path d="
24434 M219.27 -69.4518
24435 L223.74 -78.2314
24436 L225.897 -71.6195
24437 L221.444 -63.0662
24438 L219.27 -69.4518
24439 z
24440 " id="C3_5e2_acd3dc41f3"/>
24441 <path d="
24442 M212.66 -68.317
24443 L217.083 -76.5716
24444 L219.27 -69.4518
24445 L214.866 -61.4577
24446 L212.66 -68.317
24447 z
24448 " id="C3_5e3_bc331687d6"/>
24449 <path d="
24450 M206.056 -68.2119
24451 L210.438 -75.9544
24452 L212.66 -68.317
24453 L208.297 -60.835
24454 L206.056 -68.2119
24455 z
24456 " id="C3_5e4_ebd734ece9"/>
24457 <path d="
24458 M199.448 -69.143
24459 L203.794 -76.3813
24460 L206.056 -68.2119
24461 L201.729 -61.1996
24462 L199.448 -69.143
24463 z
24464 " id="C3_5e5_815d86241d"/>
24465 <path d="
24466 M192.825 -71.1226
24467 L197.141 -77.8514
24468 L199.448 -69.143
24469 L195.152 -62.5737
24470 L192.825 -71.1226
24471 z
24472 " id="C3_5e6_b86b98675e"/>
24473 <path d="
24474 M217.083 -76.5716
24475 L221.566 -85.3279
24476 L223.74 -78.2314
24477 L219.27 -69.4518
24478 L217.083 -76.5716
24479 z
24480 " id="C3_5e7_aa8b13c2d5"/>
24481 <path d="
24482 M210.438 -75.9544
24483 L214.875 -84.2012
24484 L217.083 -76.5716
24485 L212.66 -68.317
24486 L210.438 -75.9544
24487 z
24488 " id="C3_5e8_0c82f21bee"/>
24489 <path d="
24490 M203.794 -76.3813
24491 L208.192 -84.1
24492 L210.438 -75.9544
24493 L206.056 -68.2119
24494 L203.794 -76.3813
24495 z
24496 " id="C3_5e9_76e4829436"/>
24497 <path d="
24498 M197.141 -77.8514
24499 L201.504 -85.0199
24500 L203.794 -76.3813
24501 L199.448 -69.143
24502 L197.141 -77.8514
24503 z
24504 " id="C3_5ea_46b080b323"/>
24505 <path d="
24506 M214.875 -84.2012
24507 L219.367 -92.6656
24508 L221.566 -85.3279
24509 L217.083 -76.5716
24510 L214.875 -84.2012
24511 z
24512 " id="C3_5eb_d0c965afe1"/>
24513 <path d="
24514 M208.192 -84.1
24515 L212.64 -92.0546
24516 L214.875 -84.2012
24517 L210.438 -75.9544
24518 L208.192 -84.1
24519 z
24520 " id="C3_5ec_6f58337bf3"/>
24521 <path d="
24522 M201.504 -85.0199
24523 L205.915 -92.4188
24524 L208.192 -84.1
24525 L203.794 -76.3813
24526 L201.504 -85.0199
24527 z
24528 " id="C3_5ed_6967e37edd"/>
24529 <path d="
24530 M212.64 -92.0546
24531 L217.136 -99.9496
24532 L219.367 -92.6656
24533 L214.875 -84.2012
24534 L212.64 -92.0546
24535 z
24536 " id="C3_5ee_2659090b9d"/>
24537 <path d="
24538 M205.915 -92.4188
24539 L210.372 -99.7921
24540 L212.64 -92.0546
24541 L208.192 -84.1
24542 L205.915 -92.4188
24543 z
24544 " id="C3_5ef_884432928c"/>
24545 <path d="
24546 M210.372 -99.7921
24547 L214.868 -106.844
24548 L217.136 -99.9496
24549 L212.64 -92.0546
24550 L210.372 -99.7921
24551 z
24552 " id="C3_5f0_5b277eec89"/>
24553 </defs>
24554 <g clip-path="url(#pe1c207cc63)">
24555 <use style="fill:#0000a8;" x="0" xlink:href="#C3_0_71ba1f9eb3" y="231.84"/>
24556 </g>
24557 <g clip-path="url(#pe1c207cc63)">
24558 <use style="fill:#000092;" x="0" xlink:href="#C3_1_dc86a42c58" y="231.84"/>
24559 </g>
24560 <g clip-path="url(#pe1c207cc63)">
24561 <use style="fill:#0000a4;" x="0" xlink:href="#C3_2_3fcfcf3bbb" y="231.84"/>
24562 </g>
24563 <g clip-path="url(#pe1c207cc63)">
24564 <use style="fill:#0000bf;" x="0" xlink:href="#C3_3_bb0c7a6e03" y="231.84"/>
24565 </g>
24566 <g clip-path="url(#pe1c207cc63)">
24567 <use style="fill:#00009b;" x="0" xlink:href="#C3_4_8fcbd53e34" y="231.84"/>
24568 </g>
24569 <g clip-path="url(#pe1c207cc63)">
24570 <use style="fill:#0000c8;" x="0" xlink:href="#C3_5_386d8c3f05" y="231.84"/>
24571 </g>
24572 <g clip-path="url(#pe1c207cc63)">
24573 <use style="fill:#0000bb;" x="0" xlink:href="#C3_6_2be3840058" y="231.84"/>
24574 </g>
24575 <g clip-path="url(#pe1c207cc63)">
24576 <use style="fill:#000092;" x="0" xlink:href="#C3_7_adf677f271" y="231.84"/>
24577 </g>
24578 <g clip-path="url(#pe1c207cc63)">
24579 <use style="fill:#000084;" x="0" xlink:href="#C3_8_2b158fb898" y="231.84"/>
24580 </g>
24581 <g clip-path="url(#pe1c207cc63)">
24582 <use style="fill:#0000e3;" x="0" xlink:href="#C3_9_28f0fddcb1" y="231.84"/>
24583 </g>
24584 <g clip-path="url(#pe1c207cc63)">
24585 <use style="fill:#000084;" x="0" xlink:href="#C3_a_d5ba86840a" y="231.84"/>
24586 </g>
24587 <g clip-path="url(#pe1c207cc63)">
24588 <use style="fill:#000092;" x="0" xlink:href="#C3_b_6ff62cc8de" y="231.84"/>
24589 </g>
24590 <g clip-path="url(#pe1c207cc63)">
24591 <use style="fill:#0000b2;" x="0" xlink:href="#C3_c_1ceb746c96" y="231.84"/>
24592 </g>
24593 <g clip-path="url(#pe1c207cc63)">
24594 <use style="fill:#000080;" x="0" xlink:href="#C3_d_03faa3c3bc" y="231.84"/>
24595 </g>
24596 <g clip-path="url(#pe1c207cc63)">
24597 <use style="fill:#000084;" x="0" xlink:href="#C3_e_d193a1b535" y="231.84"/>
24598 </g>
24599 <g clip-path="url(#pe1c207cc63)">
24600 <use style="fill:#0000f6;" x="0" xlink:href="#C3_f_9d24ad8262" y="231.84"/>
24601 </g>
24602 <g clip-path="url(#pe1c207cc63)">
24603 <use style="fill:#000080;" x="0" xlink:href="#C3_10_d62830a0a4" y="231.84"/>
24604 </g>
24605 <g clip-path="url(#pe1c207cc63)">
24606 <use style="fill:#0000e8;" x="0" xlink:href="#C3_11_228303f716" y="231.84"/>
24607 </g>
24608 <g clip-path="url(#pe1c207cc63)">
24609 <use style="fill:#00008d;" x="0" xlink:href="#C3_12_bcbcb293ab" y="231.84"/>
24610 </g>
24611 <g clip-path="url(#pe1c207cc63)">
24612 <use style="fill:#0001ff;" x="0" xlink:href="#C3_13_6d74e8536a" y="231.84"/>
24613 </g>
24614 <g clip-path="url(#pe1c207cc63)">
24615 <use style="fill:#000080;" x="0" xlink:href="#C3_14_488b92a873" y="231.84"/>
24616 </g>
24617 <g clip-path="url(#pe1c207cc63)">
24618 <use style="fill:#0000ad;" x="0" xlink:href="#C3_15_8416138838" y="231.84"/>
24619 </g>
24620 <g clip-path="url(#pe1c207cc63)">
24621 <use style="fill:#000080;" x="0" xlink:href="#C3_16_937b27d9d4" y="231.84"/>
24622 </g>
24623 <g clip-path="url(#pe1c207cc63)">
24624 <use style="fill:#0000df;" x="0" xlink:href="#C3_17_8469ac8818" y="231.84"/>
24625 </g>
24626 <g clip-path="url(#pe1c207cc63)">
24627 <use style="fill:#000080;" x="0" xlink:href="#C3_18_cbf20ff7f1" y="231.84"/>
24628 </g>
24629 <g clip-path="url(#pe1c207cc63)">
24630 <use style="fill:#000080;" x="0" xlink:href="#C3_19_41c8dd479e" y="231.84"/>
24631 </g>
24632 <g clip-path="url(#pe1c207cc63)">
24633 <use style="fill:#00008d;" x="0" xlink:href="#C3_1a_51a7134322" y="231.84"/>
24634 </g>
24635 <g clip-path="url(#pe1c207cc63)">
24636 <use style="fill:#000080;" x="0" xlink:href="#C3_1b_b652a9aa0e" y="231.84"/>
24637 </g>
24638 <g clip-path="url(#pe1c207cc63)">
24639 <use style="fill:#001dff;" x="0" xlink:href="#C3_1c_3c11bd8af6" y="231.84"/>
24640 </g>
24641 <g clip-path="url(#pe1c207cc63)">
24642 <use style="fill:#0000b2;" x="0" xlink:href="#C3_1d_8a8ec1cda2" y="231.84"/>
24643 </g>
24644 <g clip-path="url(#pe1c207cc63)">
24645 <use style="fill:#000080;" x="0" xlink:href="#C3_1e_ab59bd7c05" y="231.84"/>
24646 </g>
24647 <g clip-path="url(#pe1c207cc63)">
24648 <use style="fill:#0000e3;" x="0" xlink:href="#C3_1f_10a972df40" y="231.84"/>
24649 </g>
24650 <g clip-path="url(#pe1c207cc63)">
24651 <use style="fill:#0031ff;" x="0" xlink:href="#C3_20_ea103aeea3" y="231.84"/>
24652 </g>
24653 <g clip-path="url(#pe1c207cc63)">
24654 <use style="fill:#000080;" x="0" xlink:href="#C3_21_91e963bf8d" y="231.84"/>
24655 </g>
24656 <g clip-path="url(#pe1c207cc63)">
24657 <use style="fill:#0011ff;" x="0" xlink:href="#C3_22_24febd0b53" y="231.84"/>
24658 </g>
24659 <g clip-path="url(#pe1c207cc63)">
24660 <use style="fill:#000080;" x="0" xlink:href="#C3_23_ecc3b62136" y="231.84"/>
24661 </g>
24662 <g clip-path="url(#pe1c207cc63)">
24663 <use style="fill:#000080;" x="0" xlink:href="#C3_24_10cda35e24" y="231.84"/>
24664 </g>
24665 <g clip-path="url(#pe1c207cc63)">
24666 <use style="fill:#000092;" x="0" xlink:href="#C3_25_e8483a74a7" y="231.84"/>
24667 </g>
24668 <g clip-path="url(#pe1c207cc63)">
24669 <use style="fill:#0011ff;" x="0" xlink:href="#C3_26_d934aa6cf7" y="231.84"/>
24670 </g>
24671 <g clip-path="url(#pe1c207cc63)">
24672 <use style="fill:#000080;" x="0" xlink:href="#C3_27_0acda39405" y="231.84"/>
24673 </g>
24674 <g clip-path="url(#pe1c207cc63)">
24675 <use style="fill:#000084;" x="0" xlink:href="#C3_28_458e2cd9fc" y="231.84"/>
24676 </g>
24677 <g clip-path="url(#pe1c207cc63)">
24678 <use style="fill:#0000bb;" x="0" xlink:href="#C3_29_994302ca61" y="231.84"/>
24679 </g>
24680 <g clip-path="url(#pe1c207cc63)">
24681 <use style="fill:#000080;" x="0" xlink:href="#C3_2a_4a8ed8c33a" y="231.84"/>
24682 </g>
24683 <g clip-path="url(#pe1c207cc63)">
24684 <use style="fill:#0000e8;" x="0" xlink:href="#C3_2b_b8091d68ce" y="231.84"/>
24685 </g>
24686 <g clip-path="url(#pe1c207cc63)">
24687 <use style="fill:#000089;" x="0" xlink:href="#C3_2c_403c2b1513" y="231.84"/>
24688 </g>
24689 <g clip-path="url(#pe1c207cc63)">
24690 <use style="fill:#000084;" x="0" xlink:href="#C3_2d_d6e00d1007" y="231.84"/>
24691 </g>
24692 <g clip-path="url(#pe1c207cc63)">
24693 <use style="fill:#000080;" x="0" xlink:href="#C3_2e_8a97c2a6fa" y="231.84"/>
24694 </g>
24695 <g clip-path="url(#pe1c207cc63)">
24696 <use style="fill:#00009b;" x="0" xlink:href="#C3_2f_45507f09ad" y="231.84"/>
24697 </g>
24698 <g clip-path="url(#pe1c207cc63)">
24699 <use style="fill:#000080;" x="0" xlink:href="#C3_30_08a9ab360a" y="231.84"/>
24700 </g>
24701 <g clip-path="url(#pe1c207cc63)">
24702 <use style="fill:#005dff;" x="0" xlink:href="#C3_31_8eca59e0e0" y="231.84"/>
24703 </g>
24704 <g clip-path="url(#pe1c207cc63)">
24705 <use style="fill:#006dff;" x="0" xlink:href="#C3_32_ba85453a65" y="231.84"/>
24706 </g>
24707 <g clip-path="url(#pe1c207cc63)">
24708 <use style="fill:#0014ff;" x="0" xlink:href="#C3_33_ee598cfd95" y="231.84"/>
24709 </g>
24710 <g clip-path="url(#pe1c207cc63)">
24711 <use style="fill:#000080;" x="0" xlink:href="#C3_34_3fe2e2a70a" y="231.84"/>
24712 </g>
24713 <g clip-path="url(#pe1c207cc63)">
24714 <use style="fill:#00008d;" x="0" xlink:href="#C3_35_8cc0af8f2d" y="231.84"/>
24715 </g>
24716 <g clip-path="url(#pe1c207cc63)">
24717 <use style="fill:#0054ff;" x="0" xlink:href="#C3_36_1d2c2e52b9" y="231.84"/>
24718 </g>
24719 <g clip-path="url(#pe1c207cc63)">
24720 <use style="fill:#000080;" x="0" xlink:href="#C3_37_75d55803fa" y="231.84"/>
24721 </g>
24722 <g clip-path="url(#pe1c207cc63)">
24723 <use style="fill:#0000cd;" x="0" xlink:href="#C3_38_a3f600ab32" y="231.84"/>
24724 </g>
24725 <g clip-path="url(#pe1c207cc63)">
24726 <use style="fill:#000080;" x="0" xlink:href="#C3_39_d4ad9ba139" y="231.84"/>
24727 </g>
24728 <g clip-path="url(#pe1c207cc63)">
24729 <use style="fill:#000096;" x="0" xlink:href="#C3_3a_45ed72f26b" y="231.84"/>
24730 </g>
24731 <g clip-path="url(#pe1c207cc63)">
24732 <use style="fill:#0000fa;" x="0" xlink:href="#C3_3b_c3be16a29c" y="231.84"/>
24733 </g>
24734 <g clip-path="url(#pe1c207cc63)">
24735 <use style="fill:#000089;" x="0" xlink:href="#C3_3c_ef8314e897" y="231.84"/>
24736 </g>
24737 <g clip-path="url(#pe1c207cc63)">
24738 <use style="fill:#000089;" x="0" xlink:href="#C3_3d_30a0b19f29" y="231.84"/>
24739 </g>
24740 <g clip-path="url(#pe1c207cc63)">
24741 <use style="fill:#000096;" x="0" xlink:href="#C3_3e_40a5110ade" y="231.84"/>
24742 </g>
24743 <g clip-path="url(#pe1c207cc63)">
24744 <use style="fill:#0054ff;" x="0" xlink:href="#C3_3f_a26562e732" y="231.84"/>
24745 </g>
24746 <g clip-path="url(#pe1c207cc63)">
24747 <use style="fill:#000092;" x="0" xlink:href="#C3_40_a04e858ef3" y="231.84"/>
24748 </g>
24749 <g clip-path="url(#pe1c207cc63)">
24750 <use style="fill:#0000ad;" x="0" xlink:href="#C3_41_12e8a367bd" y="231.84"/>
24751 </g>
24752 <g clip-path="url(#pe1c207cc63)">
24753 <use style="fill:#0021ff;" x="0" xlink:href="#C3_42_d109317467" y="231.84"/>
24754 </g>
24755 <g clip-path="url(#pe1c207cc63)">
24756 <use style="fill:#000080;" x="0" xlink:href="#C3_43_2e9d727f01" y="231.84"/>
24757 </g>
24758 <g clip-path="url(#pe1c207cc63)">
24759 <use style="fill:#000080;" x="0" xlink:href="#C3_44_c49a1705ad" y="231.84"/>
24760 </g>
24761 <g clip-path="url(#pe1c207cc63)">
24762 <use style="fill:#000096;" x="0" xlink:href="#C3_45_1c1e587673" y="231.84"/>
24763 </g>
24764 <g clip-path="url(#pe1c207cc63)">
24765 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_46_6d117167b2" y="231.84"/>
24766 </g>
24767 <g clip-path="url(#pe1c207cc63)">
24768 <use style="fill:#000092;" x="0" xlink:href="#C3_47_7436aa5a81" y="231.84"/>
24769 </g>
24770 <g clip-path="url(#pe1c207cc63)">
24771 <use style="fill:#00a5ff;" x="0" xlink:href="#C3_48_39c54f9e9e" y="231.84"/>
24772 </g>
24773 <g clip-path="url(#pe1c207cc63)">
24774 <use style="fill:#000092;" x="0" xlink:href="#C3_49_d6133ccf4c" y="231.84"/>
24775 </g>
24776 <g clip-path="url(#pe1c207cc63)">
24777 <use style="fill:#0000a8;" x="0" xlink:href="#C3_4a_f6ebe40053" y="231.84"/>
24778 </g>
24779 <g clip-path="url(#pe1c207cc63)">
24780 <use style="fill:#000080;" x="0" xlink:href="#C3_4b_89ceb16631" y="231.84"/>
24781 </g>
24782 <g clip-path="url(#pe1c207cc63)">
24783 <use style="fill:#0061ff;" x="0" xlink:href="#C3_4c_4c053576a5" y="231.84"/>
24784 </g>
24785 <g clip-path="url(#pe1c207cc63)">
24786 <use style="fill:#0000e8;" x="0" xlink:href="#C3_4d_7ec7ca5e29" y="231.84"/>
24787 </g>
24788 <g clip-path="url(#pe1c207cc63)">
24789 <use style="fill:#000092;" x="0" xlink:href="#C3_4e_f163a6c101" y="231.84"/>
24790 </g>
24791 <g clip-path="url(#pe1c207cc63)">
24792 <use style="fill:#0004ff;" x="0" xlink:href="#C3_4f_8838c5ecaa" y="231.84"/>
24793 </g>
24794 <g clip-path="url(#pe1c207cc63)">
24795 <use style="fill:#00a1ff;" x="0" xlink:href="#C3_50_2337f63723" y="231.84"/>
24796 </g>
24797 <g clip-path="url(#pe1c207cc63)">
24798 <use style="fill:#0000a8;" x="0" xlink:href="#C3_51_69669cb5e3" y="231.84"/>
24799 </g>
24800 <g clip-path="url(#pe1c207cc63)">
24801 <use style="fill:#0000ad;" x="0" xlink:href="#C3_52_d7e3745698" y="231.84"/>
24802 </g>
24803 <g clip-path="url(#pe1c207cc63)">
24804 <use style="fill:#000080;" x="0" xlink:href="#C3_53_da24d2e417" y="231.84"/>
24805 </g>
24806 <g clip-path="url(#pe1c207cc63)">
24807 <use style="fill:#0000c4;" x="0" xlink:href="#C3_54_c01cf761ad" y="231.84"/>
24808 </g>
24809 <g clip-path="url(#pe1c207cc63)">
24810 <use style="fill:#0039ff;" x="0" xlink:href="#C3_55_8fc6aaec3c" y="231.84"/>
24811 </g>
24812 <g clip-path="url(#pe1c207cc63)">
24813 <use style="fill:#00008d;" x="0" xlink:href="#C3_56_45e17dd955" y="231.84"/>
24814 </g>
24815 <g clip-path="url(#pe1c207cc63)">
24816 <use style="fill:#000084;" x="0" xlink:href="#C3_57_87ad4dd5cb" y="231.84"/>
24817 </g>
24818 <g clip-path="url(#pe1c207cc63)">
24819 <use style="fill:#0000b6;" x="0" xlink:href="#C3_58_dfda9f2258" y="231.84"/>
24820 </g>
24821 <g clip-path="url(#pe1c207cc63)">
24822 <use style="fill:#00009b;" x="0" xlink:href="#C3_59_89f1a843a1" y="231.84"/>
24823 </g>
24824 <g clip-path="url(#pe1c207cc63)">
24825 <use style="fill:#000084;" x="0" xlink:href="#C3_5a_78a4cce69a" y="231.84"/>
24826 </g>
24827 <g clip-path="url(#pe1c207cc63)">
24828 <use style="fill:#0000a8;" x="0" xlink:href="#C3_5b_9683735b01" y="231.84"/>
24829 </g>
24830 <g clip-path="url(#pe1c207cc63)">
24831 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_5c_d434cf2e3a" y="231.84"/>
24832 </g>
24833 <g clip-path="url(#pe1c207cc63)">
24834 <use style="fill:#000080;" x="0" xlink:href="#C3_5d_9155a8242d" y="231.84"/>
24835 </g>
24836 <g clip-path="url(#pe1c207cc63)">
24837 <use style="fill:#0074ff;" x="0" xlink:href="#C3_5e_2b9cc4f24d" y="231.84"/>
24838 </g>
24839 <g clip-path="url(#pe1c207cc63)">
24840 <use style="fill:#000080;" x="0" xlink:href="#C3_5f_60f1231e30" y="231.84"/>
24841 </g>
24842 <g clip-path="url(#pe1c207cc63)">
24843 <use style="fill:#16ffe1;" x="0" xlink:href="#C3_60_e37b8c6a07" y="231.84"/>
24844 </g>
24845 <g clip-path="url(#pe1c207cc63)">
24846 <use style="fill:#0000b6;" x="0" xlink:href="#C3_61_ee19543eb7" y="231.84"/>
24847 </g>
24848 <g clip-path="url(#pe1c207cc63)">
24849 <use style="fill:#0000bb;" x="0" xlink:href="#C3_62_2fdb1c3758" y="231.84"/>
24850 </g>
24851 <g clip-path="url(#pe1c207cc63)">
24852 <use style="fill:#0000c8;" x="0" xlink:href="#C3_63_9ea37a25d6" y="231.84"/>
24853 </g>
24854 <g clip-path="url(#pe1c207cc63)">
24855 <use style="fill:#0cf5eb;" x="0" xlink:href="#C3_64_06395f9e03" y="231.84"/>
24856 </g>
24857 <g clip-path="url(#pe1c207cc63)">
24858 <use style="fill:#000096;" x="0" xlink:href="#C3_65_ae223e660f" y="231.84"/>
24859 </g>
24860 <g clip-path="url(#pe1c207cc63)">
24861 <use style="fill:#00009f;" x="0" xlink:href="#C3_66_3fb1b2153f" y="231.84"/>
24862 </g>
24863 <g clip-path="url(#pe1c207cc63)">
24864 <use style="fill:#000080;" x="0" xlink:href="#C3_67_6b25c1ba38" y="231.84"/>
24865 </g>
24866 <g clip-path="url(#pe1c207cc63)">
24867 <use style="fill:#000080;" x="0" xlink:href="#C3_68_f6481e2279" y="231.84"/>
24868 </g>
24869 <g clip-path="url(#pe1c207cc63)">
24870 <use style="fill:#0001ff;" x="0" xlink:href="#C3_69_95e5ab62cc" y="231.84"/>
24871 </g>
24872 <g clip-path="url(#pe1c207cc63)">
24873 <use style="fill:#0000cd;" x="0" xlink:href="#C3_6a_a9899803b3" y="231.84"/>
24874 </g>
24875 <g clip-path="url(#pe1c207cc63)">
24876 <use style="fill:#0029ff;" x="0" xlink:href="#C3_6b_a33be92960" y="231.84"/>
24877 </g>
24878 <g clip-path="url(#pe1c207cc63)">
24879 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_6c_d5979b2067" y="231.84"/>
24880 </g>
24881 <g clip-path="url(#pe1c207cc63)">
24882 <use style="fill:#0000bb;" x="0" xlink:href="#C3_6d_27a0e391a7" y="231.84"/>
24883 </g>
24884 <g clip-path="url(#pe1c207cc63)">
24885 <use style="fill:#0000e8;" x="0" xlink:href="#C3_6e_25c1813b8a" y="231.84"/>
24886 </g>
24887 <g clip-path="url(#pe1c207cc63)">
24888 <use style="fill:#0059ff;" x="0" xlink:href="#C3_6f_16011bdc2c" y="231.84"/>
24889 </g>
24890 <g clip-path="url(#pe1c207cc63)">
24891 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_70_049161d7c1" y="231.84"/>
24892 </g>
24893 <g clip-path="url(#pe1c207cc63)">
24894 <use style="fill:#0000b2;" x="0" xlink:href="#C3_71_5e133d3421" y="231.84"/>
24895 </g>
24896 <g clip-path="url(#pe1c207cc63)">
24897 <use style="fill:#0000cd;" x="0" xlink:href="#C3_72_b099e53362" y="231.84"/>
24898 </g>
24899 <g clip-path="url(#pe1c207cc63)">
24900 <use style="fill:#0000a4;" x="0" xlink:href="#C3_73_35cac1e159" y="231.84"/>
24901 </g>
24902 <g clip-path="url(#pe1c207cc63)">
24903 <use style="fill:#000080;" x="0" xlink:href="#C3_74_e3b9c32e6e" y="231.84"/>
24904 </g>
24905 <g clip-path="url(#pe1c207cc63)">
24906 <use style="fill:#0000a4;" x="0" xlink:href="#C3_75_c0eeba6990" y="231.84"/>
24907 </g>
24908 <g clip-path="url(#pe1c207cc63)">
24909 <use style="fill:#000092;" x="0" xlink:href="#C3_76_4f2bb148c6" y="231.84"/>
24910 </g>
24911 <g clip-path="url(#pe1c207cc63)">
24912 <use style="fill:#0091ff;" x="0" xlink:href="#C3_77_dd85022771" y="231.84"/>
24913 </g>
24914 <g clip-path="url(#pe1c207cc63)">
24915 <use style="fill:#000089;" x="0" xlink:href="#C3_78_8dbafd937a" y="231.84"/>
24916 </g>
24917 <g clip-path="url(#pe1c207cc63)">
24918 <use style="fill:#0000c8;" x="0" xlink:href="#C3_79_c675f14266" y="231.84"/>
24919 </g>
24920 <g clip-path="url(#pe1c207cc63)">
24921 <use style="fill:#000084;" x="0" xlink:href="#C3_7a_7983b8fbb5" y="231.84"/>
24922 </g>
24923 <g clip-path="url(#pe1c207cc63)">
24924 <use style="fill:#0000df;" x="0" xlink:href="#C3_7b_ef0545020a" y="231.84"/>
24925 </g>
24926 <g clip-path="url(#pe1c207cc63)">
24927 <use style="fill:#000080;" x="0" xlink:href="#C3_7c_e39d3cd346" y="231.84"/>
24928 </g>
24929 <g clip-path="url(#pe1c207cc63)">
24930 <use style="fill:#0000b6;" x="0" xlink:href="#C3_7d_7824f19cb0" y="231.84"/>
24931 </g>
24932 <g clip-path="url(#pe1c207cc63)">
24933 <use style="fill:#16ffe1;" x="0" xlink:href="#C3_7e_f614b515a8" y="231.84"/>
24934 </g>
24935 <g clip-path="url(#pe1c207cc63)">
24936 <use style="fill:#000080;" x="0" xlink:href="#C3_7f_a3edaf2ac0" y="231.84"/>
24937 </g>
24938 <g clip-path="url(#pe1c207cc63)">
24939 <use style="fill:#0000a4;" x="0" xlink:href="#C3_80_70aae26779" y="231.84"/>
24940 </g>
24941 <g clip-path="url(#pe1c207cc63)">
24942 <use style="fill:#56ffa0;" x="0" xlink:href="#C3_81_5ddbde401a" y="231.84"/>
24943 </g>
24944 <g clip-path="url(#pe1c207cc63)">
24945 <use style="fill:#0000e8;" x="0" xlink:href="#C3_82_6baf1bf9f6" y="231.84"/>
24946 </g>
24947 <g clip-path="url(#pe1c207cc63)">
24948 <use style="fill:#00d1ff;" x="0" xlink:href="#C3_83_5755e2cb0e" y="231.84"/>
24949 </g>
24950 <g clip-path="url(#pe1c207cc63)">
24951 <use style="fill:#0000f1;" x="0" xlink:href="#C3_84_1f42b6e7cb" y="231.84"/>
24952 </g>
24953 <g clip-path="url(#pe1c207cc63)">
24954 <use style="fill:#0000ed;" x="0" xlink:href="#C3_85_2ba3faae97" y="231.84"/>
24955 </g>
24956 <g clip-path="url(#pe1c207cc63)">
24957 <use style="fill:#000084;" x="0" xlink:href="#C3_86_0f81c0beb4" y="231.84"/>
24958 </g>
24959 <g clip-path="url(#pe1c207cc63)">
24960 <use style="fill:#53ffa4;" x="0" xlink:href="#C3_87_fc484ab532" y="231.84"/>
24961 </g>
24962 <g clip-path="url(#pe1c207cc63)">
24963 <use style="fill:#0000d6;" x="0" xlink:href="#C3_88_16927ac759" y="231.84"/>
24964 </g>
24965 <g clip-path="url(#pe1c207cc63)">
24966 <use style="fill:#0000a4;" x="0" xlink:href="#C3_89_1d513ffdb3" y="231.84"/>
24967 </g>
24968 <g clip-path="url(#pe1c207cc63)">
24969 <use style="fill:#000080;" x="0" xlink:href="#C3_8a_71b8576b75" y="231.84"/>
24970 </g>
24971 <g clip-path="url(#pe1c207cc63)">
24972 <use style="fill:#00009f;" x="0" xlink:href="#C3_8b_7de20b5d5b" y="231.84"/>
24973 </g>
24974 <g clip-path="url(#pe1c207cc63)">
24975 <use style="fill:#000092;" x="0" xlink:href="#C3_8c_b77c9201fb" y="231.84"/>
24976 </g>
24977 <g clip-path="url(#pe1c207cc63)">
24978 <use style="fill:#0000f1;" x="0" xlink:href="#C3_8d_41b8d4de91" y="231.84"/>
24979 </g>
24980 <g clip-path="url(#pe1c207cc63)">
24981 <use style="fill:#29ffce;" x="0" xlink:href="#C3_8e_42fd96f195" y="231.84"/>
24982 </g>
24983 <g clip-path="url(#pe1c207cc63)">
24984 <use style="fill:#000080;" x="0" xlink:href="#C3_8f_da28299e4d" y="231.84"/>
24985 </g>
24986 <g clip-path="url(#pe1c207cc63)">
24987 <use style="fill:#0000a8;" x="0" xlink:href="#C3_90_22ca2821ae" y="231.84"/>
24988 </g>
24989 <g clip-path="url(#pe1c207cc63)">
24990 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_91_f8860032ce" y="231.84"/>
24991 </g>
24992 <g clip-path="url(#pe1c207cc63)">
24993 <use style="fill:#00009b;" x="0" xlink:href="#C3_92_cfd4550b6e" y="231.84"/>
24994 </g>
24995 <g clip-path="url(#pe1c207cc63)">
24996 <use style="fill:#0000c4;" x="0" xlink:href="#C3_93_b765737f77" y="231.84"/>
24997 </g>
24998 <g clip-path="url(#pe1c207cc63)">
24999 <use style="fill:#0000ed;" x="0" xlink:href="#C3_94_356f07d660" y="231.84"/>
25000 </g>
25001 <g clip-path="url(#pe1c207cc63)">
25002 <use style="fill:#000080;" x="0" xlink:href="#C3_95_34acf47aff" y="231.84"/>
25003 </g>
25004 <g clip-path="url(#pe1c207cc63)">
25005 <use style="fill:#0000da;" x="0" xlink:href="#C3_96_33e6cdcbce" y="231.84"/>
25006 </g>
25007 <g clip-path="url(#pe1c207cc63)">
25008 <use style="fill:#0000df;" x="0" xlink:href="#C3_97_1250664f72" y="231.84"/>
25009 </g>
25010 <g clip-path="url(#pe1c207cc63)">
25011 <use style="fill:#0001ff;" x="0" xlink:href="#C3_98_b266a159fd" y="231.84"/>
25012 </g>
25013 <g clip-path="url(#pe1c207cc63)">
25014 <use style="fill:#0000ff;" x="0" xlink:href="#C3_99_55623795a8" y="231.84"/>
25015 </g>
25016 <g clip-path="url(#pe1c207cc63)">
25017 <use style="fill:#000080;" x="0" xlink:href="#C3_9a_c75f840504" y="231.84"/>
25018 </g>
25019 <g clip-path="url(#pe1c207cc63)">
25020 <use style="fill:#00009b;" x="0" xlink:href="#C3_9b_593b9fc362" y="231.84"/>
25021 </g>
25022 <g clip-path="url(#pe1c207cc63)">
25023 <use style="fill:#000096;" x="0" xlink:href="#C3_9c_2131fb58e2" y="231.84"/>
25024 </g>
25025 <g clip-path="url(#pe1c207cc63)">
25026 <use style="fill:#0009ff;" x="0" xlink:href="#C3_9d_f17e9cc84d" y="231.84"/>
25027 </g>
25028 <g clip-path="url(#pe1c207cc63)">
25029 <use style="fill:#9dff5a;" x="0" xlink:href="#C3_9e_b1f6d7bbb3" y="231.84"/>
25030 </g>
25031 <g clip-path="url(#pe1c207cc63)">
25032 <use style="fill:#66ff90;" x="0" xlink:href="#C3_9f_8c0d58610d" y="231.84"/>
25033 </g>
25034 <g clip-path="url(#pe1c207cc63)">
25035 <use style="fill:#000084;" x="0" xlink:href="#C3_a0_7199f50dff" y="231.84"/>
25036 </g>
25037 <g clip-path="url(#pe1c207cc63)">
25038 <use style="fill:#00008d;" x="0" xlink:href="#C3_a1_0bd352081c" y="231.84"/>
25039 </g>
25040 <g clip-path="url(#pe1c207cc63)">
25041 <use style="fill:#0000e8;" x="0" xlink:href="#C3_a2_581ebe3e74" y="231.84"/>
25042 </g>
25043 <g clip-path="url(#pe1c207cc63)">
25044 <use style="fill:#000084;" x="0" xlink:href="#C3_a3_ea8d4eaa15" y="231.84"/>
25045 </g>
25046 <g clip-path="url(#pe1c207cc63)">
25047 <use style="fill:#000092;" x="0" xlink:href="#C3_a4_acb45d3b86" y="231.84"/>
25048 </g>
25049 <g clip-path="url(#pe1c207cc63)">
25050 <use style="fill:#9dff5a;" x="0" xlink:href="#C3_a5_e41e8867af" y="231.84"/>
25051 </g>
25052 <g clip-path="url(#pe1c207cc63)">
25053 <use style="fill:#00009f;" x="0" xlink:href="#C3_a6_0f3fb8ea07" y="231.84"/>
25054 </g>
25055 <g clip-path="url(#pe1c207cc63)">
25056 <use style="fill:#0014ff;" x="0" xlink:href="#C3_a7_205cb3db93" y="231.84"/>
25057 </g>
25058 <g clip-path="url(#pe1c207cc63)">
25059 <use style="fill:#000080;" x="0" xlink:href="#C3_a8_ea8d39be02" y="231.84"/>
25060 </g>
25061 <g clip-path="url(#pe1c207cc63)">
25062 <use style="fill:#000084;" x="0" xlink:href="#C3_a9_c6ec724ac7" y="231.84"/>
25063 </g>
25064 <g clip-path="url(#pe1c207cc63)">
25065 <use style="fill:#0009ff;" x="0" xlink:href="#C3_aa_ee99d89105" y="231.84"/>
25066 </g>
25067 <g clip-path="url(#pe1c207cc63)">
25068 <use style="fill:#0000c4;" x="0" xlink:href="#C3_ab_3dba02e418" y="231.84"/>
25069 </g>
25070 <g clip-path="url(#pe1c207cc63)">
25071 <use style="fill:#0000e8;" x="0" xlink:href="#C3_ac_920e70828b" y="231.84"/>
25072 </g>
25073 <g clip-path="url(#pe1c207cc63)">
25074 <use style="fill:#000092;" x="0" xlink:href="#C3_ad_e678d03f7b" y="231.84"/>
25075 </g>
25076 <g clip-path="url(#pe1c207cc63)">
25077 <use style="fill:#000080;" x="0" xlink:href="#C3_ae_d22cb256c8" y="231.84"/>
25078 </g>
25079 <g clip-path="url(#pe1c207cc63)">
25080 <use style="fill:#a7ff50;" x="0" xlink:href="#C3_af_e8251ac784" y="231.84"/>
25081 </g>
25082 <g clip-path="url(#pe1c207cc63)">
25083 <use style="fill:#0021ff;" x="0" xlink:href="#C3_b0_c7e5228508" y="231.84"/>
25084 </g>
25085 <g clip-path="url(#pe1c207cc63)">
25086 <use style="fill:#0000e8;" x="0" xlink:href="#C3_b1_d529aeb59e" y="231.84"/>
25087 </g>
25088 <g clip-path="url(#pe1c207cc63)">
25089 <use style="fill:#00008d;" x="0" xlink:href="#C3_b2_5cca3a4276" y="231.84"/>
25090 </g>
25091 <g clip-path="url(#pe1c207cc63)">
25092 <use style="fill:#0000e3;" x="0" xlink:href="#C3_b3_f82bc96174" y="231.84"/>
25093 </g>
25094 <g clip-path="url(#pe1c207cc63)">
25095 <use style="fill:#0031ff;" x="0" xlink:href="#C3_b4_a771194b95" y="231.84"/>
25096 </g>
25097 <g clip-path="url(#pe1c207cc63)">
25098 <use style="fill:#002dff;" x="0" xlink:href="#C3_b5_0f87ef8a86" y="231.84"/>
25099 </g>
25100 <g clip-path="url(#pe1c207cc63)">
25101 <use style="fill:#00008d;" x="0" xlink:href="#C3_b6_8f772c2ed8" y="231.84"/>
25102 </g>
25103 <g clip-path="url(#pe1c207cc63)">
25104 <use style="fill:#0000ff;" x="0" xlink:href="#C3_b7_4131732429" y="231.84"/>
25105 </g>
25106 <g clip-path="url(#pe1c207cc63)">
25107 <use style="fill:#000080;" x="0" xlink:href="#C3_b8_a3acf56479" y="231.84"/>
25108 </g>
25109 <g clip-path="url(#pe1c207cc63)">
25110 <use style="fill:#000080;" x="0" xlink:href="#C3_b9_9e1a1f227d" y="231.84"/>
25111 </g>
25112 <g clip-path="url(#pe1c207cc63)">
25113 <use style="fill:#0021ff;" x="0" xlink:href="#C3_ba_011b57c35f" y="231.84"/>
25114 </g>
25115 <g clip-path="url(#pe1c207cc63)">
25116 <use style="fill:#e4ff13;" x="0" xlink:href="#C3_bb_7401b551ff" y="231.84"/>
25117 </g>
25118 <g clip-path="url(#pe1c207cc63)">
25119 <use style="fill:#0000da;" x="0" xlink:href="#C3_bc_b9eaf6bb54" y="231.84"/>
25120 </g>
25121 <g clip-path="url(#pe1c207cc63)">
25122 <use style="fill:#0011ff;" x="0" xlink:href="#C3_bd_458850f5cb" y="231.84"/>
25123 </g>
25124 <g clip-path="url(#pe1c207cc63)">
25125 <use style="fill:#001dff;" x="0" xlink:href="#C3_be_47bc3f597a" y="231.84"/>
25126 </g>
25127 <g clip-path="url(#pe1c207cc63)">
25128 <use style="fill:#0000b2;" x="0" xlink:href="#C3_bf_b31ec5989b" y="231.84"/>
25129 </g>
25130 <g clip-path="url(#pe1c207cc63)">
25131 <use style="fill:#00009f;" x="0" xlink:href="#C3_c0_48e55a3f4e" y="231.84"/>
25132 </g>
25133 <g clip-path="url(#pe1c207cc63)">
25134 <use style="fill:#0000cd;" x="0" xlink:href="#C3_c1_a5982fa2c3" y="231.84"/>
25135 </g>
25136 <g clip-path="url(#pe1c207cc63)">
25137 <use style="fill:#ebff0c;" x="0" xlink:href="#C3_c2_68f60542fb" y="231.84"/>
25138 </g>
25139 <g clip-path="url(#pe1c207cc63)">
25140 <use style="fill:#0000bb;" x="0" xlink:href="#C3_c3_a5c647da22" y="231.84"/>
25141 </g>
25142 <g clip-path="url(#pe1c207cc63)">
25143 <use style="fill:#000089;" x="0" xlink:href="#C3_c4_252faac16f" y="231.84"/>
25144 </g>
25145 <g clip-path="url(#pe1c207cc63)">
25146 <use style="fill:#000084;" x="0" xlink:href="#C3_c5_ac3b0dd97c" y="231.84"/>
25147 </g>
25148 <g clip-path="url(#pe1c207cc63)">
25149 <use style="fill:#0000df;" x="0" xlink:href="#C3_c6_3470dc2f71" y="231.84"/>
25150 </g>
25151 <g clip-path="url(#pe1c207cc63)">
25152 <use style="fill:#0000ad;" x="0" xlink:href="#C3_c7_1e6c9fef25" y="231.84"/>
25153 </g>
25154 <g clip-path="url(#pe1c207cc63)">
25155 <use style="fill:#0051ff;" x="0" xlink:href="#C3_c8_e22b65425c" y="231.84"/>
25156 </g>
25157 <g clip-path="url(#pe1c207cc63)">
25158 <use style="fill:#000080;" x="0" xlink:href="#C3_c9_df10265598" y="231.84"/>
25159 </g>
25160 <g clip-path="url(#pe1c207cc63)">
25161 <use style="fill:#000092;" x="0" xlink:href="#C3_ca_5841698bf8" y="231.84"/>
25162 </g>
25163 <g clip-path="url(#pe1c207cc63)">
25164 <use style="fill:#00009b;" x="0" xlink:href="#C3_cb_391ff6cb89" y="231.84"/>
25165 </g>
25166 <g clip-path="url(#pe1c207cc63)">
25167 <use style="fill:#0029ff;" x="0" xlink:href="#C3_cc_926e750e98" y="231.84"/>
25168 </g>
25169 <g clip-path="url(#pe1c207cc63)">
25170 <use style="fill:#004dff;" x="0" xlink:href="#C3_cd_e776653866" y="231.84"/>
25171 </g>
25172 <g clip-path="url(#pe1c207cc63)">
25173 <use style="fill:#00008d;" x="0" xlink:href="#C3_ce_dcbe05b9e2" y="231.84"/>
25174 </g>
25175 <g clip-path="url(#pe1c207cc63)">
25176 <use style="fill:#0000bb;" x="0" xlink:href="#C3_cf_bd8654ecd4" y="231.84"/>
25177 </g>
25178 <g clip-path="url(#pe1c207cc63)">
25179 <use style="fill:#0001ff;" x="0" xlink:href="#C3_d0_3de207c61e" y="231.84"/>
25180 </g>
25181 <g clip-path="url(#pe1c207cc63)">
25182 <use style="fill:#00008d;" x="0" xlink:href="#C3_d1_2dffdef126" y="231.84"/>
25183 </g>
25184 <g clip-path="url(#pe1c207cc63)">
25185 <use style="fill:#0061ff;" x="0" xlink:href="#C3_d2_072cb02517" y="231.84"/>
25186 </g>
25187 <g clip-path="url(#pe1c207cc63)">
25188 <use style="fill:#0000bf;" x="0" xlink:href="#C3_d3_d5830dec10" y="231.84"/>
25189 </g>
25190 <g clip-path="url(#pe1c207cc63)">
25191 <use style="fill:#ffb900;" x="0" xlink:href="#C3_d4_074cdbaeae" y="231.84"/>
25192 </g>
25193 <g clip-path="url(#pe1c207cc63)">
25194 <use style="fill:#000089;" x="0" xlink:href="#C3_d5_669516bc18" y="231.84"/>
25195 </g>
25196 <g clip-path="url(#pe1c207cc63)">
25197 <use style="fill:#000080;" x="0" xlink:href="#C3_d6_db3960e586" y="231.84"/>
25198 </g>
25199 <g clip-path="url(#pe1c207cc63)">
25200 <use style="fill:#0031ff;" x="0" xlink:href="#C3_d7_575ea59d86" y="231.84"/>
25201 </g>
25202 <g clip-path="url(#pe1c207cc63)">
25203 <use style="fill:#0064ff;" x="0" xlink:href="#C3_d8_c5b80954bd" y="231.84"/>
25204 </g>
25205 <g clip-path="url(#pe1c207cc63)">
25206 <use style="fill:#000080;" x="0" xlink:href="#C3_d9_f78d049aa4" y="231.84"/>
25207 </g>
25208 <g clip-path="url(#pe1c207cc63)">
25209 <use style="fill:#0029ff;" x="0" xlink:href="#C3_da_f0eb3e7aff" y="231.84"/>
25210 </g>
25211 <g clip-path="url(#pe1c207cc63)">
25212 <use style="fill:#000096;" x="0" xlink:href="#C3_db_099d052119" y="231.84"/>
25213 </g>
25214 <g clip-path="url(#pe1c207cc63)">
25215 <use style="fill:#000080;" x="0" xlink:href="#C3_dc_0cdbf18c13" y="231.84"/>
25216 </g>
25217 <g clip-path="url(#pe1c207cc63)">
25218 <use style="fill:#0000f6;" x="0" xlink:href="#C3_dd_0d19759813" y="231.84"/>
25219 </g>
25220 <g clip-path="url(#pe1c207cc63)">
25221 <use style="fill:#0031ff;" x="0" xlink:href="#C3_de_531af8bcb1" y="231.84"/>
25222 </g>
25223 <g clip-path="url(#pe1c207cc63)">
25224 <use style="fill:#0069ff;" x="0" xlink:href="#C3_df_4e3dc9ffd8" y="231.84"/>
25225 </g>
25226 <g clip-path="url(#pe1c207cc63)">
25227 <use style="fill:#0069ff;" x="0" xlink:href="#C3_e0_4b687d6aa3" y="231.84"/>
25228 </g>
25229 <g clip-path="url(#pe1c207cc63)">
25230 <use style="fill:#0049ff;" x="0" xlink:href="#C3_e1_626fedaf1f" y="231.84"/>
25231 </g>
25232 <g clip-path="url(#pe1c207cc63)">
25233 <use style="fill:#0000a4;" x="0" xlink:href="#C3_e2_42e2c4a1e4" y="231.84"/>
25234 </g>
25235 <g clip-path="url(#pe1c207cc63)">
25236 <use style="fill:#000089;" x="0" xlink:href="#C3_e3_228447823d" y="231.84"/>
25237 </g>
25238 <g clip-path="url(#pe1c207cc63)">
25239 <use style="fill:#0061ff;" x="0" xlink:href="#C3_e4_2e5178a54c" y="231.84"/>
25240 </g>
25241 <g clip-path="url(#pe1c207cc63)">
25242 <use style="fill:#0000da;" x="0" xlink:href="#C3_e5_fa8d85a21f" y="231.84"/>
25243 </g>
25244 <g clip-path="url(#pe1c207cc63)">
25245 <use style="fill:#0000c8;" x="0" xlink:href="#C3_e6_1b920b5815" y="231.84"/>
25246 </g>
25247 <g clip-path="url(#pe1c207cc63)">
25248 <use style="fill:#002dff;" x="0" xlink:href="#C3_e7_fb99a8150e" y="231.84"/>
25249 </g>
25250 <g clip-path="url(#pe1c207cc63)">
25251 <use style="fill:#000084;" x="0" xlink:href="#C3_e8_4f0d671c11" y="231.84"/>
25252 </g>
25253 <g clip-path="url(#pe1c207cc63)">
25254 <use style="fill:#000080;" x="0" xlink:href="#C3_e9_dc1cb17920" y="231.84"/>
25255 </g>
25256 <g clip-path="url(#pe1c207cc63)">
25257 <use style="fill:#0088ff;" x="0" xlink:href="#C3_ea_261d6808b0" y="231.84"/>
25258 </g>
25259 <g clip-path="url(#pe1c207cc63)">
25260 <use style="fill:#0021ff;" x="0" xlink:href="#C3_eb_6740566d9f" y="231.84"/>
25261 </g>
25262 <g clip-path="url(#pe1c207cc63)">
25263 <use style="fill:#00009b;" x="0" xlink:href="#C3_ec_8982dccdd7" y="231.84"/>
25264 </g>
25265 <g clip-path="url(#pe1c207cc63)">
25266 <use style="fill:#0000b6;" x="0" xlink:href="#C3_ed_87b18e7055" y="231.84"/>
25267 </g>
25268 <g clip-path="url(#pe1c207cc63)">
25269 <use style="fill:#008dff;" x="0" xlink:href="#C3_ee_c768391b09" y="231.84"/>
25270 </g>
25271 <g clip-path="url(#pe1c207cc63)">
25272 <use style="fill:#00009b;" x="0" xlink:href="#C3_ef_660de66e12" y="231.84"/>
25273 </g>
25274 <g clip-path="url(#pe1c207cc63)">
25275 <use style="fill:#0000d1;" x="0" xlink:href="#C3_f0_9f5bd5ba90" y="231.84"/>
25276 </g>
25277 <g clip-path="url(#pe1c207cc63)">
25278 <use style="fill:#0011ff;" x="0" xlink:href="#C3_f1_d0784ac070" y="231.84"/>
25279 </g>
25280 <g clip-path="url(#pe1c207cc63)">
25281 <use style="fill:#0000ed;" x="0" xlink:href="#C3_f2_1a99a218cb" y="231.84"/>
25282 </g>
25283 <g clip-path="url(#pe1c207cc63)">
25284 <use style="fill:#0000ff;" x="0" xlink:href="#C3_f3_55c477b395" y="231.84"/>
25285 </g>
25286 <g clip-path="url(#pe1c207cc63)">
25287 <use style="fill:#0021ff;" x="0" xlink:href="#C3_f4_204aff5337" y="231.84"/>
25288 </g>
25289 <g clip-path="url(#pe1c207cc63)">
25290 <use style="fill:#000089;" x="0" xlink:href="#C3_f5_3a485811d5" y="231.84"/>
25291 </g>
25292 <g clip-path="url(#pe1c207cc63)">
25293 <use style="fill:#0081ff;" x="0" xlink:href="#C3_f6_c4635d3095" y="231.84"/>
25294 </g>
25295 <g clip-path="url(#pe1c207cc63)">
25296 <use style="fill:#000089;" x="0" xlink:href="#C3_f7_7a9508c58a" y="231.84"/>
25297 </g>
25298 <g clip-path="url(#pe1c207cc63)">
25299 <use style="fill:#000080;" x="0" xlink:href="#C3_f8_d8a47527cf" y="231.84"/>
25300 </g>
25301 <g clip-path="url(#pe1c207cc63)">
25302 <use style="fill:#0000c4;" x="0" xlink:href="#C3_f9_b3bf52fc64" y="231.84"/>
25303 </g>
25304 <g clip-path="url(#pe1c207cc63)">
25305 <use style="fill:#000096;" x="0" xlink:href="#C3_fa_609f0df675" y="231.84"/>
25306 </g>
25307 <g clip-path="url(#pe1c207cc63)">
25308 <use style="fill:#0000ff;" x="0" xlink:href="#C3_fb_b7243403c2" y="231.84"/>
25309 </g>
25310 <g clip-path="url(#pe1c207cc63)">
25311 <use style="fill:#0000d1;" x="0" xlink:href="#C3_fc_43bf258612" y="231.84"/>
25312 </g>
25313 <g clip-path="url(#pe1c207cc63)">
25314 <use style="fill:#000080;" x="0" xlink:href="#C3_fd_c2202f5144" y="231.84"/>
25315 </g>
25316 <g clip-path="url(#pe1c207cc63)">
25317 <use style="fill:#00009b;" x="0" xlink:href="#C3_fe_c299ec0c29" y="231.84"/>
25318 </g>
25319 <g clip-path="url(#pe1c207cc63)">
25320 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_ff_2d98633cd4" y="231.84"/>
25321 </g>
25322 <g clip-path="url(#pe1c207cc63)">
25323 <use style="fill:#0054ff;" x="0" xlink:href="#C3_100_7bc181d317" y="231.84"/>
25324 </g>
25325 <g clip-path="url(#pe1c207cc63)">
25326 <use style="fill:#0000ff;" x="0" xlink:href="#C3_101_cc43d95075" y="231.84"/>
25327 </g>
25328 <g clip-path="url(#pe1c207cc63)">
25329 <use style="fill:#000080;" x="0" xlink:href="#C3_102_8c21623e21" y="231.84"/>
25330 </g>
25331 <g clip-path="url(#pe1c207cc63)">
25332 <use style="fill:#0091ff;" x="0" xlink:href="#C3_103_1546fc799f" y="231.84"/>
25333 </g>
25334 <g clip-path="url(#pe1c207cc63)">
25335 <use style="fill:#00008d;" x="0" xlink:href="#C3_104_2af95b87c5" y="231.84"/>
25336 </g>
25337 <g clip-path="url(#pe1c207cc63)">
25338 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_105_acfe4a8e1c" y="231.84"/>
25339 </g>
25340 <g clip-path="url(#pe1c207cc63)">
25341 <use style="fill:#0085ff;" x="0" xlink:href="#C3_106_e3d555ddca" y="231.84"/>
25342 </g>
25343 <g clip-path="url(#pe1c207cc63)">
25344 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_107_cfd4de335c" y="231.84"/>
25345 </g>
25346 <g clip-path="url(#pe1c207cc63)">
25347 <use style="fill:#000080;" x="0" xlink:href="#C3_108_1efef10777" y="231.84"/>
25348 </g>
25349 <g clip-path="url(#pe1c207cc63)">
25350 <use style="fill:#00c5ff;" x="0" xlink:href="#C3_109_b8c7eab3cb" y="231.84"/>
25351 </g>
25352 <g clip-path="url(#pe1c207cc63)">
25353 <use style="fill:#0000b2;" x="0" xlink:href="#C3_10a_ff08bc4d2a" y="231.84"/>
25354 </g>
25355 <g clip-path="url(#pe1c207cc63)">
25356 <use style="fill:#0000d6;" x="0" xlink:href="#C3_10b_da639c15a8" y="231.84"/>
25357 </g>
25358 <g clip-path="url(#pe1c207cc63)">
25359 <use style="fill:#0041ff;" x="0" xlink:href="#C3_10c_dd6b9f9c69" y="231.84"/>
25360 </g>
25361 <g clip-path="url(#pe1c207cc63)">
25362 <use style="fill:#000096;" x="0" xlink:href="#C3_10d_e01c937039" y="231.84"/>
25363 </g>
25364 <g clip-path="url(#pe1c207cc63)">
25365 <use style="fill:#000092;" x="0" xlink:href="#C3_10e_35db4d7f15" y="231.84"/>
25366 </g>
25367 <g clip-path="url(#pe1c207cc63)">
25368 <use style="fill:#0000ad;" x="0" xlink:href="#C3_10f_5e6f88b4d8" y="231.84"/>
25369 </g>
25370 <g clip-path="url(#pe1c207cc63)">
25371 <use style="fill:#00008d;" x="0" xlink:href="#C3_110_dc00bd43ca" y="231.84"/>
25372 </g>
25373 <g clip-path="url(#pe1c207cc63)">
25374 <use style="fill:#000dff;" x="0" xlink:href="#C3_111_866da43cd7" y="231.84"/>
25375 </g>
25376 <g clip-path="url(#pe1c207cc63)">
25377 <use style="fill:#00a5ff;" x="0" xlink:href="#C3_112_dedb0659c0" y="231.84"/>
25378 </g>
25379 <g clip-path="url(#pe1c207cc63)">
25380 <use style="fill:#0000ed;" x="0" xlink:href="#C3_113_cb18d40004" y="231.84"/>
25381 </g>
25382 <g clip-path="url(#pe1c207cc63)">
25383 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_114_989b793637" y="231.84"/>
25384 </g>
25385 <g clip-path="url(#pe1c207cc63)">
25386 <use style="fill:#000084;" x="0" xlink:href="#C3_115_683e87a03f" y="231.84"/>
25387 </g>
25388 <g clip-path="url(#pe1c207cc63)">
25389 <use style="fill:#0000d1;" x="0" xlink:href="#C3_116_cc85169164" y="231.84"/>
25390 </g>
25391 <g clip-path="url(#pe1c207cc63)">
25392 <use style="fill:#0099ff;" x="0" xlink:href="#C3_117_0f2431317a" y="231.84"/>
25393 </g>
25394 <g clip-path="url(#pe1c207cc63)">
25395 <use style="fill:#0000fa;" x="0" xlink:href="#C3_118_c39cc093eb" y="231.84"/>
25396 </g>
25397 <g clip-path="url(#pe1c207cc63)">
25398 <use style="fill:#000092;" x="0" xlink:href="#C3_119_e7124f10e4" y="231.84"/>
25399 </g>
25400 <g clip-path="url(#pe1c207cc63)">
25401 <use style="fill:#000080;" x="0" xlink:href="#C3_11a_decc6609ac" y="231.84"/>
25402 </g>
25403 <g clip-path="url(#pe1c207cc63)">
25404 <use style="fill:#000080;" x="0" xlink:href="#C3_11b_c08e73b51e" y="231.84"/>
25405 </g>
25406 <g clip-path="url(#pe1c207cc63)">
25407 <use style="fill:#000092;" x="0" xlink:href="#C3_11c_5296b1a15d" y="231.84"/>
25408 </g>
25409 <g clip-path="url(#pe1c207cc63)">
25410 <use style="fill:#009dff;" x="0" xlink:href="#C3_11d_176695f1bd" y="231.84"/>
25411 </g>
25412 <g clip-path="url(#pe1c207cc63)">
25413 <use style="fill:#0011ff;" x="0" xlink:href="#C3_11e_f5639140ae" y="231.84"/>
25414 </g>
25415 <g clip-path="url(#pe1c207cc63)">
25416 <use style="fill:#0000d6;" x="0" xlink:href="#C3_11f_2b86cac2b2" y="231.84"/>
25417 </g>
25418 <g clip-path="url(#pe1c207cc63)">
25419 <use style="fill:#0029ff;" x="0" xlink:href="#C3_120_32e3d44aa3" y="231.84"/>
25420 </g>
25421 <g clip-path="url(#pe1c207cc63)">
25422 <use style="fill:#00d9ff;" x="0" xlink:href="#C3_121_2e619ff729" y="231.84"/>
25423 </g>
25424 <g clip-path="url(#pe1c207cc63)">
25425 <use style="fill:#0081ff;" x="0" xlink:href="#C3_122_e8997dac7c" y="231.84"/>
25426 </g>
25427 <g clip-path="url(#pe1c207cc63)">
25428 <use style="fill:#0034ff;" x="0" xlink:href="#C3_123_6ac7725622" y="231.84"/>
25429 </g>
25430 <g clip-path="url(#pe1c207cc63)">
25431 <use style="fill:#0000a8;" x="0" xlink:href="#C3_124_428565811d" y="231.84"/>
25432 </g>
25433 <g clip-path="url(#pe1c207cc63)">
25434 <use style="fill:#0095ff;" x="0" xlink:href="#C3_125_6c017efcec" y="231.84"/>
25435 </g>
25436 <g clip-path="url(#pe1c207cc63)">
25437 <use style="fill:#06edf1;" x="0" xlink:href="#C3_126_1cb0c997bf" y="231.84"/>
25438 </g>
25439 <g clip-path="url(#pe1c207cc63)">
25440 <use style="fill:#0019ff;" x="0" xlink:href="#C3_127_add5d63761" y="231.84"/>
25441 </g>
25442 <g clip-path="url(#pe1c207cc63)">
25443 <use style="fill:#0054ff;" x="0" xlink:href="#C3_128_e00a0e713a" y="231.84"/>
25444 </g>
25445 <g clip-path="url(#pe1c207cc63)">
25446 <use style="fill:#0000df;" x="0" xlink:href="#C3_129_3fb02315ff" y="231.84"/>
25447 </g>
25448 <g clip-path="url(#pe1c207cc63)">
25449 <use style="fill:#0085ff;" x="0" xlink:href="#C3_12a_3e40436513" y="231.84"/>
25450 </g>
25451 <g clip-path="url(#pe1c207cc63)">
25452 <use style="fill:#0071ff;" x="0" xlink:href="#C3_12b_404ea1e3e7" y="231.84"/>
25453 </g>
25454 <g clip-path="url(#pe1c207cc63)">
25455 <use style="fill:#000089;" x="0" xlink:href="#C3_12c_5c44d0ae8a" y="231.84"/>
25456 </g>
25457 <g clip-path="url(#pe1c207cc63)">
25458 <use style="fill:#0059ff;" x="0" xlink:href="#C3_12d_07bc107167" y="231.84"/>
25459 </g>
25460 <g clip-path="url(#pe1c207cc63)">
25461 <use style="fill:#00008d;" x="0" xlink:href="#C3_12e_760e9e2271" y="231.84"/>
25462 </g>
25463 <g clip-path="url(#pe1c207cc63)">
25464 <use style="fill:#00009b;" x="0" xlink:href="#C3_12f_045baa9c0f" y="231.84"/>
25465 </g>
25466 <g clip-path="url(#pe1c207cc63)">
25467 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_130_387f55258d" y="231.84"/>
25468 </g>
25469 <g clip-path="url(#pe1c207cc63)">
25470 <use style="fill:#0000d1;" x="0" xlink:href="#C3_131_85d3d02b40" y="231.84"/>
25471 </g>
25472 <g clip-path="url(#pe1c207cc63)">
25473 <use style="fill:#000080;" x="0" xlink:href="#C3_132_3af90b5b1e" y="231.84"/>
25474 </g>
25475 <g clip-path="url(#pe1c207cc63)">
25476 <use style="fill:#000084;" x="0" xlink:href="#C3_133_ebe31f1ada" y="231.84"/>
25477 </g>
25478 <g clip-path="url(#pe1c207cc63)">
25479 <use style="fill:#00009b;" x="0" xlink:href="#C3_134_21b70186f6" y="231.84"/>
25480 </g>
25481 <g clip-path="url(#pe1c207cc63)">
25482 <use style="fill:#0000bf;" x="0" xlink:href="#C3_135_1c0861f6dc" y="231.84"/>
25483 </g>
25484 <g clip-path="url(#pe1c207cc63)">
25485 <use style="fill:#0014ff;" x="0" xlink:href="#C3_136_30eb1e77d8" y="231.84"/>
25486 </g>
25487 <g clip-path="url(#pe1c207cc63)">
25488 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_137_236b8df706" y="231.84"/>
25489 </g>
25490 <g clip-path="url(#pe1c207cc63)">
25491 <use style="fill:#000080;" x="0" xlink:href="#C3_138_3ddcce9d7c" y="231.84"/>
25492 </g>
25493 <g clip-path="url(#pe1c207cc63)">
25494 <use style="fill:#0000e8;" x="0" xlink:href="#C3_139_bbe4fb98d5" y="231.84"/>
25495 </g>
25496 <g clip-path="url(#pe1c207cc63)">
25497 <use style="fill:#0cf5eb;" x="0" xlink:href="#C3_13a_7539293327" y="231.84"/>
25498 </g>
25499 <g clip-path="url(#pe1c207cc63)">
25500 <use style="fill:#1cffdb;" x="0" xlink:href="#C3_13b_8e9ddf2f88" y="231.84"/>
25501 </g>
25502 <g clip-path="url(#pe1c207cc63)">
25503 <use style="fill:#001dff;" x="0" xlink:href="#C3_13c_e21526af36" y="231.84"/>
25504 </g>
25505 <g clip-path="url(#pe1c207cc63)">
25506 <use style="fill:#000084;" x="0" xlink:href="#C3_13d_08f9965fa7" y="231.84"/>
25507 </g>
25508 <g clip-path="url(#pe1c207cc63)">
25509 <use style="fill:#0000c8;" x="0" xlink:href="#C3_13e_a62f1d9c60" y="231.84"/>
25510 </g>
25511 <g clip-path="url(#pe1c207cc63)">
25512 <use style="fill:#0000a8;" x="0" xlink:href="#C3_13f_9938d4dc99" y="231.84"/>
25513 </g>
25514 <g clip-path="url(#pe1c207cc63)">
25515 <use style="fill:#0000d6;" x="0" xlink:href="#C3_140_805f8e5a41" y="231.84"/>
25516 </g>
25517 <g clip-path="url(#pe1c207cc63)">
25518 <use style="fill:#02e8f4;" x="0" xlink:href="#C3_141_e06e26e65a" y="231.84"/>
25519 </g>
25520 <g clip-path="url(#pe1c207cc63)">
25521 <use style="fill:#000dff;" x="0" xlink:href="#C3_142_5ba53d3fc0" y="231.84"/>
25522 </g>
25523 <g clip-path="url(#pe1c207cc63)">
25524 <use style="fill:#0061ff;" x="0" xlink:href="#C3_143_c815ecadd6" y="231.84"/>
25525 </g>
25526 <g clip-path="url(#pe1c207cc63)">
25527 <use style="fill:#000084;" x="0" xlink:href="#C3_144_798805ac1c" y="231.84"/>
25528 </g>
25529 <g clip-path="url(#pe1c207cc63)">
25530 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_145_8815a8c9ce" y="231.84"/>
25531 </g>
25532 <g clip-path="url(#pe1c207cc63)">
25533 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_146_c45b193047" y="231.84"/>
25534 </g>
25535 <g clip-path="url(#pe1c207cc63)">
25536 <use style="fill:#0071ff;" x="0" xlink:href="#C3_147_bace1c82ea" y="231.84"/>
25537 </g>
25538 <g clip-path="url(#pe1c207cc63)">
25539 <use style="fill:#19ffde;" x="0" xlink:href="#C3_148_d4853128fb" y="231.84"/>
25540 </g>
25541 <g clip-path="url(#pe1c207cc63)">
25542 <use style="fill:#000089;" x="0" xlink:href="#C3_149_ca6ba6b083" y="231.84"/>
25543 </g>
25544 <g clip-path="url(#pe1c207cc63)">
25545 <use style="fill:#0000a8;" x="0" xlink:href="#C3_14a_0971d4ff4a" y="231.84"/>
25546 </g>
25547 <g clip-path="url(#pe1c207cc63)">
25548 <use style="fill:#0009ff;" x="0" xlink:href="#C3_14b_f516845b30" y="231.84"/>
25549 </g>
25550 <g clip-path="url(#pe1c207cc63)">
25551 <use style="fill:#0000bb;" x="0" xlink:href="#C3_14c_0eeb3ada7d" y="231.84"/>
25552 </g>
25553 <g clip-path="url(#pe1c207cc63)">
25554 <use style="fill:#00009f;" x="0" xlink:href="#C3_14d_6aa8db9efa" y="231.84"/>
25555 </g>
25556 <g clip-path="url(#pe1c207cc63)">
25557 <use style="fill:#1cffdb;" x="0" xlink:href="#C3_14e_ac042db153" y="231.84"/>
25558 </g>
25559 <g clip-path="url(#pe1c207cc63)">
25560 <use style="fill:#000084;" x="0" xlink:href="#C3_14f_c275753136" y="231.84"/>
25561 </g>
25562 <g clip-path="url(#pe1c207cc63)">
25563 <use style="fill:#000080;" x="0" xlink:href="#C3_150_38f9f2ee26" y="231.84"/>
25564 </g>
25565 <g clip-path="url(#pe1c207cc63)">
25566 <use style="fill:#001dff;" x="0" xlink:href="#C3_151_e955d43f7a" y="231.84"/>
25567 </g>
25568 <g clip-path="url(#pe1c207cc63)">
25569 <use style="fill:#0039ff;" x="0" xlink:href="#C3_152_5d535cd975" y="231.84"/>
25570 </g>
25571 <g clip-path="url(#pe1c207cc63)">
25572 <use style="fill:#36ffc1;" x="0" xlink:href="#C3_153_4da573f622" y="231.84"/>
25573 </g>
25574 <g clip-path="url(#pe1c207cc63)">
25575 <use style="fill:#3cffba;" x="0" xlink:href="#C3_154_d32bb0ca43" y="231.84"/>
25576 </g>
25577 <g clip-path="url(#pe1c207cc63)">
25578 <use style="fill:#0000c4;" x="0" xlink:href="#C3_155_95ab6fbb11" y="231.84"/>
25579 </g>
25580 <g clip-path="url(#pe1c207cc63)">
25581 <use style="fill:#000080;" x="0" xlink:href="#C3_156_6b020656de" y="231.84"/>
25582 </g>
25583 <g clip-path="url(#pe1c207cc63)">
25584 <use style="fill:#0000ad;" x="0" xlink:href="#C3_157_4b64d2ee25" y="231.84"/>
25585 </g>
25586 <g clip-path="url(#pe1c207cc63)">
25587 <use style="fill:#0051ff;" x="0" xlink:href="#C3_158_5f4ed98576" y="231.84"/>
25588 </g>
25589 <g clip-path="url(#pe1c207cc63)">
25590 <use style="fill:#0069ff;" x="0" xlink:href="#C3_159_8f9924f041" y="231.84"/>
25591 </g>
25592 <g clip-path="url(#pe1c207cc63)">
25593 <use style="fill:#00008d;" x="0" xlink:href="#C3_15a_fec4e060a3" y="231.84"/>
25594 </g>
25595 <g clip-path="url(#pe1c207cc63)">
25596 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_15b_4413b11cc5" y="231.84"/>
25597 </g>
25598 <g clip-path="url(#pe1c207cc63)">
25599 <use style="fill:#0000fa;" x="0" xlink:href="#C3_15c_9525da1a2c" y="231.84"/>
25600 </g>
25601 <g clip-path="url(#pe1c207cc63)">
25602 <use style="fill:#0019ff;" x="0" xlink:href="#C3_15d_18142b327f" y="231.84"/>
25603 </g>
25604 <g clip-path="url(#pe1c207cc63)">
25605 <use style="fill:#000080;" x="0" xlink:href="#C3_15e_78a9473755" y="231.84"/>
25606 </g>
25607 <g clip-path="url(#pe1c207cc63)">
25608 <use style="fill:#0000d6;" x="0" xlink:href="#C3_15f_ae6b66f051" y="231.84"/>
25609 </g>
25610 <g clip-path="url(#pe1c207cc63)">
25611 <use style="fill:#06edf1;" x="0" xlink:href="#C3_160_6ed9cbb537" y="231.84"/>
25612 </g>
25613 <g clip-path="url(#pe1c207cc63)">
25614 <use style="fill:#0000a8;" x="0" xlink:href="#C3_161_5329ba402c" y="231.84"/>
25615 </g>
25616 <g clip-path="url(#pe1c207cc63)">
25617 <use style="fill:#007dff;" x="0" xlink:href="#C3_162_ba368d1222" y="231.84"/>
25618 </g>
25619 <g clip-path="url(#pe1c207cc63)">
25620 <use style="fill:#0000bb;" x="0" xlink:href="#C3_163_381bd7bb50" y="231.84"/>
25621 </g>
25622 <g clip-path="url(#pe1c207cc63)">
25623 <use style="fill:#0095ff;" x="0" xlink:href="#C3_164_ce2e02f98b" y="231.84"/>
25624 </g>
25625 <g clip-path="url(#pe1c207cc63)">
25626 <use style="fill:#00009f;" x="0" xlink:href="#C3_165_c6cdbfb81c" y="231.84"/>
25627 </g>
25628 <g clip-path="url(#pe1c207cc63)">
25629 <use style="fill:#0004ff;" x="0" xlink:href="#C3_166_0464c6f698" y="231.84"/>
25630 </g>
25631 <g clip-path="url(#pe1c207cc63)">
25632 <use style="fill:#00008d;" x="0" xlink:href="#C3_167_c314004849" y="231.84"/>
25633 </g>
25634 <g clip-path="url(#pe1c207cc63)">
25635 <use style="fill:#26ffd1;" x="0" xlink:href="#C3_168_91620c8759" y="231.84"/>
25636 </g>
25637 <g clip-path="url(#pe1c207cc63)">
25638 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_169_b7c5e90981" y="231.84"/>
25639 </g>
25640 <g clip-path="url(#pe1c207cc63)">
25641 <use style="fill:#00c8ff;" x="0" xlink:href="#C3_16a_4a83ce4405" y="231.84"/>
25642 </g>
25643 <g clip-path="url(#pe1c207cc63)">
25644 <use style="fill:#00009b;" x="0" xlink:href="#C3_16b_19641d9b18" y="231.84"/>
25645 </g>
25646 <g clip-path="url(#pe1c207cc63)">
25647 <use style="fill:#000084;" x="0" xlink:href="#C3_16c_1aec879458" y="231.84"/>
25648 </g>
25649 <g clip-path="url(#pe1c207cc63)">
25650 <use style="fill:#000dff;" x="0" xlink:href="#C3_16d_d773f92bbe" y="231.84"/>
25651 </g>
25652 <g clip-path="url(#pe1c207cc63)">
25653 <use style="fill:#0021ff;" x="0" xlink:href="#C3_16e_5ec117b112" y="231.84"/>
25654 </g>
25655 <g clip-path="url(#pe1c207cc63)">
25656 <use style="fill:#00bdff;" x="0" xlink:href="#C3_16f_8affc52884" y="231.84"/>
25657 </g>
25658 <g clip-path="url(#pe1c207cc63)">
25659 <use style="fill:#56ffa0;" x="0" xlink:href="#C3_170_bf213e1e53" y="231.84"/>
25660 </g>
25661 <g clip-path="url(#pe1c207cc63)">
25662 <use style="fill:#00a5ff;" x="0" xlink:href="#C3_171_85b97cfb2f" y="231.84"/>
25663 </g>
25664 <g clip-path="url(#pe1c207cc63)">
25665 <use style="fill:#1fffd7;" x="0" xlink:href="#C3_172_d27119a294" y="231.84"/>
25666 </g>
25667 <g clip-path="url(#pe1c207cc63)">
25668 <use style="fill:#0000c4;" x="0" xlink:href="#C3_173_c3daaeb01e" y="231.84"/>
25669 </g>
25670 <g clip-path="url(#pe1c207cc63)">
25671 <use style="fill:#00e1fb;" x="0" xlink:href="#C3_174_238315ee93" y="231.84"/>
25672 </g>
25673 <g clip-path="url(#pe1c207cc63)">
25674 <use style="fill:#000092;" x="0" xlink:href="#C3_175_34e1932286" y="231.84"/>
25675 </g>
25676 <g clip-path="url(#pe1c207cc63)">
25677 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_176_127f08f3a1" y="231.84"/>
25678 </g>
25679 <g clip-path="url(#pe1c207cc63)">
25680 <use style="fill:#0044ff;" x="0" xlink:href="#C3_177_b60180d96b" y="231.84"/>
25681 </g>
25682 <g clip-path="url(#pe1c207cc63)">
25683 <use style="fill:#33ffc4;" x="0" xlink:href="#C3_178_806be4a0fd" y="231.84"/>
25684 </g>
25685 <g clip-path="url(#pe1c207cc63)">
25686 <use style="fill:#00009b;" x="0" xlink:href="#C3_179_a2f2c85d58" y="231.84"/>
25687 </g>
25688 <g clip-path="url(#pe1c207cc63)">
25689 <use style="fill:#000080;" x="0" xlink:href="#C3_17a_49869630e3" y="231.84"/>
25690 </g>
25691 <g clip-path="url(#pe1c207cc63)">
25692 <use style="fill:#000080;" x="0" xlink:href="#C3_17b_29847c0124" y="231.84"/>
25693 </g>
25694 <g clip-path="url(#pe1c207cc63)">
25695 <use style="fill:#0000ff;" x="0" xlink:href="#C3_17c_ca21da3cae" y="231.84"/>
25696 </g>
25697 <g clip-path="url(#pe1c207cc63)">
25698 <use style="fill:#6dff8a;" x="0" xlink:href="#C3_17d_4adff9991b" y="231.84"/>
25699 </g>
25700 <g clip-path="url(#pe1c207cc63)">
25701 <use style="fill:#0085ff;" x="0" xlink:href="#C3_17e_873f3cc403" y="231.84"/>
25702 </g>
25703 <g clip-path="url(#pe1c207cc63)">
25704 <use style="fill:#6aff8d;" x="0" xlink:href="#C3_17f_5a81e0e224" y="231.84"/>
25705 </g>
25706 <g clip-path="url(#pe1c207cc63)">
25707 <use style="fill:#005dff;" x="0" xlink:href="#C3_180_be30d25bdc" y="231.84"/>
25708 </g>
25709 <g clip-path="url(#pe1c207cc63)">
25710 <use style="fill:#0000ff;" x="0" xlink:href="#C3_181_547db3f7e8" y="231.84"/>
25711 </g>
25712 <g clip-path="url(#pe1c207cc63)">
25713 <use style="fill:#56ffa0;" x="0" xlink:href="#C3_182_3939d1c6f2" y="231.84"/>
25714 </g>
25715 <g clip-path="url(#pe1c207cc63)">
25716 <use style="fill:#0000d1;" x="0" xlink:href="#C3_183_4fbcf87dca" y="231.84"/>
25717 </g>
25718 <g clip-path="url(#pe1c207cc63)">
25719 <use style="fill:#000084;" x="0" xlink:href="#C3_184_ec0633760e" y="231.84"/>
25720 </g>
25721 <g clip-path="url(#pe1c207cc63)">
25722 <use style="fill:#0000f1;" x="0" xlink:href="#C3_185_b4f4743d11" y="231.84"/>
25723 </g>
25724 <g clip-path="url(#pe1c207cc63)">
25725 <use style="fill:#0000df;" x="0" xlink:href="#C3_186_1f4a699bcb" y="231.84"/>
25726 </g>
25727 <g clip-path="url(#pe1c207cc63)">
25728 <use style="fill:#66ff90;" x="0" xlink:href="#C3_187_f4aa57d64e" y="231.84"/>
25729 </g>
25730 <g clip-path="url(#pe1c207cc63)">
25731 <use style="fill:#0000b2;" x="0" xlink:href="#C3_188_6caf34fc92" y="231.84"/>
25732 </g>
25733 <g clip-path="url(#pe1c207cc63)">
25734 <use style="fill:#000092;" x="0" xlink:href="#C3_189_59f8b076ac" y="231.84"/>
25735 </g>
25736 <g clip-path="url(#pe1c207cc63)">
25737 <use style="fill:#0095ff;" x="0" xlink:href="#C3_18a_04e235de52" y="231.84"/>
25738 </g>
25739 <g clip-path="url(#pe1c207cc63)">
25740 <use style="fill:#0009ff;" x="0" xlink:href="#C3_18b_07c501650f" y="231.84"/>
25741 </g>
25742 <g clip-path="url(#pe1c207cc63)">
25743 <use style="fill:#70ff87;" x="0" xlink:href="#C3_18c_6602a60ea4" y="231.84"/>
25744 </g>
25745 <g clip-path="url(#pe1c207cc63)">
25746 <use style="fill:#000080;" x="0" xlink:href="#C3_18d_93cd4c2a34" y="231.84"/>
25747 </g>
25748 <g clip-path="url(#pe1c207cc63)">
25749 <use style="fill:#000096;" x="0" xlink:href="#C3_18e_e14d7ffd89" y="231.84"/>
25750 </g>
25751 <g clip-path="url(#pe1c207cc63)">
25752 <use style="fill:#00e1fb;" x="0" xlink:href="#C3_18f_7cc46edd05" y="231.84"/>
25753 </g>
25754 <g clip-path="url(#pe1c207cc63)">
25755 <use style="fill:#29ffce;" x="0" xlink:href="#C3_190_b6664d6992" y="231.84"/>
25756 </g>
25757 <g clip-path="url(#pe1c207cc63)">
25758 <use style="fill:#0000da;" x="0" xlink:href="#C3_191_3c5bdb023e" y="231.84"/>
25759 </g>
25760 <g clip-path="url(#pe1c207cc63)">
25761 <use style="fill:#000089;" x="0" xlink:href="#C3_192_9558aff60f" y="231.84"/>
25762 </g>
25763 <g clip-path="url(#pe1c207cc63)">
25764 <use style="fill:#0085ff;" x="0" xlink:href="#C3_193_3e73defe0b" y="231.84"/>
25765 </g>
25766 <g clip-path="url(#pe1c207cc63)">
25767 <use style="fill:#0000bf;" x="0" xlink:href="#C3_194_e0c97027d1" y="231.84"/>
25768 </g>
25769 <g clip-path="url(#pe1c207cc63)">
25770 <use style="fill:#0099ff;" x="0" xlink:href="#C3_195_842baf86ab" y="231.84"/>
25771 </g>
25772 <g clip-path="url(#pe1c207cc63)">
25773 <use style="fill:#0000ad;" x="0" xlink:href="#C3_196_32920d36a8" y="231.84"/>
25774 </g>
25775 <g clip-path="url(#pe1c207cc63)">
25776 <use style="fill:#0031ff;" x="0" xlink:href="#C3_197_df30733e37" y="231.84"/>
25777 </g>
25778 <g clip-path="url(#pe1c207cc63)">
25779 <use style="fill:#0000bf;" x="0" xlink:href="#C3_198_b8c51ec3b6" y="231.84"/>
25780 </g>
25781 <g clip-path="url(#pe1c207cc63)">
25782 <use style="fill:#000080;" x="0" xlink:href="#C3_199_833d30b0be" y="231.84"/>
25783 </g>
25784 <g clip-path="url(#pe1c207cc63)">
25785 <use style="fill:#0044ff;" x="0" xlink:href="#C3_19a_3ef0becdef" y="231.84"/>
25786 </g>
25787 <g clip-path="url(#pe1c207cc63)">
25788 <use style="fill:#000084;" x="0" xlink:href="#C3_19b_94d206d883" y="231.84"/>
25789 </g>
25790 <g clip-path="url(#pe1c207cc63)">
25791 <use style="fill:#94ff63;" x="0" xlink:href="#C3_19c_2d4d07d44b" y="231.84"/>
25792 </g>
25793 <g clip-path="url(#pe1c207cc63)">
25794 <use style="fill:#007dff;" x="0" xlink:href="#C3_19d_123d4e5927" y="231.84"/>
25795 </g>
25796 <g clip-path="url(#pe1c207cc63)">
25797 <use style="fill:#0000a4;" x="0" xlink:href="#C3_19e_c8048077d9" y="231.84"/>
25798 </g>
25799 <g clip-path="url(#pe1c207cc63)">
25800 <use style="fill:#0000fa;" x="0" xlink:href="#C3_19f_f1dd5087ab" y="231.84"/>
25801 </g>
25802 <g clip-path="url(#pe1c207cc63)">
25803 <use style="fill:#97ff60;" x="0" xlink:href="#C3_1a0_6d09803a9d" y="231.84"/>
25804 </g>
25805 <g clip-path="url(#pe1c207cc63)">
25806 <use style="fill:#80ff77;" x="0" xlink:href="#C3_1a1_7b1cefbfbc" y="231.84"/>
25807 </g>
25808 <g clip-path="url(#pe1c207cc63)">
25809 <use style="fill:#09f1ee;" x="0" xlink:href="#C3_1a2_8aa8b54a68" y="231.84"/>
25810 </g>
25811 <g clip-path="url(#pe1c207cc63)">
25812 <use style="fill:#00d1ff;" x="0" xlink:href="#C3_1a3_532f5c41bc" y="231.84"/>
25813 </g>
25814 <g clip-path="url(#pe1c207cc63)">
25815 <use style="fill:#000089;" x="0" xlink:href="#C3_1a4_8268864b56" y="231.84"/>
25816 </g>
25817 <g clip-path="url(#pe1c207cc63)">
25818 <use style="fill:#0000f1;" x="0" xlink:href="#C3_1a5_3c88a1262c" y="231.84"/>
25819 </g>
25820 <g clip-path="url(#pe1c207cc63)">
25821 <use style="fill:#0091ff;" x="0" xlink:href="#C3_1a6_aae29267be" y="231.84"/>
25822 </g>
25823 <g clip-path="url(#pe1c207cc63)">
25824 <use style="fill:#63ff94;" x="0" xlink:href="#C3_1a7_dd3b04365a" y="231.84"/>
25825 </g>
25826 <g clip-path="url(#pe1c207cc63)">
25827 <use style="fill:#0000ad;" x="0" xlink:href="#C3_1a8_f7042c10a6" y="231.84"/>
25828 </g>
25829 <g clip-path="url(#pe1c207cc63)">
25830 <use style="fill:#09f1ee;" x="0" xlink:href="#C3_1a9_5e5e308b80" y="231.84"/>
25831 </g>
25832 <g clip-path="url(#pe1c207cc63)">
25833 <use style="fill:#000096;" x="0" xlink:href="#C3_1aa_bb2cf49f69" y="231.84"/>
25834 </g>
25835 <g clip-path="url(#pe1c207cc63)">
25836 <use style="fill:#000092;" x="0" xlink:href="#C3_1ab_622ec391de" y="231.84"/>
25837 </g>
25838 <g clip-path="url(#pe1c207cc63)">
25839 <use style="fill:#000080;" x="0" xlink:href="#C3_1ac_3515133290" y="231.84"/>
25840 </g>
25841 <g clip-path="url(#pe1c207cc63)">
25842 <use style="fill:#006dff;" x="0" xlink:href="#C3_1ad_8527467a6c" y="231.84"/>
25843 </g>
25844 <g clip-path="url(#pe1c207cc63)">
25845 <use style="fill:#000080;" x="0" xlink:href="#C3_1ae_62d9bc2910" y="231.84"/>
25846 </g>
25847 <g clip-path="url(#pe1c207cc63)">
25848 <use style="fill:#0071ff;" x="0" xlink:href="#C3_1af_b9f5ee61cb" y="231.84"/>
25849 </g>
25850 <g clip-path="url(#pe1c207cc63)">
25851 <use style="fill:#0000ed;" x="0" xlink:href="#C3_1b0_3bb50be6f5" y="231.84"/>
25852 </g>
25853 <g clip-path="url(#pe1c207cc63)">
25854 <use style="fill:#0000c4;" x="0" xlink:href="#C3_1b1_4886ad130d" y="231.84"/>
25855 </g>
25856 <g clip-path="url(#pe1c207cc63)">
25857 <use style="fill:#0014ff;" x="0" xlink:href="#C3_1b2_368685debe" y="231.84"/>
25858 </g>
25859 <g clip-path="url(#pe1c207cc63)">
25860 <use style="fill:#19ffde;" x="0" xlink:href="#C3_1b3_67160ecc80" y="231.84"/>
25861 </g>
25862 <g clip-path="url(#pe1c207cc63)">
25863 <use style="fill:#0000a4;" x="0" xlink:href="#C3_1b4_5973d9db6c" y="231.84"/>
25864 </g>
25865 <g clip-path="url(#pe1c207cc63)">
25866 <use style="fill:#aaff4d;" x="0" xlink:href="#C3_1b5_90e3b7e45b" y="231.84"/>
25867 </g>
25868 <g clip-path="url(#pe1c207cc63)">
25869 <use style="fill:#8aff6d;" x="0" xlink:href="#C3_1b6_c8a784abf3" y="231.84"/>
25870 </g>
25871 <g clip-path="url(#pe1c207cc63)">
25872 <use style="fill:#49ffad;" x="0" xlink:href="#C3_1b7_9ce11495f7" y="231.84"/>
25873 </g>
25874 <g clip-path="url(#pe1c207cc63)">
25875 <use style="fill:#0054ff;" x="0" xlink:href="#C3_1b8_4d31e14fef" y="231.84"/>
25876 </g>
25877 <g clip-path="url(#pe1c207cc63)">
25878 <use style="fill:#0031ff;" x="0" xlink:href="#C3_1b9_7d8360d0fd" y="231.84"/>
25879 </g>
25880 <g clip-path="url(#pe1c207cc63)">
25881 <use style="fill:#0000cd;" x="0" xlink:href="#C3_1ba_cfdce1ea04" y="231.84"/>
25882 </g>
25883 <g clip-path="url(#pe1c207cc63)">
25884 <use style="fill:#000084;" x="0" xlink:href="#C3_1bb_4ab1f84e69" y="231.84"/>
25885 </g>
25886 <g clip-path="url(#pe1c207cc63)">
25887 <use style="fill:#0000e8;" x="0" xlink:href="#C3_1bc_165208e657" y="231.84"/>
25888 </g>
25889 <g clip-path="url(#pe1c207cc63)">
25890 <use style="fill:#8dff6a;" x="0" xlink:href="#C3_1bd_437b808996" y="231.84"/>
25891 </g>
25892 <g clip-path="url(#pe1c207cc63)">
25893 <use style="fill:#0051ff;" x="0" xlink:href="#C3_1be_304ab941af" y="231.84"/>
25894 </g>
25895 <g clip-path="url(#pe1c207cc63)">
25896 <use style="fill:#0039ff;" x="0" xlink:href="#C3_1bf_d3ae7b0460" y="231.84"/>
25897 </g>
25898 <g clip-path="url(#pe1c207cc63)">
25899 <use style="fill:#00008d;" x="0" xlink:href="#C3_1c0_1085e23c2f" y="231.84"/>
25900 </g>
25901 <g clip-path="url(#pe1c207cc63)">
25902 <use style="fill:#3cffba;" x="0" xlink:href="#C3_1c1_e768e4027f" y="231.84"/>
25903 </g>
25904 <g clip-path="url(#pe1c207cc63)">
25905 <use style="fill:#00e5f8;" x="0" xlink:href="#C3_1c2_abb306507c" y="231.84"/>
25906 </g>
25907 <g clip-path="url(#pe1c207cc63)">
25908 <use style="fill:#001dff;" x="0" xlink:href="#C3_1c3_c200bfc9d5" y="231.84"/>
25909 </g>
25910 <g clip-path="url(#pe1c207cc63)">
25911 <use style="fill:#8aff6d;" x="0" xlink:href="#C3_1c4_49ce5e1329" y="231.84"/>
25912 </g>
25913 <g clip-path="url(#pe1c207cc63)">
25914 <use style="fill:#b4ff43;" x="0" xlink:href="#C3_1c5_7f7d5c131d" y="231.84"/>
25915 </g>
25916 <g clip-path="url(#pe1c207cc63)">
25917 <use style="fill:#000080;" x="0" xlink:href="#C3_1c6_7510bc14b9" y="231.84"/>
25918 </g>
25919 <g clip-path="url(#pe1c207cc63)">
25920 <use style="fill:#00009b;" x="0" xlink:href="#C3_1c7_bd4fe705c9" y="231.84"/>
25921 </g>
25922 <g clip-path="url(#pe1c207cc63)">
25923 <use style="fill:#baff3c;" x="0" xlink:href="#C3_1c8_347c0e01ec" y="231.84"/>
25924 </g>
25925 <g clip-path="url(#pe1c207cc63)">
25926 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_1c9_ed2fcd67ad" y="231.84"/>
25927 </g>
25928 <g clip-path="url(#pe1c207cc63)">
25929 <use style="fill:#a7ff50;" x="0" xlink:href="#C3_1ca_9f779b55b4" y="231.84"/>
25930 </g>
25931 <g clip-path="url(#pe1c207cc63)">
25932 <use style="fill:#0000ff;" x="0" xlink:href="#C3_1cb_d18cbe89a5" y="231.84"/>
25933 </g>
25934 <g clip-path="url(#pe1c207cc63)">
25935 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_1cc_8586a11baa" y="231.84"/>
25936 </g>
25937 <g clip-path="url(#pe1c207cc63)">
25938 <use style="fill:#00008d;" x="0" xlink:href="#C3_1cd_23d262afe2" y="231.84"/>
25939 </g>
25940 <g clip-path="url(#pe1c207cc63)">
25941 <use style="fill:#0000e3;" x="0" xlink:href="#C3_1ce_f3fd1dd02d" y="231.84"/>
25942 </g>
25943 <g clip-path="url(#pe1c207cc63)">
25944 <use style="fill:#5dff9a;" x="0" xlink:href="#C3_1cf_e743d85581" y="231.84"/>
25945 </g>
25946 <g clip-path="url(#pe1c207cc63)">
25947 <use style="fill:#83ff73;" x="0" xlink:href="#C3_1d0_b26e5357c5" y="231.84"/>
25948 </g>
25949 <g clip-path="url(#pe1c207cc63)">
25950 <use style="fill:#c7ff30;" x="0" xlink:href="#C3_1d1_9f259716a3" y="231.84"/>
25951 </g>
25952 <g clip-path="url(#pe1c207cc63)">
25953 <use style="fill:#73ff83;" x="0" xlink:href="#C3_1d2_1f4495d1b2" y="231.84"/>
25954 </g>
25955 <g clip-path="url(#pe1c207cc63)">
25956 <use style="fill:#0000b2;" x="0" xlink:href="#C3_1d3_3ed7ec4234" y="231.84"/>
25957 </g>
25958 <g clip-path="url(#pe1c207cc63)">
25959 <use style="fill:#0000bf;" x="0" xlink:href="#C3_1d4_d2c1102728" y="231.84"/>
25960 </g>
25961 <g clip-path="url(#pe1c207cc63)">
25962 <use style="fill:#000080;" x="0" xlink:href="#C3_1d5_dea3aa5624" y="231.84"/>
25963 </g>
25964 <g clip-path="url(#pe1c207cc63)">
25965 <use style="fill:#0095ff;" x="0" xlink:href="#C3_1d6_db90a3bdef" y="231.84"/>
25966 </g>
25967 <g clip-path="url(#pe1c207cc63)">
25968 <use style="fill:#0009ff;" x="0" xlink:href="#C3_1d7_e0dfbfad2c" y="231.84"/>
25969 </g>
25970 <g clip-path="url(#pe1c207cc63)">
25971 <use style="fill:#000084;" x="0" xlink:href="#C3_1d8_dc4ec16cbd" y="231.84"/>
25972 </g>
25973 <g clip-path="url(#pe1c207cc63)">
25974 <use style="fill:#0000d1;" x="0" xlink:href="#C3_1d9_f16b6eb5fb" y="231.84"/>
25975 </g>
25976 <g clip-path="url(#pe1c207cc63)">
25977 <use style="fill:#0021ff;" x="0" xlink:href="#C3_1da_eb288c3375" y="231.84"/>
25978 </g>
25979 <g clip-path="url(#pe1c207cc63)">
25980 <use style="fill:#0079ff;" x="0" xlink:href="#C3_1db_3ab95bc17a" y="231.84"/>
25981 </g>
25982 <g clip-path="url(#pe1c207cc63)">
25983 <use style="fill:#00009f;" x="0" xlink:href="#C3_1dc_796f2a61b1" y="231.84"/>
25984 </g>
25985 <g clip-path="url(#pe1c207cc63)">
25986 <use style="fill:#8aff6d;" x="0" xlink:href="#C3_1dd_dbf580c558" y="231.84"/>
25987 </g>
25988 <g clip-path="url(#pe1c207cc63)">
25989 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_1de_3ac82597f2" y="231.84"/>
25990 </g>
25991 <g clip-path="url(#pe1c207cc63)">
25992 <use style="fill:#0000ff;" x="0" xlink:href="#C3_1df_e27473e613" y="231.84"/>
25993 </g>
25994 <g clip-path="url(#pe1c207cc63)">
25995 <use style="fill:#60ff97;" x="0" xlink:href="#C3_1e0_54b85010d4" y="231.84"/>
25996 </g>
25997 <g clip-path="url(#pe1c207cc63)">
25998 <use style="fill:#0000da;" x="0" xlink:href="#C3_1e1_4417f6d6fe" y="231.84"/>
25999 </g>
26000 <g clip-path="url(#pe1c207cc63)">
26001 <use style="fill:#49ffad;" x="0" xlink:href="#C3_1e2_487c4d6170" y="231.84"/>
26002 </g>
26003 <g clip-path="url(#pe1c207cc63)">
26004 <use style="fill:#00008d;" x="0" xlink:href="#C3_1e3_f7f45f880c" y="231.84"/>
26005 </g>
26006 <g clip-path="url(#pe1c207cc63)">
26007 <use style="fill:#13fde4;" x="0" xlink:href="#C3_1e4_dfbf2f5b51" y="231.84"/>
26008 </g>
26009 <g clip-path="url(#pe1c207cc63)">
26010 <use style="fill:#0000f1;" x="0" xlink:href="#C3_1e5_62f9ebad5f" y="231.84"/>
26011 </g>
26012 <g clip-path="url(#pe1c207cc63)">
26013 <use style="fill:#000089;" x="0" xlink:href="#C3_1e6_ca2d2d0b12" y="231.84"/>
26014 </g>
26015 <g clip-path="url(#pe1c207cc63)">
26016 <use style="fill:#0029ff;" x="0" xlink:href="#C3_1e7_29e5589e6d" y="231.84"/>
26017 </g>
26018 <g clip-path="url(#pe1c207cc63)">
26019 <use style="fill:#0000bb;" x="0" xlink:href="#C3_1e8_866fb42ebc" y="231.84"/>
26020 </g>
26021 <g clip-path="url(#pe1c207cc63)">
26022 <use style="fill:#00e5f8;" x="0" xlink:href="#C3_1e9_0ecf37d39e" y="231.84"/>
26023 </g>
26024 <g clip-path="url(#pe1c207cc63)">
26025 <use style="fill:#d4ff23;" x="0" xlink:href="#C3_1ea_cdc5cedb8c" y="231.84"/>
26026 </g>
26027 <g clip-path="url(#pe1c207cc63)">
26028 <use style="fill:#000080;" x="0" xlink:href="#C3_1eb_4391c284f2" y="231.84"/>
26029 </g>
26030 <g clip-path="url(#pe1c207cc63)">
26031 <use style="fill:#0000b6;" x="0" xlink:href="#C3_1ec_ca8976a403" y="231.84"/>
26032 </g>
26033 <g clip-path="url(#pe1c207cc63)">
26034 <use style="fill:#000084;" x="0" xlink:href="#C3_1ed_09ee445e65" y="231.84"/>
26035 </g>
26036 <g clip-path="url(#pe1c207cc63)">
26037 <use style="fill:#0000a4;" x="0" xlink:href="#C3_1ee_6e994f65b3" y="231.84"/>
26038 </g>
26039 <g clip-path="url(#pe1c207cc63)">
26040 <use style="fill:#000dff;" x="0" xlink:href="#C3_1ef_5422a130e2" y="231.84"/>
26041 </g>
26042 <g clip-path="url(#pe1c207cc63)">
26043 <use style="fill:#0061ff;" x="0" xlink:href="#C3_1f0_c7d34c017b" y="231.84"/>
26044 </g>
26045 <g clip-path="url(#pe1c207cc63)">
26046 <use style="fill:#e7ff0f;" x="0" xlink:href="#C3_1f1_f3cedcdd73" y="231.84"/>
26047 </g>
26048 <g clip-path="url(#pe1c207cc63)">
26049 <use style="fill:#09f1ee;" x="0" xlink:href="#C3_1f2_e9a7ab3744" y="231.84"/>
26050 </g>
26051 <g clip-path="url(#pe1c207cc63)">
26052 <use style="fill:#00009f;" x="0" xlink:href="#C3_1f3_eba899737c" y="231.84"/>
26053 </g>
26054 <g clip-path="url(#pe1c207cc63)">
26055 <use style="fill:#000080;" x="0" xlink:href="#C3_1f4_c63916be83" y="231.84"/>
26056 </g>
26057 <g clip-path="url(#pe1c207cc63)">
26058 <use style="fill:#0071ff;" x="0" xlink:href="#C3_1f5_3f6a9e77a9" y="231.84"/>
26059 </g>
26060 <g clip-path="url(#pe1c207cc63)">
26061 <use style="fill:#00c8ff;" x="0" xlink:href="#C3_1f6_52815f6d2e" y="231.84"/>
26062 </g>
26063 <g clip-path="url(#pe1c207cc63)">
26064 <use style="fill:#beff39;" x="0" xlink:href="#C3_1f7_83c7e2e3a9" y="231.84"/>
26065 </g>
26066 <g clip-path="url(#pe1c207cc63)">
26067 <use style="fill:#0000d6;" x="0" xlink:href="#C3_1f8_1d27fdc18b" y="231.84"/>
26068 </g>
26069 <g clip-path="url(#pe1c207cc63)">
26070 <use style="fill:#46ffb1;" x="0" xlink:href="#C3_1f9_4797af1c05" y="231.84"/>
26071 </g>
26072 <g clip-path="url(#pe1c207cc63)">
26073 <use style="fill:#f4f802;" x="0" xlink:href="#C3_1fa_fa605ae814" y="231.84"/>
26074 </g>
26075 <g clip-path="url(#pe1c207cc63)">
26076 <use style="fill:#00ddfe;" x="0" xlink:href="#C3_1fb_8c1f96a389" y="231.84"/>
26077 </g>
26078 <g clip-path="url(#pe1c207cc63)">
26079 <use style="fill:#00a5ff;" x="0" xlink:href="#C3_1fc_24625175f4" y="231.84"/>
26080 </g>
26081 <g clip-path="url(#pe1c207cc63)">
26082 <use style="fill:#000092;" x="0" xlink:href="#C3_1fd_27774c7646" y="231.84"/>
26083 </g>
26084 <g clip-path="url(#pe1c207cc63)">
26085 <use style="fill:#0000fa;" x="0" xlink:href="#C3_1fe_39ff10d85f" y="231.84"/>
26086 </g>
26087 <g clip-path="url(#pe1c207cc63)">
26088 <use style="fill:#0000d6;" x="0" xlink:href="#C3_1ff_bb31d830f3" y="231.84"/>
26089 </g>
26090 <g clip-path="url(#pe1c207cc63)">
26091 <use style="fill:#0000ff;" x="0" xlink:href="#C3_200_44274d6e4a" y="231.84"/>
26092 </g>
26093 <g clip-path="url(#pe1c207cc63)">
26094 <use style="fill:#00009b;" x="0" xlink:href="#C3_201_abcf24c2ba" y="231.84"/>
26095 </g>
26096 <g clip-path="url(#pe1c207cc63)">
26097 <use style="fill:#000080;" x="0" xlink:href="#C3_202_b77b5dd682" y="231.84"/>
26098 </g>
26099 <g clip-path="url(#pe1c207cc63)">
26100 <use style="fill:#70ff87;" x="0" xlink:href="#C3_203_6684eebc0b" y="231.84"/>
26101 </g>
26102 <g clip-path="url(#pe1c207cc63)">
26103 <use style="fill:#0031ff;" x="0" xlink:href="#C3_204_e7f338a171" y="231.84"/>
26104 </g>
26105 <g clip-path="url(#pe1c207cc63)">
26106 <use style="fill:#e7ff0f;" x="0" xlink:href="#C3_205_13666595ec" y="231.84"/>
26107 </g>
26108 <g clip-path="url(#pe1c207cc63)">
26109 <use style="fill:#46ffb1;" x="0" xlink:href="#C3_206_1ea40d72bb" y="231.84"/>
26110 </g>
26111 <g clip-path="url(#pe1c207cc63)">
26112 <use style="fill:#0000ad;" x="0" xlink:href="#C3_207_ab6bb1a35c" y="231.84"/>
26113 </g>
26114 <g clip-path="url(#pe1c207cc63)">
26115 <use style="fill:#0021ff;" x="0" xlink:href="#C3_208_dafa846fe0" y="231.84"/>
26116 </g>
26117 <g clip-path="url(#pe1c207cc63)">
26118 <use style="fill:#00c1ff;" x="0" xlink:href="#C3_209_7e7a2146db" y="231.84"/>
26119 </g>
26120 <g clip-path="url(#pe1c207cc63)">
26121 <use style="fill:#f8f500;" x="0" xlink:href="#C3_20a_8fd747ddeb" y="231.84"/>
26122 </g>
26123 <g clip-path="url(#pe1c207cc63)">
26124 <use style="fill:#004dff;" x="0" xlink:href="#C3_20b_09998717c6" y="231.84"/>
26125 </g>
26126 <g clip-path="url(#pe1c207cc63)">
26127 <use style="fill:#00a1ff;" x="0" xlink:href="#C3_20c_355cd0f8f8" y="231.84"/>
26128 </g>
26129 <g clip-path="url(#pe1c207cc63)">
26130 <use style="fill:#0079ff;" x="0" xlink:href="#C3_20d_3e9ad3aca2" y="231.84"/>
26131 </g>
26132 <g clip-path="url(#pe1c207cc63)">
26133 <use style="fill:#e4ff13;" x="0" xlink:href="#C3_20e_1555944077" y="231.84"/>
26134 </g>
26135 <g clip-path="url(#pe1c207cc63)">
26136 <use style="fill:#00008d;" x="0" xlink:href="#C3_20f_178607cef8" y="231.84"/>
26137 </g>
26138 <g clip-path="url(#pe1c207cc63)">
26139 <use style="fill:#aaff4d;" x="0" xlink:href="#C3_210_3d95405017" y="231.84"/>
26140 </g>
26141 <g clip-path="url(#pe1c207cc63)">
26142 <use style="fill:#00009b;" x="0" xlink:href="#C3_211_c566097a97" y="231.84"/>
26143 </g>
26144 <g clip-path="url(#pe1c207cc63)">
26145 <use style="fill:#f8f500;" x="0" xlink:href="#C3_212_549f5a435d" y="231.84"/>
26146 </g>
26147 <g clip-path="url(#pe1c207cc63)">
26148 <use style="fill:#000084;" x="0" xlink:href="#C3_213_ada87ffc52" y="231.84"/>
26149 </g>
26150 <g clip-path="url(#pe1c207cc63)">
26151 <use style="fill:#005dff;" x="0" xlink:href="#C3_214_bf08ed5db3" y="231.84"/>
26152 </g>
26153 <g clip-path="url(#pe1c207cc63)">
26154 <use style="fill:#77ff80;" x="0" xlink:href="#C3_215_03c0ea614d" y="231.84"/>
26155 </g>
26156 <g clip-path="url(#pe1c207cc63)">
26157 <use style="fill:#0000d1;" x="0" xlink:href="#C3_216_509935c4c8" y="231.84"/>
26158 </g>
26159 <g clip-path="url(#pe1c207cc63)">
26160 <use style="fill:#000084;" x="0" xlink:href="#C3_217_d03fafe32f" y="231.84"/>
26161 </g>
26162 <g clip-path="url(#pe1c207cc63)">
26163 <use style="fill:#09f1ee;" x="0" xlink:href="#C3_218_dde945c045" y="231.84"/>
26164 </g>
26165 <g clip-path="url(#pe1c207cc63)">
26166 <use style="fill:#0011ff;" x="0" xlink:href="#C3_219_e7e7b64d73" y="231.84"/>
26167 </g>
26168 <g clip-path="url(#pe1c207cc63)">
26169 <use style="fill:#0000c4;" x="0" xlink:href="#C3_21a_0c9df13801" y="231.84"/>
26170 </g>
26171 <g clip-path="url(#pe1c207cc63)">
26172 <use style="fill:#eeff09;" x="0" xlink:href="#C3_21b_fde9c69711" y="231.84"/>
26173 </g>
26174 <g clip-path="url(#pe1c207cc63)">
26175 <use style="fill:#29ffce;" x="0" xlink:href="#C3_21c_d968413759" y="231.84"/>
26176 </g>
26177 <g clip-path="url(#pe1c207cc63)">
26178 <use style="fill:#000080;" x="0" xlink:href="#C3_21d_301a4c2d3d" y="231.84"/>
26179 </g>
26180 <g clip-path="url(#pe1c207cc63)">
26181 <use style="fill:#000084;" x="0" xlink:href="#C3_21e_90aa8bd95d" y="231.84"/>
26182 </g>
26183 <g clip-path="url(#pe1c207cc63)">
26184 <use style="fill:#00c8ff;" x="0" xlink:href="#C3_21f_cd328c0a3d" y="231.84"/>
26185 </g>
26186 <g clip-path="url(#pe1c207cc63)">
26187 <use style="fill:#77ff80;" x="0" xlink:href="#C3_220_ecf449f3ac" y="231.84"/>
26188 </g>
26189 <g clip-path="url(#pe1c207cc63)">
26190 <use style="fill:#9dff5a;" x="0" xlink:href="#C3_221_feda601b04" y="231.84"/>
26191 </g>
26192 <g clip-path="url(#pe1c207cc63)">
26193 <use style="fill:#0039ff;" x="0" xlink:href="#C3_222_89ea548893" y="231.84"/>
26194 </g>
26195 <g clip-path="url(#pe1c207cc63)">
26196 <use style="fill:#90ff66;" x="0" xlink:href="#C3_223_e5fc047234" y="231.84"/>
26197 </g>
26198 <g clip-path="url(#pe1c207cc63)">
26199 <use style="fill:#0000ad;" x="0" xlink:href="#C3_224_8180df77d2" y="231.84"/>
26200 </g>
26201 <g clip-path="url(#pe1c207cc63)">
26202 <use style="fill:#ffd000;" x="0" xlink:href="#C3_225_e12fd7f5c6" y="231.84"/>
26203 </g>
26204 <g clip-path="url(#pe1c207cc63)">
26205 <use style="fill:#ffc800;" x="0" xlink:href="#C3_226_36ca5b2bfc" y="231.84"/>
26206 </g>
26207 <g clip-path="url(#pe1c207cc63)">
26208 <use style="fill:#f1fc06;" x="0" xlink:href="#C3_227_dd7bdc0266" y="231.84"/>
26209 </g>
26210 <g clip-path="url(#pe1c207cc63)">
26211 <use style="fill:#000080;" x="0" xlink:href="#C3_228_8cf3895d83" y="231.84"/>
26212 </g>
26213 <g clip-path="url(#pe1c207cc63)">
26214 <use style="fill:#c1ff36;" x="0" xlink:href="#C3_229_d7a9446cdc" y="231.84"/>
26215 </g>
26216 <g clip-path="url(#pe1c207cc63)">
26217 <use style="fill:#0000ff;" x="0" xlink:href="#C3_22a_c12179d234" y="231.84"/>
26218 </g>
26219 <g clip-path="url(#pe1c207cc63)">
26220 <use style="fill:#49ffad;" x="0" xlink:href="#C3_22b_d361cb181d" y="231.84"/>
26221 </g>
26222 <g clip-path="url(#pe1c207cc63)">
26223 <use style="fill:#0000b2;" x="0" xlink:href="#C3_22c_b53b5564ad" y="231.84"/>
26224 </g>
26225 <g clip-path="url(#pe1c207cc63)">
26226 <use style="fill:#0000e3;" x="0" xlink:href="#C3_22d_037bd821b6" y="231.84"/>
26227 </g>
26228 <g clip-path="url(#pe1c207cc63)">
26229 <use style="fill:#0011ff;" x="0" xlink:href="#C3_22e_b8885e09c2" y="231.84"/>
26230 </g>
26231 <g clip-path="url(#pe1c207cc63)">
26232 <use style="fill:#e7ff0f;" x="0" xlink:href="#C3_22f_e4f2fe028c" y="231.84"/>
26233 </g>
26234 <g clip-path="url(#pe1c207cc63)">
26235 <use style="fill:#d7ff1f;" x="0" xlink:href="#C3_230_a5e2222686" y="231.84"/>
26236 </g>
26237 <g clip-path="url(#pe1c207cc63)">
26238 <use style="fill:#ebff0c;" x="0" xlink:href="#C3_231_b094b35a83" y="231.84"/>
26239 </g>
26240 <g clip-path="url(#pe1c207cc63)">
26241 <use style="fill:#000096;" x="0" xlink:href="#C3_232_7ba99f23fb" y="231.84"/>
26242 </g>
26243 <g clip-path="url(#pe1c207cc63)">
26244 <use style="fill:#000092;" x="0" xlink:href="#C3_233_a7c70c27bc" y="231.84"/>
26245 </g>
26246 <g clip-path="url(#pe1c207cc63)">
26247 <use style="fill:#0009ff;" x="0" xlink:href="#C3_234_7e4229c4db" y="231.84"/>
26248 </g>
26249 <g clip-path="url(#pe1c207cc63)">
26250 <use style="fill:#000080;" x="0" xlink:href="#C3_235_debfcdd24c" y="231.84"/>
26251 </g>
26252 <g clip-path="url(#pe1c207cc63)">
26253 <use style="fill:#77ff80;" x="0" xlink:href="#C3_236_67d60a235d" y="231.84"/>
26254 </g>
26255 <g clip-path="url(#pe1c207cc63)">
26256 <use style="fill:#c4ff33;" x="0" xlink:href="#C3_237_cc4cac0ae2" y="231.84"/>
26257 </g>
26258 <g clip-path="url(#pe1c207cc63)">
26259 <use style="fill:#0000bb;" x="0" xlink:href="#C3_238_65315e13ad" y="231.84"/>
26260 </g>
26261 <g clip-path="url(#pe1c207cc63)">
26262 <use style="fill:#0000ed;" x="0" xlink:href="#C3_239_db773c9e46" y="231.84"/>
26263 </g>
26264 <g clip-path="url(#pe1c207cc63)">
26265 <use style="fill:#00008d;" x="0" xlink:href="#C3_23a_4afe131652" y="231.84"/>
26266 </g>
26267 <g clip-path="url(#pe1c207cc63)">
26268 <use style="fill:#0064ff;" x="0" xlink:href="#C3_23b_7da37b5007" y="231.84"/>
26269 </g>
26270 <g clip-path="url(#pe1c207cc63)">
26271 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_23c_0b6740e067" y="231.84"/>
26272 </g>
26273 <g clip-path="url(#pe1c207cc63)">
26274 <use style="fill:#66ff90;" x="0" xlink:href="#C3_23d_c7b2ee759e" y="231.84"/>
26275 </g>
26276 <g clip-path="url(#pe1c207cc63)">
26277 <use style="fill:#0041ff;" x="0" xlink:href="#C3_23e_b22471036d" y="231.84"/>
26278 </g>
26279 <g clip-path="url(#pe1c207cc63)">
26280 <use style="fill:#000080;" x="0" xlink:href="#C3_23f_6653ce9ae0" y="231.84"/>
26281 </g>
26282 <g clip-path="url(#pe1c207cc63)">
26283 <use style="fill:#ffae00;" x="0" xlink:href="#C3_240_a21844247e" y="231.84"/>
26284 </g>
26285 <g clip-path="url(#pe1c207cc63)">
26286 <use style="fill:#000080;" x="0" xlink:href="#C3_241_5266e6a11e" y="231.84"/>
26287 </g>
26288 <g clip-path="url(#pe1c207cc63)">
26289 <use style="fill:#0000bb;" x="0" xlink:href="#C3_242_0bca7b70da" y="231.84"/>
26290 </g>
26291 <g clip-path="url(#pe1c207cc63)">
26292 <use style="fill:#30ffc7;" x="0" xlink:href="#C3_243_43f68e1e67" y="231.84"/>
26293 </g>
26294 <g clip-path="url(#pe1c207cc63)">
26295 <use style="fill:#ffb200;" x="0" xlink:href="#C3_244_69aad94ecb" y="231.84"/>
26296 </g>
26297 <g clip-path="url(#pe1c207cc63)">
26298 <use style="fill:#0079ff;" x="0" xlink:href="#C3_245_ff23be62f0" y="231.84"/>
26299 </g>
26300 <g clip-path="url(#pe1c207cc63)">
26301 <use style="fill:#90ff66;" x="0" xlink:href="#C3_246_e83695a79d" y="231.84"/>
26302 </g>
26303 <g clip-path="url(#pe1c207cc63)">
26304 <use style="fill:#ffd000;" x="0" xlink:href="#C3_247_6dc09038c4" y="231.84"/>
26305 </g>
26306 <g clip-path="url(#pe1c207cc63)">
26307 <use style="fill:#6dff8a;" x="0" xlink:href="#C3_248_85ed1a2294" y="231.84"/>
26308 </g>
26309 <g clip-path="url(#pe1c207cc63)">
26310 <use style="fill:#0000f6;" x="0" xlink:href="#C3_249_ca42a71a6d" y="231.84"/>
26311 </g>
26312 <g clip-path="url(#pe1c207cc63)">
26313 <use style="fill:#0099ff;" x="0" xlink:href="#C3_24a_ff18f56a31" y="231.84"/>
26314 </g>
26315 <g clip-path="url(#pe1c207cc63)">
26316 <use style="fill:#0044ff;" x="0" xlink:href="#C3_24b_e83567b842" y="231.84"/>
26317 </g>
26318 <g clip-path="url(#pe1c207cc63)">
26319 <use style="fill:#00b1ff;" x="0" xlink:href="#C3_24c_f7b06220cc" y="231.84"/>
26320 </g>
26321 <g clip-path="url(#pe1c207cc63)">
26322 <use style="fill:#ffa700;" x="0" xlink:href="#C3_24d_8804d04267" y="231.84"/>
26323 </g>
26324 <g clip-path="url(#pe1c207cc63)">
26325 <use style="fill:#ffb200;" x="0" xlink:href="#C3_24e_55ef1f2945" y="231.84"/>
26326 </g>
26327 <g clip-path="url(#pe1c207cc63)">
26328 <use style="fill:#0000b2;" x="0" xlink:href="#C3_24f_da8c60e14d" y="231.84"/>
26329 </g>
26330 <g clip-path="url(#pe1c207cc63)">
26331 <use style="fill:#ff9800;" x="0" xlink:href="#C3_250_f4d5c74f26" y="231.84"/>
26332 </g>
26333 <g clip-path="url(#pe1c207cc63)">
26334 <use style="fill:#5dff9a;" x="0" xlink:href="#C3_251_a9ada3ec2c" y="231.84"/>
26335 </g>
26336 <g clip-path="url(#pe1c207cc63)">
26337 <use style="fill:#000096;" x="0" xlink:href="#C3_252_ed423bf3df" y="231.84"/>
26338 </g>
26339 <g clip-path="url(#pe1c207cc63)">
26340 <use style="fill:#a0ff56;" x="0" xlink:href="#C3_253_2b2b6240ee" y="231.84"/>
26341 </g>
26342 <g clip-path="url(#pe1c207cc63)">
26343 <use style="fill:#0069ff;" x="0" xlink:href="#C3_254_b4d2a48995" y="231.84"/>
26344 </g>
26345 <g clip-path="url(#pe1c207cc63)">
26346 <use style="fill:#0000e8;" x="0" xlink:href="#C3_255_57d5718037" y="231.84"/>
26347 </g>
26348 <g clip-path="url(#pe1c207cc63)">
26349 <use style="fill:#000080;" x="0" xlink:href="#C3_256_4fe3f327eb" y="231.84"/>
26350 </g>
26351 <g clip-path="url(#pe1c207cc63)">
26352 <use style="fill:#00e5f8;" x="0" xlink:href="#C3_257_917355db85" y="231.84"/>
26353 </g>
26354 <g clip-path="url(#pe1c207cc63)">
26355 <use style="fill:#000096;" x="0" xlink:href="#C3_258_e933b43f4e" y="231.84"/>
26356 </g>
26357 <g clip-path="url(#pe1c207cc63)">
26358 <use style="fill:#00008d;" x="0" xlink:href="#C3_259_c7bfac1178" y="231.84"/>
26359 </g>
26360 <g clip-path="url(#pe1c207cc63)">
26361 <use style="fill:#43ffb4;" x="0" xlink:href="#C3_25a_388198ab63" y="231.84"/>
26362 </g>
26363 <g clip-path="url(#pe1c207cc63)">
26364 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_25b_c761d16ba1" y="231.84"/>
26365 </g>
26366 <g clip-path="url(#pe1c207cc63)">
26367 <use style="fill:#000084;" x="0" xlink:href="#C3_25c_590c306f73" y="231.84"/>
26368 </g>
26369 <g clip-path="url(#pe1c207cc63)">
26370 <use style="fill:#0034ff;" x="0" xlink:href="#C3_25d_e50f87a99f" y="231.84"/>
26371 </g>
26372 <g clip-path="url(#pe1c207cc63)">
26373 <use style="fill:#d4ff23;" x="0" xlink:href="#C3_25e_51b0af95a0" y="231.84"/>
26374 </g>
26375 <g clip-path="url(#pe1c207cc63)">
26376 <use style="fill:#0000bb;" x="0" xlink:href="#C3_25f_24dd607b6d" y="231.84"/>
26377 </g>
26378 <g clip-path="url(#pe1c207cc63)">
26379 <use style="fill:#0000ff;" x="0" xlink:href="#C3_260_7beb822682" y="231.84"/>
26380 </g>
26381 <g clip-path="url(#pe1c207cc63)">
26382 <use style="fill:#0014ff;" x="0" xlink:href="#C3_261_f99a9c8bfc" y="231.84"/>
26383 </g>
26384 <g clip-path="url(#pe1c207cc63)">
26385 <use style="fill:#ff9c00;" x="0" xlink:href="#C3_262_e87ad01f79" y="231.84"/>
26386 </g>
26387 <g clip-path="url(#pe1c207cc63)">
26388 <use style="fill:#ffde00;" x="0" xlink:href="#C3_263_fb0e6f9393" y="231.84"/>
26389 </g>
26390 <g clip-path="url(#pe1c207cc63)">
26391 <use style="fill:#0000cd;" x="0" xlink:href="#C3_264_714964224f" y="231.84"/>
26392 </g>
26393 <g clip-path="url(#pe1c207cc63)">
26394 <use style="fill:#002dff;" x="0" xlink:href="#C3_265_70b70c3821" y="231.84"/>
26395 </g>
26396 <g clip-path="url(#pe1c207cc63)">
26397 <use style="fill:#29ffce;" x="0" xlink:href="#C3_266_10d9d4bffd" y="231.84"/>
26398 </g>
26399 <g clip-path="url(#pe1c207cc63)">
26400 <use style="fill:#d7ff1f;" x="0" xlink:href="#C3_267_c186f3356b" y="231.84"/>
26401 </g>
26402 <g clip-path="url(#pe1c207cc63)">
26403 <use style="fill:#000080;" x="0" xlink:href="#C3_268_46c832da2c" y="231.84"/>
26404 </g>
26405 <g clip-path="url(#pe1c207cc63)">
26406 <use style="fill:#0000ed;" x="0" xlink:href="#C3_269_8d958a4ed8" y="231.84"/>
26407 </g>
26408 <g clip-path="url(#pe1c207cc63)">
26409 <use style="fill:#77ff80;" x="0" xlink:href="#C3_26a_9e07988cb1" y="231.84"/>
26410 </g>
26411 <g clip-path="url(#pe1c207cc63)">
26412 <use style="fill:#d1ff26;" x="0" xlink:href="#C3_26b_13968958ec" y="231.84"/>
26413 </g>
26414 <g clip-path="url(#pe1c207cc63)">
26415 <use style="fill:#0054ff;" x="0" xlink:href="#C3_26c_b393ce1a58" y="231.84"/>
26416 </g>
26417 <g clip-path="url(#pe1c207cc63)">
26418 <use style="fill:#000080;" x="0" xlink:href="#C3_26d_9386bb35a2" y="231.84"/>
26419 </g>
26420 <g clip-path="url(#pe1c207cc63)">
26421 <use style="fill:#00009b;" x="0" xlink:href="#C3_26e_39ae23dee3" y="231.84"/>
26422 </g>
26423 <g clip-path="url(#pe1c207cc63)">
26424 <use style="fill:#009dff;" x="0" xlink:href="#C3_26f_8f8f25fd07" y="231.84"/>
26425 </g>
26426 <g clip-path="url(#pe1c207cc63)">
26427 <use style="fill:#0000ad;" x="0" xlink:href="#C3_270_48e77d0f86" y="231.84"/>
26428 </g>
26429 <g clip-path="url(#pe1c207cc63)">
26430 <use style="fill:#ff7300;" x="0" xlink:href="#C3_271_4067e2dcf5" y="231.84"/>
26431 </g>
26432 <g clip-path="url(#pe1c207cc63)">
26433 <use style="fill:#ff9100;" x="0" xlink:href="#C3_272_ce18b7b126" y="231.84"/>
26434 </g>
26435 <g clip-path="url(#pe1c207cc63)">
26436 <use style="fill:#0000e3;" x="0" xlink:href="#C3_273_684bb7a690" y="231.84"/>
26437 </g>
26438 <g clip-path="url(#pe1c207cc63)">
26439 <use style="fill:#deff19;" x="0" xlink:href="#C3_274_25d7728121" y="231.84"/>
26440 </g>
26441 <g clip-path="url(#pe1c207cc63)">
26442 <use style="fill:#13fde4;" x="0" xlink:href="#C3_275_b36cb50845" y="231.84"/>
26443 </g>
26444 <g clip-path="url(#pe1c207cc63)">
26445 <use style="fill:#000089;" x="0" xlink:href="#C3_276_09b8ce577f" y="231.84"/>
26446 </g>
26447 <g clip-path="url(#pe1c207cc63)">
26448 <use style="fill:#ff6f00;" x="0" xlink:href="#C3_277_bfd170e2f8" y="231.84"/>
26449 </g>
26450 <g clip-path="url(#pe1c207cc63)">
26451 <use style="fill:#fbf100;" x="0" xlink:href="#C3_278_2d23bf5379" y="231.84"/>
26452 </g>
26453 <g clip-path="url(#pe1c207cc63)">
26454 <use style="fill:#0099ff;" x="0" xlink:href="#C3_279_fdbcf59c25" y="231.84"/>
26455 </g>
26456 <g clip-path="url(#pe1c207cc63)">
26457 <use style="fill:#00009b;" x="0" xlink:href="#C3_27a_ee67e30cbe" y="231.84"/>
26458 </g>
26459 <g clip-path="url(#pe1c207cc63)">
26460 <use style="fill:#ff9f00;" x="0" xlink:href="#C3_27b_59a11626fa" y="231.84"/>
26461 </g>
26462 <g clip-path="url(#pe1c207cc63)">
26463 <use style="fill:#0021ff;" x="0" xlink:href="#C3_27c_a8924efe2c" y="231.84"/>
26464 </g>
26465 <g clip-path="url(#pe1c207cc63)">
26466 <use style="fill:#000084;" x="0" xlink:href="#C3_27d_45a1896367" y="231.84"/>
26467 </g>
26468 <g clip-path="url(#pe1c207cc63)">
26469 <use style="fill:#0000da;" x="0" xlink:href="#C3_27e_e21579c783" y="231.84"/>
26470 </g>
26471 <g clip-path="url(#pe1c207cc63)">
26472 <use style="fill:#0011ff;" x="0" xlink:href="#C3_27f_2d809e1e47" y="231.84"/>
26473 </g>
26474 <g clip-path="url(#pe1c207cc63)">
26475 <use style="fill:#0000bb;" x="0" xlink:href="#C3_280_fe56a35f7f" y="231.84"/>
26476 </g>
26477 <g clip-path="url(#pe1c207cc63)">
26478 <use style="fill:#ff9100;" x="0" xlink:href="#C3_281_f0cbc31b1d" y="231.84"/>
26479 </g>
26480 <g clip-path="url(#pe1c207cc63)">
26481 <use style="fill:#00d1ff;" x="0" xlink:href="#C3_282_df5dbd626f" y="231.84"/>
26482 </g>
26483 <g clip-path="url(#pe1c207cc63)">
26484 <use style="fill:#0014ff;" x="0" xlink:href="#C3_283_4a9a317bb9" y="231.84"/>
26485 </g>
26486 <g clip-path="url(#pe1c207cc63)">
26487 <use style="fill:#0054ff;" x="0" xlink:href="#C3_284_d53d33cd65" y="231.84"/>
26488 </g>
26489 <g clip-path="url(#pe1c207cc63)">
26490 <use style="fill:#0081ff;" x="0" xlink:href="#C3_285_6b344b40d0" y="231.84"/>
26491 </g>
26492 <g clip-path="url(#pe1c207cc63)">
26493 <use style="fill:#000080;" x="0" xlink:href="#C3_286_3fd12a655b" y="231.84"/>
26494 </g>
26495 <g clip-path="url(#pe1c207cc63)">
26496 <use style="fill:#0095ff;" x="0" xlink:href="#C3_287_da34b9d266" y="231.84"/>
26497 </g>
26498 <g clip-path="url(#pe1c207cc63)">
26499 <use style="fill:#ffc800;" x="0" xlink:href="#C3_288_76485921d3" y="231.84"/>
26500 </g>
26501 <g clip-path="url(#pe1c207cc63)">
26502 <use style="fill:#ff6000;" x="0" xlink:href="#C3_289_caa5b21e22" y="231.84"/>
26503 </g>
26504 <g clip-path="url(#pe1c207cc63)">
26505 <use style="fill:#00009f;" x="0" xlink:href="#C3_28a_fa2be286c9" y="231.84"/>
26506 </g>
26507 <g clip-path="url(#pe1c207cc63)">
26508 <use style="fill:#ff9800;" x="0" xlink:href="#C3_28b_5d67826191" y="231.84"/>
26509 </g>
26510 <g clip-path="url(#pe1c207cc63)">
26511 <use style="fill:#ffc100;" x="0" xlink:href="#C3_28c_f8f27b6324" y="231.84"/>
26512 </g>
26513 <g clip-path="url(#pe1c207cc63)">
26514 <use style="fill:#000080;" x="0" xlink:href="#C3_28d_bc74a2c98b" y="231.84"/>
26515 </g>
26516 <g clip-path="url(#pe1c207cc63)">
26517 <use style="fill:#b7ff40;" x="0" xlink:href="#C3_28e_fe63505cbb" y="231.84"/>
26518 </g>
26519 <g clip-path="url(#pe1c207cc63)">
26520 <use style="fill:#ffae00;" x="0" xlink:href="#C3_28f_a618db99ec" y="231.84"/>
26521 </g>
26522 <g clip-path="url(#pe1c207cc63)">
26523 <use style="fill:#00d9ff;" x="0" xlink:href="#C3_290_82bdf06ec5" y="231.84"/>
26524 </g>
26525 <g clip-path="url(#pe1c207cc63)">
26526 <use style="fill:#ff7700;" x="0" xlink:href="#C3_291_e5216a442e" y="231.84"/>
26527 </g>
26528 <g clip-path="url(#pe1c207cc63)">
26529 <use style="fill:#0000ed;" x="0" xlink:href="#C3_292_a07983d3a1" y="231.84"/>
26530 </g>
26531 <g clip-path="url(#pe1c207cc63)">
26532 <use style="fill:#77ff80;" x="0" xlink:href="#C3_293_cc8d8af46a" y="231.84"/>
26533 </g>
26534 <g clip-path="url(#pe1c207cc63)">
26535 <use style="fill:#dbff1c;" x="0" xlink:href="#C3_294_7cd36b2ab2" y="231.84"/>
26536 </g>
26537 <g clip-path="url(#pe1c207cc63)">
26538 <use style="fill:#ff6400;" x="0" xlink:href="#C3_295_f99aa3328e" y="231.84"/>
26539 </g>
26540 <g clip-path="url(#pe1c207cc63)">
26541 <use style="fill:#00009f;" x="0" xlink:href="#C3_296_8be2ae7dcf" y="231.84"/>
26542 </g>
26543 <g clip-path="url(#pe1c207cc63)">
26544 <use style="fill:#0000d6;" x="0" xlink:href="#C3_297_c33488ca23" y="231.84"/>
26545 </g>
26546 <g clip-path="url(#pe1c207cc63)">
26547 <use style="fill:#005dff;" x="0" xlink:href="#C3_298_ca05655ce4" y="231.84"/>
26548 </g>
26549 <g clip-path="url(#pe1c207cc63)">
26550 <use style="fill:#ff5200;" x="0" xlink:href="#C3_299_5a619dd764" y="231.84"/>
26551 </g>
26552 <g clip-path="url(#pe1c207cc63)">
26553 <use style="fill:#000084;" x="0" xlink:href="#C3_29a_fdbafcc379" y="231.84"/>
26554 </g>
26555 <g clip-path="url(#pe1c207cc63)">
26556 <use style="fill:#29ffce;" x="0" xlink:href="#C3_29b_8f607d55e2" y="231.84"/>
26557 </g>
26558 <g clip-path="url(#pe1c207cc63)">
26559 <use style="fill:#0000e3;" x="0" xlink:href="#C3_29c_b1fee782ef" y="231.84"/>
26560 </g>
26561 <g clip-path="url(#pe1c207cc63)">
26562 <use style="fill:#000080;" x="0" xlink:href="#C3_29d_2a3feb94d9" y="231.84"/>
26563 </g>
26564 <g clip-path="url(#pe1c207cc63)">
26565 <use style="fill:#d1ff26;" x="0" xlink:href="#C3_29e_2025c7a4d9" y="231.84"/>
26566 </g>
26567 <g clip-path="url(#pe1c207cc63)">
26568 <use style="fill:#ff4300;" x="0" xlink:href="#C3_29f_3b70c0d741" y="231.84"/>
26569 </g>
26570 <g clip-path="url(#pe1c207cc63)">
26571 <use style="fill:#006dff;" x="0" xlink:href="#C3_2a0_5f74e1da89" y="231.84"/>
26572 </g>
26573 <g clip-path="url(#pe1c207cc63)">
26574 <use style="fill:#0000a4;" x="0" xlink:href="#C3_2a1_47fcbc7caf" y="231.84"/>
26575 </g>
26576 <g clip-path="url(#pe1c207cc63)">
26577 <use style="fill:#0009ff;" x="0" xlink:href="#C3_2a2_c356442bb0" y="231.84"/>
26578 </g>
26579 <g clip-path="url(#pe1c207cc63)">
26580 <use style="fill:#0021ff;" x="0" xlink:href="#C3_2a3_b221cd4168" y="231.84"/>
26581 </g>
26582 <g clip-path="url(#pe1c207cc63)">
26583 <use style="fill:#001dff;" x="0" xlink:href="#C3_2a4_f907e9d85b" y="231.84"/>
26584 </g>
26585 <g clip-path="url(#pe1c207cc63)">
26586 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_2a5_ebed53ae1d" y="231.84"/>
26587 </g>
26588 <g clip-path="url(#pe1c207cc63)">
26589 <use style="fill:#0000a4;" x="0" xlink:href="#C3_2a6_fc04ed697d" y="231.84"/>
26590 </g>
26591 <g clip-path="url(#pe1c207cc63)">
26592 <use style="fill:#66ff90;" x="0" xlink:href="#C3_2a7_8aaa010aba" y="231.84"/>
26593 </g>
26594 <g clip-path="url(#pe1c207cc63)">
26595 <use style="fill:#00008d;" x="0" xlink:href="#C3_2a8_e7f1f0b76a" y="231.84"/>
26596 </g>
26597 <g clip-path="url(#pe1c207cc63)">
26598 <use style="fill:#f4f802;" x="0" xlink:href="#C3_2a9_31f8d16df7" y="231.84"/>
26599 </g>
26600 <g clip-path="url(#pe1c207cc63)">
26601 <use style="fill:#c1ff36;" x="0" xlink:href="#C3_2aa_0f00724451" y="231.84"/>
26602 </g>
26603 <g clip-path="url(#pe1c207cc63)">
26604 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_2ab_bc30fa16aa" y="231.84"/>
26605 </g>
26606 <g clip-path="url(#pe1c207cc63)">
26607 <use style="fill:#0000c4;" x="0" xlink:href="#C3_2ac_2fd9669498" y="231.84"/>
26608 </g>
26609 <g clip-path="url(#pe1c207cc63)">
26610 <use style="fill:#0071ff;" x="0" xlink:href="#C3_2ad_21d8d037ad" y="231.84"/>
26611 </g>
26612 <g clip-path="url(#pe1c207cc63)">
26613 <use style="fill:#83ff73;" x="0" xlink:href="#C3_2ae_041a8902da" y="231.84"/>
26614 </g>
26615 <g clip-path="url(#pe1c207cc63)">
26616 <use style="fill:#ff7a00;" x="0" xlink:href="#C3_2af_4c9026591d" y="231.84"/>
26617 </g>
26618 <g clip-path="url(#pe1c207cc63)">
26619 <use style="fill:#a7ff50;" x="0" xlink:href="#C3_2b0_77ab0c9098" y="231.84"/>
26620 </g>
26621 <g clip-path="url(#pe1c207cc63)">
26622 <use style="fill:#ffae00;" x="0" xlink:href="#C3_2b1_aa0dd78f8d" y="231.84"/>
26623 </g>
26624 <g clip-path="url(#pe1c207cc63)">
26625 <use style="fill:#0000bf;" x="0" xlink:href="#C3_2b2_53f71901b0" y="231.84"/>
26626 </g>
26627 <g clip-path="url(#pe1c207cc63)">
26628 <use style="fill:#000092;" x="0" xlink:href="#C3_2b3_a2ea0e8e1e" y="231.84"/>
26629 </g>
26630 <g clip-path="url(#pe1c207cc63)">
26631 <use style="fill:#00e1fb;" x="0" xlink:href="#C3_2b4_a5d7508d6a" y="231.84"/>
26632 </g>
26633 <g clip-path="url(#pe1c207cc63)">
26634 <use style="fill:#000080;" x="0" xlink:href="#C3_2b5_5d24ce0ef5" y="231.84"/>
26635 </g>
26636 <g clip-path="url(#pe1c207cc63)">
26637 <use style="fill:#ff3f00;" x="0" xlink:href="#C3_2b6_d8c1aade9d" y="231.84"/>
26638 </g>
26639 <g clip-path="url(#pe1c207cc63)">
26640 <use style="fill:#000080;" x="0" xlink:href="#C3_2b7_2668647327" y="231.84"/>
26641 </g>
26642 <g clip-path="url(#pe1c207cc63)">
26643 <use style="fill:#00bdff;" x="0" xlink:href="#C3_2b8_3c3050185f" y="231.84"/>
26644 </g>
26645 <g clip-path="url(#pe1c207cc63)">
26646 <use style="fill:#46ffb1;" x="0" xlink:href="#C3_2b9_5379375180" y="231.84"/>
26647 </g>
26648 <g clip-path="url(#pe1c207cc63)">
26649 <use style="fill:#0000e8;" x="0" xlink:href="#C3_2ba_c42afbf79b" y="231.84"/>
26650 </g>
26651 <g clip-path="url(#pe1c207cc63)">
26652 <use style="fill:#0054ff;" x="0" xlink:href="#C3_2bb_3f9ebb3b95" y="231.84"/>
26653 </g>
26654 <g clip-path="url(#pe1c207cc63)">
26655 <use style="fill:#c1ff36;" x="0" xlink:href="#C3_2bc_3399efc307" y="231.84"/>
26656 </g>
26657 <g clip-path="url(#pe1c207cc63)">
26658 <use style="fill:#0000f6;" x="0" xlink:href="#C3_2bd_9df391fb36" y="231.84"/>
26659 </g>
26660 <g clip-path="url(#pe1c207cc63)">
26661 <use style="fill:#0000a4;" x="0" xlink:href="#C3_2be_4abf4d9c99" y="231.84"/>
26662 </g>
26663 <g clip-path="url(#pe1c207cc63)">
26664 <use style="fill:#ff2900;" x="0" xlink:href="#C3_2bf_df4bae441a" y="231.84"/>
26665 </g>
26666 <g clip-path="url(#pe1c207cc63)">
26667 <use style="fill:#19ffde;" x="0" xlink:href="#C3_2c0_6fb71280b5" y="231.84"/>
26668 </g>
26669 <g clip-path="url(#pe1c207cc63)">
26670 <use style="fill:#0000ff;" x="0" xlink:href="#C3_2c1_cfef758d0a" y="231.84"/>
26671 </g>
26672 <g clip-path="url(#pe1c207cc63)">
26673 <use style="fill:#000080;" x="0" xlink:href="#C3_2c2_0366a9743f" y="231.84"/>
26674 </g>
26675 <g clip-path="url(#pe1c207cc63)">
26676 <use style="fill:#0064ff;" x="0" xlink:href="#C3_2c3_5da5ed225d" y="231.84"/>
26677 </g>
26678 <g clip-path="url(#pe1c207cc63)">
26679 <use style="fill:#002dff;" x="0" xlink:href="#C3_2c4_2e8995aa9d" y="231.84"/>
26680 </g>
26681 <g clip-path="url(#pe1c207cc63)">
26682 <use style="fill:#ffbd00;" x="0" xlink:href="#C3_2c5_ca52648fa7" y="231.84"/>
26683 </g>
26684 <g clip-path="url(#pe1c207cc63)">
26685 <use style="fill:#0cf5eb;" x="0" xlink:href="#C3_2c6_3c5da6219b" y="231.84"/>
26686 </g>
26687 <g clip-path="url(#pe1c207cc63)">
26688 <use style="fill:#ff4a00;" x="0" xlink:href="#C3_2c7_94a22460ae" y="231.84"/>
26689 </g>
26690 <g clip-path="url(#pe1c207cc63)">
26691 <use style="fill:#ff1e00;" x="0" xlink:href="#C3_2c8_71b7f502ff" y="231.84"/>
26692 </g>
26693 <g clip-path="url(#pe1c207cc63)">
26694 <use style="fill:#00c5ff;" x="0" xlink:href="#C3_2c9_c4c80f3828" y="231.84"/>
26695 </g>
26696 <g clip-path="url(#pe1c207cc63)">
26697 <use style="fill:#ff3400;" x="0" xlink:href="#C3_2ca_2f10d2ca6e" y="231.84"/>
26698 </g>
26699 <g clip-path="url(#pe1c207cc63)">
26700 <use style="fill:#ff2200;" x="0" xlink:href="#C3_2cb_d03ed4091c" y="231.84"/>
26701 </g>
26702 <g clip-path="url(#pe1c207cc63)">
26703 <use style="fill:#0000a4;" x="0" xlink:href="#C3_2cc_9b599f984d" y="231.84"/>
26704 </g>
26705 <g clip-path="url(#pe1c207cc63)">
26706 <use style="fill:#0021ff;" x="0" xlink:href="#C3_2cd_ed90538a0d" y="231.84"/>
26707 </g>
26708 <g clip-path="url(#pe1c207cc63)">
26709 <use style="fill:#ff2d00;" x="0" xlink:href="#C3_2ce_c732f2e645" y="231.84"/>
26710 </g>
26711 <g clip-path="url(#pe1c207cc63)">
26712 <use style="fill:#ffa700;" x="0" xlink:href="#C3_2cf_1460f764b1" y="231.84"/>
26713 </g>
26714 <g clip-path="url(#pe1c207cc63)">
26715 <use style="fill:#000080;" x="0" xlink:href="#C3_2d0_59a94d435d" y="231.84"/>
26716 </g>
26717 <g clip-path="url(#pe1c207cc63)">
26718 <use style="fill:#0000e8;" x="0" xlink:href="#C3_2d1_05b9519f6d" y="231.84"/>
26719 </g>
26720 <g clip-path="url(#pe1c207cc63)">
26721 <use style="fill:#000084;" x="0" xlink:href="#C3_2d2_ff733df4c4" y="231.84"/>
26722 </g>
26723 <g clip-path="url(#pe1c207cc63)">
26724 <use style="fill:#00009f;" x="0" xlink:href="#C3_2d3_333dae58bd" y="231.84"/>
26725 </g>
26726 <g clip-path="url(#pe1c207cc63)">
26727 <use style="fill:#0000e3;" x="0" xlink:href="#C3_2d4_bfb25700de" y="231.84"/>
26728 </g>
26729 <g clip-path="url(#pe1c207cc63)">
26730 <use style="fill:#0041ff;" x="0" xlink:href="#C3_2d5_532f1a2b2e" y="231.84"/>
26731 </g>
26732 <g clip-path="url(#pe1c207cc63)">
26733 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_2d6_eaad4099c9" y="231.84"/>
26734 </g>
26735 <g clip-path="url(#pe1c207cc63)">
26736 <use style="fill:#0085ff;" x="0" xlink:href="#C3_2d7_0946137d07" y="231.84"/>
26737 </g>
26738 <g clip-path="url(#pe1c207cc63)">
26739 <use style="fill:#ff8d00;" x="0" xlink:href="#C3_2d8_5e6e0cb683" y="231.84"/>
26740 </g>
26741 <g clip-path="url(#pe1c207cc63)">
26742 <use style="fill:#0000b2;" x="0" xlink:href="#C3_2d9_0b3d699b3c" y="231.84"/>
26743 </g>
26744 <g clip-path="url(#pe1c207cc63)">
26745 <use style="fill:#000096;" x="0" xlink:href="#C3_2da_736bdf87d6" y="231.84"/>
26746 </g>
26747 <g clip-path="url(#pe1c207cc63)">
26748 <use style="fill:#ff3400;" x="0" xlink:href="#C3_2db_5b4d5dd401" y="231.84"/>
26749 </g>
26750 <g clip-path="url(#pe1c207cc63)">
26751 <use style="fill:#b7ff40;" x="0" xlink:href="#C3_2dc_c6ae99e648" y="231.84"/>
26752 </g>
26753 <g clip-path="url(#pe1c207cc63)">
26754 <use style="fill:#49ffad;" x="0" xlink:href="#C3_2dd_a27ff504de" y="231.84"/>
26755 </g>
26756 <g clip-path="url(#pe1c207cc63)">
26757 <use style="fill:#ff6000;" x="0" xlink:href="#C3_2de_a621b5b15c" y="231.84"/>
26758 </g>
26759 <g clip-path="url(#pe1c207cc63)">
26760 <use style="fill:#0000d6;" x="0" xlink:href="#C3_2df_3568016cff" y="231.84"/>
26761 </g>
26762 <g clip-path="url(#pe1c207cc63)">
26763 <use style="fill:#000089;" x="0" xlink:href="#C3_2e0_32783cf9c4" y="231.84"/>
26764 </g>
26765 <g clip-path="url(#pe1c207cc63)">
26766 <use style="fill:#ffe600;" x="0" xlink:href="#C3_2e1_bdaf230c20" y="231.84"/>
26767 </g>
26768 <g clip-path="url(#pe1c207cc63)">
26769 <use style="fill:#0031ff;" x="0" xlink:href="#C3_2e2_9cdd065099" y="231.84"/>
26770 </g>
26771 <g clip-path="url(#pe1c207cc63)">
26772 <use style="fill:#ff6800;" x="0" xlink:href="#C3_2e3_963751487c" y="231.84"/>
26773 </g>
26774 <g clip-path="url(#pe1c207cc63)">
26775 <use style="fill:#ff3b00;" x="0" xlink:href="#C3_2e4_a73a8a3d04" y="231.84"/>
26776 </g>
26777 <g clip-path="url(#pe1c207cc63)">
26778 <use style="fill:#ff4e00;" x="0" xlink:href="#C3_2e5_674b2a61b9" y="231.84"/>
26779 </g>
26780 <g clip-path="url(#pe1c207cc63)">
26781 <use style="fill:#00e1fb;" x="0" xlink:href="#C3_2e6_76e0786368" y="231.84"/>
26782 </g>
26783 <g clip-path="url(#pe1c207cc63)">
26784 <use style="fill:#000092;" x="0" xlink:href="#C3_2e7_45419eddb9" y="231.84"/>
26785 </g>
26786 <g clip-path="url(#pe1c207cc63)">
26787 <use style="fill:#e80000;" x="0" xlink:href="#C3_2e8_e970f4bb05" y="231.84"/>
26788 </g>
26789 <g clip-path="url(#pe1c207cc63)">
26790 <use style="fill:#ed0400;" x="0" xlink:href="#C3_2e9_371336c6a9" y="231.84"/>
26791 </g>
26792 <g clip-path="url(#pe1c207cc63)">
26793 <use style="fill:#ffa700;" x="0" xlink:href="#C3_2ea_72f41ab3a6" y="231.84"/>
26794 </g>
26795 <g clip-path="url(#pe1c207cc63)">
26796 <use style="fill:#0000bf;" x="0" xlink:href="#C3_2eb_dfb809fece" y="231.84"/>
26797 </g>
26798 <g clip-path="url(#pe1c207cc63)">
26799 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_2ec_065e8cd476" y="231.84"/>
26800 </g>
26801 <g clip-path="url(#pe1c207cc63)">
26802 <use style="fill:#0000df;" x="0" xlink:href="#C3_2ed_52855fd490" y="231.84"/>
26803 </g>
26804 <g clip-path="url(#pe1c207cc63)">
26805 <use style="fill:#0021ff;" x="0" xlink:href="#C3_2ee_08c0028316" y="231.84"/>
26806 </g>
26807 <g clip-path="url(#pe1c207cc63)">
26808 <use style="fill:#000080;" x="0" xlink:href="#C3_2ef_6a805d3be1" y="231.84"/>
26809 </g>
26810 <g clip-path="url(#pe1c207cc63)">
26811 <use style="fill:#00009b;" x="0" xlink:href="#C3_2f0_3797db6a07" y="231.84"/>
26812 </g>
26813 <g clip-path="url(#pe1c207cc63)">
26814 <use style="fill:#000080;" x="0" xlink:href="#C3_2f1_44238a468e" y="231.84"/>
26815 </g>
26816 <g clip-path="url(#pe1c207cc63)">
26817 <use style="fill:#0064ff;" x="0" xlink:href="#C3_2f2_c360c4b721" y="231.84"/>
26818 </g>
26819 <g clip-path="url(#pe1c207cc63)">
26820 <use style="fill:#0000ff;" x="0" xlink:href="#C3_2f3_32fa27d8cc" y="231.84"/>
26821 </g>
26822 <g clip-path="url(#pe1c207cc63)">
26823 <use style="fill:#83ff73;" x="0" xlink:href="#C3_2f4_2925dd6c74" y="231.84"/>
26824 </g>
26825 <g clip-path="url(#pe1c207cc63)">
26826 <use style="fill:#a0ff56;" x="0" xlink:href="#C3_2f5_597cfbff98" y="231.84"/>
26827 </g>
26828 <g clip-path="url(#pe1c207cc63)">
26829 <use style="fill:#13fde4;" x="0" xlink:href="#C3_2f6_b5f9e9377a" y="231.84"/>
26830 </g>
26831 <g clip-path="url(#pe1c207cc63)">
26832 <use style="fill:#0099ff;" x="0" xlink:href="#C3_2f7_6b6c0cf4c6" y="231.84"/>
26833 </g>
26834 <g clip-path="url(#pe1c207cc63)">
26835 <use style="fill:#3cffba;" x="0" xlink:href="#C3_2f8_585dac970d" y="231.84"/>
26836 </g>
26837 <g clip-path="url(#pe1c207cc63)">
26838 <use style="fill:#77ff80;" x="0" xlink:href="#C3_2f9_4854d02264" y="231.84"/>
26839 </g>
26840 <g clip-path="url(#pe1c207cc63)">
26841 <use style="fill:#000080;" x="0" xlink:href="#C3_2fa_b23210bd1a" y="231.84"/>
26842 </g>
26843 <g clip-path="url(#pe1c207cc63)">
26844 <use style="fill:#ff2500;" x="0" xlink:href="#C3_2fb_94d3b568f4" y="231.84"/>
26845 </g>
26846 <g clip-path="url(#pe1c207cc63)">
26847 <use style="fill:#0095ff;" x="0" xlink:href="#C3_2fc_bb39b322e7" y="231.84"/>
26848 </g>
26849 <g clip-path="url(#pe1c207cc63)">
26850 <use style="fill:#0000ff;" x="0" xlink:href="#C3_2fd_56f3f53905" y="231.84"/>
26851 </g>
26852 <g clip-path="url(#pe1c207cc63)">
26853 <use style="fill:#36ffc1;" x="0" xlink:href="#C3_2fe_d4d5dad373" y="231.84"/>
26854 </g>
26855 <g clip-path="url(#pe1c207cc63)">
26856 <use style="fill:#0031ff;" x="0" xlink:href="#C3_2ff_7081703355" y="231.84"/>
26857 </g>
26858 <g clip-path="url(#pe1c207cc63)">
26859 <use style="fill:#ffb200;" x="0" xlink:href="#C3_300_0777aa3fea" y="231.84"/>
26860 </g>
26861 <g clip-path="url(#pe1c207cc63)">
26862 <use style="fill:#d60000;" x="0" xlink:href="#C3_301_71c324b63a" y="231.84"/>
26863 </g>
26864 <g clip-path="url(#pe1c207cc63)">
26865 <use style="fill:#0000d6;" x="0" xlink:href="#C3_302_5d67d80b9b" y="231.84"/>
26866 </g>
26867 <g clip-path="url(#pe1c207cc63)">
26868 <use style="fill:#00009f;" x="0" xlink:href="#C3_303_c6a1e8abbd" y="231.84"/>
26869 </g>
26870 <g clip-path="url(#pe1c207cc63)">
26871 <use style="fill:#b7ff40;" x="0" xlink:href="#C3_304_b758ed8b2a" y="231.84"/>
26872 </g>
26873 <g clip-path="url(#pe1c207cc63)">
26874 <use style="fill:#000092;" x="0" xlink:href="#C3_305_e7a4039e2d" y="231.84"/>
26875 </g>
26876 <g clip-path="url(#pe1c207cc63)">
26877 <use style="fill:#002dff;" x="0" xlink:href="#C3_306_f61adddce2" y="231.84"/>
26878 </g>
26879 <g clip-path="url(#pe1c207cc63)">
26880 <use style="fill:#ff9f00;" x="0" xlink:href="#C3_307_bb4b54ae55" y="231.84"/>
26881 </g>
26882 <g clip-path="url(#pe1c207cc63)">
26883 <use style="fill:#ff4e00;" x="0" xlink:href="#C3_308_478fe5490a" y="231.84"/>
26884 </g>
26885 <g clip-path="url(#pe1c207cc63)">
26886 <use style="fill:#da0000;" x="0" xlink:href="#C3_309_196cc2d546" y="231.84"/>
26887 </g>
26888 <g clip-path="url(#pe1c207cc63)">
26889 <use style="fill:#000080;" x="0" xlink:href="#C3_30a_4c3db8f6a8" y="231.84"/>
26890 </g>
26891 <g clip-path="url(#pe1c207cc63)">
26892 <use style="fill:#ed0400;" x="0" xlink:href="#C3_30b_fa58bfcfe8" y="231.84"/>
26893 </g>
26894 <g clip-path="url(#pe1c207cc63)">
26895 <use style="fill:#ffc800;" x="0" xlink:href="#C3_30c_d3f9da2fed" y="231.84"/>
26896 </g>
26897 <g clip-path="url(#pe1c207cc63)">
26898 <use style="fill:#d60000;" x="0" xlink:href="#C3_30d_8d45e28480" y="231.84"/>
26899 </g>
26900 <g clip-path="url(#pe1c207cc63)">
26901 <use style="fill:#0000da;" x="0" xlink:href="#C3_30e_802bb6e441" y="231.84"/>
26902 </g>
26903 <g clip-path="url(#pe1c207cc63)">
26904 <use style="fill:#e1ff16;" x="0" xlink:href="#C3_30f_7854ac5307" y="231.84"/>
26905 </g>
26906 <g clip-path="url(#pe1c207cc63)">
26907 <use style="fill:#000080;" x="0" xlink:href="#C3_310_6d1a46dea8" y="231.84"/>
26908 </g>
26909 <g clip-path="url(#pe1c207cc63)">
26910 <use style="fill:#0079ff;" x="0" xlink:href="#C3_311_9b56e03949" y="231.84"/>
26911 </g>
26912 <g clip-path="url(#pe1c207cc63)">
26913 <use style="fill:#ffe600;" x="0" xlink:href="#C3_312_7d7c87d3a2" y="231.84"/>
26914 </g>
26915 <g clip-path="url(#pe1c207cc63)">
26916 <use style="fill:#ffe600;" x="0" xlink:href="#C3_313_945a0b3a91" y="231.84"/>
26917 </g>
26918 <g clip-path="url(#pe1c207cc63)">
26919 <use style="fill:#c40000;" x="0" xlink:href="#C3_314_cce962f7d4" y="231.84"/>
26920 </g>
26921 <g clip-path="url(#pe1c207cc63)">
26922 <use style="fill:#00b1ff;" x="0" xlink:href="#C3_315_975bfce67a" y="231.84"/>
26923 </g>
26924 <g clip-path="url(#pe1c207cc63)">
26925 <use style="fill:#0000c8;" x="0" xlink:href="#C3_316_cf96787b9b" y="231.84"/>
26926 </g>
26927 <g clip-path="url(#pe1c207cc63)">
26928 <use style="fill:#0000ad;" x="0" xlink:href="#C3_317_06f6d2cd0d" y="231.84"/>
26929 </g>
26930 <g clip-path="url(#pe1c207cc63)">
26931 <use style="fill:#0029ff;" x="0" xlink:href="#C3_318_3c16546e49" y="231.84"/>
26932 </g>
26933 <g clip-path="url(#pe1c207cc63)">
26934 <use style="fill:#0000cd;" x="0" xlink:href="#C3_319_42897d836d" y="231.84"/>
26935 </g>
26936 <g clip-path="url(#pe1c207cc63)">
26937 <use style="fill:#c1ff36;" x="0" xlink:href="#C3_31a_8ff3f128b2" y="231.84"/>
26938 </g>
26939 <g clip-path="url(#pe1c207cc63)">
26940 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_31b_62de2bd818" y="231.84"/>
26941 </g>
26942 <g clip-path="url(#pe1c207cc63)">
26943 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_31c_b21473c551" y="231.84"/>
26944 </g>
26945 <g clip-path="url(#pe1c207cc63)">
26946 <use style="fill:#d7ff1f;" x="0" xlink:href="#C3_31d_ca7820431e" y="231.84"/>
26947 </g>
26948 <g clip-path="url(#pe1c207cc63)">
26949 <use style="fill:#00009b;" x="0" xlink:href="#C3_31e_89919d0c95" y="231.84"/>
26950 </g>
26951 <g clip-path="url(#pe1c207cc63)">
26952 <use style="fill:#000089;" x="0" xlink:href="#C3_31f_90f999b19c" y="231.84"/>
26953 </g>
26954 <g clip-path="url(#pe1c207cc63)">
26955 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_320_5ae3cc5551" y="231.84"/>
26956 </g>
26957 <g clip-path="url(#pe1c207cc63)">
26958 <use style="fill:#004dff;" x="0" xlink:href="#C3_321_dc4f6a0cdc" y="231.84"/>
26959 </g>
26960 <g clip-path="url(#pe1c207cc63)">
26961 <use style="fill:#0cf5eb;" x="0" xlink:href="#C3_322_75d8935a5f" y="231.84"/>
26962 </g>
26963 <g clip-path="url(#pe1c207cc63)">
26964 <use style="fill:#0000ad;" x="0" xlink:href="#C3_323_739e309ee9" y="231.84"/>
26965 </g>
26966 <g clip-path="url(#pe1c207cc63)">
26967 <use style="fill:#009dff;" x="0" xlink:href="#C3_324_606cd60617" y="231.84"/>
26968 </g>
26969 <g clip-path="url(#pe1c207cc63)">
26970 <use style="fill:#d10000;" x="0" xlink:href="#C3_325_a6f1a3224a" y="231.84"/>
26971 </g>
26972 <g clip-path="url(#pe1c207cc63)">
26973 <use style="fill:#0000f1;" x="0" xlink:href="#C3_326_c0d66d7267" y="231.84"/>
26974 </g>
26975 <g clip-path="url(#pe1c207cc63)">
26976 <use style="fill:#00008d;" x="0" xlink:href="#C3_327_5db8659080" y="231.84"/>
26977 </g>
26978 <g clip-path="url(#pe1c207cc63)">
26979 <use style="fill:#006dff;" x="0" xlink:href="#C3_328_795462806d" y="231.84"/>
26980 </g>
26981 <g clip-path="url(#pe1c207cc63)">
26982 <use style="fill:#000084;" x="0" xlink:href="#C3_329_9f4598cbbf" y="231.84"/>
26983 </g>
26984 <g clip-path="url(#pe1c207cc63)">
26985 <use style="fill:#ff6800;" x="0" xlink:href="#C3_32a_ad379ca8fa" y="231.84"/>
26986 </g>
26987 <g clip-path="url(#pe1c207cc63)">
26988 <use style="fill:#000080;" x="0" xlink:href="#C3_32b_c0c837dd13" y="231.84"/>
26989 </g>
26990 <g clip-path="url(#pe1c207cc63)">
26991 <use style="fill:#001dff;" x="0" xlink:href="#C3_32c_fe17e41a9a" y="231.84"/>
26992 </g>
26993 <g clip-path="url(#pe1c207cc63)">
26994 <use style="fill:#0000b6;" x="0" xlink:href="#C3_32d_3132983948" y="231.84"/>
26995 </g>
26996 <g clip-path="url(#pe1c207cc63)">
26997 <use style="fill:#ff4700;" x="0" xlink:href="#C3_32e_d229849b9a" y="231.84"/>
26998 </g>
26999 <g clip-path="url(#pe1c207cc63)">
27000 <use style="fill:#001dff;" x="0" xlink:href="#C3_32f_22f9814712" y="231.84"/>
27001 </g>
27002 <g clip-path="url(#pe1c207cc63)">
27003 <use style="fill:#fa0f00;" x="0" xlink:href="#C3_330_c946690aa5" y="231.84"/>
27004 </g>
27005 <g clip-path="url(#pe1c207cc63)">
27006 <use style="fill:#ad0000;" x="0" xlink:href="#C3_331_3031fe641f" y="231.84"/>
27007 </g>
27008 <g clip-path="url(#pe1c207cc63)">
27009 <use style="fill:#000084;" x="0" xlink:href="#C3_332_3503e15c61" y="231.84"/>
27010 </g>
27011 <g clip-path="url(#pe1c207cc63)">
27012 <use style="fill:#0011ff;" x="0" xlink:href="#C3_333_4dc442fe04" y="231.84"/>
27013 </g>
27014 <g clip-path="url(#pe1c207cc63)">
27015 <use style="fill:#0000f1;" x="0" xlink:href="#C3_334_aabba72f91" y="231.84"/>
27016 </g>
27017 <g clip-path="url(#pe1c207cc63)">
27018 <use style="fill:#f4f802;" x="0" xlink:href="#C3_335_33c887af9a" y="231.84"/>
27019 </g>
27020 <g clip-path="url(#pe1c207cc63)">
27021 <use style="fill:#5dff9a;" x="0" xlink:href="#C3_336_a7cfcf23be" y="231.84"/>
27022 </g>
27023 <g clip-path="url(#pe1c207cc63)">
27024 <use style="fill:#cd0000;" x="0" xlink:href="#C3_337_891191296d" y="231.84"/>
27025 </g>
27026 <g clip-path="url(#pe1c207cc63)">
27027 <use style="fill:#a80000;" x="0" xlink:href="#C3_338_c820ec9c58" y="231.84"/>
27028 </g>
27029 <g clip-path="url(#pe1c207cc63)">
27030 <use style="fill:#000084;" x="0" xlink:href="#C3_339_b24ab9dad0" y="231.84"/>
27031 </g>
27032 <g clip-path="url(#pe1c207cc63)">
27033 <use style="fill:#ff3b00;" x="0" xlink:href="#C3_33a_4e4d4c22c9" y="231.84"/>
27034 </g>
27035 <g clip-path="url(#pe1c207cc63)">
27036 <use style="fill:#00008d;" x="0" xlink:href="#C3_33b_75c1714ab0" y="231.84"/>
27037 </g>
27038 <g clip-path="url(#pe1c207cc63)">
27039 <use style="fill:#9aff5d;" x="0" xlink:href="#C3_33c_63ccdbbb90" y="231.84"/>
27040 </g>
27041 <g clip-path="url(#pe1c207cc63)">
27042 <use style="fill:#0000bb;" x="0" xlink:href="#C3_33d_47ed6f75b8" y="231.84"/>
27043 </g>
27044 <g clip-path="url(#pe1c207cc63)">
27045 <use style="fill:#00d9ff;" x="0" xlink:href="#C3_33e_86834c31bc" y="231.84"/>
27046 </g>
27047 <g clip-path="url(#pe1c207cc63)">
27048 <use style="fill:#0000a8;" x="0" xlink:href="#C3_33f_beb661c0b0" y="231.84"/>
27049 </g>
27050 <g clip-path="url(#pe1c207cc63)">
27051 <use style="fill:#0009ff;" x="0" xlink:href="#C3_340_d74a165220" y="231.84"/>
27052 </g>
27053 <g clip-path="url(#pe1c207cc63)">
27054 <use style="fill:#0099ff;" x="0" xlink:href="#C3_341_216b66a5bc" y="231.84"/>
27055 </g>
27056 <g clip-path="url(#pe1c207cc63)">
27057 <use style="fill:#000080;" x="0" xlink:href="#C3_342_d264391b94" y="231.84"/>
27058 </g>
27059 <g clip-path="url(#pe1c207cc63)">
27060 <use style="fill:#d60000;" x="0" xlink:href="#C3_343_472d30612f" y="231.84"/>
27061 </g>
27062 <g clip-path="url(#pe1c207cc63)">
27063 <use style="fill:#ff9800;" x="0" xlink:href="#C3_344_16c5e86aff" y="231.84"/>
27064 </g>
27065 <g clip-path="url(#pe1c207cc63)">
27066 <use style="fill:#a80000;" x="0" xlink:href="#C3_345_f2337ee73e" y="231.84"/>
27067 </g>
27068 <g clip-path="url(#pe1c207cc63)">
27069 <use style="fill:#9dff5a;" x="0" xlink:href="#C3_346_6b9c6c8689" y="231.84"/>
27070 </g>
27071 <g clip-path="url(#pe1c207cc63)">
27072 <use style="fill:#d1ff26;" x="0" xlink:href="#C3_347_6bdb6d78e6" y="231.84"/>
27073 </g>
27074 <g clip-path="url(#pe1c207cc63)">
27075 <use style="fill:#ffc800;" x="0" xlink:href="#C3_348_971f1caf7b" y="231.84"/>
27076 </g>
27077 <g clip-path="url(#pe1c207cc63)">
27078 <use style="fill:#deff19;" x="0" xlink:href="#C3_349_7928e8d0c0" y="231.84"/>
27079 </g>
27080 <g clip-path="url(#pe1c207cc63)">
27081 <use style="fill:#c80000;" x="0" xlink:href="#C3_34a_ca9ef90d3a" y="231.84"/>
27082 </g>
27083 <g clip-path="url(#pe1c207cc63)">
27084 <use style="fill:#ff1a00;" x="0" xlink:href="#C3_34b_7056e11669" y="231.84"/>
27085 </g>
27086 <g clip-path="url(#pe1c207cc63)">
27087 <use style="fill:#e80000;" x="0" xlink:href="#C3_34c_804aa4311e" y="231.84"/>
27088 </g>
27089 <g clip-path="url(#pe1c207cc63)">
27090 <use style="fill:#1fffd7;" x="0" xlink:href="#C3_34d_377b3bde43" y="231.84"/>
27091 </g>
27092 <g clip-path="url(#pe1c207cc63)">
27093 <use style="fill:#0044ff;" x="0" xlink:href="#C3_34e_1aa3e54dc2" y="231.84"/>
27094 </g>
27095 <g clip-path="url(#pe1c207cc63)">
27096 <use style="fill:#ad0000;" x="0" xlink:href="#C3_34f_8b40f232f4" y="231.84"/>
27097 </g>
27098 <g clip-path="url(#pe1c207cc63)">
27099 <use style="fill:#1cffdb;" x="0" xlink:href="#C3_350_9e55b7b2a0" y="231.84"/>
27100 </g>
27101 <g clip-path="url(#pe1c207cc63)">
27102 <use style="fill:#000080;" x="0" xlink:href="#C3_351_83a38394fa" y="231.84"/>
27103 </g>
27104 <g clip-path="url(#pe1c207cc63)">
27105 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_352_c8439ea9df" y="231.84"/>
27106 </g>
27107 <g clip-path="url(#pe1c207cc63)">
27108 <use style="fill:#ffd300;" x="0" xlink:href="#C3_353_e618df2bd0" y="231.84"/>
27109 </g>
27110 <g clip-path="url(#pe1c207cc63)">
27111 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_354_7febb26efe" y="231.84"/>
27112 </g>
27113 <g clip-path="url(#pe1c207cc63)">
27114 <use style="fill:#ff4700;" x="0" xlink:href="#C3_355_78477136b9" y="231.84"/>
27115 </g>
27116 <g clip-path="url(#pe1c207cc63)">
27117 <use style="fill:#00b1ff;" x="0" xlink:href="#C3_356_aab11fab20" y="231.84"/>
27118 </g>
27119 <g clip-path="url(#pe1c207cc63)">
27120 <use style="fill:#d7ff1f;" x="0" xlink:href="#C3_357_2c3a27b88c" y="231.84"/>
27121 </g>
27122 <g clip-path="url(#pe1c207cc63)">
27123 <use style="fill:#0000ff;" x="0" xlink:href="#C3_358_be1d1658ad" y="231.84"/>
27124 </g>
27125 <g clip-path="url(#pe1c207cc63)">
27126 <use style="fill:#000080;" x="0" xlink:href="#C3_359_1257dd7257" y="231.84"/>
27127 </g>
27128 <g clip-path="url(#pe1c207cc63)">
27129 <use style="fill:#000092;" x="0" xlink:href="#C3_35a_c8f654504e" y="231.84"/>
27130 </g>
27131 <g clip-path="url(#pe1c207cc63)">
27132 <use style="fill:#9b0000;" x="0" xlink:href="#C3_35b_869998db0c" y="231.84"/>
27133 </g>
27134 <g clip-path="url(#pe1c207cc63)">
27135 <use style="fill:#000096;" x="0" xlink:href="#C3_35c_c6d98a7c24" y="231.84"/>
27136 </g>
27137 <g clip-path="url(#pe1c207cc63)">
27138 <use style="fill:#0000ff;" x="0" xlink:href="#C3_35d_5f2773fb98" y="231.84"/>
27139 </g>
27140 <g clip-path="url(#pe1c207cc63)">
27141 <use style="fill:#0079ff;" x="0" xlink:href="#C3_35e_8793cdbd21" y="231.84"/>
27142 </g>
27143 <g clip-path="url(#pe1c207cc63)">
27144 <use style="fill:#0039ff;" x="0" xlink:href="#C3_35f_b88bd326c2" y="231.84"/>
27145 </g>
27146 <g clip-path="url(#pe1c207cc63)">
27147 <use style="fill:#920000;" x="0" xlink:href="#C3_360_991817c9f4" y="231.84"/>
27148 </g>
27149 <g clip-path="url(#pe1c207cc63)">
27150 <use style="fill:#000080;" x="0" xlink:href="#C3_361_de580f05a4" y="231.84"/>
27151 </g>
27152 <g clip-path="url(#pe1c207cc63)">
27153 <use style="fill:#d7ff1f;" x="0" xlink:href="#C3_362_926a69094c" y="231.84"/>
27154 </g>
27155 <g clip-path="url(#pe1c207cc63)">
27156 <use style="fill:#0000c8;" x="0" xlink:href="#C3_363_b1bd376d5b" y="231.84"/>
27157 </g>
27158 <g clip-path="url(#pe1c207cc63)">
27159 <use style="fill:#0091ff;" x="0" xlink:href="#C3_364_7281f01d8a" y="231.84"/>
27160 </g>
27161 <g clip-path="url(#pe1c207cc63)">
27162 <use style="fill:#ffbd00;" x="0" xlink:href="#C3_365_aaf3a3b4bd" y="231.84"/>
27163 </g>
27164 <g clip-path="url(#pe1c207cc63)">
27165 <use style="fill:#0000e8;" x="0" xlink:href="#C3_366_f311108cf3" y="231.84"/>
27166 </g>
27167 <g clip-path="url(#pe1c207cc63)">
27168 <use style="fill:#73ff83;" x="0" xlink:href="#C3_367_eb22b491cc" y="231.84"/>
27169 </g>
27170 <g clip-path="url(#pe1c207cc63)">
27171 <use style="fill:#e80000;" x="0" xlink:href="#C3_368_09d1a99c4d" y="231.84"/>
27172 </g>
27173 <g clip-path="url(#pe1c207cc63)">
27174 <use style="fill:#0000d1;" x="0" xlink:href="#C3_369_d9c9899ec2" y="231.84"/>
27175 </g>
27176 <g clip-path="url(#pe1c207cc63)">
27177 <use style="fill:#000080;" x="0" xlink:href="#C3_36a_c0dc62e6b4" y="231.84"/>
27178 </g>
27179 <g clip-path="url(#pe1c207cc63)">
27180 <use style="fill:#ff8d00;" x="0" xlink:href="#C3_36b_0a4663f416" y="231.84"/>
27181 </g>
27182 <g clip-path="url(#pe1c207cc63)">
27183 <use style="fill:#ff5200;" x="0" xlink:href="#C3_36c_6485a22d33" y="231.84"/>
27184 </g>
27185 <g clip-path="url(#pe1c207cc63)">
27186 <use style="fill:#0000bb;" x="0" xlink:href="#C3_36d_78e2f2859f" y="231.84"/>
27187 </g>
27188 <g clip-path="url(#pe1c207cc63)">
27189 <use style="fill:#0081ff;" x="0" xlink:href="#C3_36e_3f6955302d" y="231.84"/>
27190 </g>
27191 <g clip-path="url(#pe1c207cc63)">
27192 <use style="fill:#0000f1;" x="0" xlink:href="#C3_36f_93cdcd1ec0" y="231.84"/>
27193 </g>
27194 <g clip-path="url(#pe1c207cc63)">
27195 <use style="fill:#0000cd;" x="0" xlink:href="#C3_370_ef9ad50fb1" y="231.84"/>
27196 </g>
27197 <g clip-path="url(#pe1c207cc63)">
27198 <use style="fill:#000096;" x="0" xlink:href="#C3_371_bb4e392c60" y="231.84"/>
27199 </g>
27200 <g clip-path="url(#pe1c207cc63)">
27201 <use style="fill:#ff5500;" x="0" xlink:href="#C3_372_429013948b" y="231.84"/>
27202 </g>
27203 <g clip-path="url(#pe1c207cc63)">
27204 <use style="fill:#890000;" x="0" xlink:href="#C3_373_bfaf60e394" y="231.84"/>
27205 </g>
27206 <g clip-path="url(#pe1c207cc63)">
27207 <use style="fill:#960000;" x="0" xlink:href="#C3_374_a7a60e65b7" y="231.84"/>
27208 </g>
27209 <g clip-path="url(#pe1c207cc63)">
27210 <use style="fill:#000089;" x="0" xlink:href="#C3_375_0d8273b350" y="231.84"/>
27211 </g>
27212 <g clip-path="url(#pe1c207cc63)">
27213 <use style="fill:#73ff83;" x="0" xlink:href="#C3_376_18e6df86bd" y="231.84"/>
27214 </g>
27215 <g clip-path="url(#pe1c207cc63)">
27216 <use style="fill:#0000a8;" x="0" xlink:href="#C3_377_83f5ab99cd" y="231.84"/>
27217 </g>
27218 <g clip-path="url(#pe1c207cc63)">
27219 <use style="fill:#ff9f00;" x="0" xlink:href="#C3_378_4b409ffdca" y="231.84"/>
27220 </g>
27221 <g clip-path="url(#pe1c207cc63)">
27222 <use style="fill:#ffdb00;" x="0" xlink:href="#C3_379_ef358daa9b" y="231.84"/>
27223 </g>
27224 <g clip-path="url(#pe1c207cc63)">
27225 <use style="fill:#0081ff;" x="0" xlink:href="#C3_37a_671d8980e1" y="231.84"/>
27226 </g>
27227 <g clip-path="url(#pe1c207cc63)">
27228 <use style="fill:#000084;" x="0" xlink:href="#C3_37b_8d08edc957" y="231.84"/>
27229 </g>
27230 <g clip-path="url(#pe1c207cc63)">
27231 <use style="fill:#26ffd1;" x="0" xlink:href="#C3_37c_2dba07855f" y="231.84"/>
27232 </g>
27233 <g clip-path="url(#pe1c207cc63)">
27234 <use style="fill:#49ffad;" x="0" xlink:href="#C3_37d_aab24ddd63" y="231.84"/>
27235 </g>
27236 <g clip-path="url(#pe1c207cc63)">
27237 <use style="fill:#0009ff;" x="0" xlink:href="#C3_37e_dc4b4796bd" y="231.84"/>
27238 </g>
27239 <g clip-path="url(#pe1c207cc63)">
27240 <use style="fill:#840000;" x="0" xlink:href="#C3_37f_62d8414671" y="231.84"/>
27241 </g>
27242 <g clip-path="url(#pe1c207cc63)">
27243 <use style="fill:#0000d1;" x="0" xlink:href="#C3_380_2330082b08" y="231.84"/>
27244 </g>
27245 <g clip-path="url(#pe1c207cc63)">
27246 <use style="fill:#0000ad;" x="0" xlink:href="#C3_381_4bd9f68470" y="231.84"/>
27247 </g>
27248 <g clip-path="url(#pe1c207cc63)">
27249 <use style="fill:#ff6c00;" x="0" xlink:href="#C3_382_dd54c19ad8" y="231.84"/>
27250 </g>
27251 <g clip-path="url(#pe1c207cc63)">
27252 <use style="fill:#ff6400;" x="0" xlink:href="#C3_383_692b2f1e6c" y="231.84"/>
27253 </g>
27254 <g clip-path="url(#pe1c207cc63)">
27255 <use style="fill:#000dff;" x="0" xlink:href="#C3_384_1f6fd4437f" y="231.84"/>
27256 </g>
27257 <g clip-path="url(#pe1c207cc63)">
27258 <use style="fill:#00009b;" x="0" xlink:href="#C3_385_af224d500a" y="231.84"/>
27259 </g>
27260 <g clip-path="url(#pe1c207cc63)">
27261 <use style="fill:#b20000;" x="0" xlink:href="#C3_386_a5c6736134" y="231.84"/>
27262 </g>
27263 <g clip-path="url(#pe1c207cc63)">
27264 <use style="fill:#890000;" x="0" xlink:href="#C3_387_b6ab2b294a" y="231.84"/>
27265 </g>
27266 <g clip-path="url(#pe1c207cc63)">
27267 <use style="fill:#000080;" x="0" xlink:href="#C3_388_36f58cb3b1" y="231.84"/>
27268 </g>
27269 <g clip-path="url(#pe1c207cc63)">
27270 <use style="fill:#a4ff53;" x="0" xlink:href="#C3_389_63045713de" y="231.84"/>
27271 </g>
27272 <g clip-path="url(#pe1c207cc63)">
27273 <use style="fill:#000080;" x="0" xlink:href="#C3_38a_45d36702b8" y="231.84"/>
27274 </g>
27275 <g clip-path="url(#pe1c207cc63)">
27276 <use style="fill:#ffab00;" x="0" xlink:href="#C3_38b_9d6780ea3f" y="231.84"/>
27277 </g>
27278 <g clip-path="url(#pe1c207cc63)">
27279 <use style="fill:#0069ff;" x="0" xlink:href="#C3_38c_44b030739f" y="231.84"/>
27280 </g>
27281 <g clip-path="url(#pe1c207cc63)">
27282 <use style="fill:#ff8200;" x="0" xlink:href="#C3_38d_dbd194b0db" y="231.84"/>
27283 </g>
27284 <g clip-path="url(#pe1c207cc63)">
27285 <use style="fill:#960000;" x="0" xlink:href="#C3_38e_63ef234392" y="231.84"/>
27286 </g>
27287 <g clip-path="url(#pe1c207cc63)">
27288 <use style="fill:#1cffdb;" x="0" xlink:href="#C3_38f_543d60118b" y="231.84"/>
27289 </g>
27290 <g clip-path="url(#pe1c207cc63)">
27291 <use style="fill:#00009b;" x="0" xlink:href="#C3_390_b4d1d2afe1" y="231.84"/>
27292 </g>
27293 <g clip-path="url(#pe1c207cc63)">
27294 <use style="fill:#960000;" x="0" xlink:href="#C3_391_b6bf736e4f" y="231.84"/>
27295 </g>
27296 <g clip-path="url(#pe1c207cc63)">
27297 <use style="fill:#0054ff;" x="0" xlink:href="#C3_392_ee7ae4d28b" y="231.84"/>
27298 </g>
27299 <g clip-path="url(#pe1c207cc63)">
27300 <use style="fill:#0031ff;" x="0" xlink:href="#C3_393_fb439a72f1" y="231.84"/>
27301 </g>
27302 <g clip-path="url(#pe1c207cc63)">
27303 <use style="fill:#ffb900;" x="0" xlink:href="#C3_394_1e1562762f" y="231.84"/>
27304 </g>
27305 <g clip-path="url(#pe1c207cc63)">
27306 <use style="fill:#ffd300;" x="0" xlink:href="#C3_395_1b6162b957" y="231.84"/>
27307 </g>
27308 <g clip-path="url(#pe1c207cc63)">
27309 <use style="fill:#000092;" x="0" xlink:href="#C3_396_444082bdb8" y="231.84"/>
27310 </g>
27311 <g clip-path="url(#pe1c207cc63)">
27312 <use style="fill:#ff4700;" x="0" xlink:href="#C3_397_1aead51b88" y="231.84"/>
27313 </g>
27314 <g clip-path="url(#pe1c207cc63)">
27315 <use style="fill:#66ff90;" x="0" xlink:href="#C3_398_38def47e97" y="231.84"/>
27316 </g>
27317 <g clip-path="url(#pe1c207cc63)">
27318 <use style="fill:#ff6f00;" x="0" xlink:href="#C3_399_60e557de26" y="231.84"/>
27319 </g>
27320 <g clip-path="url(#pe1c207cc63)">
27321 <use style="fill:#000096;" x="0" xlink:href="#C3_39a_5b7f6264ce" y="231.84"/>
27322 </g>
27323 <g clip-path="url(#pe1c207cc63)">
27324 <use style="fill:#004dff;" x="0" xlink:href="#C3_39b_9e1d004f50" y="231.84"/>
27325 </g>
27326 <g clip-path="url(#pe1c207cc63)">
27327 <use style="fill:#df0000;" x="0" xlink:href="#C3_39c_af81f95500" y="231.84"/>
27328 </g>
27329 <g clip-path="url(#pe1c207cc63)">
27330 <use style="fill:#c1ff36;" x="0" xlink:href="#C3_39d_87c9561015" y="231.84"/>
27331 </g>
27332 <g clip-path="url(#pe1c207cc63)">
27333 <use style="fill:#800000;" x="0" xlink:href="#C3_39e_5589f41e04" y="231.84"/>
27334 </g>
27335 <g clip-path="url(#pe1c207cc63)">
27336 <use style="fill:#29ffce;" x="0" xlink:href="#C3_39f_f57f4d176e" y="231.84"/>
27337 </g>
27338 <g clip-path="url(#pe1c207cc63)">
27339 <use style="fill:#ff2200;" x="0" xlink:href="#C3_3a0_82c28bb26f" y="231.84"/>
27340 </g>
27341 <g clip-path="url(#pe1c207cc63)">
27342 <use style="fill:#000080;" x="0" xlink:href="#C3_3a1_7ad5ef6190" y="231.84"/>
27343 </g>
27344 <g clip-path="url(#pe1c207cc63)">
27345 <use style="fill:#ffbd00;" x="0" xlink:href="#C3_3a2_d57513a399" y="231.84"/>
27346 </g>
27347 <g clip-path="url(#pe1c207cc63)">
27348 <use style="fill:#00a1ff;" x="0" xlink:href="#C3_3a3_ac270475fd" y="231.84"/>
27349 </g>
27350 <g clip-path="url(#pe1c207cc63)">
27351 <use style="fill:#800000;" x="0" xlink:href="#C3_3a4_2e97ac61bd" y="231.84"/>
27352 </g>
27353 <g clip-path="url(#pe1c207cc63)">
27354 <use style="fill:#0000d6;" x="0" xlink:href="#C3_3a5_0f53a863ab" y="231.84"/>
27355 </g>
27356 <g clip-path="url(#pe1c207cc63)">
27357 <use style="fill:#002dff;" x="0" xlink:href="#C3_3a6_3ea12adc48" y="231.84"/>
27358 </g>
27359 <g clip-path="url(#pe1c207cc63)">
27360 <use style="fill:#000080;" x="0" xlink:href="#C3_3a7_3ac5a7e834" y="231.84"/>
27361 </g>
27362 <g clip-path="url(#pe1c207cc63)">
27363 <use style="fill:#00e5f8;" x="0" xlink:href="#C3_3a8_e39ae7d886" y="231.84"/>
27364 </g>
27365 <g clip-path="url(#pe1c207cc63)">
27366 <use style="fill:#9b0000;" x="0" xlink:href="#C3_3a9_2cbaad6454" y="231.84"/>
27367 </g>
27368 <g clip-path="url(#pe1c207cc63)">
27369 <use style="fill:#00c5ff;" x="0" xlink:href="#C3_3aa_9f4e1437f4" y="231.84"/>
27370 </g>
27371 <g clip-path="url(#pe1c207cc63)">
27372 <use style="fill:#0009ff;" x="0" xlink:href="#C3_3ab_3ab9816925" y="231.84"/>
27373 </g>
27374 <g clip-path="url(#pe1c207cc63)">
27375 <use style="fill:#fbf100;" x="0" xlink:href="#C3_3ac_83a0a4d8a5" y="231.84"/>
27376 </g>
27377 <g clip-path="url(#pe1c207cc63)">
27378 <use style="fill:#ff9f00;" x="0" xlink:href="#C3_3ad_afb88c9045" y="231.84"/>
27379 </g>
27380 <g clip-path="url(#pe1c207cc63)">
27381 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_3ae_80933b2b0a" y="231.84"/>
27382 </g>
27383 <g clip-path="url(#pe1c207cc63)">
27384 <use style="fill:#0000f1;" x="0" xlink:href="#C3_3af_b48e910b1b" y="231.84"/>
27385 </g>
27386 <g clip-path="url(#pe1c207cc63)">
27387 <use style="fill:#00009b;" x="0" xlink:href="#C3_3b0_1a2b512aac" y="231.84"/>
27388 </g>
27389 <g clip-path="url(#pe1c207cc63)">
27390 <use style="fill:#00008d;" x="0" xlink:href="#C3_3b1_d4a50d4059" y="231.84"/>
27391 </g>
27392 <g clip-path="url(#pe1c207cc63)">
27393 <use style="fill:#0019ff;" x="0" xlink:href="#C3_3b2_f57ba3ee3c" y="231.84"/>
27394 </g>
27395 <g clip-path="url(#pe1c207cc63)">
27396 <use style="fill:#800000;" x="0" xlink:href="#C3_3b3_2331b1b6de" y="231.84"/>
27397 </g>
27398 <g clip-path="url(#pe1c207cc63)">
27399 <use style="fill:#df0000;" x="0" xlink:href="#C3_3b4_3dac2fb99a" y="231.84"/>
27400 </g>
27401 <g clip-path="url(#pe1c207cc63)">
27402 <use style="fill:#0000c8;" x="0" xlink:href="#C3_3b5_f8e8507881" y="231.84"/>
27403 </g>
27404 <g clip-path="url(#pe1c207cc63)">
27405 <use style="fill:#ff3f00;" x="0" xlink:href="#C3_3b6_c3b346c186" y="231.84"/>
27406 </g>
27407 <g clip-path="url(#pe1c207cc63)">
27408 <use style="fill:#0064ff;" x="0" xlink:href="#C3_3b7_e2c677be41" y="231.84"/>
27409 </g>
27410 <g clip-path="url(#pe1c207cc63)">
27411 <use style="fill:#a80000;" x="0" xlink:href="#C3_3b8_c3475a5e58" y="231.84"/>
27412 </g>
27413 <g clip-path="url(#pe1c207cc63)">
27414 <use style="fill:#800000;" x="0" xlink:href="#C3_3b9_857c33e477" y="231.84"/>
27415 </g>
27416 <g clip-path="url(#pe1c207cc63)">
27417 <use style="fill:#000092;" x="0" xlink:href="#C3_3ba_03f60ee8c9" y="231.84"/>
27418 </g>
27419 <g clip-path="url(#pe1c207cc63)">
27420 <use style="fill:#000084;" x="0" xlink:href="#C3_3bb_44f28d5ecf" y="231.84"/>
27421 </g>
27422 <g clip-path="url(#pe1c207cc63)">
27423 <use style="fill:#bb0000;" x="0" xlink:href="#C3_3bc_3186dece5e" y="231.84"/>
27424 </g>
27425 <g clip-path="url(#pe1c207cc63)">
27426 <use style="fill:#000084;" x="0" xlink:href="#C3_3bd_1172434673" y="231.84"/>
27427 </g>
27428 <g clip-path="url(#pe1c207cc63)">
27429 <use style="fill:#0000d6;" x="0" xlink:href="#C3_3be_80e1fe1124" y="231.84"/>
27430 </g>
27431 <g clip-path="url(#pe1c207cc63)">
27432 <use style="fill:#83ff73;" x="0" xlink:href="#C3_3bf_ebe2bcf902" y="231.84"/>
27433 </g>
27434 <g clip-path="url(#pe1c207cc63)">
27435 <use style="fill:#800000;" x="0" xlink:href="#C3_3c0_2c56482ad3" y="231.84"/>
27436 </g>
27437 <g clip-path="url(#pe1c207cc63)">
27438 <use style="fill:#ff5500;" x="0" xlink:href="#C3_3c1_efaf70590e" y="231.84"/>
27439 </g>
27440 <g clip-path="url(#pe1c207cc63)">
27441 <use style="fill:#ff5d00;" x="0" xlink:href="#C3_3c2_f990908c87" y="231.84"/>
27442 </g>
27443 <g clip-path="url(#pe1c207cc63)">
27444 <use style="fill:#ff1a00;" x="0" xlink:href="#C3_3c3_a07f36efa7" y="231.84"/>
27445 </g>
27446 <g clip-path="url(#pe1c207cc63)">
27447 <use style="fill:#ebff0c;" x="0" xlink:href="#C3_3c4_84c1a8cf32" y="231.84"/>
27448 </g>
27449 <g clip-path="url(#pe1c207cc63)">
27450 <use style="fill:#0000a8;" x="0" xlink:href="#C3_3c5_303793f3f2" y="231.84"/>
27451 </g>
27452 <g clip-path="url(#pe1c207cc63)">
27453 <use style="fill:#e80000;" x="0" xlink:href="#C3_3c6_c4464e3587" y="231.84"/>
27454 </g>
27455 <g clip-path="url(#pe1c207cc63)">
27456 <use style="fill:#ff1300;" x="0" xlink:href="#C3_3c7_204fb0eb30" y="231.84"/>
27457 </g>
27458 <g clip-path="url(#pe1c207cc63)">
27459 <use style="fill:#000080;" x="0" xlink:href="#C3_3c8_168108e44c" y="231.84"/>
27460 </g>
27461 <g clip-path="url(#pe1c207cc63)">
27462 <use style="fill:#800000;" x="0" xlink:href="#C3_3c9_85892ab81d" y="231.84"/>
27463 </g>
27464 <g clip-path="url(#pe1c207cc63)">
27465 <use style="fill:#a40000;" x="0" xlink:href="#C3_3ca_9ef3c35f69" y="231.84"/>
27466 </g>
27467 <g clip-path="url(#pe1c207cc63)">
27468 <use style="fill:#000089;" x="0" xlink:href="#C3_3cb_849e771197" y="231.84"/>
27469 </g>
27470 <g clip-path="url(#pe1c207cc63)">
27471 <use style="fill:#840000;" x="0" xlink:href="#C3_3cc_27f56a7647" y="231.84"/>
27472 </g>
27473 <g clip-path="url(#pe1c207cc63)">
27474 <use style="fill:#000096;" x="0" xlink:href="#C3_3cd_d1933ae458" y="231.84"/>
27475 </g>
27476 <g clip-path="url(#pe1c207cc63)">
27477 <use style="fill:#9aff5d;" x="0" xlink:href="#C3_3ce_5db3bfc24f" y="231.84"/>
27478 </g>
27479 <g clip-path="url(#pe1c207cc63)">
27480 <use style="fill:#006dff;" x="0" xlink:href="#C3_3cf_a5e44a5462" y="231.84"/>
27481 </g>
27482 <g clip-path="url(#pe1c207cc63)">
27483 <use style="fill:#df0000;" x="0" xlink:href="#C3_3d0_a37d3bc1a9" y="231.84"/>
27484 </g>
27485 <g clip-path="url(#pe1c207cc63)">
27486 <use style="fill:#000080;" x="0" xlink:href="#C3_3d1_1988f2d9f3" y="231.84"/>
27487 </g>
27488 <g clip-path="url(#pe1c207cc63)">
27489 <use style="fill:#840000;" x="0" xlink:href="#C3_3d2_b1afb401c9" y="231.84"/>
27490 </g>
27491 <g clip-path="url(#pe1c207cc63)">
27492 <use style="fill:#890000;" x="0" xlink:href="#C3_3d3_377dc230fc" y="231.84"/>
27493 </g>
27494 <g clip-path="url(#pe1c207cc63)">
27495 <use style="fill:#960000;" x="0" xlink:href="#C3_3d4_191fc1df1e" y="231.84"/>
27496 </g>
27497 <g clip-path="url(#pe1c207cc63)">
27498 <use style="fill:#c40000;" x="0" xlink:href="#C3_3d5_9240d84b06" y="231.84"/>
27499 </g>
27500 <g clip-path="url(#pe1c207cc63)">
27501 <use style="fill:#1cffdb;" x="0" xlink:href="#C3_3d6_222ab5a42b" y="231.84"/>
27502 </g>
27503 <g clip-path="url(#pe1c207cc63)">
27504 <use style="fill:#001dff;" x="0" xlink:href="#C3_3d7_9fb9e14f81" y="231.84"/>
27505 </g>
27506 <g clip-path="url(#pe1c207cc63)">
27507 <use style="fill:#ffc800;" x="0" xlink:href="#C3_3d8_125fd3fb10" y="231.84"/>
27508 </g>
27509 <g clip-path="url(#pe1c207cc63)">
27510 <use style="fill:#a80000;" x="0" xlink:href="#C3_3d9_e55b2761f1" y="231.84"/>
27511 </g>
27512 <g clip-path="url(#pe1c207cc63)">
27513 <use style="fill:#0000d1;" x="0" xlink:href="#C3_3da_f26e24b4e7" y="231.84"/>
27514 </g>
27515 <g clip-path="url(#pe1c207cc63)">
27516 <use style="fill:#00008d;" x="0" xlink:href="#C3_3db_edcdab4b08" y="231.84"/>
27517 </g>
27518 <g clip-path="url(#pe1c207cc63)">
27519 <use style="fill:#ff1a00;" x="0" xlink:href="#C3_3dc_1f3598658d" y="231.84"/>
27520 </g>
27521 <g clip-path="url(#pe1c207cc63)">
27522 <use style="fill:#800000;" x="0" xlink:href="#C3_3dd_4c4476b78e" y="231.84"/>
27523 </g>
27524 <g clip-path="url(#pe1c207cc63)">
27525 <use style="fill:#840000;" x="0" xlink:href="#C3_3de_eeb7bfc9b9" y="231.84"/>
27526 </g>
27527 <g clip-path="url(#pe1c207cc63)">
27528 <use style="fill:#9b0000;" x="0" xlink:href="#C3_3df_f8e8ee0cb1" y="231.84"/>
27529 </g>
27530 <g clip-path="url(#pe1c207cc63)">
27531 <use style="fill:#000080;" x="0" xlink:href="#C3_3e0_b6479167d6" y="231.84"/>
27532 </g>
27533 <g clip-path="url(#pe1c207cc63)">
27534 <use style="fill:#ff5200;" x="0" xlink:href="#C3_3e1_6d9b26885e" y="231.84"/>
27535 </g>
27536 <g clip-path="url(#pe1c207cc63)">
27537 <use style="fill:#000092;" x="0" xlink:href="#C3_3e2_a569f770bb" y="231.84"/>
27538 </g>
27539 <g clip-path="url(#pe1c207cc63)">
27540 <use style="fill:#63ff94;" x="0" xlink:href="#C3_3e3_d1fbb7c4c6" y="231.84"/>
27541 </g>
27542 <g clip-path="url(#pe1c207cc63)">
27543 <use style="fill:#009dff;" x="0" xlink:href="#C3_3e4_96ff68c087" y="231.84"/>
27544 </g>
27545 <g clip-path="url(#pe1c207cc63)">
27546 <use style="fill:#0000df;" x="0" xlink:href="#C3_3e5_1074b69fb7" y="231.84"/>
27547 </g>
27548 <g clip-path="url(#pe1c207cc63)">
27549 <use style="fill:#000080;" x="0" xlink:href="#C3_3e6_118999895f" y="231.84"/>
27550 </g>
27551 <g clip-path="url(#pe1c207cc63)">
27552 <use style="fill:#000089;" x="0" xlink:href="#C3_3e7_fda60fcbbb" y="231.84"/>
27553 </g>
27554 <g clip-path="url(#pe1c207cc63)">
27555 <use style="fill:#bb0000;" x="0" xlink:href="#C3_3e8_8160ecd780" y="231.84"/>
27556 </g>
27557 <g clip-path="url(#pe1c207cc63)">
27558 <use style="fill:#ffb900;" x="0" xlink:href="#C3_3e9_6532f5f7ec" y="231.84"/>
27559 </g>
27560 <g clip-path="url(#pe1c207cc63)">
27561 <use style="fill:#0000b6;" x="0" xlink:href="#C3_3ea_ff40685bd3" y="231.84"/>
27562 </g>
27563 <g clip-path="url(#pe1c207cc63)">
27564 <use style="fill:#890000;" x="0" xlink:href="#C3_3eb_8ef134f0c5" y="231.84"/>
27565 </g>
27566 <g clip-path="url(#pe1c207cc63)">
27567 <use style="fill:#0001ff;" x="0" xlink:href="#C3_3ec_c6d8353831" y="231.84"/>
27568 </g>
27569 <g clip-path="url(#pe1c207cc63)">
27570 <use style="fill:#00c1ff;" x="0" xlink:href="#C3_3ed_af677fd029" y="231.84"/>
27571 </g>
27572 <g clip-path="url(#pe1c207cc63)">
27573 <use style="fill:#bf0000;" x="0" xlink:href="#C3_3ee_13130c2328" y="231.84"/>
27574 </g>
27575 <g clip-path="url(#pe1c207cc63)">
27576 <use style="fill:#0000c8;" x="0" xlink:href="#C3_3ef_b9146b0850" y="231.84"/>
27577 </g>
27578 <g clip-path="url(#pe1c207cc63)">
27579 <use style="fill:#0cf5eb;" x="0" xlink:href="#C3_3f0_c0e4ab67d4" y="231.84"/>
27580 </g>
27581 <g clip-path="url(#pe1c207cc63)">
27582 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_3f1_eb35188162" y="231.84"/>
27583 </g>
27584 <g clip-path="url(#pe1c207cc63)">
27585 <use style="fill:#ffbd00;" x="0" xlink:href="#C3_3f2_908262949d" y="231.84"/>
27586 </g>
27587 <g clip-path="url(#pe1c207cc63)">
27588 <use style="fill:#0031ff;" x="0" xlink:href="#C3_3f3_32b9d81faf" y="231.84"/>
27589 </g>
27590 <g clip-path="url(#pe1c207cc63)">
27591 <use style="fill:#001dff;" x="0" xlink:href="#C3_3f4_e107731247" y="231.84"/>
27592 </g>
27593 <g clip-path="url(#pe1c207cc63)">
27594 <use style="fill:#83ff73;" x="0" xlink:href="#C3_3f5_7f06961367" y="231.84"/>
27595 </g>
27596 <g clip-path="url(#pe1c207cc63)">
27597 <use style="fill:#e80000;" x="0" xlink:href="#C3_3f6_20b3c8f746" y="231.84"/>
27598 </g>
27599 <g clip-path="url(#pe1c207cc63)">
27600 <use style="fill:#000092;" x="0" xlink:href="#C3_3f7_70f60b4822" y="231.84"/>
27601 </g>
27602 <g clip-path="url(#pe1c207cc63)">
27603 <use style="fill:#d7ff1f;" x="0" xlink:href="#C3_3f8_d23ed7c295" y="231.84"/>
27604 </g>
27605 <g clip-path="url(#pe1c207cc63)">
27606 <use style="fill:#b4ff43;" x="0" xlink:href="#C3_3f9_9f62e8e856" y="231.84"/>
27607 </g>
27608 <g clip-path="url(#pe1c207cc63)">
27609 <use style="fill:#ff1600;" x="0" xlink:href="#C3_3fa_91f870f225" y="231.84"/>
27610 </g>
27611 <g clip-path="url(#pe1c207cc63)">
27612 <use style="fill:#e40000;" x="0" xlink:href="#C3_3fb_7d7ccf952a" y="231.84"/>
27613 </g>
27614 <g clip-path="url(#pe1c207cc63)">
27615 <use style="fill:#ff6800;" x="0" xlink:href="#C3_3fc_0161aff973" y="231.84"/>
27616 </g>
27617 <g clip-path="url(#pe1c207cc63)">
27618 <use style="fill:#ff5900;" x="0" xlink:href="#C3_3fd_4076f5ceba" y="231.84"/>
27619 </g>
27620 <g clip-path="url(#pe1c207cc63)">
27621 <use style="fill:#00008d;" x="0" xlink:href="#C3_3fe_be0196a5bc" y="231.84"/>
27622 </g>
27623 <g clip-path="url(#pe1c207cc63)">
27624 <use style="fill:#800000;" x="0" xlink:href="#C3_3ff_652f90f928" y="231.84"/>
27625 </g>
27626 <g clip-path="url(#pe1c207cc63)">
27627 <use style="fill:#800000;" x="0" xlink:href="#C3_400_c6b8edc4d5" y="231.84"/>
27628 </g>
27629 <g clip-path="url(#pe1c207cc63)">
27630 <use style="fill:#0061ff;" x="0" xlink:href="#C3_401_e791e9750f" y="231.84"/>
27631 </g>
27632 <g clip-path="url(#pe1c207cc63)">
27633 <use style="fill:#000080;" x="0" xlink:href="#C3_402_9f1ab2e9bf" y="231.84"/>
27634 </g>
27635 <g clip-path="url(#pe1c207cc63)">
27636 <use style="fill:#0000bf;" x="0" xlink:href="#C3_403_cb953ca0f5" y="231.84"/>
27637 </g>
27638 <g clip-path="url(#pe1c207cc63)">
27639 <use style="fill:#007dff;" x="0" xlink:href="#C3_404_f822d871f8" y="231.84"/>
27640 </g>
27641 <g clip-path="url(#pe1c207cc63)">
27642 <use style="fill:#ffbd00;" x="0" xlink:href="#C3_405_7e5ac3655c" y="231.84"/>
27643 </g>
27644 <g clip-path="url(#pe1c207cc63)">
27645 <use style="fill:#00d9ff;" x="0" xlink:href="#C3_406_a75db6220c" y="231.84"/>
27646 </g>
27647 <g clip-path="url(#pe1c207cc63)">
27648 <use style="fill:#000080;" x="0" xlink:href="#C3_407_c23940f3ec" y="231.84"/>
27649 </g>
27650 <g clip-path="url(#pe1c207cc63)">
27651 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_408_e2c187e1db" y="231.84"/>
27652 </g>
27653 <g clip-path="url(#pe1c207cc63)">
27654 <use style="fill:#8aff6d;" x="0" xlink:href="#C3_409_5b1fcc9907" y="231.84"/>
27655 </g>
27656 <g clip-path="url(#pe1c207cc63)">
27657 <use style="fill:#9f0000;" x="0" xlink:href="#C3_40a_8aa44ede01" y="231.84"/>
27658 </g>
27659 <g clip-path="url(#pe1c207cc63)">
27660 <use style="fill:#bb0000;" x="0" xlink:href="#C3_40b_d3d036010a" y="231.84"/>
27661 </g>
27662 <g clip-path="url(#pe1c207cc63)">
27663 <use style="fill:#920000;" x="0" xlink:href="#C3_40c_ee38f3fd60" y="231.84"/>
27664 </g>
27665 <g clip-path="url(#pe1c207cc63)">
27666 <use style="fill:#000092;" x="0" xlink:href="#C3_40d_12a52b8093" y="231.84"/>
27667 </g>
27668 <g clip-path="url(#pe1c207cc63)">
27669 <use style="fill:#000089;" x="0" xlink:href="#C3_40e_bac8112b1b" y="231.84"/>
27670 </g>
27671 <g clip-path="url(#pe1c207cc63)">
27672 <use style="fill:#0000a4;" x="0" xlink:href="#C3_40f_3932bc667f" y="231.84"/>
27673 </g>
27674 <g clip-path="url(#pe1c207cc63)">
27675 <use style="fill:#008dff;" x="0" xlink:href="#C3_410_c04aef0896" y="231.84"/>
27676 </g>
27677 <g clip-path="url(#pe1c207cc63)">
27678 <use style="fill:#890000;" x="0" xlink:href="#C3_411_d94fbd9315" y="231.84"/>
27679 </g>
27680 <g clip-path="url(#pe1c207cc63)">
27681 <use style="fill:#0000bb;" x="0" xlink:href="#C3_412_e2dd410b03" y="231.84"/>
27682 </g>
27683 <g clip-path="url(#pe1c207cc63)">
27684 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_413_91899e2500" y="231.84"/>
27685 </g>
27686 <g clip-path="url(#pe1c207cc63)">
27687 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_414_16fed3643f" y="231.84"/>
27688 </g>
27689 <g clip-path="url(#pe1c207cc63)">
27690 <use style="fill:#0000ed;" x="0" xlink:href="#C3_415_c9a2744238" y="231.84"/>
27691 </g>
27692 <g clip-path="url(#pe1c207cc63)">
27693 <use style="fill:#0000b2;" x="0" xlink:href="#C3_416_90f69a67d8" y="231.84"/>
27694 </g>
27695 <g clip-path="url(#pe1c207cc63)">
27696 <use style="fill:#0019ff;" x="0" xlink:href="#C3_417_a277a055bb" y="231.84"/>
27697 </g>
27698 <g clip-path="url(#pe1c207cc63)">
27699 <use style="fill:#000084;" x="0" xlink:href="#C3_418_1a2957c554" y="231.84"/>
27700 </g>
27701 <g clip-path="url(#pe1c207cc63)">
27702 <use style="fill:#800000;" x="0" xlink:href="#C3_419_5e4c2efb8f" y="231.84"/>
27703 </g>
27704 <g clip-path="url(#pe1c207cc63)">
27705 <use style="fill:#000096;" x="0" xlink:href="#C3_41a_fdf51c0c80" y="231.84"/>
27706 </g>
27707 <g clip-path="url(#pe1c207cc63)">
27708 <use style="fill:#000084;" x="0" xlink:href="#C3_41b_ae32e86370" y="231.84"/>
27709 </g>
27710 <g clip-path="url(#pe1c207cc63)">
27711 <use style="fill:#ff8200;" x="0" xlink:href="#C3_41c_5bc0d42d55" y="231.84"/>
27712 </g>
27713 <g clip-path="url(#pe1c207cc63)">
27714 <use style="fill:#ff1300;" x="0" xlink:href="#C3_41d_3cc71b8e73" y="231.84"/>
27715 </g>
27716 <g clip-path="url(#pe1c207cc63)">
27717 <use style="fill:#f10800;" x="0" xlink:href="#C3_41e_77fe79b19c" y="231.84"/>
27718 </g>
27719 <g clip-path="url(#pe1c207cc63)">
27720 <use style="fill:#ebff0c;" x="0" xlink:href="#C3_41f_0abacd5071" y="231.84"/>
27721 </g>
27722 <g clip-path="url(#pe1c207cc63)">
27723 <use style="fill:#840000;" x="0" xlink:href="#C3_420_b0f5a4d50b" y="231.84"/>
27724 </g>
27725 <g clip-path="url(#pe1c207cc63)">
27726 <use style="fill:#ffc800;" x="0" xlink:href="#C3_421_a18766bb08" y="231.84"/>
27727 </g>
27728 <g clip-path="url(#pe1c207cc63)">
27729 <use style="fill:#000080;" x="0" xlink:href="#C3_422_d8849af62e" y="231.84"/>
27730 </g>
27731 <g clip-path="url(#pe1c207cc63)">
27732 <use style="fill:#ff8d00;" x="0" xlink:href="#C3_423_e0f8e3f0dd" y="231.84"/>
27733 </g>
27734 <g clip-path="url(#pe1c207cc63)">
27735 <use style="fill:#f60b00;" x="0" xlink:href="#C3_424_b95ebdc418" y="231.84"/>
27736 </g>
27737 <g clip-path="url(#pe1c207cc63)">
27738 <use style="fill:#ff8200;" x="0" xlink:href="#C3_425_8420d462be" y="231.84"/>
27739 </g>
27740 <g clip-path="url(#pe1c207cc63)">
27741 <use style="fill:#00009f;" x="0" xlink:href="#C3_426_a734991764" y="231.84"/>
27742 </g>
27743 <g clip-path="url(#pe1c207cc63)">
27744 <use style="fill:#0000bb;" x="0" xlink:href="#C3_427_9e40a6371c" y="231.84"/>
27745 </g>
27746 <g clip-path="url(#pe1c207cc63)">
27747 <use style="fill:#0014ff;" x="0" xlink:href="#C3_428_3d7b39e03e" y="231.84"/>
27748 </g>
27749 <g clip-path="url(#pe1c207cc63)">
27750 <use style="fill:#cd0000;" x="0" xlink:href="#C3_429_67dfe38742" y="231.84"/>
27751 </g>
27752 <g clip-path="url(#pe1c207cc63)">
27753 <use style="fill:#000dff;" x="0" xlink:href="#C3_42a_ea67e10e10" y="231.84"/>
27754 </g>
27755 <g clip-path="url(#pe1c207cc63)">
27756 <use style="fill:#00e1fb;" x="0" xlink:href="#C3_42b_a9af5408c4" y="231.84"/>
27757 </g>
27758 <g clip-path="url(#pe1c207cc63)">
27759 <use style="fill:#000080;" x="0" xlink:href="#C3_42c_5c368ff120" y="231.84"/>
27760 </g>
27761 <g clip-path="url(#pe1c207cc63)">
27762 <use style="fill:#000080;" x="0" xlink:href="#C3_42d_425b674201" y="231.84"/>
27763 </g>
27764 <g clip-path="url(#pe1c207cc63)">
27765 <use style="fill:#ff2d00;" x="0" xlink:href="#C3_42e_6d02d5e7d7" y="231.84"/>
27766 </g>
27767 <g clip-path="url(#pe1c207cc63)">
27768 <use style="fill:#ff5200;" x="0" xlink:href="#C3_42f_f9d9886100" y="231.84"/>
27769 </g>
27770 <g clip-path="url(#pe1c207cc63)">
27771 <use style="fill:#000092;" x="0" xlink:href="#C3_430_e4fd447e8c" y="231.84"/>
27772 </g>
27773 <g clip-path="url(#pe1c207cc63)">
27774 <use style="fill:#000089;" x="0" xlink:href="#C3_431_f52d5719fb" y="231.84"/>
27775 </g>
27776 <g clip-path="url(#pe1c207cc63)">
27777 <use style="fill:#a40000;" x="0" xlink:href="#C3_432_795afc2995" y="231.84"/>
27778 </g>
27779 <g clip-path="url(#pe1c207cc63)">
27780 <use style="fill:#0000ff;" x="0" xlink:href="#C3_433_fb03617ec8" y="231.84"/>
27781 </g>
27782 <g clip-path="url(#pe1c207cc63)">
27783 <use style="fill:#920000;" x="0" xlink:href="#C3_434_67a9b58e1b" y="231.84"/>
27784 </g>
27785 <g clip-path="url(#pe1c207cc63)">
27786 <use style="fill:#000092;" x="0" xlink:href="#C3_435_a1c7973ad3" y="231.84"/>
27787 </g>
27788 <g clip-path="url(#pe1c207cc63)">
27789 <use style="fill:#0000f1;" x="0" xlink:href="#C3_436_8b953baed4" y="231.84"/>
27790 </g>
27791 <g clip-path="url(#pe1c207cc63)">
27792 <use style="fill:#0085ff;" x="0" xlink:href="#C3_437_a5fe4903aa" y="231.84"/>
27793 </g>
27794 <g clip-path="url(#pe1c207cc63)">
27795 <use style="fill:#0000b2;" x="0" xlink:href="#C3_438_cc80355584" y="231.84"/>
27796 </g>
27797 <g clip-path="url(#pe1c207cc63)">
27798 <use style="fill:#890000;" x="0" xlink:href="#C3_439_999af0e638" y="231.84"/>
27799 </g>
27800 <g clip-path="url(#pe1c207cc63)">
27801 <use style="fill:#000080;" x="0" xlink:href="#C3_43a_c7edf109e5" y="231.84"/>
27802 </g>
27803 <g clip-path="url(#pe1c207cc63)">
27804 <use style="fill:#a80000;" x="0" xlink:href="#C3_43b_202a6a7a3a" y="231.84"/>
27805 </g>
27806 <g clip-path="url(#pe1c207cc63)">
27807 <use style="fill:#0000f6;" x="0" xlink:href="#C3_43c_1a8b177d78" y="231.84"/>
27808 </g>
27809 <g clip-path="url(#pe1c207cc63)">
27810 <use style="fill:#0000c4;" x="0" xlink:href="#C3_43d_4dd9932549" y="231.84"/>
27811 </g>
27812 <g clip-path="url(#pe1c207cc63)">
27813 <use style="fill:#000080;" x="0" xlink:href="#C3_43e_3d4c8271bc" y="231.84"/>
27814 </g>
27815 <g clip-path="url(#pe1c207cc63)">
27816 <use style="fill:#0000df;" x="0" xlink:href="#C3_43f_ddae59b448" y="231.84"/>
27817 </g>
27818 <g clip-path="url(#pe1c207cc63)">
27819 <use style="fill:#800000;" x="0" xlink:href="#C3_440_776ee323fd" y="231.84"/>
27820 </g>
27821 <g clip-path="url(#pe1c207cc63)">
27822 <use style="fill:#00ddfe;" x="0" xlink:href="#C3_441_6c328f79df" y="231.84"/>
27823 </g>
27824 <g clip-path="url(#pe1c207cc63)">
27825 <use style="fill:#0000a8;" x="0" xlink:href="#C3_442_23ec588cca" y="231.84"/>
27826 </g>
27827 <g clip-path="url(#pe1c207cc63)">
27828 <use style="fill:#0000a4;" x="0" xlink:href="#C3_443_cf0381a0e3" y="231.84"/>
27829 </g>
27830 <g clip-path="url(#pe1c207cc63)">
27831 <use style="fill:#ad0000;" x="0" xlink:href="#C3_444_effcd7055e" y="231.84"/>
27832 </g>
27833 <g clip-path="url(#pe1c207cc63)">
27834 <use style="fill:#00008d;" x="0" xlink:href="#C3_445_1677143f6d" y="231.84"/>
27835 </g>
27836 <g clip-path="url(#pe1c207cc63)">
27837 <use style="fill:#000080;" x="0" xlink:href="#C3_446_bc5a15ef84" y="231.84"/>
27838 </g>
27839 <g clip-path="url(#pe1c207cc63)">
27840 <use style="fill:#000092;" x="0" xlink:href="#C3_447_224c3c14ed" y="231.84"/>
27841 </g>
27842 <g clip-path="url(#pe1c207cc63)">
27843 <use style="fill:#0051ff;" x="0" xlink:href="#C3_448_6a424df19f" y="231.84"/>
27844 </g>
27845 <g clip-path="url(#pe1c207cc63)">
27846 <use style="fill:#8aff6d;" x="0" xlink:href="#C3_449_6012e084e1" y="231.84"/>
27847 </g>
27848 <g clip-path="url(#pe1c207cc63)">
27849 <use style="fill:#0000c4;" x="0" xlink:href="#C3_44a_33e75f88a6" y="231.84"/>
27850 </g>
27851 <g clip-path="url(#pe1c207cc63)">
27852 <use style="fill:#0000ed;" x="0" xlink:href="#C3_44b_d7692f7e2b" y="231.84"/>
27853 </g>
27854 <g clip-path="url(#pe1c207cc63)">
27855 <use style="fill:#ff5200;" x="0" xlink:href="#C3_44c_4789e0e227" y="231.84"/>
27856 </g>
27857 <g clip-path="url(#pe1c207cc63)">
27858 <use style="fill:#9f0000;" x="0" xlink:href="#C3_44d_a1a46baa9b" y="231.84"/>
27859 </g>
27860 <g clip-path="url(#pe1c207cc63)">
27861 <use style="fill:#000084;" x="0" xlink:href="#C3_44e_35e79d5b6b" y="231.84"/>
27862 </g>
27863 <g clip-path="url(#pe1c207cc63)">
27864 <use style="fill:#0000da;" x="0" xlink:href="#C3_44f_afcf10bff5" y="231.84"/>
27865 </g>
27866 <g clip-path="url(#pe1c207cc63)">
27867 <use style="fill:#000080;" x="0" xlink:href="#C3_450_eb92d9ffd9" y="231.84"/>
27868 </g>
27869 <g clip-path="url(#pe1c207cc63)">
27870 <use style="fill:#adff49;" x="0" xlink:href="#C3_451_feebd46c74" y="231.84"/>
27871 </g>
27872 <g clip-path="url(#pe1c207cc63)">
27873 <use style="fill:#66ff90;" x="0" xlink:href="#C3_452_6bfa063957" y="231.84"/>
27874 </g>
27875 <g clip-path="url(#pe1c207cc63)">
27876 <use style="fill:#000084;" x="0" xlink:href="#C3_453_e307353147" y="231.84"/>
27877 </g>
27878 <g clip-path="url(#pe1c207cc63)">
27879 <use style="fill:#ff6f00;" x="0" xlink:href="#C3_454_4e5b455124" y="231.84"/>
27880 </g>
27881 <g clip-path="url(#pe1c207cc63)">
27882 <use style="fill:#000080;" x="0" xlink:href="#C3_455_a0d47f8903" y="231.84"/>
27883 </g>
27884 <g clip-path="url(#pe1c207cc63)">
27885 <use style="fill:#0021ff;" x="0" xlink:href="#C3_456_2eabbef3af" y="231.84"/>
27886 </g>
27887 <g clip-path="url(#pe1c207cc63)">
27888 <use style="fill:#ff2200;" x="0" xlink:href="#C3_457_7f7f6dfb6e" y="231.84"/>
27889 </g>
27890 <g clip-path="url(#pe1c207cc63)">
27891 <use style="fill:#0000e8;" x="0" xlink:href="#C3_458_27f2a79ed9" y="231.84"/>
27892 </g>
27893 <g clip-path="url(#pe1c207cc63)">
27894 <use style="fill:#000080;" x="0" xlink:href="#C3_459_d0d2bb94eb" y="231.84"/>
27895 </g>
27896 <g clip-path="url(#pe1c207cc63)">
27897 <use style="fill:#800000;" x="0" xlink:href="#C3_45a_45f10bd7f4" y="231.84"/>
27898 </g>
27899 <g clip-path="url(#pe1c207cc63)">
27900 <use style="fill:#00008d;" x="0" xlink:href="#C3_45b_ea59e1f8b4" y="231.84"/>
27901 </g>
27902 <g clip-path="url(#pe1c207cc63)">
27903 <use style="fill:#e7ff0f;" x="0" xlink:href="#C3_45c_72370c87f6" y="231.84"/>
27904 </g>
27905 <g clip-path="url(#pe1c207cc63)">
27906 <use style="fill:#000080;" x="0" xlink:href="#C3_45d_23587427e4" y="231.84"/>
27907 </g>
27908 <g clip-path="url(#pe1c207cc63)">
27909 <use style="fill:#0085ff;" x="0" xlink:href="#C3_45e_4406069e81" y="231.84"/>
27910 </g>
27911 <g clip-path="url(#pe1c207cc63)">
27912 <use style="fill:#ff1e00;" x="0" xlink:href="#C3_45f_c0735532a6" y="231.84"/>
27913 </g>
27914 <g clip-path="url(#pe1c207cc63)">
27915 <use style="fill:#d7ff1f;" x="0" xlink:href="#C3_460_86855477aa" y="231.84"/>
27916 </g>
27917 <g clip-path="url(#pe1c207cc63)">
27918 <use style="fill:#0088ff;" x="0" xlink:href="#C3_461_5b7b6febc4" y="231.84"/>
27919 </g>
27920 <g clip-path="url(#pe1c207cc63)">
27921 <use style="fill:#ad0000;" x="0" xlink:href="#C3_462_4500075a07" y="231.84"/>
27922 </g>
27923 <g clip-path="url(#pe1c207cc63)">
27924 <use style="fill:#000080;" x="0" xlink:href="#C3_463_60f7306911" y="231.84"/>
27925 </g>
27926 <g clip-path="url(#pe1c207cc63)">
27927 <use style="fill:#f60b00;" x="0" xlink:href="#C3_464_675f3ab564" y="231.84"/>
27928 </g>
27929 <g clip-path="url(#pe1c207cc63)">
27930 <use style="fill:#800000;" x="0" xlink:href="#C3_465_a630b58c9f" y="231.84"/>
27931 </g>
27932 <g clip-path="url(#pe1c207cc63)">
27933 <use style="fill:#0001ff;" x="0" xlink:href="#C3_466_a350da0502" y="231.84"/>
27934 </g>
27935 <g clip-path="url(#pe1c207cc63)">
27936 <use style="fill:#0000ff;" x="0" xlink:href="#C3_467_e78ba2d7d7" y="231.84"/>
27937 </g>
27938 <g clip-path="url(#pe1c207cc63)">
27939 <use style="fill:#0000a8;" x="0" xlink:href="#C3_468_f5255f3e1a" y="231.84"/>
27940 </g>
27941 <g clip-path="url(#pe1c207cc63)">
27942 <use style="fill:#43ffb4;" x="0" xlink:href="#C3_469_515c51fef7" y="231.84"/>
27943 </g>
27944 <g clip-path="url(#pe1c207cc63)">
27945 <use style="fill:#ffb600;" x="0" xlink:href="#C3_46a_ec2163bd9f" y="231.84"/>
27946 </g>
27947 <g clip-path="url(#pe1c207cc63)">
27948 <use style="fill:#000080;" x="0" xlink:href="#C3_46b_717ca673e3" y="231.84"/>
27949 </g>
27950 <g clip-path="url(#pe1c207cc63)">
27951 <use style="fill:#0021ff;" x="0" xlink:href="#C3_46c_d2e94600a2" y="231.84"/>
27952 </g>
27953 <g clip-path="url(#pe1c207cc63)">
27954 <use style="fill:#0000bf;" x="0" xlink:href="#C3_46d_d37bb4ebfc" y="231.84"/>
27955 </g>
27956 <g clip-path="url(#pe1c207cc63)">
27957 <use style="fill:#00009b;" x="0" xlink:href="#C3_46e_3c14599f1a" y="231.84"/>
27958 </g>
27959 <g clip-path="url(#pe1c207cc63)">
27960 <use style="fill:#80ff77;" x="0" xlink:href="#C3_46f_042e7b14de" y="231.84"/>
27961 </g>
27962 <g clip-path="url(#pe1c207cc63)">
27963 <use style="fill:#0011ff;" x="0" xlink:href="#C3_470_af9042ecb5" y="231.84"/>
27964 </g>
27965 <g clip-path="url(#pe1c207cc63)">
27966 <use style="fill:#007dff;" x="0" xlink:href="#C3_471_e8352b908a" y="231.84"/>
27967 </g>
27968 <g clip-path="url(#pe1c207cc63)">
27969 <use style="fill:#840000;" x="0" xlink:href="#C3_472_6786878fa7" y="231.84"/>
27970 </g>
27971 <g clip-path="url(#pe1c207cc63)">
27972 <use style="fill:#0021ff;" x="0" xlink:href="#C3_473_7cca28645c" y="231.84"/>
27973 </g>
27974 <g clip-path="url(#pe1c207cc63)">
27975 <use style="fill:#36ffc1;" x="0" xlink:href="#C3_474_7953e44eda" y="231.84"/>
27976 </g>
27977 <g clip-path="url(#pe1c207cc63)">
27978 <use style="fill:#ff3800;" x="0" xlink:href="#C3_475_daea220348" y="231.84"/>
27979 </g>
27980 <g clip-path="url(#pe1c207cc63)">
27981 <use style="fill:#000080;" x="0" xlink:href="#C3_476_8d7006ef29" y="231.84"/>
27982 </g>
27983 <g clip-path="url(#pe1c207cc63)">
27984 <use style="fill:#cd0000;" x="0" xlink:href="#C3_477_8db007fffb" y="231.84"/>
27985 </g>
27986 <g clip-path="url(#pe1c207cc63)">
27987 <use style="fill:#000084;" x="0" xlink:href="#C3_478_90584cfc6f" y="231.84"/>
27988 </g>
27989 <g clip-path="url(#pe1c207cc63)">
27990 <use style="fill:#ff8d00;" x="0" xlink:href="#C3_479_c69db034ea" y="231.84"/>
27991 </g>
27992 <g clip-path="url(#pe1c207cc63)">
27993 <use style="fill:#a80000;" x="0" xlink:href="#C3_47a_3aaa9f877b" y="231.84"/>
27994 </g>
27995 <g clip-path="url(#pe1c207cc63)">
27996 <use style="fill:#09f1ee;" x="0" xlink:href="#C3_47b_743799be85" y="231.84"/>
27997 </g>
27998 <g clip-path="url(#pe1c207cc63)">
27999 <use style="fill:#0064ff;" x="0" xlink:href="#C3_47c_d67fb2c8f3" y="231.84"/>
28000 </g>
28001 <g clip-path="url(#pe1c207cc63)">
28002 <use style="fill:#00c5ff;" x="0" xlink:href="#C3_47d_1632d32832" y="231.84"/>
28003 </g>
28004 <g clip-path="url(#pe1c207cc63)">
28005 <use style="fill:#000080;" x="0" xlink:href="#C3_47e_e3b05563df" y="231.84"/>
28006 </g>
28007 <g clip-path="url(#pe1c207cc63)">
28008 <use style="fill:#9b0000;" x="0" xlink:href="#C3_47f_291604087b" y="231.84"/>
28009 </g>
28010 <g clip-path="url(#pe1c207cc63)">
28011 <use style="fill:#000092;" x="0" xlink:href="#C3_480_fb3cdad000" y="231.84"/>
28012 </g>
28013 <g clip-path="url(#pe1c207cc63)">
28014 <use style="fill:#0041ff;" x="0" xlink:href="#C3_481_65cb173a14" y="231.84"/>
28015 </g>
28016 <g clip-path="url(#pe1c207cc63)">
28017 <use style="fill:#b7ff40;" x="0" xlink:href="#C3_482_4c2f1e0e23" y="231.84"/>
28018 </g>
28019 <g clip-path="url(#pe1c207cc63)">
28020 <use style="fill:#83ff73;" x="0" xlink:href="#C3_483_446460cced" y="231.84"/>
28021 </g>
28022 <g clip-path="url(#pe1c207cc63)">
28023 <use style="fill:#0071ff;" x="0" xlink:href="#C3_484_c8d1cb4261" y="231.84"/>
28024 </g>
28025 <g clip-path="url(#pe1c207cc63)">
28026 <use style="fill:#000092;" x="0" xlink:href="#C3_485_cd6812d379" y="231.84"/>
28027 </g>
28028 <g clip-path="url(#pe1c207cc63)">
28029 <use style="fill:#0059ff;" x="0" xlink:href="#C3_486_c10a0f5fe6" y="231.84"/>
28030 </g>
28031 <g clip-path="url(#pe1c207cc63)">
28032 <use style="fill:#000080;" x="0" xlink:href="#C3_487_4afaaf7d73" y="231.84"/>
28033 </g>
28034 <g clip-path="url(#pe1c207cc63)">
28035 <use style="fill:#800000;" x="0" xlink:href="#C3_488_f0a02db8bd" y="231.84"/>
28036 </g>
28037 <g clip-path="url(#pe1c207cc63)">
28038 <use style="fill:#ff3b00;" x="0" xlink:href="#C3_489_bcc1411260" y="231.84"/>
28039 </g>
28040 <g clip-path="url(#pe1c207cc63)">
28041 <use style="fill:#0029ff;" x="0" xlink:href="#C3_48a_4addf0930f" y="231.84"/>
28042 </g>
28043 <g clip-path="url(#pe1c207cc63)">
28044 <use style="fill:#cd0000;" x="0" xlink:href="#C3_48b_a134d225e8" y="231.84"/>
28045 </g>
28046 <g clip-path="url(#pe1c207cc63)">
28047 <use style="fill:#ffae00;" x="0" xlink:href="#C3_48c_86b38780ff" y="231.84"/>
28048 </g>
28049 <g clip-path="url(#pe1c207cc63)">
28050 <use style="fill:#70ff87;" x="0" xlink:href="#C3_48d_437ee38c79" y="231.84"/>
28051 </g>
28052 <g clip-path="url(#pe1c207cc63)">
28053 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_48e_e39f60dc7c" y="231.84"/>
28054 </g>
28055 <g clip-path="url(#pe1c207cc63)">
28056 <use style="fill:#000080;" x="0" xlink:href="#C3_48f_0bb15d0ae5" y="231.84"/>
28057 </g>
28058 <g clip-path="url(#pe1c207cc63)">
28059 <use style="fill:#00008d;" x="0" xlink:href="#C3_490_03e0d2532b" y="231.84"/>
28060 </g>
28061 <g clip-path="url(#pe1c207cc63)">
28062 <use style="fill:#800000;" x="0" xlink:href="#C3_491_5bae18572e" y="231.84"/>
28063 </g>
28064 <g clip-path="url(#pe1c207cc63)">
28065 <use style="fill:#ff6c00;" x="0" xlink:href="#C3_492_79d9cc29b9" y="231.84"/>
28066 </g>
28067 <g clip-path="url(#pe1c207cc63)">
28068 <use style="fill:#56ffa0;" x="0" xlink:href="#C3_493_79f57d5a78" y="231.84"/>
28069 </g>
28070 <g clip-path="url(#pe1c207cc63)">
28071 <use style="fill:#36ffc1;" x="0" xlink:href="#C3_494_e47a418ab7" y="231.84"/>
28072 </g>
28073 <g clip-path="url(#pe1c207cc63)">
28074 <use style="fill:#ff6800;" x="0" xlink:href="#C3_495_417072d669" y="231.84"/>
28075 </g>
28076 <g clip-path="url(#pe1c207cc63)">
28077 <use style="fill:#ff6f00;" x="0" xlink:href="#C3_496_4d079b9567" y="231.84"/>
28078 </g>
28079 <g clip-path="url(#pe1c207cc63)">
28080 <use style="fill:#0069ff;" x="0" xlink:href="#C3_497_4e43cb79e9" y="231.84"/>
28081 </g>
28082 <g clip-path="url(#pe1c207cc63)">
28083 <use style="fill:#ad0000;" x="0" xlink:href="#C3_498_83aa60d1cc" y="231.84"/>
28084 </g>
28085 <g clip-path="url(#pe1c207cc63)">
28086 <use style="fill:#890000;" x="0" xlink:href="#C3_499_1c0561faf7" y="231.84"/>
28087 </g>
28088 <g clip-path="url(#pe1c207cc63)">
28089 <use style="fill:#9f0000;" x="0" xlink:href="#C3_49a_9bb9a6fe34" y="231.84"/>
28090 </g>
28091 <g clip-path="url(#pe1c207cc63)">
28092 <use style="fill:#0049ff;" x="0" xlink:href="#C3_49b_3d64b1c231" y="231.84"/>
28093 </g>
28094 <g clip-path="url(#pe1c207cc63)">
28095 <use style="fill:#b60000;" x="0" xlink:href="#C3_49c_4847f36a5b" y="231.84"/>
28096 </g>
28097 <g clip-path="url(#pe1c207cc63)">
28098 <use style="fill:#000089;" x="0" xlink:href="#C3_49d_eb61013c2f" y="231.84"/>
28099 </g>
28100 <g clip-path="url(#pe1c207cc63)">
28101 <use style="fill:#f1fc06;" x="0" xlink:href="#C3_49e_e533807ff1" y="231.84"/>
28102 </g>
28103 <g clip-path="url(#pe1c207cc63)">
28104 <use style="fill:#000084;" x="0" xlink:href="#C3_49f_ee64b99883" y="231.84"/>
28105 </g>
28106 <g clip-path="url(#pe1c207cc63)">
28107 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_4a0_519d8ad743" y="231.84"/>
28108 </g>
28109 <g clip-path="url(#pe1c207cc63)">
28110 <use style="fill:#0061ff;" x="0" xlink:href="#C3_4a1_e453a219e8" y="231.84"/>
28111 </g>
28112 <g clip-path="url(#pe1c207cc63)">
28113 <use style="fill:#0054ff;" x="0" xlink:href="#C3_4a2_e8132d8b38" y="231.84"/>
28114 </g>
28115 <g clip-path="url(#pe1c207cc63)">
28116 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_4a3_ab405478e9" y="231.84"/>
28117 </g>
28118 <g clip-path="url(#pe1c207cc63)">
28119 <use style="fill:#00008d;" x="0" xlink:href="#C3_4a4_0b1080a25d" y="231.84"/>
28120 </g>
28121 <g clip-path="url(#pe1c207cc63)">
28122 <use style="fill:#adff49;" x="0" xlink:href="#C3_4a5_6cbd450680" y="231.84"/>
28123 </g>
28124 <g clip-path="url(#pe1c207cc63)">
28125 <use style="fill:#00009b;" x="0" xlink:href="#C3_4a6_4f5f0e4ca5" y="231.84"/>
28126 </g>
28127 <g clip-path="url(#pe1c207cc63)">
28128 <use style="fill:#840000;" x="0" xlink:href="#C3_4a7_a51f03550e" y="231.84"/>
28129 </g>
28130 <g clip-path="url(#pe1c207cc63)">
28131 <use style="fill:#000089;" x="0" xlink:href="#C3_4a8_3138511a35" y="231.84"/>
28132 </g>
28133 <g clip-path="url(#pe1c207cc63)">
28134 <use style="fill:#ffbd00;" x="0" xlink:href="#C3_4a9_30ebd993cb" y="231.84"/>
28135 </g>
28136 <g clip-path="url(#pe1c207cc63)">
28137 <use style="fill:#f8f500;" x="0" xlink:href="#C3_4aa_29a3571b4a" y="231.84"/>
28138 </g>
28139 <g clip-path="url(#pe1c207cc63)">
28140 <use style="fill:#5dff9a;" x="0" xlink:href="#C3_4ab_894232280e" y="231.84"/>
28141 </g>
28142 <g clip-path="url(#pe1c207cc63)">
28143 <use style="fill:#890000;" x="0" xlink:href="#C3_4ac_bd4d404c21" y="231.84"/>
28144 </g>
28145 <g clip-path="url(#pe1c207cc63)">
28146 <use style="fill:#ff3800;" x="0" xlink:href="#C3_4ad_bf0b7c2734" y="231.84"/>
28147 </g>
28148 <g clip-path="url(#pe1c207cc63)">
28149 <use style="fill:#d10000;" x="0" xlink:href="#C3_4ae_39d9ef2825" y="231.84"/>
28150 </g>
28151 <g clip-path="url(#pe1c207cc63)">
28152 <use style="fill:#df0000;" x="0" xlink:href="#C3_4af_13c3c46f81" y="231.84"/>
28153 </g>
28154 <g clip-path="url(#pe1c207cc63)">
28155 <use style="fill:#ff5900;" x="0" xlink:href="#C3_4b0_b62f863841" y="231.84"/>
28156 </g>
28157 <g clip-path="url(#pe1c207cc63)">
28158 <use style="fill:#f60b00;" x="0" xlink:href="#C3_4b1_3cb2fba44d" y="231.84"/>
28159 </g>
28160 <g clip-path="url(#pe1c207cc63)">
28161 <use style="fill:#73ff83;" x="0" xlink:href="#C3_4b2_5d0cdd5134" y="231.84"/>
28162 </g>
28163 <g clip-path="url(#pe1c207cc63)">
28164 <use style="fill:#0081ff;" x="0" xlink:href="#C3_4b3_98d71b3812" y="231.84"/>
28165 </g>
28166 <g clip-path="url(#pe1c207cc63)">
28167 <use style="fill:#000092;" x="0" xlink:href="#C3_4b4_831eb1480b" y="231.84"/>
28168 </g>
28169 <g clip-path="url(#pe1c207cc63)">
28170 <use style="fill:#840000;" x="0" xlink:href="#C3_4b5_9d56219ae7" y="231.84"/>
28171 </g>
28172 <g clip-path="url(#pe1c207cc63)">
28173 <use style="fill:#a40000;" x="0" xlink:href="#C3_4b6_56d8cd62be" y="231.84"/>
28174 </g>
28175 <g clip-path="url(#pe1c207cc63)">
28176 <use style="fill:#df0000;" x="0" xlink:href="#C3_4b7_0ee2958968" y="231.84"/>
28177 </g>
28178 <g clip-path="url(#pe1c207cc63)">
28179 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_4b8_f05e1c33f5" y="231.84"/>
28180 </g>
28181 <g clip-path="url(#pe1c207cc63)">
28182 <use style="fill:#0000c8;" x="0" xlink:href="#C3_4b9_221ea7f8e7" y="231.84"/>
28183 </g>
28184 <g clip-path="url(#pe1c207cc63)">
28185 <use style="fill:#06edf1;" x="0" xlink:href="#C3_4ba_72e06eaae5" y="231.84"/>
28186 </g>
28187 <g clip-path="url(#pe1c207cc63)">
28188 <use style="fill:#ff3800;" x="0" xlink:href="#C3_4bb_b99193a8f1" y="231.84"/>
28189 </g>
28190 <g clip-path="url(#pe1c207cc63)">
28191 <use style="fill:#0085ff;" x="0" xlink:href="#C3_4bc_233035a645" y="231.84"/>
28192 </g>
28193 <g clip-path="url(#pe1c207cc63)">
28194 <use style="fill:#cd0000;" x="0" xlink:href="#C3_4bd_f79c23d5d3" y="231.84"/>
28195 </g>
28196 <g clip-path="url(#pe1c207cc63)">
28197 <use style="fill:#0000bb;" x="0" xlink:href="#C3_4be_221b5abaaf" y="231.84"/>
28198 </g>
28199 <g clip-path="url(#pe1c207cc63)">
28200 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_4bf_ae59f1c87e" y="231.84"/>
28201 </g>
28202 <g clip-path="url(#pe1c207cc63)">
28203 <use style="fill:#000096;" x="0" xlink:href="#C3_4c0_c2b604832f" y="231.84"/>
28204 </g>
28205 <g clip-path="url(#pe1c207cc63)">
28206 <use style="fill:#0000e3;" x="0" xlink:href="#C3_4c1_b104ea0de6" y="231.84"/>
28207 </g>
28208 <g clip-path="url(#pe1c207cc63)">
28209 <use style="fill:#000092;" x="0" xlink:href="#C3_4c2_9778492585" y="231.84"/>
28210 </g>
28211 <g clip-path="url(#pe1c207cc63)">
28212 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_4c3_0e32cc5a95" y="231.84"/>
28213 </g>
28214 <g clip-path="url(#pe1c207cc63)">
28215 <use style="fill:#f10800;" x="0" xlink:href="#C3_4c4_19df706dff" y="231.84"/>
28216 </g>
28217 <g clip-path="url(#pe1c207cc63)">
28218 <use style="fill:#ff5d00;" x="0" xlink:href="#C3_4c5_b5747e3f97" y="231.84"/>
28219 </g>
28220 <g clip-path="url(#pe1c207cc63)">
28221 <use style="fill:#eeff09;" x="0" xlink:href="#C3_4c6_076a12c86f" y="231.84"/>
28222 </g>
28223 <g clip-path="url(#pe1c207cc63)">
28224 <use style="fill:#0000a4;" x="0" xlink:href="#C3_4c7_eaed21f643" y="231.84"/>
28225 </g>
28226 <g clip-path="url(#pe1c207cc63)">
28227 <use style="fill:#a7ff50;" x="0" xlink:href="#C3_4c8_c420eb9f56" y="231.84"/>
28228 </g>
28229 <g clip-path="url(#pe1c207cc63)">
28230 <use style="fill:#0000b2;" x="0" xlink:href="#C3_4c9_f58bdbfef7" y="231.84"/>
28231 </g>
28232 <g clip-path="url(#pe1c207cc63)">
28233 <use style="fill:#ffdb00;" x="0" xlink:href="#C3_4ca_73ba963bd0" y="231.84"/>
28234 </g>
28235 <g clip-path="url(#pe1c207cc63)">
28236 <use style="fill:#09f1ee;" x="0" xlink:href="#C3_4cb_5599618535" y="231.84"/>
28237 </g>
28238 <g clip-path="url(#pe1c207cc63)">
28239 <use style="fill:#800000;" x="0" xlink:href="#C3_4cc_62ef6ef0fb" y="231.84"/>
28240 </g>
28241 <g clip-path="url(#pe1c207cc63)">
28242 <use style="fill:#ff9800;" x="0" xlink:href="#C3_4cd_63c78b259e" y="231.84"/>
28243 </g>
28244 <g clip-path="url(#pe1c207cc63)">
28245 <use style="fill:#9f0000;" x="0" xlink:href="#C3_4ce_5344e56ba1" y="231.84"/>
28246 </g>
28247 <g clip-path="url(#pe1c207cc63)">
28248 <use style="fill:#00a5ff;" x="0" xlink:href="#C3_4cf_47260c91bd" y="231.84"/>
28249 </g>
28250 <g clip-path="url(#pe1c207cc63)">
28251 <use style="fill:#00c8ff;" x="0" xlink:href="#C3_4d0_c90e4f9ec1" y="231.84"/>
28252 </g>
28253 <g clip-path="url(#pe1c207cc63)">
28254 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_4d1_fe3f811637" y="231.84"/>
28255 </g>
28256 <g clip-path="url(#pe1c207cc63)">
28257 <use style="fill:#00e1fb;" x="0" xlink:href="#C3_4d2_43f6fa1777" y="231.84"/>
28258 </g>
28259 <g clip-path="url(#pe1c207cc63)">
28260 <use style="fill:#00009b;" x="0" xlink:href="#C3_4d3_53d706bff6" y="231.84"/>
28261 </g>
28262 <g clip-path="url(#pe1c207cc63)">
28263 <use style="fill:#800000;" x="0" xlink:href="#C3_4d4_99e2087274" y="231.84"/>
28264 </g>
28265 <g clip-path="url(#pe1c207cc63)">
28266 <use style="fill:#e1ff16;" x="0" xlink:href="#C3_4d5_df01fb0f9a" y="231.84"/>
28267 </g>
28268 <g clip-path="url(#pe1c207cc63)">
28269 <use style="fill:#a80000;" x="0" xlink:href="#C3_4d6_6ce210ebf7" y="231.84"/>
28270 </g>
28271 <g clip-path="url(#pe1c207cc63)">
28272 <use style="fill:#0000ad;" x="0" xlink:href="#C3_4d7_530c3b1314" y="231.84"/>
28273 </g>
28274 <g clip-path="url(#pe1c207cc63)">
28275 <use style="fill:#6dff8a;" x="0" xlink:href="#C3_4d8_d5b7f443ea" y="231.84"/>
28276 </g>
28277 <g clip-path="url(#pe1c207cc63)">
28278 <use style="fill:#3cffba;" x="0" xlink:href="#C3_4d9_f3cf0c44b2" y="231.84"/>
28279 </g>
28280 <g clip-path="url(#pe1c207cc63)">
28281 <use style="fill:#ff6f00;" x="0" xlink:href="#C3_4da_750c45c2cc" y="231.84"/>
28282 </g>
28283 <g clip-path="url(#pe1c207cc63)">
28284 <use style="fill:#ff1a00;" x="0" xlink:href="#C3_4db_17995e2677" y="231.84"/>
28285 </g>
28286 <g clip-path="url(#pe1c207cc63)">
28287 <use style="fill:#ff1a00;" x="0" xlink:href="#C3_4dc_877a29cc44" y="231.84"/>
28288 </g>
28289 <g clip-path="url(#pe1c207cc63)">
28290 <use style="fill:#890000;" x="0" xlink:href="#C3_4dd_fc592a99a4" y="231.84"/>
28291 </g>
28292 <g clip-path="url(#pe1c207cc63)">
28293 <use style="fill:#890000;" x="0" xlink:href="#C3_4de_3038d52cd3" y="231.84"/>
28294 </g>
28295 <g clip-path="url(#pe1c207cc63)">
28296 <use style="fill:#f10800;" x="0" xlink:href="#C3_4df_028c55c49a" y="231.84"/>
28297 </g>
28298 <g clip-path="url(#pe1c207cc63)">
28299 <use style="fill:#ff4e00;" x="0" xlink:href="#C3_4e0_152e27940f" y="231.84"/>
28300 </g>
28301 <g clip-path="url(#pe1c207cc63)">
28302 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_4e1_eca3feb9b5" y="231.84"/>
28303 </g>
28304 <g clip-path="url(#pe1c207cc63)">
28305 <use style="fill:#e7ff0f;" x="0" xlink:href="#C3_4e2_be2ee019d4" y="231.84"/>
28306 </g>
28307 <g clip-path="url(#pe1c207cc63)">
28308 <use style="fill:#ff4700;" x="0" xlink:href="#C3_4e3_8e3bafd8b4" y="231.84"/>
28309 </g>
28310 <g clip-path="url(#pe1c207cc63)">
28311 <use style="fill:#f4f802;" x="0" xlink:href="#C3_4e4_33a8db380f" y="231.84"/>
28312 </g>
28313 <g clip-path="url(#pe1c207cc63)">
28314 <use style="fill:#1cffdb;" x="0" xlink:href="#C3_4e5_f0d527d26d" y="231.84"/>
28315 </g>
28316 <g clip-path="url(#pe1c207cc63)">
28317 <use style="fill:#0000a8;" x="0" xlink:href="#C3_4e6_941cb7157a" y="231.84"/>
28318 </g>
28319 <g clip-path="url(#pe1c207cc63)">
28320 <use style="fill:#890000;" x="0" xlink:href="#C3_4e7_b693b3bdec" y="231.84"/>
28321 </g>
28322 <g clip-path="url(#pe1c207cc63)">
28323 <use style="fill:#0000b2;" x="0" xlink:href="#C3_4e8_bb95dce7af" y="231.84"/>
28324 </g>
28325 <g clip-path="url(#pe1c207cc63)">
28326 <use style="fill:#6dff8a;" x="0" xlink:href="#C3_4e9_cd2065d8e9" y="231.84"/>
28327 </g>
28328 <g clip-path="url(#pe1c207cc63)">
28329 <use style="fill:#0000b6;" x="0" xlink:href="#C3_4ea_33838c88fe" y="231.84"/>
28330 </g>
28331 <g clip-path="url(#pe1c207cc63)">
28332 <use style="fill:#b4ff43;" x="0" xlink:href="#C3_4eb_0f58803519" y="231.84"/>
28333 </g>
28334 <g clip-path="url(#pe1c207cc63)">
28335 <use style="fill:#0000ad;" x="0" xlink:href="#C3_4ec_2988893939" y="231.84"/>
28336 </g>
28337 <g clip-path="url(#pe1c207cc63)">
28338 <use style="fill:#d4ff23;" x="0" xlink:href="#C3_4ed_408f8494a1" y="231.84"/>
28339 </g>
28340 <g clip-path="url(#pe1c207cc63)">
28341 <use style="fill:#9b0000;" x="0" xlink:href="#C3_4ee_edc422d7d5" y="231.84"/>
28342 </g>
28343 <g clip-path="url(#pe1c207cc63)">
28344 <use style="fill:#bb0000;" x="0" xlink:href="#C3_4ef_93e135e98a" y="231.84"/>
28345 </g>
28346 <g clip-path="url(#pe1c207cc63)">
28347 <use style="fill:#ff2d00;" x="0" xlink:href="#C3_4f0_7104a84fdf" y="231.84"/>
28348 </g>
28349 <g clip-path="url(#pe1c207cc63)">
28350 <use style="fill:#97ff60;" x="0" xlink:href="#C3_4f1_ac46060acc" y="231.84"/>
28351 </g>
28352 <g clip-path="url(#pe1c207cc63)">
28353 <use style="fill:#77ff80;" x="0" xlink:href="#C3_4f2_3054e707ff" y="231.84"/>
28354 </g>
28355 <g clip-path="url(#pe1c207cc63)">
28356 <use style="fill:#02e8f4;" x="0" xlink:href="#C3_4f3_6ee9be7d1a" y="231.84"/>
28357 </g>
28358 <g clip-path="url(#pe1c207cc63)">
28359 <use style="fill:#06edf1;" x="0" xlink:href="#C3_4f4_4417ad737d" y="231.84"/>
28360 </g>
28361 <g clip-path="url(#pe1c207cc63)">
28362 <use style="fill:#baff3c;" x="0" xlink:href="#C3_4f5_68f39402cb" y="231.84"/>
28363 </g>
28364 <g clip-path="url(#pe1c207cc63)">
28365 <use style="fill:#800000;" x="0" xlink:href="#C3_4f6_8f57afe2cb" y="231.84"/>
28366 </g>
28367 <g clip-path="url(#pe1c207cc63)">
28368 <use style="fill:#ff3f00;" x="0" xlink:href="#C3_4f7_265defaf12" y="231.84"/>
28369 </g>
28370 <g clip-path="url(#pe1c207cc63)">
28371 <use style="fill:#ff9100;" x="0" xlink:href="#C3_4f8_c9e6dff151" y="231.84"/>
28372 </g>
28373 <g clip-path="url(#pe1c207cc63)">
28374 <use style="fill:#c1ff36;" x="0" xlink:href="#C3_4f9_975e5c40c6" y="231.84"/>
28375 </g>
28376 <g clip-path="url(#pe1c207cc63)">
28377 <use style="fill:#23ffd4;" x="0" xlink:href="#C3_4fa_ecfa00b8ed" y="231.84"/>
28378 </g>
28379 <g clip-path="url(#pe1c207cc63)">
28380 <use style="fill:#bb0000;" x="0" xlink:href="#C3_4fb_2a0f909f21" y="231.84"/>
28381 </g>
28382 <g clip-path="url(#pe1c207cc63)">
28383 <use style="fill:#9b0000;" x="0" xlink:href="#C3_4fc_74981ec638" y="231.84"/>
28384 </g>
28385 <g clip-path="url(#pe1c207cc63)">
28386 <use style="fill:#ff8200;" x="0" xlink:href="#C3_4fd_9b7ded7668" y="231.84"/>
28387 </g>
28388 <g clip-path="url(#pe1c207cc63)">
28389 <use style="fill:#b60000;" x="0" xlink:href="#C3_4fe_5d4e048bd7" y="231.84"/>
28390 </g>
28391 <g clip-path="url(#pe1c207cc63)">
28392 <use style="fill:#920000;" x="0" xlink:href="#C3_4ff_16504a3d9b" y="231.84"/>
28393 </g>
28394 <g clip-path="url(#pe1c207cc63)">
28395 <use style="fill:#e40000;" x="0" xlink:href="#C3_500_64b58e1155" y="231.84"/>
28396 </g>
28397 <g clip-path="url(#pe1c207cc63)">
28398 <use style="fill:#ff1a00;" x="0" xlink:href="#C3_501_fe5e041302" y="231.84"/>
28399 </g>
28400 <g clip-path="url(#pe1c207cc63)">
28401 <use style="fill:#0000bb;" x="0" xlink:href="#C3_502_0fb45561b6" y="231.84"/>
28402 </g>
28403 <g clip-path="url(#pe1c207cc63)">
28404 <use style="fill:#19ffde;" x="0" xlink:href="#C3_503_85033b33ee" y="231.84"/>
28405 </g>
28406 <g clip-path="url(#pe1c207cc63)">
28407 <use style="fill:#800000;" x="0" xlink:href="#C3_504_ee3ff2b1dc" y="231.84"/>
28408 </g>
28409 <g clip-path="url(#pe1c207cc63)">
28410 <use style="fill:#0000f6;" x="0" xlink:href="#C3_505_7f24db2d6e" y="231.84"/>
28411 </g>
28412 <g clip-path="url(#pe1c207cc63)">
28413 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_506_20681ede6d" y="231.84"/>
28414 </g>
28415 <g clip-path="url(#pe1c207cc63)">
28416 <use style="fill:#0000e8;" x="0" xlink:href="#C3_507_d310e8138c" y="231.84"/>
28417 </g>
28418 <g clip-path="url(#pe1c207cc63)">
28419 <use style="fill:#29ffce;" x="0" xlink:href="#C3_508_b31992645d" y="231.84"/>
28420 </g>
28421 <g clip-path="url(#pe1c207cc63)">
28422 <use style="fill:#0001ff;" x="0" xlink:href="#C3_509_f8955bc8b4" y="231.84"/>
28423 </g>
28424 <g clip-path="url(#pe1c207cc63)">
28425 <use style="fill:#77ff80;" x="0" xlink:href="#C3_50a_551ae7e341" y="231.84"/>
28426 </g>
28427 <g clip-path="url(#pe1c207cc63)">
28428 <use style="fill:#920000;" x="0" xlink:href="#C3_50b_45cc021639" y="231.84"/>
28429 </g>
28430 <g clip-path="url(#pe1c207cc63)">
28431 <use style="fill:#ffe600;" x="0" xlink:href="#C3_50c_664a1a397b" y="231.84"/>
28432 </g>
28433 <g clip-path="url(#pe1c207cc63)">
28434 <use style="fill:#0000c4;" x="0" xlink:href="#C3_50d_2fe9240551" y="231.84"/>
28435 </g>
28436 <g clip-path="url(#pe1c207cc63)">
28437 <use style="fill:#ffab00;" x="0" xlink:href="#C3_50e_7f01756ed2" y="231.84"/>
28438 </g>
28439 <g clip-path="url(#pe1c207cc63)">
28440 <use style="fill:#0000cd;" x="0" xlink:href="#C3_50f_6530f348b7" y="231.84"/>
28441 </g>
28442 <g clip-path="url(#pe1c207cc63)">
28443 <use style="fill:#ad0000;" x="0" xlink:href="#C3_510_aaa2e6a736" y="231.84"/>
28444 </g>
28445 <g clip-path="url(#pe1c207cc63)">
28446 <use style="fill:#ff3b00;" x="0" xlink:href="#C3_511_dc27f906d6" y="231.84"/>
28447 </g>
28448 <g clip-path="url(#pe1c207cc63)">
28449 <use style="fill:#e80000;" x="0" xlink:href="#C3_512_318f56526a" y="231.84"/>
28450 </g>
28451 <g clip-path="url(#pe1c207cc63)">
28452 <use style="fill:#0000df;" x="0" xlink:href="#C3_513_75cc0af294" y="231.84"/>
28453 </g>
28454 <g clip-path="url(#pe1c207cc63)">
28455 <use style="fill:#49ffad;" x="0" xlink:href="#C3_514_bb6d2beed2" y="231.84"/>
28456 </g>
28457 <g clip-path="url(#pe1c207cc63)">
28458 <use style="fill:#70ff87;" x="0" xlink:href="#C3_515_e93da87761" y="231.84"/>
28459 </g>
28460 <g clip-path="url(#pe1c207cc63)">
28461 <use style="fill:#800000;" x="0" xlink:href="#C3_516_7a5bee1189" y="231.84"/>
28462 </g>
28463 <g clip-path="url(#pe1c207cc63)">
28464 <use style="fill:#33ffc4;" x="0" xlink:href="#C3_517_575685a4c1" y="231.84"/>
28465 </g>
28466 <g clip-path="url(#pe1c207cc63)">
28467 <use style="fill:#ffab00;" x="0" xlink:href="#C3_518_bb54347df9" y="231.84"/>
28468 </g>
28469 <g clip-path="url(#pe1c207cc63)">
28470 <use style="fill:#ff9100;" x="0" xlink:href="#C3_519_b6a9380656" y="231.84"/>
28471 </g>
28472 <g clip-path="url(#pe1c207cc63)">
28473 <use style="fill:#60ff97;" x="0" xlink:href="#C3_51a_a62f0d6e0b" y="231.84"/>
28474 </g>
28475 <g clip-path="url(#pe1c207cc63)">
28476 <use style="fill:#0000cd;" x="0" xlink:href="#C3_51b_ce32a45d61" y="231.84"/>
28477 </g>
28478 <g clip-path="url(#pe1c207cc63)">
28479 <use style="fill:#f8f500;" x="0" xlink:href="#C3_51c_e3aeac762e" y="231.84"/>
28480 </g>
28481 <g clip-path="url(#pe1c207cc63)">
28482 <use style="fill:#ff3800;" x="0" xlink:href="#C3_51d_69ca0b1896" y="231.84"/>
28483 </g>
28484 <g clip-path="url(#pe1c207cc63)">
28485 <use style="fill:#0000e3;" x="0" xlink:href="#C3_51e_f2e7da1eb8" y="231.84"/>
28486 </g>
28487 <g clip-path="url(#pe1c207cc63)">
28488 <use style="fill:#d1ff26;" x="0" xlink:href="#C3_51f_0fc06b83b7" y="231.84"/>
28489 </g>
28490 <g clip-path="url(#pe1c207cc63)">
28491 <use style="fill:#df0000;" x="0" xlink:href="#C3_520_5e6c289b33" y="231.84"/>
28492 </g>
28493 <g clip-path="url(#pe1c207cc63)">
28494 <use style="fill:#94ff63;" x="0" xlink:href="#C3_521_fcc8a8500f" y="231.84"/>
28495 </g>
28496 <g clip-path="url(#pe1c207cc63)">
28497 <use style="fill:#f60b00;" x="0" xlink:href="#C3_522_2a625c2fee" y="231.84"/>
28498 </g>
28499 <g clip-path="url(#pe1c207cc63)">
28500 <use style="fill:#800000;" x="0" xlink:href="#C3_523_eee8de83e5" y="231.84"/>
28501 </g>
28502 <g clip-path="url(#pe1c207cc63)">
28503 <use style="fill:#6aff8d;" x="0" xlink:href="#C3_524_fb3ccbb79d" y="231.84"/>
28504 </g>
28505 <g clip-path="url(#pe1c207cc63)">
28506 <use style="fill:#bb0000;" x="0" xlink:href="#C3_525_7365830bab" y="231.84"/>
28507 </g>
28508 <g clip-path="url(#pe1c207cc63)">
28509 <use style="fill:#bb0000;" x="0" xlink:href="#C3_526_7b6db1d6e3" y="231.84"/>
28510 </g>
28511 <g clip-path="url(#pe1c207cc63)">
28512 <use style="fill:#800000;" x="0" xlink:href="#C3_527_3ba5dd8743" y="231.84"/>
28513 </g>
28514 <g clip-path="url(#pe1c207cc63)">
28515 <use style="fill:#56ffa0;" x="0" xlink:href="#C3_528_1b1e14725c" y="231.84"/>
28516 </g>
28517 <g clip-path="url(#pe1c207cc63)">
28518 <use style="fill:#a80000;" x="0" xlink:href="#C3_529_848fe72433" y="231.84"/>
28519 </g>
28520 <g clip-path="url(#pe1c207cc63)">
28521 <use style="fill:#960000;" x="0" xlink:href="#C3_52a_573b2e957d" y="231.84"/>
28522 </g>
28523 <g clip-path="url(#pe1c207cc63)">
28524 <use style="fill:#920000;" x="0" xlink:href="#C3_52b_3b2a4c8a89" y="231.84"/>
28525 </g>
28526 <g clip-path="url(#pe1c207cc63)">
28527 <use style="fill:#66ff90;" x="0" xlink:href="#C3_52c_14285c4fa3" y="231.84"/>
28528 </g>
28529 <g clip-path="url(#pe1c207cc63)">
28530 <use style="fill:#ff9c00;" x="0" xlink:href="#C3_52d_808390e89f" y="231.84"/>
28531 </g>
28532 <g clip-path="url(#pe1c207cc63)">
28533 <use style="fill:#e40000;" x="0" xlink:href="#C3_52e_7d45d7285d" y="231.84"/>
28534 </g>
28535 <g clip-path="url(#pe1c207cc63)">
28536 <use style="fill:#840000;" x="0" xlink:href="#C3_52f_fa04e028b9" y="231.84"/>
28537 </g>
28538 <g clip-path="url(#pe1c207cc63)">
28539 <use style="fill:#0000e8;" x="0" xlink:href="#C3_530_ec9eaea0d8" y="231.84"/>
28540 </g>
28541 <g clip-path="url(#pe1c207cc63)">
28542 <use style="fill:#63ff94;" x="0" xlink:href="#C3_531_c72a529500" y="231.84"/>
28543 </g>
28544 <g clip-path="url(#pe1c207cc63)">
28545 <use style="fill:#e80000;" x="0" xlink:href="#C3_532_eb44ccb921" y="231.84"/>
28546 </g>
28547 <g clip-path="url(#pe1c207cc63)">
28548 <use style="fill:#f60b00;" x="0" xlink:href="#C3_533_1706cf506f" y="231.84"/>
28549 </g>
28550 <g clip-path="url(#pe1c207cc63)">
28551 <use style="fill:#ff1300;" x="0" xlink:href="#C3_534_7a7220f039" y="231.84"/>
28552 </g>
28553 <g clip-path="url(#pe1c207cc63)">
28554 <use style="fill:#c7ff30;" x="0" xlink:href="#C3_535_213e7bc254" y="231.84"/>
28555 </g>
28556 <g clip-path="url(#pe1c207cc63)">
28557 <use style="fill:#0000e8;" x="0" xlink:href="#C3_536_727305c82e" y="231.84"/>
28558 </g>
28559 <g clip-path="url(#pe1c207cc63)">
28560 <use style="fill:#ad0000;" x="0" xlink:href="#C3_537_e4b49f5815" y="231.84"/>
28561 </g>
28562 <g clip-path="url(#pe1c207cc63)">
28563 <use style="fill:#ff3400;" x="0" xlink:href="#C3_538_84f669a930" y="231.84"/>
28564 </g>
28565 <g clip-path="url(#pe1c207cc63)">
28566 <use style="fill:#ff5200;" x="0" xlink:href="#C3_539_68864767b8" y="231.84"/>
28567 </g>
28568 <g clip-path="url(#pe1c207cc63)">
28569 <use style="fill:#0000e8;" x="0" xlink:href="#C3_53a_aeb51f1a96" y="231.84"/>
28570 </g>
28571 <g clip-path="url(#pe1c207cc63)">
28572 <use style="fill:#ffc800;" x="0" xlink:href="#C3_53b_16949f3139" y="231.84"/>
28573 </g>
28574 <g clip-path="url(#pe1c207cc63)">
28575 <use style="fill:#dbff1c;" x="0" xlink:href="#C3_53c_d152b0bfb7" y="231.84"/>
28576 </g>
28577 <g clip-path="url(#pe1c207cc63)">
28578 <use style="fill:#d60000;" x="0" xlink:href="#C3_53d_a7cd2be29a" y="231.84"/>
28579 </g>
28580 <g clip-path="url(#pe1c207cc63)">
28581 <use style="fill:#ffb200;" x="0" xlink:href="#C3_53e_949163b5ea" y="231.84"/>
28582 </g>
28583 <g clip-path="url(#pe1c207cc63)">
28584 <use style="fill:#890000;" x="0" xlink:href="#C3_53f_e38bd51134" y="231.84"/>
28585 </g>
28586 <g clip-path="url(#pe1c207cc63)">
28587 <use style="fill:#f4f802;" x="0" xlink:href="#C3_540_4d4363dc7c" y="231.84"/>
28588 </g>
28589 <g clip-path="url(#pe1c207cc63)">
28590 <use style="fill:#ffd000;" x="0" xlink:href="#C3_541_bdd37259ae" y="231.84"/>
28591 </g>
28592 <g clip-path="url(#pe1c207cc63)">
28593 <use style="fill:#ff8200;" x="0" xlink:href="#C3_542_b60ebdd406" y="231.84"/>
28594 </g>
28595 <g clip-path="url(#pe1c207cc63)">
28596 <use style="fill:#aaff4d;" x="0" xlink:href="#C3_543_dd068e1911" y="231.84"/>
28597 </g>
28598 <g clip-path="url(#pe1c207cc63)">
28599 <use style="fill:#8aff6d;" x="0" xlink:href="#C3_544_ce91aaf187" y="231.84"/>
28600 </g>
28601 <g clip-path="url(#pe1c207cc63)">
28602 <use style="fill:#bb0000;" x="0" xlink:href="#C3_545_b21084b0fb" y="231.84"/>
28603 </g>
28604 <g clip-path="url(#pe1c207cc63)">
28605 <use style="fill:#ffab00;" x="0" xlink:href="#C3_546_afb390e475" y="231.84"/>
28606 </g>
28607 <g clip-path="url(#pe1c207cc63)">
28608 <use style="fill:#800000;" x="0" xlink:href="#C3_547_741291a3c1" y="231.84"/>
28609 </g>
28610 <g clip-path="url(#pe1c207cc63)">
28611 <use style="fill:#0000fa;" x="0" xlink:href="#C3_548_a1dd69d8fb" y="231.84"/>
28612 </g>
28613 <g clip-path="url(#pe1c207cc63)">
28614 <use style="fill:#001dff;" x="0" xlink:href="#C3_549_18aa964946" y="231.84"/>
28615 </g>
28616 <g clip-path="url(#pe1c207cc63)">
28617 <use style="fill:#deff19;" x="0" xlink:href="#C3_54a_5c34146e3c" y="231.84"/>
28618 </g>
28619 <g clip-path="url(#pe1c207cc63)">
28620 <use style="fill:#8dff6a;" x="0" xlink:href="#C3_54b_822876c578" y="231.84"/>
28621 </g>
28622 <g clip-path="url(#pe1c207cc63)">
28623 <use style="fill:#0031ff;" x="0" xlink:href="#C3_54c_afd0ba5afe" y="231.84"/>
28624 </g>
28625 <g clip-path="url(#pe1c207cc63)">
28626 <use style="fill:#0011ff;" x="0" xlink:href="#C3_54d_40ee11bba1" y="231.84"/>
28627 </g>
28628 <g clip-path="url(#pe1c207cc63)">
28629 <use style="fill:#e40000;" x="0" xlink:href="#C3_54e_921fbdbdce" y="231.84"/>
28630 </g>
28631 <g clip-path="url(#pe1c207cc63)">
28632 <use style="fill:#9b0000;" x="0" xlink:href="#C3_54f_75551e0f46" y="231.84"/>
28633 </g>
28634 <g clip-path="url(#pe1c207cc63)">
28635 <use style="fill:#800000;" x="0" xlink:href="#C3_550_b510ab3686" y="231.84"/>
28636 </g>
28637 <g clip-path="url(#pe1c207cc63)">
28638 <use style="fill:#ff3400;" x="0" xlink:href="#C3_551_73d53e187e" y="231.84"/>
28639 </g>
28640 <g clip-path="url(#pe1c207cc63)">
28641 <use style="fill:#aaff4d;" x="0" xlink:href="#C3_552_fb41d12831" y="231.84"/>
28642 </g>
28643 <g clip-path="url(#pe1c207cc63)">
28644 <use style="fill:#f60b00;" x="0" xlink:href="#C3_553_18a16f5097" y="231.84"/>
28645 </g>
28646 <g clip-path="url(#pe1c207cc63)">
28647 <use style="fill:#b4ff43;" x="0" xlink:href="#C3_554_9a5a765d11" y="231.84"/>
28648 </g>
28649 <g clip-path="url(#pe1c207cc63)">
28650 <use style="fill:#d4ff23;" x="0" xlink:href="#C3_555_2b3d5c4a0c" y="231.84"/>
28651 </g>
28652 <g clip-path="url(#pe1c207cc63)">
28653 <use style="fill:#890000;" x="0" xlink:href="#C3_556_11f62a530e" y="231.84"/>
28654 </g>
28655 <g clip-path="url(#pe1c207cc63)">
28656 <use style="fill:#800000;" x="0" xlink:href="#C3_557_d241439e89" y="231.84"/>
28657 </g>
28658 <g clip-path="url(#pe1c207cc63)">
28659 <use style="fill:#c4ff33;" x="0" xlink:href="#C3_558_f7903a3332" y="231.84"/>
28660 </g>
28661 <g clip-path="url(#pe1c207cc63)">
28662 <use style="fill:#a7ff50;" x="0" xlink:href="#C3_559_66d3751afd" y="231.84"/>
28663 </g>
28664 <g clip-path="url(#pe1c207cc63)">
28665 <use style="fill:#0011ff;" x="0" xlink:href="#C3_55a_85b910e1b1" y="231.84"/>
28666 </g>
28667 <g clip-path="url(#pe1c207cc63)">
28668 <use style="fill:#920000;" x="0" xlink:href="#C3_55b_a307e6eaa3" y="231.84"/>
28669 </g>
28670 <g clip-path="url(#pe1c207cc63)">
28671 <use style="fill:#ffb200;" x="0" xlink:href="#C3_55c_b3f13cb11d" y="231.84"/>
28672 </g>
28673 <g clip-path="url(#pe1c207cc63)">
28674 <use style="fill:#e7ff0f;" x="0" xlink:href="#C3_55d_7acd573bf6" y="231.84"/>
28675 </g>
28676 <g clip-path="url(#pe1c207cc63)">
28677 <use style="fill:#cd0000;" x="0" xlink:href="#C3_55e_d9f39f294f" y="231.84"/>
28678 </g>
28679 <g clip-path="url(#pe1c207cc63)">
28680 <use style="fill:#0001ff;" x="0" xlink:href="#C3_55f_c0acf0d7ee" y="231.84"/>
28681 </g>
28682 <g clip-path="url(#pe1c207cc63)">
28683 <use style="fill:#b60000;" x="0" xlink:href="#C3_560_c2294eb3f5" y="231.84"/>
28684 </g>
28685 <g clip-path="url(#pe1c207cc63)">
28686 <use style="fill:#920000;" x="0" xlink:href="#C3_561_f6e5303d92" y="231.84"/>
28687 </g>
28688 <g clip-path="url(#pe1c207cc63)">
28689 <use style="fill:#9f0000;" x="0" xlink:href="#C3_562_749c2f5554" y="231.84"/>
28690 </g>
28691 <g clip-path="url(#pe1c207cc63)">
28692 <use style="fill:#ff2d00;" x="0" xlink:href="#C3_563_5bb61fef6b" y="231.84"/>
28693 </g>
28694 <g clip-path="url(#pe1c207cc63)">
28695 <use style="fill:#0004ff;" x="0" xlink:href="#C3_564_e50ebe8b29" y="231.84"/>
28696 </g>
28697 <g clip-path="url(#pe1c207cc63)">
28698 <use style="fill:#ff3f00;" x="0" xlink:href="#C3_565_79b3319919" y="231.84"/>
28699 </g>
28700 <g clip-path="url(#pe1c207cc63)">
28701 <use style="fill:#beff39;" x="0" xlink:href="#C3_566_0366c291b9" y="231.84"/>
28702 </g>
28703 <g clip-path="url(#pe1c207cc63)">
28704 <use style="fill:#c40000;" x="0" xlink:href="#C3_567_9e925f3ee2" y="231.84"/>
28705 </g>
28706 <g clip-path="url(#pe1c207cc63)">
28707 <use style="fill:#ff6400;" x="0" xlink:href="#C3_568_7b583cf8a0" y="231.84"/>
28708 </g>
28709 <g clip-path="url(#pe1c207cc63)">
28710 <use style="fill:#0014ff;" x="0" xlink:href="#C3_569_4087b89c17" y="231.84"/>
28711 </g>
28712 <g clip-path="url(#pe1c207cc63)">
28713 <use style="fill:#a80000;" x="0" xlink:href="#C3_56a_b7ae7b05bf" y="231.84"/>
28714 </g>
28715 <g clip-path="url(#pe1c207cc63)">
28716 <use style="fill:#ff6400;" x="0" xlink:href="#C3_56b_dcd8e9d310" y="231.84"/>
28717 </g>
28718 <g clip-path="url(#pe1c207cc63)">
28719 <use style="fill:#ad0000;" x="0" xlink:href="#C3_56c_8514531564" y="231.84"/>
28720 </g>
28721 <g clip-path="url(#pe1c207cc63)">
28722 <use style="fill:#ffc800;" x="0" xlink:href="#C3_56d_a64234fb79" y="231.84"/>
28723 </g>
28724 <g clip-path="url(#pe1c207cc63)">
28725 <use style="fill:#800000;" x="0" xlink:href="#C3_56e_f051e78f84" y="231.84"/>
28726 </g>
28727 <g clip-path="url(#pe1c207cc63)">
28728 <use style="fill:#960000;" x="0" xlink:href="#C3_56f_547580eac0" y="231.84"/>
28729 </g>
28730 <g clip-path="url(#pe1c207cc63)">
28731 <use style="fill:#ffa700;" x="0" xlink:href="#C3_570_a31a9c42da" y="231.84"/>
28732 </g>
28733 <g clip-path="url(#pe1c207cc63)">
28734 <use style="fill:#800000;" x="0" xlink:href="#C3_571_6c44ef3013" y="231.84"/>
28735 </g>
28736 <g clip-path="url(#pe1c207cc63)">
28737 <use style="fill:#890000;" x="0" xlink:href="#C3_572_2a454c387f" y="231.84"/>
28738 </g>
28739 <g clip-path="url(#pe1c207cc63)">
28740 <use style="fill:#ff5200;" x="0" xlink:href="#C3_573_796eb6a1d6" y="231.84"/>
28741 </g>
28742 <g clip-path="url(#pe1c207cc63)">
28743 <use style="fill:#f8f500;" x="0" xlink:href="#C3_574_1859314908" y="231.84"/>
28744 </g>
28745 <g clip-path="url(#pe1c207cc63)">
28746 <use style="fill:#bf0000;" x="0" xlink:href="#C3_575_2331117cc3" y="231.84"/>
28747 </g>
28748 <g clip-path="url(#pe1c207cc63)">
28749 <use style="fill:#ff9800;" x="0" xlink:href="#C3_576_c3e45b2feb" y="231.84"/>
28750 </g>
28751 <g clip-path="url(#pe1c207cc63)">
28752 <use style="fill:#d10000;" x="0" xlink:href="#C3_577_3e767eb009" y="231.84"/>
28753 </g>
28754 <g clip-path="url(#pe1c207cc63)">
28755 <use style="fill:#ff6f00;" x="0" xlink:href="#C3_578_4d8b2422bd" y="231.84"/>
28756 </g>
28757 <g clip-path="url(#pe1c207cc63)">
28758 <use style="fill:#d10000;" x="0" xlink:href="#C3_579_e075e39492" y="231.84"/>
28759 </g>
28760 <g clip-path="url(#pe1c207cc63)">
28761 <use style="fill:#e4ff13;" x="0" xlink:href="#C3_57a_7de6aa0113" y="231.84"/>
28762 </g>
28763 <g clip-path="url(#pe1c207cc63)">
28764 <use style="fill:#ebff0c;" x="0" xlink:href="#C3_57b_15cfd8f130" y="231.84"/>
28765 </g>
28766 <g clip-path="url(#pe1c207cc63)">
28767 <use style="fill:#ad0000;" x="0" xlink:href="#C3_57c_e14acee7fd" y="231.84"/>
28768 </g>
28769 <g clip-path="url(#pe1c207cc63)">
28770 <use style="fill:#0021ff;" x="0" xlink:href="#C3_57d_d53edbc008" y="231.84"/>
28771 </g>
28772 <g clip-path="url(#pe1c207cc63)">
28773 <use style="fill:#9b0000;" x="0" xlink:href="#C3_57e_c266f5b367" y="231.84"/>
28774 </g>
28775 <g clip-path="url(#pe1c207cc63)">
28776 <use style="fill:#f8f500;" x="0" xlink:href="#C3_57f_01e7bd9fb2" y="231.84"/>
28777 </g>
28778 <g clip-path="url(#pe1c207cc63)">
28779 <use style="fill:#ffa700;" x="0" xlink:href="#C3_580_36e9ae1b32" y="231.84"/>
28780 </g>
28781 <g clip-path="url(#pe1c207cc63)">
28782 <use style="fill:#800000;" x="0" xlink:href="#C3_581_cf08386059" y="231.84"/>
28783 </g>
28784 <g clip-path="url(#pe1c207cc63)">
28785 <use style="fill:#ff5200;" x="0" xlink:href="#C3_582_708199f174" y="231.84"/>
28786 </g>
28787 <g clip-path="url(#pe1c207cc63)">
28788 <use style="fill:#ffde00;" x="0" xlink:href="#C3_583_8f6ec266bf" y="231.84"/>
28789 </g>
28790 <g clip-path="url(#pe1c207cc63)">
28791 <use style="fill:#0029ff;" x="0" xlink:href="#C3_584_4407590e93" y="231.84"/>
28792 </g>
28793 <g clip-path="url(#pe1c207cc63)">
28794 <use style="fill:#ff1300;" x="0" xlink:href="#C3_585_9ad2c6e01e" y="231.84"/>
28795 </g>
28796 <g clip-path="url(#pe1c207cc63)">
28797 <use style="fill:#800000;" x="0" xlink:href="#C3_586_8e15b2edc9" y="231.84"/>
28798 </g>
28799 <g clip-path="url(#pe1c207cc63)">
28800 <use style="fill:#960000;" x="0" xlink:href="#C3_587_5cac9637ef" y="231.84"/>
28801 </g>
28802 <g clip-path="url(#pe1c207cc63)">
28803 <use style="fill:#ffae00;" x="0" xlink:href="#C3_588_98d9248326" y="231.84"/>
28804 </g>
28805 <g clip-path="url(#pe1c207cc63)">
28806 <use style="fill:#da0000;" x="0" xlink:href="#C3_589_0aa8935531" y="231.84"/>
28807 </g>
28808 <g clip-path="url(#pe1c207cc63)">
28809 <use style="fill:#ffc100;" x="0" xlink:href="#C3_58a_b8f6f698aa" y="231.84"/>
28810 </g>
28811 <g clip-path="url(#pe1c207cc63)">
28812 <use style="fill:#ffae00;" x="0" xlink:href="#C3_58b_ae6c8bcc40" y="231.84"/>
28813 </g>
28814 <g clip-path="url(#pe1c207cc63)">
28815 <use style="fill:#840000;" x="0" xlink:href="#C3_58c_234fe79361" y="231.84"/>
28816 </g>
28817 <g clip-path="url(#pe1c207cc63)">
28818 <use style="fill:#a40000;" x="0" xlink:href="#C3_58d_8bf84436b4" y="231.84"/>
28819 </g>
28820 <g clip-path="url(#pe1c207cc63)">
28821 <use style="fill:#800000;" x="0" xlink:href="#C3_58e_abc3064b93" y="231.84"/>
28822 </g>
28823 <g clip-path="url(#pe1c207cc63)">
28824 <use style="fill:#005dff;" x="0" xlink:href="#C3_58f_599ff7ad5a" y="231.84"/>
28825 </g>
28826 <g clip-path="url(#pe1c207cc63)">
28827 <use style="fill:#960000;" x="0" xlink:href="#C3_590_26e2800821" y="231.84"/>
28828 </g>
28829 <g clip-path="url(#pe1c207cc63)">
28830 <use style="fill:#006dff;" x="0" xlink:href="#C3_591_a2cde95222" y="231.84"/>
28831 </g>
28832 <g clip-path="url(#pe1c207cc63)">
28833 <use style="fill:#ffd000;" x="0" xlink:href="#C3_592_8e9f7f9d40" y="231.84"/>
28834 </g>
28835 <g clip-path="url(#pe1c207cc63)">
28836 <use style="fill:#890000;" x="0" xlink:href="#C3_593_ffe9e460be" y="231.84"/>
28837 </g>
28838 <g clip-path="url(#pe1c207cc63)">
28839 <use style="fill:#0039ff;" x="0" xlink:href="#C3_594_49539baed6" y="231.84"/>
28840 </g>
28841 <g clip-path="url(#pe1c207cc63)">
28842 <use style="fill:#0054ff;" x="0" xlink:href="#C3_595_30662059ed" y="231.84"/>
28843 </g>
28844 <g clip-path="url(#pe1c207cc63)">
28845 <use style="fill:#b60000;" x="0" xlink:href="#C3_596_76cae48581" y="231.84"/>
28846 </g>
28847 <g clip-path="url(#pe1c207cc63)">
28848 <use style="fill:#9b0000;" x="0" xlink:href="#C3_597_f3da03a64e" y="231.84"/>
28849 </g>
28850 <g clip-path="url(#pe1c207cc63)">
28851 <use style="fill:#ed0400;" x="0" xlink:href="#C3_598_d48c27ac79" y="231.84"/>
28852 </g>
28853 <g clip-path="url(#pe1c207cc63)">
28854 <use style="fill:#ff4700;" x="0" xlink:href="#C3_599_7742476920" y="231.84"/>
28855 </g>
28856 <g clip-path="url(#pe1c207cc63)">
28857 <use style="fill:#ff7300;" x="0" xlink:href="#C3_59a_0079940d4f" y="231.84"/>
28858 </g>
28859 <g clip-path="url(#pe1c207cc63)">
28860 <use style="fill:#ffa700;" x="0" xlink:href="#C3_59b_030ca01e3c" y="231.84"/>
28861 </g>
28862 <g clip-path="url(#pe1c207cc63)">
28863 <use style="fill:#840000;" x="0" xlink:href="#C3_59c_79e5578f98" y="231.84"/>
28864 </g>
28865 <g clip-path="url(#pe1c207cc63)">
28866 <use style="fill:#ffb200;" x="0" xlink:href="#C3_59d_a582792350" y="231.84"/>
28867 </g>
28868 <g clip-path="url(#pe1c207cc63)">
28869 <use style="fill:#9b0000;" x="0" xlink:href="#C3_59e_84c471d82b" y="231.84"/>
28870 </g>
28871 <g clip-path="url(#pe1c207cc63)">
28872 <use style="fill:#800000;" x="0" xlink:href="#C3_59f_4445bfe32d" y="231.84"/>
28873 </g>
28874 <g clip-path="url(#pe1c207cc63)">
28875 <use style="fill:#0054ff;" x="0" xlink:href="#C3_5a0_67245db461" y="231.84"/>
28876 </g>
28877 <g clip-path="url(#pe1c207cc63)">
28878 <use style="fill:#e80000;" x="0" xlink:href="#C3_5a1_a46806d019" y="231.84"/>
28879 </g>
28880 <g clip-path="url(#pe1c207cc63)">
28881 <use style="fill:#ff1e00;" x="0" xlink:href="#C3_5a2_fc626ea09e" y="231.84"/>
28882 </g>
28883 <g clip-path="url(#pe1c207cc63)">
28884 <use style="fill:#ff4300;" x="0" xlink:href="#C3_5a3_a0cab89afc" y="231.84"/>
28885 </g>
28886 <g clip-path="url(#pe1c207cc63)">
28887 <use style="fill:#ff9f00;" x="0" xlink:href="#C3_5a4_f232f3a079" y="231.84"/>
28888 </g>
28889 <g clip-path="url(#pe1c207cc63)">
28890 <use style="fill:#920000;" x="0" xlink:href="#C3_5a5_45ac8c4846" y="231.84"/>
28891 </g>
28892 <g clip-path="url(#pe1c207cc63)">
28893 <use style="fill:#840000;" x="0" xlink:href="#C3_5a6_812a2f881f" y="231.84"/>
28894 </g>
28895 <g clip-path="url(#pe1c207cc63)">
28896 <use style="fill:#ff4700;" x="0" xlink:href="#C3_5a7_b7580c8ac1" y="231.84"/>
28897 </g>
28898 <g clip-path="url(#pe1c207cc63)">
28899 <use style="fill:#840000;" x="0" xlink:href="#C3_5a8_bd0071b79f" y="231.84"/>
28900 </g>
28901 <g clip-path="url(#pe1c207cc63)">
28902 <use style="fill:#800000;" x="0" xlink:href="#C3_5a9_c197d927dc" y="231.84"/>
28903 </g>
28904 <g clip-path="url(#pe1c207cc63)">
28905 <use style="fill:#a80000;" x="0" xlink:href="#C3_5aa_0aa5942b00" y="231.84"/>
28906 </g>
28907 <g clip-path="url(#pe1c207cc63)">
28908 <use style="fill:#a80000;" x="0" xlink:href="#C3_5ab_775c8ac11d" y="231.84"/>
28909 </g>
28910 <g clip-path="url(#pe1c207cc63)">
28911 <use style="fill:#ff7a00;" x="0" xlink:href="#C3_5ac_15ca528d07" y="231.84"/>
28912 </g>
28913 <g clip-path="url(#pe1c207cc63)">
28914 <use style="fill:#ff6000;" x="0" xlink:href="#C3_5ad_1d41bce16b" y="231.84"/>
28915 </g>
28916 <g clip-path="url(#pe1c207cc63)">
28917 <use style="fill:#0061ff;" x="0" xlink:href="#C3_5ae_6b9ee24ec9" y="231.84"/>
28918 </g>
28919 <g clip-path="url(#pe1c207cc63)">
28920 <use style="fill:#ff4e00;" x="0" xlink:href="#C3_5af_8d9f0d19e1" y="231.84"/>
28921 </g>
28922 <g clip-path="url(#pe1c207cc63)">
28923 <use style="fill:#840000;" x="0" xlink:href="#C3_5b0_ea7766af88" y="231.84"/>
28924 </g>
28925 <g clip-path="url(#pe1c207cc63)">
28926 <use style="fill:#0059ff;" x="0" xlink:href="#C3_5b1_980469a1ee" y="231.84"/>
28927 </g>
28928 <g clip-path="url(#pe1c207cc63)">
28929 <use style="fill:#ff6000;" x="0" xlink:href="#C3_5b2_2ba948e3dc" y="231.84"/>
28930 </g>
28931 <g clip-path="url(#pe1c207cc63)">
28932 <use style="fill:#df0000;" x="0" xlink:href="#C3_5b3_3373df600a" y="231.84"/>
28933 </g>
28934 <g clip-path="url(#pe1c207cc63)">
28935 <use style="fill:#840000;" x="0" xlink:href="#C3_5b4_b913ec5a2a" y="231.84"/>
28936 </g>
28937 <g clip-path="url(#pe1c207cc63)">
28938 <use style="fill:#ff7700;" x="0" xlink:href="#C3_5b5_dcb0ccbf86" y="231.84"/>
28939 </g>
28940 <g clip-path="url(#pe1c207cc63)">
28941 <use style="fill:#800000;" x="0" xlink:href="#C3_5b6_e2b97e88a6" y="231.84"/>
28942 </g>
28943 <g clip-path="url(#pe1c207cc63)">
28944 <use style="fill:#ff6400;" x="0" xlink:href="#C3_5b7_361d666da3" y="231.84"/>
28945 </g>
28946 <g clip-path="url(#pe1c207cc63)">
28947 <use style="fill:#800000;" x="0" xlink:href="#C3_5b8_ed09543cdd" y="231.84"/>
28948 </g>
28949 <g clip-path="url(#pe1c207cc63)">
28950 <use style="fill:#c40000;" x="0" xlink:href="#C3_5b9_88fc217275" y="231.84"/>
28951 </g>
28952 <g clip-path="url(#pe1c207cc63)">
28953 <use style="fill:#ff2900;" x="0" xlink:href="#C3_5ba_779768cfee" y="231.84"/>
28954 </g>
28955 <g clip-path="url(#pe1c207cc63)">
28956 <use style="fill:#840000;" x="0" xlink:href="#C3_5bb_2d84a3dc87" y="231.84"/>
28957 </g>
28958 <g clip-path="url(#pe1c207cc63)">
28959 <use style="fill:#9f0000;" x="0" xlink:href="#C3_5bc_e2f4481f7c" y="231.84"/>
28960 </g>
28961 <g clip-path="url(#pe1c207cc63)">
28962 <use style="fill:#e80000;" x="0" xlink:href="#C3_5bd_ce6c030086" y="231.84"/>
28963 </g>
28964 <g clip-path="url(#pe1c207cc63)">
28965 <use style="fill:#df0000;" x="0" xlink:href="#C3_5be_bbb3f2943a" y="231.84"/>
28966 </g>
28967 <g clip-path="url(#pe1c207cc63)">
28968 <use style="fill:#800000;" x="0" xlink:href="#C3_5bf_93f2b2c73d" y="231.84"/>
28969 </g>
28970 <g clip-path="url(#pe1c207cc63)">
28971 <use style="fill:#800000;" x="0" xlink:href="#C3_5c0_4878d79b69" y="231.84"/>
28972 </g>
28973 <g clip-path="url(#pe1c207cc63)">
28974 <use style="fill:#ff4a00;" x="0" xlink:href="#C3_5c1_26727d34a3" y="231.84"/>
28975 </g>
28976 <g clip-path="url(#pe1c207cc63)">
28977 <use style="fill:#920000;" x="0" xlink:href="#C3_5c2_7262af8205" y="231.84"/>
28978 </g>
28979 <g clip-path="url(#pe1c207cc63)">
28980 <use style="fill:#0074ff;" x="0" xlink:href="#C3_5c3_ebfadb64c7" y="231.84"/>
28981 </g>
28982 <g clip-path="url(#pe1c207cc63)">
28983 <use style="fill:#800000;" x="0" xlink:href="#C3_5c4_f130046856" y="231.84"/>
28984 </g>
28985 <g clip-path="url(#pe1c207cc63)">
28986 <use style="fill:#ff2200;" x="0" xlink:href="#C3_5c5_073daef199" y="231.84"/>
28987 </g>
28988 <g clip-path="url(#pe1c207cc63)">
28989 <use style="fill:#e80000;" x="0" xlink:href="#C3_5c6_a60e549bb7" y="231.84"/>
28990 </g>
28991 <g clip-path="url(#pe1c207cc63)">
28992 <use style="fill:#9f0000;" x="0" xlink:href="#C3_5c7_5baf707fba" y="231.84"/>
28993 </g>
28994 <g clip-path="url(#pe1c207cc63)">
28995 <use style="fill:#800000;" x="0" xlink:href="#C3_5c8_bbcf41923e" y="231.84"/>
28996 </g>
28997 <g clip-path="url(#pe1c207cc63)">
28998 <use style="fill:#ff2d00;" x="0" xlink:href="#C3_5c9_8f04f4583e" y="231.84"/>
28999 </g>
29000 <g clip-path="url(#pe1c207cc63)">
29001 <use style="fill:#ff2500;" x="0" xlink:href="#C3_5ca_974b7a4991" y="231.84"/>
29002 </g>
29003 <g clip-path="url(#pe1c207cc63)">
29004 <use style="fill:#fa0f00;" x="0" xlink:href="#C3_5cb_f987fa990e" y="231.84"/>
29005 </g>
29006 <g clip-path="url(#pe1c207cc63)">
29007 <use style="fill:#ad0000;" x="0" xlink:href="#C3_5cc_5cbe5bbbd7" y="231.84"/>
29008 </g>
29009 <g clip-path="url(#pe1c207cc63)">
29010 <use style="fill:#800000;" x="0" xlink:href="#C3_5cd_456660d3ff" y="231.84"/>
29011 </g>
29012 <g clip-path="url(#pe1c207cc63)">
29013 <use style="fill:#00b5ff;" x="0" xlink:href="#C3_5ce_e4f7769c26" y="231.84"/>
29014 </g>
29015 <g clip-path="url(#pe1c207cc63)">
29016 <use style="fill:#d60000;" x="0" xlink:href="#C3_5cf_d88145817b" y="231.84"/>
29017 </g>
29018 <g clip-path="url(#pe1c207cc63)">
29019 <use style="fill:#00a5ff;" x="0" xlink:href="#C3_5d0_631dbe2884" y="231.84"/>
29020 </g>
29021 <g clip-path="url(#pe1c207cc63)">
29022 <use style="fill:#890000;" x="0" xlink:href="#C3_5d1_ff372e8e93" y="231.84"/>
29023 </g>
29024 <g clip-path="url(#pe1c207cc63)">
29025 <use style="fill:#800000;" x="0" xlink:href="#C3_5d2_f2b6adf216" y="231.84"/>
29026 </g>
29027 <g clip-path="url(#pe1c207cc63)">
29028 <use style="fill:#a40000;" x="0" xlink:href="#C3_5d3_9a5ccf5036" y="231.84"/>
29029 </g>
29030 <g clip-path="url(#pe1c207cc63)">
29031 <use style="fill:#ed0400;" x="0" xlink:href="#C3_5d4_d379424ede" y="231.84"/>
29032 </g>
29033 <g clip-path="url(#pe1c207cc63)">
29034 <use style="fill:#d60000;" x="0" xlink:href="#C3_5d5_33cadd8858" y="231.84"/>
29035 </g>
29036 <g clip-path="url(#pe1c207cc63)">
29037 <use style="fill:#00a1ff;" x="0" xlink:href="#C3_5d6_78e0a16a67" y="231.84"/>
29038 </g>
29039 <g clip-path="url(#pe1c207cc63)">
29040 <use style="fill:#890000;" x="0" xlink:href="#C3_5d7_dd24f90618" y="231.84"/>
29041 </g>
29042 <g clip-path="url(#pe1c207cc63)">
29043 <use style="fill:#a80000;" x="0" xlink:href="#C3_5d8_cf20b1187f" y="231.84"/>
29044 </g>
29045 <g clip-path="url(#pe1c207cc63)">
29046 <use style="fill:#b20000;" x="0" xlink:href="#C3_5d9_1d0e73ac75" y="231.84"/>
29047 </g>
29048 <g clip-path="url(#pe1c207cc63)">
29049 <use style="fill:#890000;" x="0" xlink:href="#C3_5da_a23705afea" y="231.84"/>
29050 </g>
29051 <g clip-path="url(#pe1c207cc63)">
29052 <use style="fill:#c80000;" x="0" xlink:href="#C3_5db_1132605c72" y="231.84"/>
29053 </g>
29054 <g clip-path="url(#pe1c207cc63)">
29055 <use style="fill:#960000;" x="0" xlink:href="#C3_5dc_b168791a14" y="231.84"/>
29056 </g>
29057 <g clip-path="url(#pe1c207cc63)">
29058 <use style="fill:#0091ff;" x="0" xlink:href="#C3_5dd_a989cd7b29" y="231.84"/>
29059 </g>
29060 <g clip-path="url(#pe1c207cc63)">
29061 <use style="fill:#ad0000;" x="0" xlink:href="#C3_5de_0c477b3ca0" y="231.84"/>
29062 </g>
29063 <g clip-path="url(#pe1c207cc63)">
29064 <use style="fill:#00a8ff;" x="0" xlink:href="#C3_5df_6478e58a6e" y="231.84"/>
29065 </g>
29066 <g clip-path="url(#pe1c207cc63)">
29067 <use style="fill:#00b9ff;" x="0" xlink:href="#C3_5e0_423c15d4a5" y="231.84"/>
29068 </g>
29069 <g clip-path="url(#pe1c207cc63)">
29070 <use style="fill:#00d1ff;" x="0" xlink:href="#C3_5e1_3f5a79965d" y="231.84"/>
29071 </g>
29072 <g clip-path="url(#pe1c207cc63)">
29073 <use style="fill:#16ffe1;" x="0" xlink:href="#C3_5e2_acd3dc41f3" y="231.84"/>
29074 </g>
29075 <g clip-path="url(#pe1c207cc63)">
29076 <use style="fill:#0cf5eb;" x="0" xlink:href="#C3_5e3_bc331687d6" y="231.84"/>
29077 </g>
29078 <g clip-path="url(#pe1c207cc63)">
29079 <use style="fill:#0ff9e7;" x="0" xlink:href="#C3_5e4_ebd734ece9" y="231.84"/>
29080 </g>
29081 <g clip-path="url(#pe1c207cc63)">
29082 <use style="fill:#16ffe1;" x="0" xlink:href="#C3_5e5_815d86241d" y="231.84"/>
29083 </g>
29084 <g clip-path="url(#pe1c207cc63)">
29085 <use style="fill:#29ffce;" x="0" xlink:href="#C3_5e6_b86b98675e" y="231.84"/>
29086 </g>
29087 <g clip-path="url(#pe1c207cc63)">
29088 <use style="fill:#56ffa0;" x="0" xlink:href="#C3_5e7_aa8b13c2d5" y="231.84"/>
29089 </g>
29090 <g clip-path="url(#pe1c207cc63)">
29091 <use style="fill:#53ffa4;" x="0" xlink:href="#C3_5e8_0c82f21bee" y="231.84"/>
29092 </g>
29093 <g clip-path="url(#pe1c207cc63)">
29094 <use style="fill:#5aff9d;" x="0" xlink:href="#C3_5e9_76e4829436" y="231.84"/>
29095 </g>
29096 <g clip-path="url(#pe1c207cc63)">
29097 <use style="fill:#66ff90;" x="0" xlink:href="#C3_5ea_46b080b323" y="231.84"/>
29098 </g>
29099 <g clip-path="url(#pe1c207cc63)">
29100 <use style="fill:#9dff5a;" x="0" xlink:href="#C3_5eb_d0c965afe1" y="231.84"/>
29101 </g>
29102 <g clip-path="url(#pe1c207cc63)">
29103 <use style="fill:#9dff5a;" x="0" xlink:href="#C3_5ec_6f58337bf3" y="231.84"/>
29104 </g>
29105 <g clip-path="url(#pe1c207cc63)">
29106 <use style="fill:#a7ff50;" x="0" xlink:href="#C3_5ed_6967e37edd" y="231.84"/>
29107 </g>
29108 <g clip-path="url(#pe1c207cc63)">
29109 <use style="fill:#e4ff13;" x="0" xlink:href="#C3_5ee_2659090b9d" y="231.84"/>
29110 </g>
29111 <g clip-path="url(#pe1c207cc63)">
29112 <use style="fill:#ebff0c;" x="0" xlink:href="#C3_5ef_884432928c" y="231.84"/>
29113 </g>
29114 <g clip-path="url(#pe1c207cc63)">
29115 <use style="fill:#ffb900;" x="0" xlink:href="#C3_5f0_5b277eec89" y="231.84"/>
29116 </g>
29117 </g>
29118 </g>
29119 </g>
29120 <defs>
29121 <clipPath id="pe1c207cc63">
29122 <rect height="217.44" width="334.8" x="7.2" y="7.2"/>
29123 </clipPath>
29124 </defs>
29125 </svg>
29126
29127 </div>
29128 </div>
29129 </div>
29130 </div>
29131 </div>
29132 <div class="text_cell_render border-box-sizing rendered_html">
29133 <h1>
29134 IPython: a powerful interactive environment
29135 </h1>
29136 </div>
29137 <div class="text_cell_render border-box-sizing rendered_html">
29138 <p>A key component of the everyday workflow of most scientific computing environments is a good interactive environment, that is, a system in which you can execute small amounts of code and view the results immediately, combining both printing out data and opening graphical visualizations. All modern systems for scientific computing, commercial and open source, include such functionality.<br />
29139 </p>
29140 <p>Out of the box, Python also offers a simple interactive shell with very limited capabilities. But just like the scientific community built Numpy to provide arrays suited for scientific work (since Pytyhon's lists aren't optimal for this task), it has also developed an interactive environment much more sophisticated than the built-in one. The <a href="http://ipython.org">IPython project</a> offers a set of tools to make productive use of the Python language, all the while working interactively and with immedate feedback on your results. The basic tools that IPython provides are:</p>
29141 <ol>
29142 <li>
29143 <p>A powerful terminal shell, with many features designed to increase the fluidity and productivity of everyday scientific workflows, including:</p>
29144 <ul>
29145 <li>rich introspection of all objects and variables including easy access to the source code of any function</li>
29146 <li>powerful and extensible tab completion of variables and filenames,</li>
29147 <li>tight integration with matplotlib, supporting interactive figures that don't block the terminal,</li>
29148 <li>direct access to the filesystem and underlying operating system,</li>
29149 <li>an extensible system for shell-like commands called 'magics' that reduce the work needed to perform many common tasks,</li>
29150 <li>tools for easily running, timing, profiling and debugging your codes,</li>
29151 <li>syntax highlighted error messages with much more detail than the default Python ones,</li>
29152 <li>logging and access to all previous history of inputs, including across sessions</li>
29153 </ul>
29154 </li>
29155 <li>
29156 <p>A Qt console that provides the look and feel of a terminal, but adds support for inline figures, graphical calltips, a persistent session that can survive crashes (even segfaults) of the kernel process, and more.</p>
29157 </li>
29158 <li>
29159 <p>A web-based notebook that can execute code and also contain rich text and figures, mathematical equations and arbitrary HTML. This notebook presents a document-like view with cells where code is executed but that can be edited in-place, reordered, mixed with explanatory text and figures, etc.</p>
29160 </li>
29161 <li>
29162 <p>A high-performance, low-latency system for parallel computing that supports the control of a cluster of IPython engines communicating over a network, with optimizations that minimize unnecessary copying of large objects (especially numpy arrays).</p>
29163 </li>
29164 </ol>
29165 <p>We will now discuss the highlights of the tools 1-3 above so that you can make them an effective part of your workflow. The topic of parallel computing is beyond the scope of this document, but we encourage you to read the extensive <a href="http://ipython.org/ipython-doc/rel-0.12.1/parallel/index.html">documentation</a> and <a href="http://minrk.github.com/scipy-tutorial-2011/">tutorials</a> on this available on the IPython website.</p>
29166 </div>
29167 <div class="text_cell_render border-box-sizing rendered_html">
29168 <h2>
29169 The IPython terminal
29170 </h2>
29171 </div>
29172 <div class="text_cell_render border-box-sizing rendered_html">
29173 <p>You can start IPython at the terminal simply by typing:</p>
29174 <pre><code>$ ipython
29175 </code></pre>
29176 <p>which will provide you some basic information about how to get started and will then open a prompt labeled <code>In [1]:</code> for you to start typing. Here we type $2^{64}$ and Python computes the result for us in exact arithmetic, returning it as <code>Out[1]</code>:</p>
29177 <pre><code>$ ipython
29178 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
29179 Type "copyright", "credits" or "license" for more information.
29180
29181 IPython 0.13.dev -- An enhanced Interactive Python.
29182 ? -&gt; Introduction and overview of IPython's features.
29183 %quickref -&gt; Quick reference.
29184 help -&gt; Python's own help system.
29185 object? -&gt; Details about 'object', use 'object??' for extra details.
29186
29187 In [1]: 2**64
29188 Out[1]: 18446744073709551616L
29189 </code></pre>
29190 <p>The first thing you should know about IPython is that all your inputs and outputs are saved. There are two variables named <code>In</code> and <code>Out</code> which are filled as you work with your results. Furthermore, all outputs are also saved to auto-created variables of the form <code>_NN</code> where <code>NN</code> is the prompt number, and inputs to <code>_iNN</code>. This allows you to recover quickly the result of a prior computation by referring to its number even if you forgot to store it as a variable. For example, later on in the above session you can do:</p>
29191 <pre><code>In [6]: print _1
29192 18446744073709551616
29193 </code></pre>
29194 </div>
29195 <div class="text_cell_render border-box-sizing rendered_html">
29196 <p>We strongly recommend that you take a few minutes to read at least the basic introduction provided by the <code>?</code> command, and keep in mind that the <code>%quickref</code> command at all times can be used as a quick reference "cheat sheet" of the most frequently used features of IPython.</p>
29197 <p>At the IPython prompt, any valid Python code that you type will be executed similarly to the default Python shell (though often with more informative feedback). But since IPython is a <em>superset</em> of the default Python shell; let's have a brief look at some of its additional functionality.</p>
29198 </div>
29199 <div class="text_cell_render border-box-sizing rendered_html">
29200 <p><strong>Object introspection</strong></p>
29201 <p>A simple <code>?</code> command provides a general introduction to IPython, but as indicated in the banner above, you can use the <code>?</code> syntax to ask for details about any object. For example, if we type <code>_1?</code>, IPython will print the following details about this variable:</p>
29202 <pre><code>In [14]: _1?
29203 Type: long
29204 Base Class: &lt;type 'long'&gt;
29205 String Form:18446744073709551616
29206 Namespace: Interactive
29207 Docstring:
29208 long(x[, base]) -&gt; integer
29209
29210 Convert a string or number to a long integer, if possible. A floating
29211
29212 [etc... snipped for brevity]
29213 </code></pre>
29214 <p>If you add a second <code>?</code> and for any oobject <code>x</code> type <code>x??</code>, IPython will try to provide an even more detailed analsysi of the object, including its syntax-highlighted source code when it can be found. It's possible that <code>x??</code> returns the same information as <code>x?</code>, but in many cases <code>x??</code> will indeed provide additional details.</p>
29215 <p>Finally, the <code>?</code> syntax is also useful to search <em>namespaces</em> with wildcards. Suppose you are wondering if there is any function in Numpy that may do text-related things; with <code>np.*txt*?</code>, IPython will print all the names in the <code>np</code> namespace (our Numpy shorthand) that have 'txt' anywhere in their name:</p>
29216 <pre><code>In [17]: np.*txt*?
29217 np.genfromtxt
29218 np.loadtxt
29219 np.mafromtxt
29220 np.ndfromtxt
29221 np.recfromtxt
29222 np.savetxt
29223 </code></pre>
29224 </div>
29225 <div class="text_cell_render border-box-sizing rendered_html">
29226 <p><strong>Tab completion</strong></p>
29227 <p>IPython makes the tab key work extra hard for you as a way to rapidly inspect objects and libraries. Whenever you have typed something at the prompt, by hitting the <code>&lt;tab&gt;</code> key IPython will try to complete the rest of the line. For this, IPython will analyze the text you had so far and try to search for Python data or files that may match the context you have already provided.</p>
29228 <p>For example, if you type <code>np.load</code> and hit the <tab> key, you'll see:</p>
29229 <pre><code>In [21]: np.load&lt;TAB HERE&gt;
29230 np.load np.loads np.loadtxt
29231 </code></pre>
29232 <p>so you can quickly find all the load-related functionality in numpy. Tab completion works even for function arguments, for example consider this function definition:</p>
29233 <pre><code>In [20]: def f(x, frobinate=False):
29234 ....: if frobinate:
29235 ....: return x**2
29236 ....:
29237 </code></pre>
29238 <p>If you now use the <code>&lt;tab&gt;</code> key after having typed 'fro' you'll get all valid Python completions, but those marked with <code>=</code> at the end are known to be keywords of your function:</p>
29239 <pre><code>In [21]: f(2, fro&lt;TAB HERE&gt;
29240 frobinate= frombuffer fromfunction frompyfunc fromstring
29241 from fromfile fromiter fromregex frozenset
29242 </code></pre>
29243 <p>at this point you can add the <code>b</code> letter and hit <code>&lt;tab&gt;</code> once more, and IPython will finish the line for you:</p>
29244 <pre><code>In [21]: f(2, frobinate=
29245 </code></pre>
29246 <p>As a beginner, simply get into the habit of using <code>&lt;tab&gt;</code> after most objects; it should quickly become second nature as you will see how helps keep a fluid workflow and discover useful information. Later on you can also customize this behavior by writing your own completion code, if you so desire.</p>
29247 </div>
29248 <div class="text_cell_render border-box-sizing rendered_html">
29249 <p><strong>Matplotlib integration</strong></p>
29250 <p>One of the most useful features of IPython for scientists is its tight integration with matplotlib: at the terminal IPython lets you open matplotlib figures without blocking your typing (which is what happens if you try to do the same thing at the default Python shell), and in the Qt console and notebook you can even view your figures embedded in your workspace next to the code that created them.</p>
29251 <p>The matplotlib support can be either activated when you start IPython by passing the <code>--pylab</code> flag, or at any point later in your session by using the <code>%pylab</code> command. If you start IPython with <code>--pylab</code>, you'll see something like this (note the extra message about pylab):</p>
29252 <pre><code>$ ipython --pylab
29253 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
29254 Type "copyright", "credits" or "license" for more information.
29255
29256 IPython 0.13.dev -- An enhanced Interactive Python.
29257 ? -&gt; Introduction and overview of IPython's features.
29258 %quickref -&gt; Quick reference.
29259 help -&gt; Python's own help system.
29260 object? -&gt; Details about 'object', use 'object??' for extra details.
29261
29262 Welcome to pylab, a matplotlib-based Python environment [backend: Qt4Agg].
29263 For more information, type 'help(pylab)'.
29264
29265 In [1]:
29266 </code></pre>
29267 <p>Furthermore, IPython will import <code>numpy</code> with the <code>np</code> shorthand, <code>matplotlib.pyplot</code> as <code>plt</code>, and it will also load all of the numpy and pyplot top-level names so that you can directly type something like:</p>
29268 <pre><code>In [1]: x = linspace(0, 2*pi, 200)
29269
29270 In [2]: plot(x, sin(x))
29271 Out[2]: [&lt;matplotlib.lines.Line2D at 0x9e7c16c&gt;]
29272 </code></pre>
29273 <p>instead of having to prefix each call with its full signature (as we have been doing in the examples thus far):</p>
29274 <pre><code>In [3]: x = np.linspace(0, 2*np.pi, 200)
29275
29276 In [4]: plt.plot(x, np.sin(x))
29277 Out[4]: [&lt;matplotlib.lines.Line2D at 0x9e900ac&gt;]
29278 </code></pre>
29279 <p>This shorthand notation can be a huge time-saver when working interactively (it's a few characters but you are likely to type them hundreds of times in a session). But we should note that as you develop persistent scripts and notebooks meant for reuse, it's best to get in the habit of using the longer notation (known as <em>fully qualified names</em> as it's clearer where things come from and it makes for more robust, readable and maintainable code in the long run).</p>
29280 </div>
29281 <div class="text_cell_render border-box-sizing rendered_html">
29282 <p><strong>Access to the operating system and files</strong></p>
29283 <p>In IPython, you can type <code>ls</code> to see your files or <code>cd</code> to change directories, just like you would at a regular system prompt:</p>
29284 <pre><code>In [2]: cd tests
29285 /home/fperez/ipython/nbconvert/tests
29286
29287 In [3]: ls test.*
29288 test.aux test.html test.ipynb test.log test.out test.pdf test.rst test.tex
29289 </code></pre>
29290 <p>Furthermore, if you use the <code>!</code> at the beginning of a line, any commands you pass afterwards go directly to the operating system:</p>
29291 <pre><code>In [4]: !echo "Hello IPython"
29292 Hello IPython
29293 </code></pre>
29294 <p>IPython offers a useful twist in this feature: it will substitute in the command the value of any <em>Python</em> variable you may have if you prepend it with a <code>$</code> sign:</p>
29295 <pre><code>In [5]: message = 'IPython interpolates from Python to the shell'
29296
29297 In [6]: !echo $message
29298 IPython interpolates from Python to the shell
29299 </code></pre>
29300 <p>This feature can be extremely useful, as it lets you combine the power and clarity of Python for complex logic with the immediacy and familiarity of many shell commands. Additionally, if you start the line with <em>two</em> <code>$$</code> signs, the output of the command will be automatically captured as a list of lines, e.g.:</p>
29301 <pre><code>In [10]: !!ls test.*
29302 Out[10]:
29303 ['test.aux',
29304 'test.html',
29305 'test.ipynb',
29306 'test.log',
29307 'test.out',
29308 'test.pdf',
29309 'test.rst',
29310 'test.tex']
29311 </code></pre>
29312 <p>As explained above, you can now use this as the variable <code>_10</code>. If you directly want to capture the output of a system command to a Python variable, you can use the syntax <code>=!</code>:</p>
29313 <pre><code>In [11]: testfiles =! ls test.*
29314
29315 In [12]: print testfiles
29316 ['test.aux', 'test.html', 'test.ipynb', 'test.log', 'test.out', 'test.pdf', 'test.rst', 'test.tex']
29317 </code></pre>
29318 <p>Finally, the special <code>%alias</code> command lets you define names that are shorthands for system commands, so that you can type them without having to prefix them via <code>!</code> explicitly (for example, <code>ls</code> is an alias that has been predefined for you at startup).</p>
29319 </div>
29320 <div class="text_cell_render border-box-sizing rendered_html">
29321 <p><strong>Magic commands</strong></p>
29322 <p>IPython has a system for special commands, called 'magics', that let you control IPython itself and perform many common tasks with a more shell-like syntax: it uses spaces for delimiting arguments, flags can be set with dashes and all arguments are treated as strings, so no additional quoting is required. This kind of syntax is invalid in the Python language but very convenient for interactive typing (less parentheses, commans and quoting everywhere); IPython distinguishes the two by detecting lines that start with the <code>%</code> character.<br />
29323 </p>
29324 <p>You can learn more about the magic system by simply typing <code>%magic</code> at the prompt, which will give you a short description plus the documentation on <em>all</em> available magics. If you want to see only a listing of existing magics, you can use <code>%lsmagic</code>:</p>
29325 <pre><code>In [4]: lsmagic
29326 Available magic functions:
29327 %alias %autocall %autoindent %automagic %bookmark %c %cd %colors %config %cpaste
29328 %debug %dhist %dirs %doctest_mode %ds %ed %edit %env %gui %hist %history
29329 %install_default_config %install_ext %install_profiles %load_ext %loadpy %logoff %logon
29330 %logstart %logstate %logstop %lsmagic %macro %magic %notebook %page %paste %pastebin
29331 %pd %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pop %popd %pprint %precision %profile
29332 %prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall %rehashx
29333 %reload_ext %rep %rerun %reset %reset_selective %run %save %sc %stop %store %sx %tb
29334 %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
29335
29336 Automagic is ON, % prefix NOT needed for magic functions.
29337 </code></pre>
29338 <p>Note how the example above omitted the eplicit <code>%</code> marker and simply uses <code>lsmagic</code>. As long as the 'automagic' feature is on (which it is by default), you can omit the <code>%</code> marker as long as there is no ambiguity with a Python variable of the same name.</p>
29339 </div>
29340 <div class="text_cell_render border-box-sizing rendered_html">
29341 <p><strong>Running your code</strong></p>
29342 <p>While it's easy to type a few lines of code in IPython, for any long-lived work you should keep your codes in Python scripts (or in IPython notebooks, see below). Consider that you have a script, in this case trivially simple for the sake of brevity, named <code>simple.py</code>:</p>
29343 <pre><code>In [12]: !cat simple.py
29344 import numpy as np
29345
29346 x = np.random.normal(size=100)
29347
29348 print 'First elment of x:', x[0]
29349 </code></pre>
29350 <p>The typical workflow with IPython is to use the <code>%run</code> magic to execute your script (you can omit the .py extension if you want). When you run it, the script will execute just as if it had been run at the system prompt with <code>python simple.py</code> (though since modules don't get re-executed on new imports by Python, all system initialization is essentially free, which can have a significant run time impact in some cases):</p>
29351 <pre><code>In [13]: run simple
29352 First elment of x: -1.55872256289
29353 </code></pre>
29354 <p>Once it completes, all variables defined in it become available for you to use interactively:</p>
29355 <pre><code>In [14]: x.shape
29356 Out[14]: (100,)
29357 </code></pre>
29358 <p>This allows you to plot data, try out ideas, etc, in a <code>%run</code>/interact/edit cycle that can be very productive. As you start understanding your problem better you can refine your script further, incrementally improving it based on the work you do at the IPython prompt. At any point you can use the <code>%hist</code> magic to print out your history without prompts, so that you can copy useful fragments back into the script.</p>
29359 <p>By default, <code>%run</code> executes scripts in a completely empty namespace, to better mimic how they would execute at the system prompt with plain Python. But if you use the <code>-i</code> flag, the script will also see your interactively defined variables. This lets you edit in a script larger amounts of code that still behave as if you had typed them at the IPython prompt.</p>
29360 <p>You can also get a summary of the time taken by your script with the <code>-t</code> flag; consider a different script <code>randsvd.py</code> that takes a bit longer to run:</p>
29361 <pre><code>In [21]: run -t randsvd.py
29362
29363 IPython CPU timings (estimated):
29364 User : 0.38 s.
29365 System : 0.04 s.
29366 Wall time: 0.34 s.
29367 </code></pre>
29368 <p><code>User</code> is the time spent by the computer executing your code, while <code>System</code> is the time the operating system had to work on your behalf, doing things like memory allocation that are needed by your code but that you didn't explicitly program and that happen inside the kernel. The <code>Wall time</code> is the time on a 'clock on the wall' between the start and end of your program.<br />
29369 </p>
29370 <p>If <code>Wall &gt; User+System</code>, your code is most likely waiting idle for certain periods. That could be waiting for data to arrive from a remote source or perhaps because the operating system has to swap large amounts of virtual memory. If you know that your code doesn't explicitly wait for remote data to arrive, you should investigate further to identify possible ways of improving the performance profile.</p>
29371 <p>If you only want to time how long a single statement takes, you don't need to put it into a script as you can use the <code>%timeit</code> magic, which uses Python's <code>timeit</code> module to very carefully measure timig data; <code>timeit</code> can measure even short statements that execute extremely fast:</p>
29372 <pre><code>In [27]: %timeit a=1
29373 10000000 loops, best of 3: 23 ns per loop
29374 </code></pre>
29375 <p>and for code that runs longer, it automatically adjusts so the overall measurement doesn't take too long:</p>
29376 <pre><code>In [28]: %timeit np.linalg.svd(x)
29377 1 loops, best of 3: 310 ms per loop
29378 </code></pre>
29379 <p>The <code>%run</code> magic still has more options for debugging and profiling data; you should read its documentation for many useful details (as always, just type <code>%run?</code>).</p>
29380 </div>
29381 <div class="text_cell_render border-box-sizing rendered_html">
29382 <h2>
29383 The graphical Qt console
29384 </h2>
29385 </div>
29386 <div class="text_cell_render border-box-sizing rendered_html">
29387 <p>If you type at the system prompt (see the IPython website for installation details, as this requires some additional libraries):</p>
29388 <pre><code>$ ipython qtconsole
29389 </code></pre>
29390 <p>instead of opening in a terminal as before, IPython will start a graphical console that at first sight appears just like a terminal, but which is in fact much more capable than a text-only terminal. This is a specialized terminal designed for interactive scientific work, and it supports full multi-line editing with color highlighting and graphical calltips for functions, it can keep multiple IPython sessions open simultaneously in tabs, and when scripts run it can display the figures inline directly in the work area.</p>
29391 <p><center><img src="ipython_qtconsole2.png" width=400px></center></p>
29392 </div>
29393 % This cell is for the pdflatex output only
29394 \begin{figure}[htbp]
29395 \centering
29396 \includegraphics[width=3in]{ipython_qtconsole2.png}
29397 \caption{The IPython Qt console: a lightweight terminal for scientific exploration, with code, results and graphics in a soingle environment.}
29398 \end{figure}
29399 <div class="text_cell_render border-box-sizing rendered_html">
29400 <p>The Qt console accepts the same <code>--pylab</code> startup flags as the terminal, but you can additionally supply the value <code>--pylab inline</code>, which enables the support for inline graphics shown in the figure. This is ideal for keeping all the code and figures in the same session, given that the console can save the output of your entire session to HTML or PDF.</p>
29401 <p>Since the Qt console makes it far more convenient than the terminal to edit blocks of code with multiple lines, in this environment it's worth knowing about the <code>%loadpy</code> magic function. <code>%loadpy</code> takes a path to a local file or remote URL, fetches its contents, and puts it in the work area for you to further edit and execute. It can be an extremely fast and convenient way of loading code from local disk or remote examples from sites such as the <a href="http://matplotlib.sourceforge.net/gallery.html">Matplotlib gallery</a>.</p>
29402 <p>Other than its enhanced capabilities for code and graphics, all of the features of IPython we've explained before remain functional in this graphical console.</p>
29403 </div>
29404 <div class="text_cell_render border-box-sizing rendered_html">
29405 <h2>
29406 The IPython Notebook
29407 </h2>
29408 </div>
29409 <div class="text_cell_render border-box-sizing rendered_html">
29410 <p>The third way to interact with IPython, in addition to the terminal and graphical Qt console, is a powerful web interface called the "IPython Notebook". If you run at the system console (you can omit the <code>pylab</code> flags if you don't need plotting support):</p>
29411 <pre><code>$ ipython notebook --pylab inline
29412 </code></pre>
29413 <p>IPython will start a process that runs a web server in your local machine and to which a web browser can connect. The Notebook is a workspace that lets you execute code in blocks called 'cells' and displays any results and figures, but which can also contain arbitrary text (including LaTeX-formatted mathematical expressions) and any rich media that a modern web browser is capable of displaying.</p>
29414 <p><center><img src="ipython-notebook-specgram-2.png" width=400px></center></p>
29415 </div>
29416 % This cell is for the pdflatex output only
29417 \begin{figure}[htbp]
29418 \centering
29419 \includegraphics[width=3in]{ipython-notebook-specgram-2.png}
29420 \caption{The IPython Notebook: text, equations, code, results, graphics and other multimedia in an open format for scientific exploration and collaboration}
29421 \end{figure}
29422 <div class="text_cell_render border-box-sizing rendered_html">
29423 <p>In fact, this document was written as a Notebook, and only exported to LaTeX for printing. Inside of each cell, all the features of IPython that we have discussed before remain functional, since ultimately this web client is communicating with the same IPython code that runs in the terminal. But this interface is a much more rich and powerful environment for maintaining long-term "live and executable" scientific documents.<br />
29424 </p>
29425 <p>Notebook environments have existed in commercial systems like Mathematica(TM) and Maple(TM) for a long time; in the open source world the <a href="http://sagemath.org">Sage</a> project blazed this particular trail starting in 2006, and now we bring all the features that have made IPython such a widely used tool to a Notebook model.</p>
29426 <p>Since the Notebook runs as a web application, it is possible to configure it for remote access, letting you run your computations on a persistent server close to your data, which you can then access remotely from any browser-equipped computer. We encourage you to read the extensive documentation provided by the IPython project for details on how to do this and many more features of the notebook.</p>
29427 <p>Finally, as we said earlier, IPython also has a high-level and easy to use set of libraries for parallel computing, that let you control (interactively if desired) not just one IPython but an entire cluster of 'IPython engines'. Unfortunately a detailed discussion of these tools is beyond the scope of this text, but should you need to parallelize your analysis codes, a quick read of the tutorials and examples provided at the IPython site may prove fruitful.</p>
29428 </div>
29429 </body>
29430 </html> No newline at end of file
This diff has been collapsed as it changes many lines, (1294 lines changed) Show them Hide them
@@ -0,0 +1,1294 b''
1 # An Introduction to the Scientific Python Ecosystem
2
3 While the Python language is an excellent tool for general-purpose programming, with a highly readable syntax, rich and powerful data types (strings, lists, sets, dictionaries, arbitrary length integers, etc) and a very comprehensive standard library, it was not designed specifically for mathematical and scientific computing. Neither the language nor its standard library have facilities for the efficient representation of multidimensional datasets, tools for linear algebra and general matrix manipulations (an essential building block of virtually all technical computing), nor any data visualization facilities.
4
5 In particular, Python lists are very flexible containers that can be nested arbitrarily deep and which can hold any Python object in them, but they are poorly suited to represent efficiently common mathematical constructs like vectors and matrices. In contrast, much of our modern heritage of scientific computing has been built on top of libraries written in the Fortran language, which has native support for vectors and matrices as well as a library of mathematical functions that can efficiently operate on entire arrays at once.
6
7 ## Scientific Python: a collaboration of projects built by scientists
8
9 The scientific community has developed a set of related Python libraries that provide powerful array facilities, linear algebra, numerical algorithms, data visualization and more. In this appendix, we will briefly outline the tools most frequently used for this purpose, that make "Scientific Python" something far more powerful than the Python language alone.
10
11 For reasons of space, we can only describe in some detail the central Numpy library, but below we provide links to the websites of each project where you can read their documentation in more detail.
12
13 First, let's look at an overview of the basic tools that most scientists use in daily research with Python. The core of this ecosystem is composed of:
14
15 * Numpy: the basic library that most others depend on, it provides a powerful array type that can represent multidmensional datasets of many different kinds and that supports arithmetic operations. Numpy also provides a library of common mathematical functions, basic linear algebra, random number generation and Fast Fourier Transforms. Numpy can be found at [numpy.scipy.org](http://numpy.scipy.org)
16
17 * Scipy: a large collection of numerical algorithms that operate on numpy arrays and provide facilities for many common tasks in scientific computing, including dense and sparse linear algebra support, optimization, special functions, statistics, n-dimensional image processing, signal processing and more. Scipy can be found at [scipy.org](http://scipy.org).
18
19 * Matplotlib: a data visualization library with a strong focus on producing high-quality output, it supports a variety of common scientific plot types in two and three dimensions, with precise control over the final output and format for publication-quality results. Matplotlib can also be controlled interactively allowing graphical manipulation of your data (zooming, panning, etc) and can be used with most modern user interface toolkits. It can be found at [matplotlib.sf.net](http://matplotlib.sf.net).
20
21 * IPython: while not strictly scientific in nature, IPython is the interactive environment in which many scientists spend their time. IPython provides a powerful Python shell that integrates tightly with Matplotlib and with easy access to the files and operating system, and which can execute in a terminal or in a graphical Qt console. IPython also has a web-based notebook interface that can combine code with text, mathematical expressions, figures and multimedia. It can be found at [ipython.org](http://ipython.org).
22
23 While each of these tools can be installed separately, in our opinion the most convenient way today of accessing them (especially on Windows and Mac computers) is to install the [Free Edition of the Enthought Python Distribution](http://www.enthought.com/products/epd_free.php) which contain all the above. Other free alternatives on Windows (but not on Macs) are [Python(x,y)](http://code.google.com/p/pythonxy) and [ Christoph Gohlke's packages page](http://www.lfd.uci.edu/~gohlke/pythonlibs).
24
25 These four 'core' libraries are in practice complemented by a number of other tools for more specialized work. We will briefly list here the ones that we think are the most commonly needed:
26
27 * Sympy: a symbolic manipulation tool that turns a Python session into a computer algebra system. It integrates with the IPython notebook, rendering results in properly typeset mathematical notation. [sympy.org](http://sympy.org).
28
29 * Mayavi: sophisticated 3d data visualization; [code.enthought.com/projects/mayavi](http://code.enthought.com/projects/mayavi).
30
31 * Cython: a bridge language between Python and C, useful both to optimize performance bottlenecks in Python and to access C libraries directly; [cython.org](http://cython.org).
32
33 * Pandas: high-performance data structures and data analysis tools, with powerful data alignment and structural manipulation capabilities; [pandas.pydata.org](http://pandas.pydata.org).
34
35 * Statsmodels: statistical data exploration and model estimation; [statsmodels.sourceforge.net](http://statsmodels.sourceforge.net).
36
37 * Scikit-learn: general purpose machine learning algorithms with a common interface; [scikit-learn.org](http://scikit-learn.org).
38
39 * Scikits-image: image processing toolbox; [scikits-image.org](http://scikits-image.org).
40
41 * NetworkX: analysis of complex networks (in the graph theoretical sense); [networkx.lanl.gov](http://networkx.lanl.gov).
42
43 * PyTables: management of hierarchical datasets using the industry-standard HDF5 format; [www.pytables.org](http://www.pytables.org).
44
45 Beyond these, for any specific problem you should look on the internet first, before starting to write code from scratch. There's a good chance that someone, somewhere, has written an open source library that you can use for part or all of your problem.
46
47 ## A note about the examples below
48
49 In all subsequent examples, you will see blocks of input code, followed by the results of the code if the code generated output. This output may include text, graphics and other result objects. These blocks of input can be pasted into your interactive IPython session or notebook for you to execute. In the print version of this document, a thin vertical bar on the left of the blocks of input and output shows which blocks go together.
50
51 If you are reading this text as an actual IPython notebook, you can press `Shift-Enter` or use the 'play' button on the toolbar (right-pointing triangle) to execute each block of code, known as a 'cell' in IPython:
52
53 <div class="highlight"><pre><span class="c"># This is a block of code, below you&#39;ll see its output</span>
54 <span class="k">print</span> <span class="s">&quot;Welcome to the world of scientific computing with Python!&quot;</span>
55 </pre></div>
56
57
58 Welcome to the world of scientific computing with Python!
59
60
61 # Motivation: the trapezoidal rule
62
63 In subsequent sections we'll provide a basic introduction to the nuts and bolts of the basic scientific python tools; but we'll first motivate it with a brief example that illustrates what you can do in a few lines with these tools. For this, we will use the simple problem of approximating a definite integral with the trapezoid rule:
64
65 $$
66 \int_{a}^{b} f(x)\, dx \approx \frac{1}{2} \sum_{k=1}^{N} \left( x_{k} - x_{k-1} \right) \left( f(x_{k}) + f(x_{k-1}) \right).
67 $$
68
69 Our task will be to compute this formula for a function such as:
70
71 $$
72 f(x) = (x-3)(x-5)(x-7)+85
73 $$
74
75 integrated between $a=1$ and $b=9$.
76
77 First, we define the function and sample it evenly between 0 and 10 at 200 points:
78
79 <div class="highlight"><pre><span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
80 <span class="k">return</span> <span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">5</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">7</span><span class="p">)</span><span class="o">+</span><span class="mi">85</span>
81
82 <span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
83 <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">200</span><span class="p">)</span>
84 <span class="n">y</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
85 </pre></div>
86
87
88
89 We select $a$ and $b$, our integration limits, and we take only a few points in that region to illustrate the error behavior of the trapezoid approximation:
90
91 <div class="highlight"><pre><span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">9</span>
92 <span class="n">xint</span> <span class="o">=</span> <span class="n">x</span><span class="p">[</span><span class="n">logical_and</span><span class="p">(</span><span class="n">x</span><span class="o">&gt;=</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="o">&lt;=</span><span class="n">b</span><span class="p">)][::</span><span class="mi">30</span><span class="p">]</span>
93 <span class="n">yint</span> <span class="o">=</span> <span class="n">y</span><span class="p">[</span><span class="n">logical_and</span><span class="p">(</span><span class="n">x</span><span class="o">&gt;=</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="o">&lt;=</span><span class="n">b</span><span class="p">)][::</span><span class="mi">30</span><span class="p">]</span>
94 </pre></div>
95
96
97
98 Let's plot both the function and the area below it in the trapezoid approximation:
99
100 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>
101 <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">lw</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
102 <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">140</span><span class="p">])</span>
103 <span class="n">plt</span><span class="o">.</span><span class="n">fill_between</span><span class="p">(</span><span class="n">xint</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">yint</span><span class="p">,</span> <span class="n">facecolor</span><span class="o">=</span><span class="s">&#39;gray&#39;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.4</span><span class="p">)</span>
104 <span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="n">a</span> <span class="o">+</span> <span class="n">b</span><span class="p">),</span> <span class="mi">30</span><span class="p">,</span><span class="s">r&quot;$\int_a^b f(x)dx$&quot;</span><span class="p">,</span> <span class="n">horizontalalignment</span><span class="o">=</span><span class="s">&#39;center&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">20</span><span class="p">);</span>
105 </pre></div>
106
107
108
109 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_00.svg)
110
111
112 Compute the integral both at high accuracy and with the trapezoid approximation
113
114 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">scipy.integrate</span> <span class="kn">import</span> <span class="n">quad</span><span class="p">,</span> <span class="n">trapz</span>
115 <span class="n">integral</span><span class="p">,</span> <span class="n">error</span> <span class="o">=</span> <span class="n">quad</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">9</span><span class="p">)</span>
116 <span class="n">trap_integral</span> <span class="o">=</span> <span class="n">trapz</span><span class="p">(</span><span class="n">yint</span><span class="p">,</span> <span class="n">xint</span><span class="p">)</span>
117 <span class="k">print</span> <span class="s">&quot;The integral is: </span><span class="si">%g</span><span class="s"> +/- </span><span class="si">%.1e</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">integral</span><span class="p">,</span> <span class="n">error</span><span class="p">)</span>
118 <span class="k">print</span> <span class="s">&quot;The trapezoid approximation with&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">xint</span><span class="p">),</span> <span class="s">&quot;points is:&quot;</span><span class="p">,</span> <span class="n">trap_integral</span>
119 <span class="k">print</span> <span class="s">&quot;The absolute error is:&quot;</span><span class="p">,</span> <span class="nb">abs</span><span class="p">(</span><span class="n">integral</span> <span class="o">-</span> <span class="n">trap_integral</span><span class="p">)</span>
120 </pre></div>
121
122
123 The integral is: 680 +/- 7.5e-12
124 The trapezoid approximation with 6 points is: 621.286411141
125 The absolute error is: 58.7135888589
126
127
128 This simple example showed us how, combining the numpy, scipy and matplotlib libraries we can provide an illustration of a standard method in elementary calculus with just a few lines of code. We will now discuss with more detail the basic usage of these tools.
129
130 # NumPy arrays: the right data structure for scientific computing
131
132 ## Basics of Numpy arrays
133
134 We now turn our attention to the Numpy library, which forms the base layer for the entire 'scipy ecosystem'. Once you have installed numpy, you can import it as
135
136 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">numpy</span>
137 </pre></div>
138
139
140
141 though in this book we will use the common shorthand
142
143 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
144 </pre></div>
145
146
147
148 As mentioned above, the main object provided by numpy is a powerful array. We'll start by exploring how the numpy array differs from Python lists. We start by creating a simple list and an array with the same contents of the list:
149
150 <div class="highlight"><pre><span class="n">lst</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">40</span><span class="p">]</span>
151 <span class="n">arr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">40</span><span class="p">])</span>
152 </pre></div>
153
154
155
156 Elements of a one-dimensional array are accessed with the same syntax as a list:
157
158 <div class="highlight"><pre><span class="n">lst</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
159 </pre></div>
160
161
162 <pre>
163 10
164 </pre>
165
166
167 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
168 </pre></div>
169
170
171 <pre>
172 10
173 </pre>
174
175
176 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
177 </pre></div>
178
179
180 <pre>
181 40
182 </pre>
183
184
185 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="mi">2</span><span class="p">:]</span>
186 </pre></div>
187
188
189 <pre>
190 array([30, 40])
191 </pre>
192
193
194 The first difference to note between lists and arrays is that arrays are *homogeneous*; i.e. all elements of an array must be of the same type. In contrast, lists can contain elements of arbitrary type. For example, we can change the last element in our list above to be a string:
195
196 <div class="highlight"><pre><span class="n">lst</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;a string inside a list&#39;</span>
197 <span class="n">lst</span>
198 </pre></div>
199
200
201 <pre>
202 [10, 20, 30, 'a string inside a list']
203 </pre>
204
205
206 but the same can not be done with an array, as we get an error message:
207
208 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;a string inside an array&#39;</span>
209 </pre></div>
210
211
212 ---------------------------------------------------------------------------
213 ValueError Traceback (most recent call last)
214 /home/fperez/teach/book-math-labtool/<ipython-input-13-29c0bfa5fa8a> in <module>()
215 ----> 1 arr[-1] = 'a string inside an array'
216
217 ValueError: invalid literal for long() with base 10: 'a string inside an array'
218
219
220 The information about the type of an array is contained in its *dtype* attribute:
221
222 <div class="highlight"><pre><span class="n">arr</span><span class="o">.</span><span class="n">dtype</span>
223 </pre></div>
224
225
226 <pre>
227 dtype('int32')
228 </pre>
229
230
231 Once an array has been created, its dtype is fixed and it can only store elements of the same type. For this example where the dtype is integer, if we store a floating point number it will be automatically converted into an integer:
232
233 <div class="highlight"><pre><span class="n">arr</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.234</span>
234 <span class="n">arr</span>
235 </pre></div>
236
237
238 <pre>
239 array([10, 20, 30, 1])
240 </pre>
241
242
243 Above we created an array from an existing list; now let us now see other ways in which we can create arrays, which we'll illustrate next. A common need is to have an array initialized with a constant value, and very often this value is 0 or 1 (suitable as starting value for additive and multiplicative loops respectively); `zeros` creates arrays of all zeros, with any desired dtype:
244
245 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span>
246 </pre></div>
247
248
249 <pre>
250 array([ 0., 0., 0., 0., 0.])
251 </pre>
252
253
254 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span>
255 </pre></div>
256
257
258 <pre>
259 array([0, 0, 0])
260 </pre>
261
262
263 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="nb">complex</span><span class="p">)</span>
264 </pre></div>
265
266
267 <pre>
268 array([ 0.+0.j, 0.+0.j, 0.+0.j])
269 </pre>
270
271
272 and similarly for `ones`:
273
274 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;5 ones:&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
275 </pre></div>
276
277
278 5 ones: [ 1. 1. 1. 1. 1.]
279
280
281 If we want an array initialized with an arbitrary value, we can create an empty array and then use the fill method to put the value we want into the array:
282
283 <div class="highlight"><pre><span class="n">a</span> <span class="o">=</span> <span class="n">empty</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
284 <span class="n">a</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="mf">5.5</span><span class="p">)</span>
285 <span class="n">a</span>
286 </pre></div>
287
288
289 <pre>
290 array([ 5.5, 5.5, 5.5, 5.5])
291 </pre>
292
293
294 Numpy also offers the `arange` function, which works like the builtin `range` but returns an array instead of a list:
295
296 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
297 </pre></div>
298
299
300 <pre>
301 array([0, 1, 2, 3, 4])
302 </pre>
303
304
305 and the `linspace` and `logspace` functions to create linearly and logarithmically-spaced grids respectively, with a fixed number of points and including both ends of the specified interval:
306
307 <div class="highlight"><pre><span class="k">print</span> <span class="s">&quot;A linear grid between 0 and 1:&quot;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
308 <span class="k">print</span> <span class="s">&quot;A logarithmic grid between 10**1 and 10**4: &quot;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">logspace</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
309 </pre></div>
310
311
312 A linear grid between 0 and 1: [ 0. 0.25 0.5 0.75 1. ]
313 A logarithmic grid between 10**1 and 10**4: [ 10. 100. 1000. 10000.]
314
315
316 Finally, it is often useful to create arrays with random numbers that follow a specific distribution. The `np.random` module contains a number of functions that can be used to this effect, for example this will produce an array of 5 random samples taken from a standard normal distribution (0 mean and variance 1):
317
318 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
319 </pre></div>
320
321
322 <pre>
323 array([-0.08633343, -0.67375434, 1.00589536, 0.87081651, 1.65597822])
324 </pre>
325
326
327 whereas this will also give 5 samples, but from a normal distribution with a mean of 10 and a variance of 3:
328
329 <div class="highlight"><pre><span class="n">norm10</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
330 <span class="n">norm10</span>
331 </pre></div>
332
333
334 <pre>
335 array([ 8.94879575, 5.53038269, 8.24847281, 12.14944165, 11.56209294])
336 </pre>
337
338
339 ## Indexing with other arrays
340
341 Above we saw how to index arrays with single numbers and slices, just like Python lists. But arrays allow for a more sophisticated kind of indexing which is very powerful: you can index an array with another array, and in particular with an array of boolean values. This is particluarly useful to extract information from an array that matches a certain condition.
342
343 Consider for example that in the array `norm10` we want to replace all values above 9 with the value 0. We can do so by first finding the *mask* that indicates where this condition is true or false:
344
345 <div class="highlight"><pre><span class="n">mask</span> <span class="o">=</span> <span class="n">norm10</span> <span class="o">&gt;</span> <span class="mi">9</span>
346 <span class="n">mask</span>
347 </pre></div>
348
349
350 <pre>
351 array([False, False, False, True, True], dtype=bool)
352 </pre>
353
354
355 Now that we have this mask, we can use it to either read those values or to reset them to 0:
356
357 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Values above 9:&#39;</span><span class="p">,</span> <span class="n">norm10</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
358 </pre></div>
359
360
361 Values above 9: [ 12.14944165 11.56209294]
362
363
364 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Resetting all values above 9 to 0...&#39;</span>
365 <span class="n">norm10</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
366 <span class="k">print</span> <span class="n">norm10</span>
367 </pre></div>
368
369
370 Resetting all values above 9 to 0...
371 [ 8.94879575 5.53038269 8.24847281 0. 0. ]
372
373
374 ## Arrays with more than one dimension
375
376 Up until now all our examples have used one-dimensional arrays. But Numpy can create arrays of aribtrary dimensions, and all the methods illustrated in the previous section work with more than one dimension. For example, a list of lists can be used to initialize a two dimensional array:
377
378 <div class="highlight"><pre><span class="n">lst2</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]]</span>
379 <span class="n">arr2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]])</span>
380 <span class="n">arr2</span>
381 </pre></div>
382
383
384 <pre>
385 array([[1, 2],
386 [3, 4]])
387 </pre>
388
389
390 With two-dimensional arrays we start seeing the power of numpy: while a nested list can be indexed using repeatedly the `[ ]` operator, multidimensional arrays support a much more natural indexing syntax with a single `[ ]` and a set of indices separated by commas:
391
392 <div class="highlight"><pre><span class="k">print</span> <span class="n">lst2</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
393 <span class="k">print</span> <span class="n">arr2</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">]</span>
394 </pre></div>
395
396
397 2
398 2
399
400
401 Most of the array creation functions listed above can be used with more than one dimension, for example:
402
403 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span>
404 </pre></div>
405
406
407 <pre>
408 array([[ 0., 0., 0.],
409 [ 0., 0., 0.]])
410 </pre>
411
412
413 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
414 </pre></div>
415
416
417 <pre>
418 array([[ 11.26788826, 4.29619866, 11.09346496, 9.73861307],
419 [ 10.54025996, 9.5146268 , 10.80367214, 13.62204505]])
420 </pre>
421
422
423 In fact, the shape of an array can be changed at any time, as long as the total number of elements is unchanged. For example, if we want a 2x4 array with numbers increasing from 0, the easiest way to create it is:
424
425 <div class="highlight"><pre><span class="n">arr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span>
426 <span class="k">print</span> <span class="n">arr</span>
427 </pre></div>
428
429
430 [[0 1 2 3]
431 [4 5 6 7]]
432
433
434 With multidimensional arrays, you can also use slices, and you can mix and match slices and single indices in the different dimensions (using the same array as above):
435
436 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Slicing in the second row:&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span>
437 <span class="k">print</span> <span class="s">&#39;All rows, third column :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[:,</span> <span class="mi">2</span><span class="p">]</span>
438 </pre></div>
439
440
441 Slicing in the second row: [6 7]
442 All rows, third column : [2 6]
443
444
445 If you only provide one index, then you will get an array with one less dimension containing that row:
446
447 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;First row: &#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
448 <span class="k">print</span> <span class="s">&#39;Second row: &#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
449 </pre></div>
450
451
452 First row: [0 1 2 3]
453 Second row: [4 5 6 7]
454
455
456 Now that we have seen how to create arrays with more than one dimension, it's a good idea to look at some of the most useful properties and methods that arrays have. The following provide basic information about the size, shape and data in the array:
457
458 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Data type :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">dtype</span>
459 <span class="k">print</span> <span class="s">&#39;Total number of elements :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">size</span>
460 <span class="k">print</span> <span class="s">&#39;Number of dimensions :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">ndim</span>
461 <span class="k">print</span> <span class="s">&#39;Shape (dimensionality) :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">shape</span>
462 <span class="k">print</span> <span class="s">&#39;Memory used (in bytes) :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">nbytes</span>
463 </pre></div>
464
465
466 Data type : int32
467 Total number of elements : 8
468 Number of dimensions : 2
469 Shape (dimensionality) : (2, 4)
470 Memory used (in bytes) : 32
471
472
473 Arrays also have many useful methods, some especially useful ones are:
474
475 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Minimum and maximum :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">min</span><span class="p">(),</span> <span class="n">arr</span><span class="o">.</span><span class="n">max</span><span class="p">()</span>
476 <span class="k">print</span> <span class="s">&#39;Sum and product of all elements :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">sum</span><span class="p">(),</span> <span class="n">arr</span><span class="o">.</span><span class="n">prod</span><span class="p">()</span>
477 <span class="k">print</span> <span class="s">&#39;Mean and standard deviation :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">mean</span><span class="p">(),</span> <span class="n">arr</span><span class="o">.</span><span class="n">std</span><span class="p">()</span>
478 </pre></div>
479
480
481 Minimum and maximum : 0 7
482 Sum and product of all elements : 28 0
483 Mean and standard deviation : 3.5 2.29128784748
484
485
486 For these methods, the above operations area all computed on all the elements of the array. But for a multidimensional array, it's possible to do the computation along a single dimension, by passing the `axis` parameter; for example:
487
488 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;For the following array:</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span>
489 <span class="k">print</span> <span class="s">&#39;The sum of elements along the rows is :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
490 <span class="k">print</span> <span class="s">&#39;The sum of elements along the columns is :&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
491 </pre></div>
492
493
494 For the following array:
495 [[0 1 2 3]
496 [4 5 6 7]]
497 The sum of elements along the rows is : [ 6 22]
498 The sum of elements along the columns is : [ 4 6 8 10]
499
500
501 As you can see in this example, the value of the `axis` parameter is the dimension which will be *consumed* once the operation has been carried out. This is why to sum along the rows we use `axis=0`.
502
503 This can be easily illustrated with an example that has more dimensions; we create an array with 4 dimensions and shape `(3,4,5,6)` and sum along the axis number 2 (i.e. the *third* axis, since in Python all counts are 0-based). That consumes the dimension whose length was 5, leaving us with a new array that has shape `(3,4,6)`:
504
505 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">shape</span>
506 </pre></div>
507
508
509 <pre>
510 (3, 4, 6)
511 </pre>
512
513
514 Another widely used property of arrays is the `.T` attribute, which allows you to access the transpose of the array:
515
516 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;Array:</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span>
517 <span class="k">print</span> <span class="s">&#39;Transpose:</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="o">.</span><span class="n">T</span>
518 </pre></div>
519
520
521 Array:
522 [[0 1 2 3]
523 [4 5 6 7]]
524 Transpose:
525 [[0 4]
526 [1 5]
527 [2 6]
528 [3 7]]
529
530
531 We don't have time here to look at all the methods and properties of arrays, here's a complete list. Simply try exploring some of these IPython to learn more, or read their description in the full Numpy documentation:
532
533 arr.T arr.copy arr.getfield arr.put arr.squeeze
534 arr.all arr.ctypes arr.imag arr.ravel arr.std
535 arr.any arr.cumprod arr.item arr.real arr.strides
536 arr.argmax arr.cumsum arr.itemset arr.repeat arr.sum
537 arr.argmin arr.data arr.itemsize arr.reshape arr.swapaxes
538 arr.argsort arr.diagonal arr.max arr.resize arr.take
539 arr.astype arr.dot arr.mean arr.round arr.tofile
540 arr.base arr.dtype arr.min arr.searchsorted arr.tolist
541 arr.byteswap arr.dump arr.nbytes arr.setasflat arr.tostring
542 arr.choose arr.dumps arr.ndim arr.setfield arr.trace
543 arr.clip arr.fill arr.newbyteorder arr.setflags arr.transpose
544 arr.compress arr.flags arr.nonzero arr.shape arr.var
545 arr.conj arr.flat arr.prod arr.size arr.view
546 arr.conjugate arr.flatten arr.ptp arr.sort
547
548 ## Operating with arrays
549
550 Arrays support all regular arithmetic operators, and the numpy library also contains a complete collection of basic mathematical functions that operate on arrays. It is important to remember that in general, all operations with arrays are applied *element-wise*, i.e., are applied to all the elements of the array at the same time. Consider for example:
551
552 <div class="highlight"><pre><span class="n">arr1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
553 <span class="n">arr2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">14</span><span class="p">)</span>
554 <span class="k">print</span> <span class="n">arr1</span><span class="p">,</span> <span class="s">&#39;+&#39;</span><span class="p">,</span> <span class="n">arr2</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">arr1</span><span class="o">+</span><span class="n">arr2</span>
555 </pre></div>
556
557
558 [0 1 2 3] + [10 11 12 13] = [10 12 14 16]
559
560
561 Importantly, you must remember that even the multiplication operator is by default applied element-wise, it is *not* the matrix multiplication from linear algebra (as is the case in Matlab, for example):
562
563 <div class="highlight"><pre><span class="k">print</span> <span class="n">arr1</span><span class="p">,</span> <span class="s">&#39;*&#39;</span><span class="p">,</span> <span class="n">arr2</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">arr1</span><span class="o">*</span><span class="n">arr2</span>
564 </pre></div>
565
566
567 [0 1 2 3] * [10 11 12 13] = [ 0 11 24 39]
568
569
570 While this means that in principle arrays must always match in their dimensionality in order for an operation to be valid, numpy will *broadcast* dimensions when possible. For example, suppose that you want to add the number 1.5 to `arr1`; the following would be a valid way to do it:
571
572 <div class="highlight"><pre><span class="n">arr1</span> <span class="o">+</span> <span class="mf">1.5</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
573 </pre></div>
574
575
576 <pre>
577 array([ 1.5, 2.5, 3.5, 4.5])
578 </pre>
579
580
581 But thanks to numpy's broadcasting rules, the following is equally valid:
582
583 <div class="highlight"><pre><span class="n">arr1</span> <span class="o">+</span> <span class="mf">1.5</span>
584 </pre></div>
585
586
587 <pre>
588 array([ 1.5, 2.5, 3.5, 4.5])
589 </pre>
590
591
592 In this case, numpy looked at both operands and saw that the first (`arr1`) was a one-dimensional array of length 4 and the second was a scalar, considered a zero-dimensional object. The broadcasting rules allow numpy to:
593
594 * *create* new dimensions of length 1 (since this doesn't change the size of the array)
595 * 'stretch' a dimension of length 1 that needs to be matched to a dimension of a different size.
596
597 So in the above example, the scalar 1.5 is effectively:
598
599 * first 'promoted' to a 1-dimensional array of length 1
600 * then, this array is 'stretched' to length 4 to match the dimension of `arr1`.
601
602 After these two operations are complete, the addition can proceed as now both operands are one-dimensional arrays of length 4.
603
604 This broadcasting behavior is in practice enormously powerful, especially because when numpy broadcasts to create new dimensions or to 'stretch' existing ones, it doesn't actually replicate the data. In the example above the operation is carried *as if* the 1.5 was a 1-d array with 1.5 in all of its entries, but no actual array was ever created. This can save lots of memory in cases when the arrays in question are large and can have significant performance implications.
605
606 The general rule is: when operating on two arrays, NumPy compares their shapes element-wise. It starts with the trailing dimensions, and works its way forward, creating dimensions of length 1 as needed. Two dimensions are considered compatible when
607
608 * they are equal to begin with, or
609 * one of them is 1; in this case numpy will do the 'stretching' to make them equal.
610
611 If these conditions are not met, a `ValueError: frames are not aligned` exception is thrown, indicating that the arrays have incompatible shapes. The size of the resulting array is the maximum size along each dimension of the input arrays.
612
613 This shows how the broadcasting rules work in several dimensions:
614
615 <div class="highlight"><pre><span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">])</span>
616 <span class="k">print</span> <span class="n">arr</span><span class="p">,</span> <span class="s">&#39;</span><span class="se">\n\n</span><span class="s">+&#39;</span><span class="p">,</span> <span class="n">b</span> <span class="p">,</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">----------------</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">arr</span> <span class="o">+</span> <span class="n">b</span>
617 </pre></div>
618
619
620 [[0 1 2 3]
621 [4 5 6 7]]
622
623 + [2 3 4 5]
624 ----------------
625 [[ 2 4 6 8]
626 [ 6 8 10 12]]
627
628
629 Now, how could you use broadcasting to say add `[4, 6]` along the rows to `arr` above? Simply performing the direct addition will produce the error we previously mentioned:
630
631 <div class="highlight"><pre><span class="n">c</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">4</span><span class="p">,</span> <span class="mi">6</span><span class="p">])</span>
632 <span class="n">arr</span> <span class="o">+</span> <span class="n">c</span>
633 </pre></div>
634
635
636 ---------------------------------------------------------------------------
637 ValueError Traceback (most recent call last)
638 /home/fperez/teach/book-math-labtool/<ipython-input-45-62aa20ac1980> in <module>()
639 1 c = np.array([4, 6])
640 ----> 2 arr + c
641
642 ValueError: operands could not be broadcast together with shapes (2,4) (2)
643
644
645 According to the rules above, the array `c` would need to have a *trailing* dimension of 1 for the broadcasting to work. It turns out that numpy allows you to 'inject' new dimensions anywhere into an array on the fly, by indexing it with the special object `np.newaxis`:
646
647 <div class="highlight"><pre><span class="p">(</span><span class="n">c</span><span class="p">[:,</span> <span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">])</span><span class="o">.</span><span class="n">shape</span>
648 </pre></div>
649
650
651 <pre>
652 (2, 1)
653 </pre>
654
655
656 This is exactly what we need, and indeed it works:
657
658 <div class="highlight"><pre><span class="n">arr</span> <span class="o">+</span> <span class="n">c</span><span class="p">[:,</span> <span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span>
659 </pre></div>
660
661
662 <pre>
663 array([[ 4, 5, 6, 7],
664 [10, 11, 12, 13]])
665 </pre>
666
667
668 For the full broadcasting rules, please see the official Numpy docs, which describe them in detail and with more complex examples.
669
670 As we mentioned before, Numpy ships with a full complement of mathematical functions that work on entire arrays, including logarithms, exponentials, trigonometric and hyperbolic trigonometric functions, etc. Furthermore, scipy ships a rich special function library in the `scipy.special` module that includes Bessel, Airy, Fresnel, Laguerre and other classical special functions. For example, sampling the sine function at 100 points between $0$ and $2\pi$ is as simple as:
671
672 <div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
673 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
674 </pre></div>
675
676
677
678 ## Linear algebra in numpy
679
680 Numpy ships with a basic linear algebra library, and all arrays have a `dot` method whose behavior is that of the scalar dot product when its arguments are vectors (one-dimensional arrays) and the traditional matrix multiplication when one or both of its arguments are two-dimensional arrays:
681
682 <div class="highlight"><pre><span class="n">v1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">])</span>
683 <span class="n">v2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">])</span>
684 <span class="k">print</span> <span class="n">v1</span><span class="p">,</span> <span class="s">&#39;.&#39;</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">v1</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">v2</span><span class="p">)</span>
685 </pre></div>
686
687
688 [2 3 4] . [1 0 1] = 6
689
690
691 Here is a regular matrix-vector multiplication, note that the array `v1` should be viewed as a *column* vector in traditional linear algebra notation; numpy makes no distinction between row and column vectors and simply verifies that the dimensions match the required rules of matrix multiplication, in this case we have a $2 \times 3$ matrix multiplied by a 3-vector, which produces a 2-vector:
692
693 <div class="highlight"><pre><span class="n">A</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
694 <span class="k">print</span> <span class="n">A</span><span class="p">,</span> <span class="s">&#39;x&#39;</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="n">A</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">v1</span><span class="p">)</span>
695 </pre></div>
696
697
698 [[0 1 2]
699 [3 4 5]] x [2 3 4] = [11 38]
700
701
702 For matrix-matrix multiplication, the same dimension-matching rules must be satisfied, e.g. consider the difference between $A \times A^T$:
703
704 <div class="highlight"><pre><span class="k">print</span> <span class="n">A</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">A</span><span class="o">.</span><span class="n">T</span><span class="p">)</span>
705 </pre></div>
706
707
708 [[ 5 14]
709 [14 50]]
710
711
712 and $A^T \times A$:
713
714 <div class="highlight"><pre><span class="k">print</span> <span class="n">A</span><span class="o">.</span><span class="n">T</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
715 </pre></div>
716
717
718 [[ 9 12 15]
719 [12 17 22]
720 [15 22 29]]
721
722
723 Furthermore, the `numpy.linalg` module includes additional functionality such as determinants, matrix norms, Cholesky, eigenvalue and singular value decompositions, etc. For even more linear algebra tools, `scipy.linalg` contains the majority of the tools in the classic LAPACK libraries as well as functions to operate on sparse matrices. We refer the reader to the Numpy and Scipy documentations for additional details on these.
724
725 ## Reading and writing arrays to disk
726
727 Numpy lets you read and write arrays into files in a number of ways. In order to use these tools well, it is critical to understand the difference between a *text* and a *binary* file containing numerical data. In a text file, the number $\pi$ could be written as "3.141592653589793", for example: a string of digits that a human can read, with in this case 15 decimal digits. In contrast, that same number written to a binary file would be encoded as 8 characters (bytes) that are not readable by a human but which contain the exact same data that the variable `pi` had in the computer's memory.
728
729 The tradeoffs between the two modes are thus:
730
731 * Text mode: occupies more space, precision can be lost (if not all digits are written to disk), but is readable and editable by hand with a text editor. Can *only* be used for one- and two-dimensional arrays.
732
733 * Binary mode: compact and exact representation of the data in memory, can't be read or edited by hand. Arrays of any size and dimensionality can be saved and read without loss of information.
734
735 First, let's see how to read and write arrays in text mode. The `np.savetxt` function saves an array to a text file, with options to control the precision, separators and even adding a header:
736
737 <div class="highlight"><pre><span class="n">arr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
738 <span class="n">np</span><span class="o">.</span><span class="n">savetxt</span><span class="p">(</span><span class="s">&#39;test.out&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="s">&#39;</span><span class="si">%.2e</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="s">&quot;My dataset&quot;</span><span class="p">)</span>
739 <span class="o">!</span>cat test.out
740 </pre></div>
741
742
743 # My dataset
744 0.00e+00 1.00e+00 2.00e+00 3.00e+00 4.00e+00
745 5.00e+00 6.00e+00 7.00e+00 8.00e+00 9.00e+00
746
747
748 And this same type of file can then be read with the matching `np.loadtxt` function:
749
750 <div class="highlight"><pre><span class="n">arr2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">loadtxt</span><span class="p">(</span><span class="s">&#39;test.out&#39;</span><span class="p">)</span>
751 <span class="k">print</span> <span class="n">arr2</span>
752 </pre></div>
753
754
755 [[ 0. 1. 2. 3. 4.]
756 [ 5. 6. 7. 8. 9.]]
757
758
759 For binary data, Numpy provides the `np.save` and `np.savez` routines. The first saves a single array to a file with `.npy` extension, while the latter can be used to save a *group* of arrays into a single file with `.npz` extension. The files created with these routines can then be read with the `np.load` function.
760
761 Let us first see how to use the simpler `np.save` function to save a single array:
762
763 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s">&#39;test.npy&#39;</span><span class="p">,</span> <span class="n">arr2</span><span class="p">)</span>
764 <span class="c"># Now we read this back</span>
765 <span class="n">arr2n</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">&#39;test.npy&#39;</span><span class="p">)</span>
766 <span class="c"># Let&#39;s see if any element is non-zero in the difference.</span>
767 <span class="c"># A value of True would be a problem.</span>
768 <span class="k">print</span> <span class="s">&#39;Any differences?&#39;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">(</span><span class="n">arr2</span><span class="o">-</span><span class="n">arr2n</span><span class="p">)</span>
769 </pre></div>
770
771
772 Any differences? False
773
774
775 Now let us see how the `np.savez` function works. You give it a filename and either a sequence of arrays or a set of keywords. In the first mode, the function will auotmatically name the saved arrays in the archive as `arr_0`, `arr_1`, etc:
776
777 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">savez</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">,</span> <span class="n">arr</span><span class="p">,</span> <span class="n">arr2</span><span class="p">)</span>
778 <span class="n">arrays</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">)</span>
779 <span class="n">arrays</span><span class="o">.</span><span class="n">files</span>
780 </pre></div>
781
782
783 <pre>
784 ['arr_1', 'arr_0']
785 </pre>
786
787
788 Alternatively, we can explicitly choose how to name the arrays we save:
789
790 <div class="highlight"><pre><span class="n">np</span><span class="o">.</span><span class="n">savez</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">,</span> <span class="n">array1</span><span class="o">=</span><span class="n">arr</span><span class="p">,</span> <span class="n">array2</span><span class="o">=</span><span class="n">arr2</span><span class="p">)</span>
791 <span class="n">arrays</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s">&#39;test.npz&#39;</span><span class="p">)</span>
792 <span class="n">arrays</span><span class="o">.</span><span class="n">files</span>
793 </pre></div>
794
795
796 <pre>
797 ['array2', 'array1']
798 </pre>
799
800
801 The object returned by `np.load` from an `.npz` file works like a dictionary, though you can also access its constituent files by attribute using its special `.f` field; this is best illustrated with an example with the `arrays` object from above:
802
803 <div class="highlight"><pre><span class="k">print</span> <span class="s">&#39;First row of first array:&#39;</span><span class="p">,</span> <span class="n">arrays</span><span class="p">[</span><span class="s">&#39;array1&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
804 <span class="c"># This is an equivalent way to get the same field</span>
805 <span class="k">print</span> <span class="s">&#39;First row of first array:&#39;</span><span class="p">,</span> <span class="n">arrays</span><span class="o">.</span><span class="n">f</span><span class="o">.</span><span class="n">array1</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
806 </pre></div>
807
808
809 First row of first array: [0 1 2 3 4]
810 First row of first array: [0 1 2 3 4]
811
812
813 This `.npz` format is a very convenient way to package compactly and without loss of information, into a single file, a group of related arrays that pertain to a specific problem. At some point, however, the complexity of your dataset may be such that the optimal approach is to use one of the standard formats in scientific data processing that have been designed to handle complex datasets, such as NetCDF or HDF5.
814
815 Fortunately, there are tools for manipulating these formats in Python, and for storing data in other ways such as databases. A complete discussion of the possibilities is beyond the scope of this discussion, but of particular interest for scientific users we at least mention the following:
816
817 * The `scipy.io` module contains routines to read and write Matlab files in `.mat` format and files in the NetCDF format that is widely used in certain scientific disciplines.
818
819 * For manipulating files in the HDF5 format, there are two excellent options in Python: The PyTables project offers a high-level, object oriented approach to manipulating HDF5 datasets, while the h5py project offers a more direct mapping to the standard HDF5 library interface. Both are excellent tools; if you need to work with HDF5 datasets you should read some of their documentation and examples and decide which approach is a better match for your needs.
820
821 # High quality data visualization with Matplotlib
822
823 The [matplotlib](http://matplotlib.sf.net) library is a powerful tool capable of producing complex publication-quality figures with fine layout control in two and three dimensions; here we will only provide a minimal self-contained introduction to its usage that covers the functionality needed for the rest of the book. We encourage the reader to read the tutorials included with the matplotlib documentation as well as to browse its extensive gallery of examples that include source code.
824
825 Just as we typically use the shorthand `np` for Numpy, we will use `plt` for the `matplotlib.pyplot` module where the easy-to-use plotting functions reside (the library contains a rich object-oriented architecture that we don't have the space to discuss here):
826
827 <div class="highlight"><pre><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>
828 </pre></div>
829
830
831
832 The most frequently used function is simply called `plot`, here is how you can make a simple plot of $\sin(x)$ for $x \in [0, 2\pi]$ with labels and a grid (we use the semicolon in the last line to suppress the display of some information that is unnecessary right now):
833
834 <div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span>
835 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
836 <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s">&#39;sin(x)&#39;</span><span class="p">)</span>
837 <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
838 <span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">()</span>
839 <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&#39;Harmonic&#39;</span><span class="p">)</span>
840 <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s">&#39;x&#39;</span><span class="p">)</span>
841 <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s">&#39;y&#39;</span><span class="p">);</span>
842 </pre></div>
843
844
845
846 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_01.svg)
847
848
849 You can control the style, color and other properties of the markers, for example:
850
851 <div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">);</span>
852 </pre></div>
853
854
855
856 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_02.svg)
857
858
859 <div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="s">&#39;o&#39;</span><span class="p">,</span> <span class="n">markersize</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;r&#39;</span><span class="p">);</span>
860 </pre></div>
861
862
863
864 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_03.svg)
865
866
867 We will now see how to create a few other common plot types, such as a simple error plot:
868
869 <div class="highlight"><pre><span class="c"># example data</span>
870 <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mf">0.1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
871 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">x</span><span class="p">)</span>
872
873 <span class="c"># example variable error bar values</span>
874 <span class="n">yerr</span> <span class="o">=</span> <span class="mf">0.1</span> <span class="o">+</span> <span class="mf">0.2</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
875 <span class="n">xerr</span> <span class="o">=</span> <span class="mf">0.1</span> <span class="o">+</span> <span class="n">yerr</span>
876
877 <span class="c"># First illustrate basic pyplot interface, using defaults where possible.</span>
878 <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
879 <span class="n">plt</span><span class="o">.</span><span class="n">errorbar</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">xerr</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">yerr</span><span class="o">=</span><span class="mf">0.4</span><span class="p">)</span>
880 <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&quot;Simplest errorbars, 0.2 in x, 0.4 in y&quot;</span><span class="p">);</span>
881 </pre></div>
882
883
884
885 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_04.svg)
886
887
888 A simple log plot
889
890 <div class="highlight"><pre><span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
891 <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
892 <span class="n">plt</span><span class="o">.</span><span class="n">semilogy</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">);</span>
893 </pre></div>
894
895
896
897 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_05.svg)
898
899
900 A histogram annotated with text inside the plot, using the `text` function:
901
902 <div class="highlight"><pre><span class="n">mu</span><span class="p">,</span> <span class="n">sigma</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">15</span>
903 <span class="n">x</span> <span class="o">=</span> <span class="n">mu</span> <span class="o">+</span> <span class="n">sigma</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">10000</span><span class="p">)</span>
904
905 <span class="c"># the histogram of the data</span>
906 <span class="n">n</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">patches</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="n">normed</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">facecolor</span><span class="o">=</span><span class="s">&#39;g&#39;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.75</span><span class="p">)</span>
907
908 <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s">&#39;Smarts&#39;</span><span class="p">)</span>
909 <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s">&#39;Probability&#39;</span><span class="p">)</span>
910 <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">&#39;Histogram of IQ&#39;</span><span class="p">)</span>
911 <span class="c"># This will put a text fragment at the position given:</span>
912 <span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="mi">55</span><span class="p">,</span> <span class="o">.</span><span class="mo">027</span><span class="p">,</span> <span class="s">r&#39;$\mu=100,\ \sigma=15$&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
913 <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">40</span><span class="p">,</span> <span class="mi">160</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">0.03</span><span class="p">])</span>
914 <span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
915 </pre></div>
916
917
918
919 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_06.svg)
920
921
922 ## Image display
923
924 The `imshow` command can display single or multi-channel images. A simple array of random numbers, plotted in grayscale:
925
926 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">cm</span>
927 <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">gray</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s">&#39;nearest&#39;</span><span class="p">);</span>
928 </pre></div>
929
930
931
932 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_07.svg)
933
934
935 A real photograph is a multichannel image, `imshow` interprets it correctly:
936
937 <div class="highlight"><pre><span class="n">img</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">imread</span><span class="p">(</span><span class="s">&#39;stinkbug.png&#39;</span><span class="p">)</span>
938 <span class="k">print</span> <span class="s">&#39;Dimensions of the array img:&#39;</span><span class="p">,</span> <span class="n">img</span><span class="o">.</span><span class="n">shape</span>
939 <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">img</span><span class="p">);</span>
940 </pre></div>
941
942
943 Dimensions of the array img: (375, 500, 3)
944
945
946 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_08.svg)
947
948
949 ## Simple 3d plotting with matplotlib
950
951 Note that you must execute at least once in your session:
952
953 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">mpl_toolkits.mplot3d</span> <span class="kn">import</span> <span class="n">Axes3D</span>
954 </pre></div>
955
956
957
958 One this has been done, you can create 3d axes with the `projection='3d'` keyword to `add_subplot`:
959
960 fig = plt.figure()
961 fig.add_subplot(<other arguments here>, projection='3d')
962
963 A simple surface plot:
964
965 <div class="highlight"><pre><span class="kn">from</span> <span class="nn">mpl_toolkits.mplot3d.axes3d</span> <span class="kn">import</span> <span class="n">Axes3D</span>
966 <span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">cm</span>
967
968 <span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
969 <span class="n">ax</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">projection</span><span class="o">=</span><span class="s">&#39;3d&#39;</span><span class="p">)</span>
970 <span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mf">0.25</span><span class="p">)</span>
971 <span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mf">0.25</span><span class="p">)</span>
972 <span class="n">X</span><span class="p">,</span> <span class="n">Y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">meshgrid</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span>
973 <span class="n">R</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">X</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">Y</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
974 <span class="n">Z</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">R</span><span class="p">)</span>
975 <span class="n">surf</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot_surface</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">,</span> <span class="n">rstride</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">cstride</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cm</span><span class="o">.</span><span class="n">jet</span><span class="p">,</span>
976 <span class="n">linewidth</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">antialiased</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
977 <span class="n">ax</span><span class="o">.</span><span class="n">set_zlim3d</span><span class="p">(</span><span class="o">-</span><span class="mf">1.01</span><span class="p">,</span> <span class="mf">1.01</span><span class="p">);</span>
978 </pre></div>
979
980
981
982 ![](/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_09.svg)
983
984
985 # IPython: a powerful interactive environment
986
987 A key component of the everyday workflow of most scientific computing environments is a good interactive environment, that is, a system in which you can execute small amounts of code and view the results immediately, combining both printing out data and opening graphical visualizations. All modern systems for scientific computing, commercial and open source, include such functionality.
988
989 Out of the box, Python also offers a simple interactive shell with very limited capabilities. But just like the scientific community built Numpy to provide arrays suited for scientific work (since Pytyhon's lists aren't optimal for this task), it has also developed an interactive environment much more sophisticated than the built-in one. The [IPython project](http://ipython.org) offers a set of tools to make productive use of the Python language, all the while working interactively and with immedate feedback on your results. The basic tools that IPython provides are:
990
991 1. A powerful terminal shell, with many features designed to increase the fluidity and productivity of everyday scientific workflows, including:
992
993 * rich introspection of all objects and variables including easy access to the source code of any function
994 * powerful and extensible tab completion of variables and filenames,
995 * tight integration with matplotlib, supporting interactive figures that don't block the terminal,
996 * direct access to the filesystem and underlying operating system,
997 * an extensible system for shell-like commands called 'magics' that reduce the work needed to perform many common tasks,
998 * tools for easily running, timing, profiling and debugging your codes,
999 * syntax highlighted error messages with much more detail than the default Python ones,
1000 * logging and access to all previous history of inputs, including across sessions
1001
1002 2. A Qt console that provides the look and feel of a terminal, but adds support for inline figures, graphical calltips, a persistent session that can survive crashes (even segfaults) of the kernel process, and more.
1003
1004 3. A web-based notebook that can execute code and also contain rich text and figures, mathematical equations and arbitrary HTML. This notebook presents a document-like view with cells where code is executed but that can be edited in-place, reordered, mixed with explanatory text and figures, etc.
1005
1006 4. A high-performance, low-latency system for parallel computing that supports the control of a cluster of IPython engines communicating over a network, with optimizations that minimize unnecessary copying of large objects (especially numpy arrays).
1007
1008 We will now discuss the highlights of the tools 1-3 above so that you can make them an effective part of your workflow. The topic of parallel computing is beyond the scope of this document, but we encourage you to read the extensive [documentation](http://ipython.org/ipython-doc/rel-0.12.1/parallel/index.html) and [tutorials](http://minrk.github.com/scipy-tutorial-2011/) on this available on the IPython website.
1009
1010 ## The IPython terminal
1011
1012 You can start IPython at the terminal simply by typing:
1013
1014 $ ipython
1015
1016 which will provide you some basic information about how to get started and will then open a prompt labeled `In [1]:` for you to start typing. Here we type $2^{64}$ and Python computes the result for us in exact arithmetic, returning it as `Out[1]`:
1017
1018 $ ipython
1019 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
1020 Type "copyright", "credits" or "license" for more information.
1021
1022 IPython 0.13.dev -- An enhanced Interactive Python.
1023 ? -> Introduction and overview of IPython's features.
1024 %quickref -> Quick reference.
1025 help -> Python's own help system.
1026 object? -> Details about 'object', use 'object??' for extra details.
1027
1028 In [1]: 2**64
1029 Out[1]: 18446744073709551616L
1030
1031 The first thing you should know about IPython is that all your inputs and outputs are saved. There are two variables named `In` and `Out` which are filled as you work with your results. Furthermore, all outputs are also saved to auto-created variables of the form `_NN` where `NN` is the prompt number, and inputs to `_iNN`. This allows you to recover quickly the result of a prior computation by referring to its number even if you forgot to store it as a variable. For example, later on in the above session you can do:
1032
1033 In [6]: print _1
1034 18446744073709551616
1035
1036 We strongly recommend that you take a few minutes to read at least the basic introduction provided by the `?` command, and keep in mind that the `%quickref` command at all times can be used as a quick reference "cheat sheet" of the most frequently used features of IPython.
1037
1038 At the IPython prompt, any valid Python code that you type will be executed similarly to the default Python shell (though often with more informative feedback). But since IPython is a *superset* of the default Python shell; let's have a brief look at some of its additional functionality.
1039
1040 **Object introspection**
1041
1042 A simple `?` command provides a general introduction to IPython, but as indicated in the banner above, you can use the `?` syntax to ask for details about any object. For example, if we type `_1?`, IPython will print the following details about this variable:
1043
1044 In [14]: _1?
1045 Type: long
1046 Base Class: <type 'long'>
1047 String Form:18446744073709551616
1048 Namespace: Interactive
1049 Docstring:
1050 long(x[, base]) -> integer
1051
1052 Convert a string or number to a long integer, if possible. A floating
1053
1054 [etc... snipped for brevity]
1055
1056 If you add a second `?` and for any oobject `x` type `x??`, IPython will try to provide an even more detailed analsysi of the object, including its syntax-highlighted source code when it can be found. It's possible that `x??` returns the same information as `x?`, but in many cases `x??` will indeed provide additional details.
1057
1058 Finally, the `?` syntax is also useful to search *namespaces* with wildcards. Suppose you are wondering if there is any function in Numpy that may do text-related things; with `np.*txt*?`, IPython will print all the names in the `np` namespace (our Numpy shorthand) that have 'txt' anywhere in their name:
1059
1060 In [17]: np.*txt*?
1061 np.genfromtxt
1062 np.loadtxt
1063 np.mafromtxt
1064 np.ndfromtxt
1065 np.recfromtxt
1066 np.savetxt
1067
1068 **Tab completion**
1069
1070 IPython makes the tab key work extra hard for you as a way to rapidly inspect objects and libraries. Whenever you have typed something at the prompt, by hitting the `<tab>` key IPython will try to complete the rest of the line. For this, IPython will analyze the text you had so far and try to search for Python data or files that may match the context you have already provided.
1071
1072 For example, if you type `np.load` and hit the <tab> key, you'll see:
1073
1074 In [21]: np.load<TAB HERE>
1075 np.load np.loads np.loadtxt
1076
1077 so you can quickly find all the load-related functionality in numpy. Tab completion works even for function arguments, for example consider this function definition:
1078
1079 In [20]: def f(x, frobinate=False):
1080 ....: if frobinate:
1081 ....: return x**2
1082 ....:
1083
1084 If you now use the `<tab>` key after having typed 'fro' you'll get all valid Python completions, but those marked with `=` at the end are known to be keywords of your function:
1085
1086 In [21]: f(2, fro<TAB HERE>
1087 frobinate= frombuffer fromfunction frompyfunc fromstring
1088 from fromfile fromiter fromregex frozenset
1089
1090 at this point you can add the `b` letter and hit `<tab>` once more, and IPython will finish the line for you:
1091
1092 In [21]: f(2, frobinate=
1093
1094 As a beginner, simply get into the habit of using `<tab>` after most objects; it should quickly become second nature as you will see how helps keep a fluid workflow and discover useful information. Later on you can also customize this behavior by writing your own completion code, if you so desire.
1095
1096 **Matplotlib integration**
1097
1098 One of the most useful features of IPython for scientists is its tight integration with matplotlib: at the terminal IPython lets you open matplotlib figures without blocking your typing (which is what happens if you try to do the same thing at the default Python shell), and in the Qt console and notebook you can even view your figures embedded in your workspace next to the code that created them.
1099
1100 The matplotlib support can be either activated when you start IPython by passing the `--pylab` flag, or at any point later in your session by using the `%pylab` command. If you start IPython with `--pylab`, you'll see something like this (note the extra message about pylab):
1101
1102 $ ipython --pylab
1103 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
1104 Type "copyright", "credits" or "license" for more information.
1105
1106 IPython 0.13.dev -- An enhanced Interactive Python.
1107 ? -> Introduction and overview of IPython's features.
1108 %quickref -> Quick reference.
1109 help -> Python's own help system.
1110 object? -> Details about 'object', use 'object??' for extra details.
1111
1112 Welcome to pylab, a matplotlib-based Python environment [backend: Qt4Agg].
1113 For more information, type 'help(pylab)'.
1114
1115 In [1]:
1116
1117 Furthermore, IPython will import `numpy` with the `np` shorthand, `matplotlib.pyplot` as `plt`, and it will also load all of the numpy and pyplot top-level names so that you can directly type something like:
1118
1119 In [1]: x = linspace(0, 2*pi, 200)
1120
1121 In [2]: plot(x, sin(x))
1122 Out[2]: [<matplotlib.lines.Line2D at 0x9e7c16c>]
1123
1124 instead of having to prefix each call with its full signature (as we have been doing in the examples thus far):
1125
1126 In [3]: x = np.linspace(0, 2*np.pi, 200)
1127
1128 In [4]: plt.plot(x, np.sin(x))
1129 Out[4]: [<matplotlib.lines.Line2D at 0x9e900ac>]
1130
1131 This shorthand notation can be a huge time-saver when working interactively (it's a few characters but you are likely to type them hundreds of times in a session). But we should note that as you develop persistent scripts and notebooks meant for reuse, it's best to get in the habit of using the longer notation (known as *fully qualified names* as it's clearer where things come from and it makes for more robust, readable and maintainable code in the long run).
1132
1133 **Access to the operating system and files**
1134
1135 In IPython, you can type `ls` to see your files or `cd` to change directories, just like you would at a regular system prompt:
1136
1137 In [2]: cd tests
1138 /home/fperez/ipython/nbconvert/tests
1139
1140 In [3]: ls test.*
1141 test.aux test.html test.ipynb test.log test.out test.pdf test.rst test.tex
1142
1143 Furthermore, if you use the `!` at the beginning of a line, any commands you pass afterwards go directly to the operating system:
1144
1145 In [4]: !echo "Hello IPython"
1146 Hello IPython
1147
1148 IPython offers a useful twist in this feature: it will substitute in the command the value of any *Python* variable you may have if you prepend it with a `$` sign:
1149
1150 In [5]: message = 'IPython interpolates from Python to the shell'
1151
1152 In [6]: !echo $message
1153 IPython interpolates from Python to the shell
1154
1155 This feature can be extremely useful, as it lets you combine the power and clarity of Python for complex logic with the immediacy and familiarity of many shell commands. Additionally, if you start the line with *two* `$$` signs, the output of the command will be automatically captured as a list of lines, e.g.:
1156
1157 In [10]: !!ls test.*
1158 Out[10]:
1159 ['test.aux',
1160 'test.html',
1161 'test.ipynb',
1162 'test.log',
1163 'test.out',
1164 'test.pdf',
1165 'test.rst',
1166 'test.tex']
1167
1168 As explained above, you can now use this as the variable `_10`. If you directly want to capture the output of a system command to a Python variable, you can use the syntax `=!`:
1169
1170 In [11]: testfiles =! ls test.*
1171
1172 In [12]: print testfiles
1173 ['test.aux', 'test.html', 'test.ipynb', 'test.log', 'test.out', 'test.pdf', 'test.rst', 'test.tex']
1174
1175 Finally, the special `%alias` command lets you define names that are shorthands for system commands, so that you can type them without having to prefix them via `!` explicitly (for example, `ls` is an alias that has been predefined for you at startup).
1176
1177 **Magic commands**
1178
1179 IPython has a system for special commands, called 'magics', that let you control IPython itself and perform many common tasks with a more shell-like syntax: it uses spaces for delimiting arguments, flags can be set with dashes and all arguments are treated as strings, so no additional quoting is required. This kind of syntax is invalid in the Python language but very convenient for interactive typing (less parentheses, commans and quoting everywhere); IPython distinguishes the two by detecting lines that start with the `%` character.
1180
1181 You can learn more about the magic system by simply typing `%magic` at the prompt, which will give you a short description plus the documentation on *all* available magics. If you want to see only a listing of existing magics, you can use `%lsmagic`:
1182
1183 In [4]: lsmagic
1184 Available magic functions:
1185 %alias %autocall %autoindent %automagic %bookmark %c %cd %colors %config %cpaste
1186 %debug %dhist %dirs %doctest_mode %ds %ed %edit %env %gui %hist %history
1187 %install_default_config %install_ext %install_profiles %load_ext %loadpy %logoff %logon
1188 %logstart %logstate %logstop %lsmagic %macro %magic %notebook %page %paste %pastebin
1189 %pd %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pop %popd %pprint %precision %profile
1190 %prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall %rehashx
1191 %reload_ext %rep %rerun %reset %reset_selective %run %save %sc %stop %store %sx %tb
1192 %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
1193
1194 Automagic is ON, % prefix NOT needed for magic functions.
1195
1196 Note how the example above omitted the eplicit `%` marker and simply uses `lsmagic`. As long as the 'automagic' feature is on (which it is by default), you can omit the `%` marker as long as there is no ambiguity with a Python variable of the same name.
1197
1198 **Running your code**
1199
1200 While it's easy to type a few lines of code in IPython, for any long-lived work you should keep your codes in Python scripts (or in IPython notebooks, see below). Consider that you have a script, in this case trivially simple for the sake of brevity, named `simple.py`:
1201
1202 In [12]: !cat simple.py
1203 import numpy as np
1204
1205 x = np.random.normal(size=100)
1206
1207 print 'First elment of x:', x[0]
1208
1209 The typical workflow with IPython is to use the `%run` magic to execute your script (you can omit the .py extension if you want). When you run it, the script will execute just as if it had been run at the system prompt with `python simple.py` (though since modules don't get re-executed on new imports by Python, all system initialization is essentially free, which can have a significant run time impact in some cases):
1210
1211 In [13]: run simple
1212 First elment of x: -1.55872256289
1213
1214 Once it completes, all variables defined in it become available for you to use interactively:
1215
1216 In [14]: x.shape
1217 Out[14]: (100,)
1218
1219 This allows you to plot data, try out ideas, etc, in a `%run`/interact/edit cycle that can be very productive. As you start understanding your problem better you can refine your script further, incrementally improving it based on the work you do at the IPython prompt. At any point you can use the `%hist` magic to print out your history without prompts, so that you can copy useful fragments back into the script.
1220
1221 By default, `%run` executes scripts in a completely empty namespace, to better mimic how they would execute at the system prompt with plain Python. But if you use the `-i` flag, the script will also see your interactively defined variables. This lets you edit in a script larger amounts of code that still behave as if you had typed them at the IPython prompt.
1222
1223 You can also get a summary of the time taken by your script with the `-t` flag; consider a different script `randsvd.py` that takes a bit longer to run:
1224
1225 In [21]: run -t randsvd.py
1226
1227 IPython CPU timings (estimated):
1228 User : 0.38 s.
1229 System : 0.04 s.
1230 Wall time: 0.34 s.
1231
1232 `User` is the time spent by the computer executing your code, while `System` is the time the operating system had to work on your behalf, doing things like memory allocation that are needed by your code but that you didn't explicitly program and that happen inside the kernel. The `Wall time` is the time on a 'clock on the wall' between the start and end of your program.
1233
1234 If `Wall > User+System`, your code is most likely waiting idle for certain periods. That could be waiting for data to arrive from a remote source or perhaps because the operating system has to swap large amounts of virtual memory. If you know that your code doesn't explicitly wait for remote data to arrive, you should investigate further to identify possible ways of improving the performance profile.
1235
1236 If you only want to time how long a single statement takes, you don't need to put it into a script as you can use the `%timeit` magic, which uses Python's `timeit` module to very carefully measure timig data; `timeit` can measure even short statements that execute extremely fast:
1237
1238 In [27]: %timeit a=1
1239 10000000 loops, best of 3: 23 ns per loop
1240
1241 and for code that runs longer, it automatically adjusts so the overall measurement doesn't take too long:
1242
1243 In [28]: %timeit np.linalg.svd(x)
1244 1 loops, best of 3: 310 ms per loop
1245
1246 The `%run` magic still has more options for debugging and profiling data; you should read its documentation for many useful details (as always, just type `%run?`).
1247
1248 ## The graphical Qt console
1249
1250 If you type at the system prompt (see the IPython website for installation details, as this requires some additional libraries):
1251
1252 $ ipython qtconsole
1253
1254 instead of opening in a terminal as before, IPython will start a graphical console that at first sight appears just like a terminal, but which is in fact much more capable than a text-only terminal. This is a specialized terminal designed for interactive scientific work, and it supports full multi-line editing with color highlighting and graphical calltips for functions, it can keep multiple IPython sessions open simultaneously in tabs, and when scripts run it can display the figures inline directly in the work area.
1255
1256 <center><img src="ipython_qtconsole2.png" width=400px></center>
1257
1258 % This cell is for the pdflatex output only
1259 \begin{figure}[htbp]
1260 \centering
1261 \includegraphics[width=3in]{ipython_qtconsole2.png}
1262 \caption{The IPython Qt console: a lightweight terminal for scientific exploration, with code, results and graphics in a soingle environment.}
1263 \end{figure}
1264
1265 The Qt console accepts the same `--pylab` startup flags as the terminal, but you can additionally supply the value `--pylab inline`, which enables the support for inline graphics shown in the figure. This is ideal for keeping all the code and figures in the same session, given that the console can save the output of your entire session to HTML or PDF.
1266
1267 Since the Qt console makes it far more convenient than the terminal to edit blocks of code with multiple lines, in this environment it's worth knowing about the `%loadpy` magic function. `%loadpy` takes a path to a local file or remote URL, fetches its contents, and puts it in the work area for you to further edit and execute. It can be an extremely fast and convenient way of loading code from local disk or remote examples from sites such as the [Matplotlib gallery](http://matplotlib.sourceforge.net/gallery.html).
1268
1269 Other than its enhanced capabilities for code and graphics, all of the features of IPython we've explained before remain functional in this graphical console.
1270
1271 ## The IPython Notebook
1272
1273 The third way to interact with IPython, in addition to the terminal and graphical Qt console, is a powerful web interface called the "IPython Notebook". If you run at the system console (you can omit the `pylab` flags if you don't need plotting support):
1274
1275 $ ipython notebook --pylab inline
1276
1277 IPython will start a process that runs a web server in your local machine and to which a web browser can connect. The Notebook is a workspace that lets you execute code in blocks called 'cells' and displays any results and figures, but which can also contain arbitrary text (including LaTeX-formatted mathematical expressions) and any rich media that a modern web browser is capable of displaying.
1278
1279 <center><img src="ipython-notebook-specgram-2.png" width=400px></center>
1280
1281 % This cell is for the pdflatex output only
1282 \begin{figure}[htbp]
1283 \centering
1284 \includegraphics[width=3in]{ipython-notebook-specgram-2.png}
1285 \caption{The IPython Notebook: text, equations, code, results, graphics and other multimedia in an open format for scientific exploration and collaboration}
1286 \end{figure}
1287
1288 In fact, this document was written as a Notebook, and only exported to LaTeX for printing. Inside of each cell, all the features of IPython that we have discussed before remain functional, since ultimately this web client is communicating with the same IPython code that runs in the terminal. But this interface is a much more rich and powerful environment for maintaining long-term "live and executable" scientific documents.
1289
1290 Notebook environments have existed in commercial systems like Mathematica(TM) and Maple(TM) for a long time; in the open source world the [Sage](http://sagemath.org) project blazed this particular trail starting in 2006, and now we bring all the features that have made IPython such a widely used tool to a Notebook model.
1291
1292 Since the Notebook runs as a web application, it is possible to configure it for remote access, letting you run your computations on a persistent server close to your data, which you can then access remotely from any browser-equipped computer. We encourage you to read the extensive documentation provided by the IPython project for details on how to do this and many more features of the notebook.
1293
1294 Finally, as we said earlier, IPython also has a high-level and easy to use set of libraries for parallel computing, that let you control (interactively if desired) not just one IPython but an entire cluster of 'IPython engines'. Unfortunately a detailed discussion of these tools is beyond the scope of this text, but should you need to parallelize your analysis codes, a quick read of the tutorials and examples provided at the IPython site may prove fruitful.
This diff has been collapsed as it changes many lines, (1181 lines changed) Show them Hide them
@@ -0,0 +1,1181 b''
1 ## An Introduction to the Scientific Python Ecosystem
2
3 # While the Python language is an excellent tool for general-purpose programming, with a highly readable syntax, rich and powerful data types (strings, lists, sets, dictionaries, arbitrary length integers, etc) and a very comprehensive standard library, it was not designed specifically for mathematical and scientific computing. Neither the language nor its standard library have facilities for the efficient representation of multidimensional datasets, tools for linear algebra and general matrix manipulations (an essential building block of virtually all technical computing), nor any data visualization facilities.
4 #
5 # In particular, Python lists are very flexible containers that can be nested arbitrarily deep and which can hold any Python object in them, but they are poorly suited to represent efficiently common mathematical constructs like vectors and matrices. In contrast, much of our modern heritage of scientific computing has been built on top of libraries written in the Fortran language, which has native support for vectors and matrices as well as a library of mathematical functions that can efficiently operate on entire arrays at once.
6
7 ### Scientific Python: a collaboration of projects built by scientists
8
9 # The scientific community has developed a set of related Python libraries that provide powerful array facilities, linear algebra, numerical algorithms, data visualization and more. In this appendix, we will briefly outline the tools most frequently used for this purpose, that make "Scientific Python" something far more powerful than the Python language alone.
10 #
11 # For reasons of space, we can only describe in some detail the central Numpy library, but below we provide links to the websites of each project where you can read their documentation in more detail.
12 #
13 # First, let's look at an overview of the basic tools that most scientists use in daily research with Python. The core of this ecosystem is composed of:
14 #
15 # * Numpy: the basic library that most others depend on, it provides a powerful array type that can represent multidmensional datasets of many different kinds and that supports arithmetic operations. Numpy also provides a library of common mathematical functions, basic linear algebra, random number generation and Fast Fourier Transforms. Numpy can be found at [numpy.scipy.org](http://numpy.scipy.org)
16 #
17 # * Scipy: a large collection of numerical algorithms that operate on numpy arrays and provide facilities for many common tasks in scientific computing, including dense and sparse linear algebra support, optimization, special functions, statistics, n-dimensional image processing, signal processing and more. Scipy can be found at [scipy.org](http://scipy.org).
18 #
19 # * Matplotlib: a data visualization library with a strong focus on producing high-quality output, it supports a variety of common scientific plot types in two and three dimensions, with precise control over the final output and format for publication-quality results. Matplotlib can also be controlled interactively allowing graphical manipulation of your data (zooming, panning, etc) and can be used with most modern user interface toolkits. It can be found at [matplotlib.sf.net](http://matplotlib.sf.net).
20 #
21 # * IPython: while not strictly scientific in nature, IPython is the interactive environment in which many scientists spend their time. IPython provides a powerful Python shell that integrates tightly with Matplotlib and with easy access to the files and operating system, and which can execute in a terminal or in a graphical Qt console. IPython also has a web-based notebook interface that can combine code with text, mathematical expressions, figures and multimedia. It can be found at [ipython.org](http://ipython.org).
22 #
23 # While each of these tools can be installed separately, in our opinion the most convenient way today of accessing them (especially on Windows and Mac computers) is to install the [Free Edition of the Enthought Python Distribution](http://www.enthought.com/products/epd_free.php) which contain all the above. Other free alternatives on Windows (but not on Macs) are [Python(x,y)](http://code.google.com/p/pythonxy) and [ Christoph Gohlke's packages page](http://www.lfd.uci.edu/~gohlke/pythonlibs).
24 #
25 # These four 'core' libraries are in practice complemented by a number of other tools for more specialized work. We will briefly list here the ones that we think are the most commonly needed:
26 #
27 # * Sympy: a symbolic manipulation tool that turns a Python session into a computer algebra system. It integrates with the IPython notebook, rendering results in properly typeset mathematical notation. [sympy.org](http://sympy.org).
28 #
29 # * Mayavi: sophisticated 3d data visualization; [code.enthought.com/projects/mayavi](http://code.enthought.com/projects/mayavi).
30 #
31 # * Cython: a bridge language between Python and C, useful both to optimize performance bottlenecks in Python and to access C libraries directly; [cython.org](http://cython.org).
32 #
33 # * Pandas: high-performance data structures and data analysis tools, with powerful data alignment and structural manipulation capabilities; [pandas.pydata.org](http://pandas.pydata.org).
34 #
35 # * Statsmodels: statistical data exploration and model estimation; [statsmodels.sourceforge.net](http://statsmodels.sourceforge.net).
36 #
37 # * Scikit-learn: general purpose machine learning algorithms with a common interface; [scikit-learn.org](http://scikit-learn.org).
38 #
39 # * Scikits-image: image processing toolbox; [scikits-image.org](http://scikits-image.org).
40 #
41 # * NetworkX: analysis of complex networks (in the graph theoretical sense); [networkx.lanl.gov](http://networkx.lanl.gov).
42 #
43 # * PyTables: management of hierarchical datasets using the industry-standard HDF5 format; [www.pytables.org](http://www.pytables.org).
44 #
45 # Beyond these, for any specific problem you should look on the internet first, before starting to write code from scratch. There's a good chance that someone, somewhere, has written an open source library that you can use for part or all of your problem.
46
47 ### A note about the examples below
48
49 # In all subsequent examples, you will see blocks of input code, followed by the results of the code if the code generated output. This output may include text, graphics and other result objects. These blocks of input can be pasted into your interactive IPython session or notebook for you to execute. In the print version of this document, a thin vertical bar on the left of the blocks of input and output shows which blocks go together.
50 #
51 # If you are reading this text as an actual IPython notebook, you can press `Shift-Enter` or use the 'play' button on the toolbar (right-pointing triangle) to execute each block of code, known as a 'cell' in IPython:
52
53 # In[71]:
54 # This is a block of code, below you'll see its output
55 print "Welcome to the world of scientific computing with Python!"
56
57 # Out[71]:
58 # Welcome to the world of scientific computing with Python!
59 #
60 ## Motivation: the trapezoidal rule
61
62 # In subsequent sections we'll provide a basic introduction to the nuts and bolts of the basic scientific python tools; but we'll first motivate it with a brief example that illustrates what you can do in a few lines with these tools. For this, we will use the simple problem of approximating a definite integral with the trapezoid rule:
63 #
64 # $$
65 # \int_{a}^{b} f(x)\, dx \approx \frac{1}{2} \sum_{k=1}^{N} \left( x_{k} - x_{k-1} \right) \left( f(x_{k}) + f(x_{k-1}) \right).
66 # $$
67 #
68 # Our task will be to compute this formula for a function such as:
69 #
70 # $$
71 # f(x) = (x-3)(x-5)(x-7)+85
72 # $$
73 #
74 # integrated between $a=1$ and $b=9$.
75 #
76 # First, we define the function and sample it evenly between 0 and 10 at 200 points:
77
78 # In[1]:
79 def f(x):
80 return (x-3)*(x-5)*(x-7)+85
81
82 import numpy as np
83 x = np.linspace(0, 10, 200)
84 y = f(x)
85
86 # We select $a$ and $b$, our integration limits, and we take only a few points in that region to illustrate the error behavior of the trapezoid approximation:
87
88 # In[2]:
89 a, b = 1, 9
90 xint = x[logical_and(x>=a, x<=b)][::30]
91 yint = y[logical_and(x>=a, x<=b)][::30]
92
93 # Let's plot both the function and the area below it in the trapezoid approximation:
94
95 # In[3]:
96 import matplotlib.pyplot as plt
97 plt.plot(x, y, lw=2)
98 plt.axis([0, 10, 0, 140])
99 plt.fill_between(xint, 0, yint, facecolor='gray', alpha=0.4)
100 plt.text(0.5 * (a + b), 30,r"$\int_a^b f(x)dx$", horizontalalignment='center', fontsize=20);
101
102 # Out[3]:
103 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_00.svg
104
105 # Compute the integral both at high accuracy and with the trapezoid approximation
106
107 # In[4]:
108 from scipy.integrate import quad, trapz
109 integral, error = quad(f, 1, 9)
110 trap_integral = trapz(yint, xint)
111 print "The integral is: %g +/- %.1e" % (integral, error)
112 print "The trapezoid approximation with", len(xint), "points is:", trap_integral
113 print "The absolute error is:", abs(integral - trap_integral)
114
115 # Out[4]:
116 # The integral is: 680 +/- 7.5e-12
117 # The trapezoid approximation with 6 points is: 621.286411141
118 # The absolute error is: 58.7135888589
119 #
120 # This simple example showed us how, combining the numpy, scipy and matplotlib libraries we can provide an illustration of a standard method in elementary calculus with just a few lines of code. We will now discuss with more detail the basic usage of these tools.
121
122 ## NumPy arrays: the right data structure for scientific computing
123
124 ### Basics of Numpy arrays
125
126 # We now turn our attention to the Numpy library, which forms the base layer for the entire 'scipy ecosystem'. Once you have installed numpy, you can import it as
127
128 # In[5]:
129 import numpy
130
131 # though in this book we will use the common shorthand
132
133 # In[6]:
134 import numpy as np
135
136 # As mentioned above, the main object provided by numpy is a powerful array. We'll start by exploring how the numpy array differs from Python lists. We start by creating a simple list and an array with the same contents of the list:
137
138 # In[7]:
139 lst = [10, 20, 30, 40]
140 arr = np.array([10, 20, 30, 40])
141
142 # Elements of a one-dimensional array are accessed with the same syntax as a list:
143
144 # In[8]:
145 lst[0]
146
147 # Out[8]:
148 # 10
149
150
151 # In[9]:
152 arr[0]
153
154 # Out[9]:
155 # 10
156
157
158 # In[10]:
159 arr[-1]
160
161 # Out[10]:
162 # 40
163
164
165 # In[11]:
166 arr[2:]
167
168 # Out[11]:
169 # array([30, 40])
170
171
172 # The first difference to note between lists and arrays is that arrays are *homogeneous*; i.e. all elements of an array must be of the same type. In contrast, lists can contain elements of arbitrary type. For example, we can change the last element in our list above to be a string:
173
174 # In[12]:
175 lst[-1] = 'a string inside a list'
176 lst
177
178 # Out[12]:
179 # [10, 20, 30, 'a string inside a list']
180
181
182 # but the same can not be done with an array, as we get an error message:
183
184 # In[13]:
185 arr[-1] = 'a string inside an array'
186
187 # Out[13]:
188 ---------------------------------------------------------------------------
189 ValueError Traceback (most recent call last)
190 /home/fperez/teach/book-math-labtool/<ipython-input-13-29c0bfa5fa8a> in <module>()
191 ----> 1 arr[-1] = 'a string inside an array'
192
193 ValueError: invalid literal for long() with base 10: 'a string inside an array'
194
195 # The information about the type of an array is contained in its *dtype* attribute:
196
197 # In[14]:
198 arr.dtype
199
200 # Out[14]:
201 # dtype('int32')
202
203
204 # Once an array has been created, its dtype is fixed and it can only store elements of the same type. For this example where the dtype is integer, if we store a floating point number it will be automatically converted into an integer:
205
206 # In[15]:
207 arr[-1] = 1.234
208 arr
209
210 # Out[15]:
211 # array([10, 20, 30, 1])
212
213
214 # Above we created an array from an existing list; now let us now see other ways in which we can create arrays, which we'll illustrate next. A common need is to have an array initialized with a constant value, and very often this value is 0 or 1 (suitable as starting value for additive and multiplicative loops respectively); `zeros` creates arrays of all zeros, with any desired dtype:
215
216 # In[16]:
217 np.zeros(5, float)
218
219 # Out[16]:
220 # array([ 0., 0., 0., 0., 0.])
221
222
223 # In[17]:
224 np.zeros(3, int)
225
226 # Out[17]:
227 # array([0, 0, 0])
228
229
230 # In[18]:
231 np.zeros(3, complex)
232
233 # Out[18]:
234 # array([ 0.+0.j, 0.+0.j, 0.+0.j])
235
236
237 # and similarly for `ones`:
238
239 # In[19]:
240 print '5 ones:', np.ones(5)
241
242 # Out[19]:
243 # 5 ones: [ 1. 1. 1. 1. 1.]
244 #
245 # If we want an array initialized with an arbitrary value, we can create an empty array and then use the fill method to put the value we want into the array:
246
247 # In[20]:
248 a = empty(4)
249 a.fill(5.5)
250 a
251
252 # Out[20]:
253 # array([ 5.5, 5.5, 5.5, 5.5])
254
255
256 # Numpy also offers the `arange` function, which works like the builtin `range` but returns an array instead of a list:
257
258 # In[21]:
259 np.arange(5)
260
261 # Out[21]:
262 # array([0, 1, 2, 3, 4])
263
264
265 # and the `linspace` and `logspace` functions to create linearly and logarithmically-spaced grids respectively, with a fixed number of points and including both ends of the specified interval:
266
267 # In[22]:
268 print "A linear grid between 0 and 1:", np.linspace(0, 1, 5)
269 print "A logarithmic grid between 10**1 and 10**4: ", np.logspace(1, 4, 4)
270
271 # Out[22]:
272 # A linear grid between 0 and 1: [ 0. 0.25 0.5 0.75 1. ]
273 # A logarithmic grid between 10**1 and 10**4: [ 10. 100. 1000. 10000.]
274 #
275 # Finally, it is often useful to create arrays with random numbers that follow a specific distribution. The `np.random` module contains a number of functions that can be used to this effect, for example this will produce an array of 5 random samples taken from a standard normal distribution (0 mean and variance 1):
276
277 # In[23]:
278 np.random.randn(5)
279
280 # Out[23]:
281 # array([-0.08633343, -0.67375434, 1.00589536, 0.87081651, 1.65597822])
282
283
284 # whereas this will also give 5 samples, but from a normal distribution with a mean of 10 and a variance of 3:
285
286 # In[24]:
287 norm10 = np.random.normal(10, 3, 5)
288 norm10
289
290 # Out[24]:
291 # array([ 8.94879575, 5.53038269, 8.24847281, 12.14944165, 11.56209294])
292
293
294 ### Indexing with other arrays
295
296 # Above we saw how to index arrays with single numbers and slices, just like Python lists. But arrays allow for a more sophisticated kind of indexing which is very powerful: you can index an array with another array, and in particular with an array of boolean values. This is particluarly useful to extract information from an array that matches a certain condition.
297 #
298 # Consider for example that in the array `norm10` we want to replace all values above 9 with the value 0. We can do so by first finding the *mask* that indicates where this condition is true or false:
299
300 # In[25]:
301 mask = norm10 > 9
302 mask
303
304 # Out[25]:
305 # array([False, False, False, True, True], dtype=bool)
306
307
308 # Now that we have this mask, we can use it to either read those values or to reset them to 0:
309
310 # In[26]:
311 print 'Values above 9:', norm10[mask]
312
313 # Out[26]:
314 # Values above 9: [ 12.14944165 11.56209294]
315 #
316 # In[27]:
317 print 'Resetting all values above 9 to 0...'
318 norm10[mask] = 0
319 print norm10
320
321 # Out[27]:
322 # Resetting all values above 9 to 0...
323 # [ 8.94879575 5.53038269 8.24847281 0. 0. ]
324 #
325 ### Arrays with more than one dimension
326
327 # Up until now all our examples have used one-dimensional arrays. But Numpy can create arrays of aribtrary dimensions, and all the methods illustrated in the previous section work with more than one dimension. For example, a list of lists can be used to initialize a two dimensional array:
328
329 # In[28]:
330 lst2 = [[1, 2], [3, 4]]
331 arr2 = np.array([[1, 2], [3, 4]])
332 arr2
333
334 # Out[28]:
335 # array([[1, 2],
336 # [3, 4]])
337
338
339 # With two-dimensional arrays we start seeing the power of numpy: while a nested list can be indexed using repeatedly the `[ ]` operator, multidimensional arrays support a much more natural indexing syntax with a single `[ ]` and a set of indices separated by commas:
340
341 # In[29]:
342 print lst2[0][1]
343 print arr2[0,1]
344
345 # Out[29]:
346 # 2
347 # 2
348 #
349 # Most of the array creation functions listed above can be used with more than one dimension, for example:
350
351 # In[30]:
352 np.zeros((2,3))
353
354 # Out[30]:
355 # array([[ 0., 0., 0.],
356 # [ 0., 0., 0.]])
357
358
359 # In[31]:
360 np.random.normal(10, 3, (2, 4))
361
362 # Out[31]:
363 # array([[ 11.26788826, 4.29619866, 11.09346496, 9.73861307],
364 # [ 10.54025996, 9.5146268 , 10.80367214, 13.62204505]])
365
366
367 # In fact, the shape of an array can be changed at any time, as long as the total number of elements is unchanged. For example, if we want a 2x4 array with numbers increasing from 0, the easiest way to create it is:
368
369 # In[32]:
370 arr = np.arange(8).reshape(2,4)
371 print arr
372
373 # Out[32]:
374 # [[0 1 2 3]
375 # [4 5 6 7]]
376 #
377 # With multidimensional arrays, you can also use slices, and you can mix and match slices and single indices in the different dimensions (using the same array as above):
378
379 # In[33]:
380 print 'Slicing in the second row:', arr[1, 2:4]
381 print 'All rows, third column :', arr[:, 2]
382
383 # Out[33]:
384 # Slicing in the second row: [6 7]
385 # All rows, third column : [2 6]
386 #
387 # If you only provide one index, then you will get an array with one less dimension containing that row:
388
389 # In[34]:
390 print 'First row: ', arr[0]
391 print 'Second row: ', arr[1]
392
393 # Out[34]:
394 # First row: [0 1 2 3]
395 # Second row: [4 5 6 7]
396 #
397 # Now that we have seen how to create arrays with more than one dimension, it's a good idea to look at some of the most useful properties and methods that arrays have. The following provide basic information about the size, shape and data in the array:
398
399 # In[35]:
400 print 'Data type :', arr.dtype
401 print 'Total number of elements :', arr.size
402 print 'Number of dimensions :', arr.ndim
403 print 'Shape (dimensionality) :', arr.shape
404 print 'Memory used (in bytes) :', arr.nbytes
405
406 # Out[35]:
407 # Data type : int32
408 # Total number of elements : 8
409 # Number of dimensions : 2
410 # Shape (dimensionality) : (2, 4)
411 # Memory used (in bytes) : 32
412 #
413 # Arrays also have many useful methods, some especially useful ones are:
414
415 # In[36]:
416 print 'Minimum and maximum :', arr.min(), arr.max()
417 print 'Sum and product of all elements :', arr.sum(), arr.prod()
418 print 'Mean and standard deviation :', arr.mean(), arr.std()
419
420 # Out[36]:
421 # Minimum and maximum : 0 7
422 # Sum and product of all elements : 28 0
423 # Mean and standard deviation : 3.5 2.29128784748
424 #
425 # For these methods, the above operations area all computed on all the elements of the array. But for a multidimensional array, it's possible to do the computation along a single dimension, by passing the `axis` parameter; for example:
426
427 # In[37]:
428 print 'For the following array:\n', arr
429 print 'The sum of elements along the rows is :', arr.sum(axis=1)
430 print 'The sum of elements along the columns is :', arr.sum(axis=0)
431
432 # Out[37]:
433 # For the following array:
434 # [[0 1 2 3]
435 # [4 5 6 7]]
436 # The sum of elements along the rows is : [ 6 22]
437 # The sum of elements along the columns is : [ 4 6 8 10]
438 #
439 # As you can see in this example, the value of the `axis` parameter is the dimension which will be *consumed* once the operation has been carried out. This is why to sum along the rows we use `axis=0`.
440 #
441 # This can be easily illustrated with an example that has more dimensions; we create an array with 4 dimensions and shape `(3,4,5,6)` and sum along the axis number 2 (i.e. the *third* axis, since in Python all counts are 0-based). That consumes the dimension whose length was 5, leaving us with a new array that has shape `(3,4,6)`:
442
443 # In[38]:
444 np.zeros((3,4,5,6)).sum(2).shape
445
446 # Out[38]:
447 # (3, 4, 6)
448
449
450 # Another widely used property of arrays is the `.T` attribute, which allows you to access the transpose of the array:
451
452 # In[39]:
453 print 'Array:\n', arr
454 print 'Transpose:\n', arr.T
455
456 # Out[39]:
457 # Array:
458 # [[0 1 2 3]
459 # [4 5 6 7]]
460 # Transpose:
461 # [[0 4]
462 # [1 5]
463 # [2 6]
464 # [3 7]]
465 #
466 # We don't have time here to look at all the methods and properties of arrays, here's a complete list. Simply try exploring some of these IPython to learn more, or read their description in the full Numpy documentation:
467 #
468 # arr.T arr.copy arr.getfield arr.put arr.squeeze
469 # arr.all arr.ctypes arr.imag arr.ravel arr.std
470 # arr.any arr.cumprod arr.item arr.real arr.strides
471 # arr.argmax arr.cumsum arr.itemset arr.repeat arr.sum
472 # arr.argmin arr.data arr.itemsize arr.reshape arr.swapaxes
473 # arr.argsort arr.diagonal arr.max arr.resize arr.take
474 # arr.astype arr.dot arr.mean arr.round arr.tofile
475 # arr.base arr.dtype arr.min arr.searchsorted arr.tolist
476 # arr.byteswap arr.dump arr.nbytes arr.setasflat arr.tostring
477 # arr.choose arr.dumps arr.ndim arr.setfield arr.trace
478 # arr.clip arr.fill arr.newbyteorder arr.setflags arr.transpose
479 # arr.compress arr.flags arr.nonzero arr.shape arr.var
480 # arr.conj arr.flat arr.prod arr.size arr.view
481 # arr.conjugate arr.flatten arr.ptp arr.sort
482
483 ### Operating with arrays
484
485 # Arrays support all regular arithmetic operators, and the numpy library also contains a complete collection of basic mathematical functions that operate on arrays. It is important to remember that in general, all operations with arrays are applied *element-wise*, i.e., are applied to all the elements of the array at the same time. Consider for example:
486
487 # In[40]:
488 arr1 = np.arange(4)
489 arr2 = np.arange(10, 14)
490 print arr1, '+', arr2, '=', arr1+arr2
491
492 # Out[40]:
493 # [0 1 2 3] + [10 11 12 13] = [10 12 14 16]
494 #
495 # Importantly, you must remember that even the multiplication operator is by default applied element-wise, it is *not* the matrix multiplication from linear algebra (as is the case in Matlab, for example):
496
497 # In[41]:
498 print arr1, '*', arr2, '=', arr1*arr2
499
500 # Out[41]:
501 # [0 1 2 3] * [10 11 12 13] = [ 0 11 24 39]
502 #
503 # While this means that in principle arrays must always match in their dimensionality in order for an operation to be valid, numpy will *broadcast* dimensions when possible. For example, suppose that you want to add the number 1.5 to `arr1`; the following would be a valid way to do it:
504
505 # In[42]:
506 arr1 + 1.5*np.ones(4)
507
508 # Out[42]:
509 # array([ 1.5, 2.5, 3.5, 4.5])
510
511
512 # But thanks to numpy's broadcasting rules, the following is equally valid:
513
514 # In[43]:
515 arr1 + 1.5
516
517 # Out[43]:
518 # array([ 1.5, 2.5, 3.5, 4.5])
519
520
521 # In this case, numpy looked at both operands and saw that the first (`arr1`) was a one-dimensional array of length 4 and the second was a scalar, considered a zero-dimensional object. The broadcasting rules allow numpy to:
522 #
523 # * *create* new dimensions of length 1 (since this doesn't change the size of the array)
524 # * 'stretch' a dimension of length 1 that needs to be matched to a dimension of a different size.
525 #
526 # So in the above example, the scalar 1.5 is effectively:
527 #
528 # * first 'promoted' to a 1-dimensional array of length 1
529 # * then, this array is 'stretched' to length 4 to match the dimension of `arr1`.
530 #
531 # After these two operations are complete, the addition can proceed as now both operands are one-dimensional arrays of length 4.
532 #
533 # This broadcasting behavior is in practice enormously powerful, especially because when numpy broadcasts to create new dimensions or to 'stretch' existing ones, it doesn't actually replicate the data. In the example above the operation is carried *as if* the 1.5 was a 1-d array with 1.5 in all of its entries, but no actual array was ever created. This can save lots of memory in cases when the arrays in question are large and can have significant performance implications.
534 #
535 # The general rule is: when operating on two arrays, NumPy compares their shapes element-wise. It starts with the trailing dimensions, and works its way forward, creating dimensions of length 1 as needed. Two dimensions are considered compatible when
536 #
537 # * they are equal to begin with, or
538 # * one of them is 1; in this case numpy will do the 'stretching' to make them equal.
539 #
540 # If these conditions are not met, a `ValueError: frames are not aligned` exception is thrown, indicating that the arrays have incompatible shapes. The size of the resulting array is the maximum size along each dimension of the input arrays.
541
542 # This shows how the broadcasting rules work in several dimensions:
543
544 # In[44]:
545 b = np.array([2, 3, 4, 5])
546 print arr, '\n\n+', b , '\n----------------\n', arr + b
547
548 # Out[44]:
549 # [[0 1 2 3]
550 # [4 5 6 7]]
551 #
552 # + [2 3 4 5]
553 # ----------------
554 # [[ 2 4 6 8]
555 # [ 6 8 10 12]]
556 #
557 # Now, how could you use broadcasting to say add `[4, 6]` along the rows to `arr` above? Simply performing the direct addition will produce the error we previously mentioned:
558
559 # In[45]:
560 c = np.array([4, 6])
561 arr + c
562
563 # Out[45]:
564 ---------------------------------------------------------------------------
565 ValueError Traceback (most recent call last)
566 /home/fperez/teach/book-math-labtool/<ipython-input-45-62aa20ac1980> in <module>()
567 1 c = np.array([4, 6])
568 ----> 2 arr + c
569
570 ValueError: operands could not be broadcast together with shapes (2,4) (2)
571
572 # According to the rules above, the array `c` would need to have a *trailing* dimension of 1 for the broadcasting to work. It turns out that numpy allows you to 'inject' new dimensions anywhere into an array on the fly, by indexing it with the special object `np.newaxis`:
573
574 # In[46]:
575 (c[:, np.newaxis]).shape
576
577 # Out[46]:
578 # (2, 1)
579
580
581 # This is exactly what we need, and indeed it works:
582
583 # In[47]:
584 arr + c[:, np.newaxis]
585
586 # Out[47]:
587 # array([[ 4, 5, 6, 7],
588 # [10, 11, 12, 13]])
589
590
591 # For the full broadcasting rules, please see the official Numpy docs, which describe them in detail and with more complex examples.
592
593 # As we mentioned before, Numpy ships with a full complement of mathematical functions that work on entire arrays, including logarithms, exponentials, trigonometric and hyperbolic trigonometric functions, etc. Furthermore, scipy ships a rich special function library in the `scipy.special` module that includes Bessel, Airy, Fresnel, Laguerre and other classical special functions. For example, sampling the sine function at 100 points between $0$ and $2\pi$ is as simple as:
594
595 # In[48]:
596 x = np.linspace(0, 2*np.pi, 100)
597 y = np.sin(x)
598
599 ### Linear algebra in numpy
600
601 # Numpy ships with a basic linear algebra library, and all arrays have a `dot` method whose behavior is that of the scalar dot product when its arguments are vectors (one-dimensional arrays) and the traditional matrix multiplication when one or both of its arguments are two-dimensional arrays:
602
603 # In[49]:
604 v1 = np.array([2, 3, 4])
605 v2 = np.array([1, 0, 1])
606 print v1, '.', v2, '=', v1.dot(v2)
607
608 # Out[49]:
609 # [2 3 4] . [1 0 1] = 6
610 #
611 # Here is a regular matrix-vector multiplication, note that the array `v1` should be viewed as a *column* vector in traditional linear algebra notation; numpy makes no distinction between row and column vectors and simply verifies that the dimensions match the required rules of matrix multiplication, in this case we have a $2 \times 3$ matrix multiplied by a 3-vector, which produces a 2-vector:
612
613 # In[50]:
614 A = np.arange(6).reshape(2, 3)
615 print A, 'x', v1, '=', A.dot(v1)
616
617 # Out[50]:
618 # [[0 1 2]
619 # [3 4 5]] x [2 3 4] = [11 38]
620 #
621 # For matrix-matrix multiplication, the same dimension-matching rules must be satisfied, e.g. consider the difference between $A \times A^T$:
622
623 # In[51]:
624 print A.dot(A.T)
625
626 # Out[51]:
627 # [[ 5 14]
628 # [14 50]]
629 #
630 # and $A^T \times A$:
631
632 # In[52]:
633 print A.T.dot(A)
634
635 # Out[52]:
636 # [[ 9 12 15]
637 # [12 17 22]
638 # [15 22 29]]
639 #
640 # Furthermore, the `numpy.linalg` module includes additional functionality such as determinants, matrix norms, Cholesky, eigenvalue and singular value decompositions, etc. For even more linear algebra tools, `scipy.linalg` contains the majority of the tools in the classic LAPACK libraries as well as functions to operate on sparse matrices. We refer the reader to the Numpy and Scipy documentations for additional details on these.
641
642 ### Reading and writing arrays to disk
643
644 # Numpy lets you read and write arrays into files in a number of ways. In order to use these tools well, it is critical to understand the difference between a *text* and a *binary* file containing numerical data. In a text file, the number $\pi$ could be written as "3.141592653589793", for example: a string of digits that a human can read, with in this case 15 decimal digits. In contrast, that same number written to a binary file would be encoded as 8 characters (bytes) that are not readable by a human but which contain the exact same data that the variable `pi` had in the computer's memory.
645 #
646 # The tradeoffs between the two modes are thus:
647 #
648 # * Text mode: occupies more space, precision can be lost (if not all digits are written to disk), but is readable and editable by hand with a text editor. Can *only* be used for one- and two-dimensional arrays.
649 #
650 # * Binary mode: compact and exact representation of the data in memory, can't be read or edited by hand. Arrays of any size and dimensionality can be saved and read without loss of information.
651 #
652 # First, let's see how to read and write arrays in text mode. The `np.savetxt` function saves an array to a text file, with options to control the precision, separators and even adding a header:
653
654 # In[53]:
655 arr = np.arange(10).reshape(2, 5)
656 np.savetxt('test.out', arr, fmt='%.2e', header="My dataset")
657 !cat test.out
658
659 # Out[53]:
660 # # My dataset
661 # 0.00e+00 1.00e+00 2.00e+00 3.00e+00 4.00e+00
662 # 5.00e+00 6.00e+00 7.00e+00 8.00e+00 9.00e+00
663 #
664 # And this same type of file can then be read with the matching `np.loadtxt` function:
665
666 # In[54]:
667 arr2 = np.loadtxt('test.out')
668 print arr2
669
670 # Out[54]:
671 # [[ 0. 1. 2. 3. 4.]
672 # [ 5. 6. 7. 8. 9.]]
673 #
674 # For binary data, Numpy provides the `np.save` and `np.savez` routines. The first saves a single array to a file with `.npy` extension, while the latter can be used to save a *group* of arrays into a single file with `.npz` extension. The files created with these routines can then be read with the `np.load` function.
675 #
676 # Let us first see how to use the simpler `np.save` function to save a single array:
677
678 # In[55]:
679 np.save('test.npy', arr2)
680 # Now we read this back
681 arr2n = np.load('test.npy')
682 # Let's see if any element is non-zero in the difference.
683 # A value of True would be a problem.
684 print 'Any differences?', np.any(arr2-arr2n)
685
686 # Out[55]:
687 # Any differences? False
688 #
689 # Now let us see how the `np.savez` function works. You give it a filename and either a sequence of arrays or a set of keywords. In the first mode, the function will auotmatically name the saved arrays in the archive as `arr_0`, `arr_1`, etc:
690
691 # In[56]:
692 np.savez('test.npz', arr, arr2)
693 arrays = np.load('test.npz')
694 arrays.files
695
696 # Out[56]:
697 # ['arr_1', 'arr_0']
698
699
700 # Alternatively, we can explicitly choose how to name the arrays we save:
701
702 # In[57]:
703 np.savez('test.npz', array1=arr, array2=arr2)
704 arrays = np.load('test.npz')
705 arrays.files
706
707 # Out[57]:
708 # ['array2', 'array1']
709
710
711 # The object returned by `np.load` from an `.npz` file works like a dictionary, though you can also access its constituent files by attribute using its special `.f` field; this is best illustrated with an example with the `arrays` object from above:
712
713 # In[58]:
714 print 'First row of first array:', arrays['array1'][0]
715 # This is an equivalent way to get the same field
716 print 'First row of first array:', arrays.f.array1[0]
717
718 # Out[58]:
719 # First row of first array: [0 1 2 3 4]
720 # First row of first array: [0 1 2 3 4]
721 #
722 # This `.npz` format is a very convenient way to package compactly and without loss of information, into a single file, a group of related arrays that pertain to a specific problem. At some point, however, the complexity of your dataset may be such that the optimal approach is to use one of the standard formats in scientific data processing that have been designed to handle complex datasets, such as NetCDF or HDF5.
723 #
724 # Fortunately, there are tools for manipulating these formats in Python, and for storing data in other ways such as databases. A complete discussion of the possibilities is beyond the scope of this discussion, but of particular interest for scientific users we at least mention the following:
725 #
726 # * The `scipy.io` module contains routines to read and write Matlab files in `.mat` format and files in the NetCDF format that is widely used in certain scientific disciplines.
727 #
728 # * For manipulating files in the HDF5 format, there are two excellent options in Python: The PyTables project offers a high-level, object oriented approach to manipulating HDF5 datasets, while the h5py project offers a more direct mapping to the standard HDF5 library interface. Both are excellent tools; if you need to work with HDF5 datasets you should read some of their documentation and examples and decide which approach is a better match for your needs.
729
730 ## High quality data visualization with Matplotlib
731
732 # The [matplotlib](http://matplotlib.sf.net) library is a powerful tool capable of producing complex publication-quality figures with fine layout control in two and three dimensions; here we will only provide a minimal self-contained introduction to its usage that covers the functionality needed for the rest of the book. We encourage the reader to read the tutorials included with the matplotlib documentation as well as to browse its extensive gallery of examples that include source code.
733 #
734 # Just as we typically use the shorthand `np` for Numpy, we will use `plt` for the `matplotlib.pyplot` module where the easy-to-use plotting functions reside (the library contains a rich object-oriented architecture that we don't have the space to discuss here):
735
736 # In[59]:
737 import matplotlib.pyplot as plt
738
739 # The most frequently used function is simply called `plot`, here is how you can make a simple plot of $\sin(x)$ for $x \in [0, 2\pi]$ with labels and a grid (we use the semicolon in the last line to suppress the display of some information that is unnecessary right now):
740
741 # In[60]:
742 x = np.linspace(0, 2*np.pi)
743 y = np.sin(x)
744 plt.plot(x,y, label='sin(x)')
745 plt.legend()
746 plt.grid()
747 plt.title('Harmonic')
748 plt.xlabel('x')
749 plt.ylabel('y');
750
751 # Out[60]:
752 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_01.svg
753
754 # You can control the style, color and other properties of the markers, for example:
755
756 # In[61]:
757 plt.plot(x, y, linewidth=2);
758
759 # Out[61]:
760 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_02.svg
761
762 # In[62]:
763 plt.plot(x, y, 'o', markersize=5, color='r');
764
765 # Out[62]:
766 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_03.svg
767
768 # We will now see how to create a few other common plot types, such as a simple error plot:
769
770 # In[63]:
771 # example data
772 x = np.arange(0.1, 4, 0.5)
773 y = np.exp(-x)
774
775 # example variable error bar values
776 yerr = 0.1 + 0.2*np.sqrt(x)
777 xerr = 0.1 + yerr
778
779 # First illustrate basic pyplot interface, using defaults where possible.
780 plt.figure()
781 plt.errorbar(x, y, xerr=0.2, yerr=0.4)
782 plt.title("Simplest errorbars, 0.2 in x, 0.4 in y");
783
784 # Out[63]:
785 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_04.svg
786
787 # A simple log plot
788
789 # In[64]:
790 x = np.linspace(-5, 5)
791 y = np.exp(-x**2)
792 plt.semilogy(x, y);
793
794 # Out[64]:
795 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_05.svg
796
797 # A histogram annotated with text inside the plot, using the `text` function:
798
799 # In[65]:
800 mu, sigma = 100, 15
801 x = mu + sigma * np.random.randn(10000)
802
803 # the histogram of the data
804 n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
805
806 plt.xlabel('Smarts')
807 plt.ylabel('Probability')
808 plt.title('Histogram of IQ')
809 # This will put a text fragment at the position given:
810 plt.text(55, .027, r'$\mu=100,\ \sigma=15$', fontsize=14)
811 plt.axis([40, 160, 0, 0.03])
812 plt.grid(True)
813
814 # Out[65]:
815 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_06.svg
816
817 ### Image display
818
819 # The `imshow` command can display single or multi-channel images. A simple array of random numbers, plotted in grayscale:
820
821 # In[66]:
822 from matplotlib import cm
823 plt.imshow(np.random.rand(5, 10), cmap=cm.gray, interpolation='nearest');
824
825 # Out[66]:
826 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_07.svg
827
828 # A real photograph is a multichannel image, `imshow` interprets it correctly:
829
830 # In[67]:
831 img = plt.imread('stinkbug.png')
832 print 'Dimensions of the array img:', img.shape
833 plt.imshow(img);
834
835 # Out[67]:
836 # Dimensions of the array img: (375, 500, 3)
837 #
838 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_08.svg
839
840 ### Simple 3d plotting with matplotlib
841
842 # Note that you must execute at least once in your session:
843
844 # In[68]:
845 from mpl_toolkits.mplot3d import Axes3D
846
847 # One this has been done, you can create 3d axes with the `projection='3d'` keyword to `add_subplot`:
848 #
849 # fig = plt.figure()
850 # fig.add_subplot(<other arguments here>, projection='3d')
851
852 # A simple surface plot:
853
854 # In[72]:
855 from mpl_toolkits.mplot3d.axes3d import Axes3D
856 from matplotlib import cm
857
858 fig = plt.figure()
859 ax = fig.add_subplot(1, 1, 1, projection='3d')
860 X = np.arange(-5, 5, 0.25)
861 Y = np.arange(-5, 5, 0.25)
862 X, Y = np.meshgrid(X, Y)
863 R = np.sqrt(X**2 + Y**2)
864 Z = np.sin(R)
865 surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
866 linewidth=0, antialiased=False)
867 ax.set_zlim3d(-1.01, 1.01);
868
869 # Out[72]:
870 # image file: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_09.svg
871
872 ## IPython: a powerful interactive environment
873
874 # A key component of the everyday workflow of most scientific computing environments is a good interactive environment, that is, a system in which you can execute small amounts of code and view the results immediately, combining both printing out data and opening graphical visualizations. All modern systems for scientific computing, commercial and open source, include such functionality.
875 #
876 # Out of the box, Python also offers a simple interactive shell with very limited capabilities. But just like the scientific community built Numpy to provide arrays suited for scientific work (since Pytyhon's lists aren't optimal for this task), it has also developed an interactive environment much more sophisticated than the built-in one. The [IPython project](http://ipython.org) offers a set of tools to make productive use of the Python language, all the while working interactively and with immedate feedback on your results. The basic tools that IPython provides are:
877 #
878 # 1. A powerful terminal shell, with many features designed to increase the fluidity and productivity of everyday scientific workflows, including:
879 #
880 # * rich introspection of all objects and variables including easy access to the source code of any function
881 # * powerful and extensible tab completion of variables and filenames,
882 # * tight integration with matplotlib, supporting interactive figures that don't block the terminal,
883 # * direct access to the filesystem and underlying operating system,
884 # * an extensible system for shell-like commands called 'magics' that reduce the work needed to perform many common tasks,
885 # * tools for easily running, timing, profiling and debugging your codes,
886 # * syntax highlighted error messages with much more detail than the default Python ones,
887 # * logging and access to all previous history of inputs, including across sessions
888 #
889 # 2. A Qt console that provides the look and feel of a terminal, but adds support for inline figures, graphical calltips, a persistent session that can survive crashes (even segfaults) of the kernel process, and more.
890 #
891 # 3. A web-based notebook that can execute code and also contain rich text and figures, mathematical equations and arbitrary HTML. This notebook presents a document-like view with cells where code is executed but that can be edited in-place, reordered, mixed with explanatory text and figures, etc.
892 #
893 # 4. A high-performance, low-latency system for parallel computing that supports the control of a cluster of IPython engines communicating over a network, with optimizations that minimize unnecessary copying of large objects (especially numpy arrays).
894 #
895 # We will now discuss the highlights of the tools 1-3 above so that you can make them an effective part of your workflow. The topic of parallel computing is beyond the scope of this document, but we encourage you to read the extensive [documentation](http://ipython.org/ipython-doc/rel-0.12.1/parallel/index.html) and [tutorials](http://minrk.github.com/scipy-tutorial-2011/) on this available on the IPython website.
896
897 ### The IPython terminal
898
899 # You can start IPython at the terminal simply by typing:
900 #
901 # $ ipython
902 #
903 # which will provide you some basic information about how to get started and will then open a prompt labeled `In [1]:` for you to start typing. Here we type $2^{64}$ and Python computes the result for us in exact arithmetic, returning it as `Out[1]`:
904 #
905 # $ ipython
906 # Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
907 # Type "copyright", "credits" or "license" for more information.
908 #
909 # IPython 0.13.dev -- An enhanced Interactive Python.
910 # ? -> Introduction and overview of IPython's features.
911 # %quickref -> Quick reference.
912 # help -> Python's own help system.
913 # object? -> Details about 'object', use 'object??' for extra details.
914 #
915 # In [1]: 2**64
916 # Out[1]: 18446744073709551616L
917 #
918 # The first thing you should know about IPython is that all your inputs and outputs are saved. There are two variables named `In` and `Out` which are filled as you work with your results. Furthermore, all outputs are also saved to auto-created variables of the form `_NN` where `NN` is the prompt number, and inputs to `_iNN`. This allows you to recover quickly the result of a prior computation by referring to its number even if you forgot to store it as a variable. For example, later on in the above session you can do:
919 #
920 # In [6]: print _1
921 # 18446744073709551616
922
923 # We strongly recommend that you take a few minutes to read at least the basic introduction provided by the `?` command, and keep in mind that the `%quickref` command at all times can be used as a quick reference "cheat sheet" of the most frequently used features of IPython.
924 #
925 # At the IPython prompt, any valid Python code that you type will be executed similarly to the default Python shell (though often with more informative feedback). But since IPython is a *superset* of the default Python shell; let's have a brief look at some of its additional functionality.
926
927 # **Object introspection**
928 #
929 # A simple `?` command provides a general introduction to IPython, but as indicated in the banner above, you can use the `?` syntax to ask for details about any object. For example, if we type `_1?`, IPython will print the following details about this variable:
930 #
931 # In [14]: _1?
932 # Type: long
933 # Base Class: <type 'long'>
934 # String Form:18446744073709551616
935 # Namespace: Interactive
936 # Docstring:
937 # long(x[, base]) -> integer
938 #
939 # Convert a string or number to a long integer, if possible. A floating
940 #
941 # [etc... snipped for brevity]
942 #
943 # If you add a second `?` and for any oobject `x` type `x??`, IPython will try to provide an even more detailed analsysi of the object, including its syntax-highlighted source code when it can be found. It's possible that `x??` returns the same information as `x?`, but in many cases `x??` will indeed provide additional details.
944 #
945 # Finally, the `?` syntax is also useful to search *namespaces* with wildcards. Suppose you are wondering if there is any function in Numpy that may do text-related things; with `np.*txt*?`, IPython will print all the names in the `np` namespace (our Numpy shorthand) that have 'txt' anywhere in their name:
946 #
947 # In [17]: np.*txt*?
948 # np.genfromtxt
949 # np.loadtxt
950 # np.mafromtxt
951 # np.ndfromtxt
952 # np.recfromtxt
953 # np.savetxt
954
955 # **Tab completion**
956 #
957 # IPython makes the tab key work extra hard for you as a way to rapidly inspect objects and libraries. Whenever you have typed something at the prompt, by hitting the `<tab>` key IPython will try to complete the rest of the line. For this, IPython will analyze the text you had so far and try to search for Python data or files that may match the context you have already provided.
958 #
959 # For example, if you type `np.load` and hit the <tab> key, you'll see:
960 #
961 # In [21]: np.load<TAB HERE>
962 # np.load np.loads np.loadtxt
963 #
964 # so you can quickly find all the load-related functionality in numpy. Tab completion works even for function arguments, for example consider this function definition:
965 #
966 # In [20]: def f(x, frobinate=False):
967 # ....: if frobinate:
968 # ....: return x**2
969 # ....:
970 #
971 # If you now use the `<tab>` key after having typed 'fro' you'll get all valid Python completions, but those marked with `=` at the end are known to be keywords of your function:
972 #
973 # In [21]: f(2, fro<TAB HERE>
974 # frobinate= frombuffer fromfunction frompyfunc fromstring
975 # from fromfile fromiter fromregex frozenset
976 #
977 # at this point you can add the `b` letter and hit `<tab>` once more, and IPython will finish the line for you:
978 #
979 # In [21]: f(2, frobinate=
980 #
981 # As a beginner, simply get into the habit of using `<tab>` after most objects; it should quickly become second nature as you will see how helps keep a fluid workflow and discover useful information. Later on you can also customize this behavior by writing your own completion code, if you so desire.
982
983 # **Matplotlib integration**
984 #
985 # One of the most useful features of IPython for scientists is its tight integration with matplotlib: at the terminal IPython lets you open matplotlib figures without blocking your typing (which is what happens if you try to do the same thing at the default Python shell), and in the Qt console and notebook you can even view your figures embedded in your workspace next to the code that created them.
986 #
987 # The matplotlib support can be either activated when you start IPython by passing the `--pylab` flag, or at any point later in your session by using the `%pylab` command. If you start IPython with `--pylab`, you'll see something like this (note the extra message about pylab):
988 #
989 # $ ipython --pylab
990 # Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
991 # Type "copyright", "credits" or "license" for more information.
992 #
993 # IPython 0.13.dev -- An enhanced Interactive Python.
994 # ? -> Introduction and overview of IPython's features.
995 # %quickref -> Quick reference.
996 # help -> Python's own help system.
997 # object? -> Details about 'object', use 'object??' for extra details.
998 #
999 # Welcome to pylab, a matplotlib-based Python environment [backend: Qt4Agg].
1000 # For more information, type 'help(pylab)'.
1001 #
1002 # In [1]:
1003 #
1004 # Furthermore, IPython will import `numpy` with the `np` shorthand, `matplotlib.pyplot` as `plt`, and it will also load all of the numpy and pyplot top-level names so that you can directly type something like:
1005 #
1006 # In [1]: x = linspace(0, 2*pi, 200)
1007 #
1008 # In [2]: plot(x, sin(x))
1009 # Out[2]: [<matplotlib.lines.Line2D at 0x9e7c16c>]
1010 #
1011 # instead of having to prefix each call with its full signature (as we have been doing in the examples thus far):
1012 #
1013 # In [3]: x = np.linspace(0, 2*np.pi, 200)
1014 #
1015 # In [4]: plt.plot(x, np.sin(x))
1016 # Out[4]: [<matplotlib.lines.Line2D at 0x9e900ac>]
1017 #
1018 # This shorthand notation can be a huge time-saver when working interactively (it's a few characters but you are likely to type them hundreds of times in a session). But we should note that as you develop persistent scripts and notebooks meant for reuse, it's best to get in the habit of using the longer notation (known as *fully qualified names* as it's clearer where things come from and it makes for more robust, readable and maintainable code in the long run).
1019
1020 # **Access to the operating system and files**
1021 #
1022 # In IPython, you can type `ls` to see your files or `cd` to change directories, just like you would at a regular system prompt:
1023 #
1024 # In [2]: cd tests
1025 # /home/fperez/ipython/nbconvert/tests
1026 #
1027 # In [3]: ls test.*
1028 # test.aux test.html test.ipynb test.log test.out test.pdf test.rst test.tex
1029 #
1030 # Furthermore, if you use the `!` at the beginning of a line, any commands you pass afterwards go directly to the operating system:
1031 #
1032 # In [4]: !echo "Hello IPython"
1033 # Hello IPython
1034 #
1035 # IPython offers a useful twist in this feature: it will substitute in the command the value of any *Python* variable you may have if you prepend it with a `$` sign:
1036 #
1037 # In [5]: message = 'IPython interpolates from Python to the shell'
1038 #
1039 # In [6]: !echo $message
1040 # IPython interpolates from Python to the shell
1041 #
1042 # This feature can be extremely useful, as it lets you combine the power and clarity of Python for complex logic with the immediacy and familiarity of many shell commands. Additionally, if you start the line with *two* `$$` signs, the output of the command will be automatically captured as a list of lines, e.g.:
1043 #
1044 # In [10]: !!ls test.*
1045 # Out[10]:
1046 # ['test.aux',
1047 # 'test.html',
1048 # 'test.ipynb',
1049 # 'test.log',
1050 # 'test.out',
1051 # 'test.pdf',
1052 # 'test.rst',
1053 # 'test.tex']
1054 #
1055 # As explained above, you can now use this as the variable `_10`. If you directly want to capture the output of a system command to a Python variable, you can use the syntax `=!`:
1056 #
1057 # In [11]: testfiles =! ls test.*
1058 #
1059 # In [12]: print testfiles
1060 # ['test.aux', 'test.html', 'test.ipynb', 'test.log', 'test.out', 'test.pdf', 'test.rst', 'test.tex']
1061 #
1062 # Finally, the special `%alias` command lets you define names that are shorthands for system commands, so that you can type them without having to prefix them via `!` explicitly (for example, `ls` is an alias that has been predefined for you at startup).
1063
1064 # **Magic commands**
1065 #
1066 # IPython has a system for special commands, called 'magics', that let you control IPython itself and perform many common tasks with a more shell-like syntax: it uses spaces for delimiting arguments, flags can be set with dashes and all arguments are treated as strings, so no additional quoting is required. This kind of syntax is invalid in the Python language but very convenient for interactive typing (less parentheses, commans and quoting everywhere); IPython distinguishes the two by detecting lines that start with the `%` character.
1067 #
1068 # You can learn more about the magic system by simply typing `%magic` at the prompt, which will give you a short description plus the documentation on *all* available magics. If you want to see only a listing of existing magics, you can use `%lsmagic`:
1069 #
1070 # In [4]: lsmagic
1071 # Available magic functions:
1072 # %alias %autocall %autoindent %automagic %bookmark %c %cd %colors %config %cpaste
1073 # %debug %dhist %dirs %doctest_mode %ds %ed %edit %env %gui %hist %history
1074 # %install_default_config %install_ext %install_profiles %load_ext %loadpy %logoff %logon
1075 # %logstart %logstate %logstop %lsmagic %macro %magic %notebook %page %paste %pastebin
1076 # %pd %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pop %popd %pprint %precision %profile
1077 # %prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall %rehashx
1078 # %reload_ext %rep %rerun %reset %reset_selective %run %save %sc %stop %store %sx %tb
1079 # %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
1080 #
1081 # Automagic is ON, % prefix NOT needed for magic functions.
1082 #
1083 # Note how the example above omitted the eplicit `%` marker and simply uses `lsmagic`. As long as the 'automagic' feature is on (which it is by default), you can omit the `%` marker as long as there is no ambiguity with a Python variable of the same name.
1084
1085 # **Running your code**
1086 #
1087 # While it's easy to type a few lines of code in IPython, for any long-lived work you should keep your codes in Python scripts (or in IPython notebooks, see below). Consider that you have a script, in this case trivially simple for the sake of brevity, named `simple.py`:
1088 #
1089 # In [12]: !cat simple.py
1090 # import numpy as np
1091 #
1092 # x = np.random.normal(size=100)
1093 #
1094 # print 'First elment of x:', x[0]
1095 #
1096 # The typical workflow with IPython is to use the `%run` magic to execute your script (you can omit the .py extension if you want). When you run it, the script will execute just as if it had been run at the system prompt with `python simple.py` (though since modules don't get re-executed on new imports by Python, all system initialization is essentially free, which can have a significant run time impact in some cases):
1097 #
1098 # In [13]: run simple
1099 # First elment of x: -1.55872256289
1100 #
1101 # Once it completes, all variables defined in it become available for you to use interactively:
1102 #
1103 # In [14]: x.shape
1104 # Out[14]: (100,)
1105 #
1106 # This allows you to plot data, try out ideas, etc, in a `%run`/interact/edit cycle that can be very productive. As you start understanding your problem better you can refine your script further, incrementally improving it based on the work you do at the IPython prompt. At any point you can use the `%hist` magic to print out your history without prompts, so that you can copy useful fragments back into the script.
1107 #
1108 # By default, `%run` executes scripts in a completely empty namespace, to better mimic how they would execute at the system prompt with plain Python. But if you use the `-i` flag, the script will also see your interactively defined variables. This lets you edit in a script larger amounts of code that still behave as if you had typed them at the IPython prompt.
1109 #
1110 # You can also get a summary of the time taken by your script with the `-t` flag; consider a different script `randsvd.py` that takes a bit longer to run:
1111 #
1112 # In [21]: run -t randsvd.py
1113 #
1114 # IPython CPU timings (estimated):
1115 # User : 0.38 s.
1116 # System : 0.04 s.
1117 # Wall time: 0.34 s.
1118 #
1119 # `User` is the time spent by the computer executing your code, while `System` is the time the operating system had to work on your behalf, doing things like memory allocation that are needed by your code but that you didn't explicitly program and that happen inside the kernel. The `Wall time` is the time on a 'clock on the wall' between the start and end of your program.
1120 #
1121 # If `Wall > User+System`, your code is most likely waiting idle for certain periods. That could be waiting for data to arrive from a remote source or perhaps because the operating system has to swap large amounts of virtual memory. If you know that your code doesn't explicitly wait for remote data to arrive, you should investigate further to identify possible ways of improving the performance profile.
1122 #
1123 # If you only want to time how long a single statement takes, you don't need to put it into a script as you can use the `%timeit` magic, which uses Python's `timeit` module to very carefully measure timig data; `timeit` can measure even short statements that execute extremely fast:
1124 #
1125 # In [27]: %timeit a=1
1126 # 10000000 loops, best of 3: 23 ns per loop
1127 #
1128 # and for code that runs longer, it automatically adjusts so the overall measurement doesn't take too long:
1129 #
1130 # In [28]: %timeit np.linalg.svd(x)
1131 # 1 loops, best of 3: 310 ms per loop
1132 #
1133 # The `%run` magic still has more options for debugging and profiling data; you should read its documentation for many useful details (as always, just type `%run?`).
1134
1135 ### The graphical Qt console
1136
1137 # If you type at the system prompt (see the IPython website for installation details, as this requires some additional libraries):
1138 #
1139 # $ ipython qtconsole
1140 #
1141 # instead of opening in a terminal as before, IPython will start a graphical console that at first sight appears just like a terminal, but which is in fact much more capable than a text-only terminal. This is a specialized terminal designed for interactive scientific work, and it supports full multi-line editing with color highlighting and graphical calltips for functions, it can keep multiple IPython sessions open simultaneously in tabs, and when scripts run it can display the figures inline directly in the work area.
1142 #
1143 # <center><img src="ipython_qtconsole2.png" width=400px></center>
1144
1145 # % This cell is for the pdflatex output only
1146 # \begin{figure}[htbp]
1147 # \centering
1148 # \includegraphics[width=3in]{ipython_qtconsole2.png}
1149 # \caption{The IPython Qt console: a lightweight terminal for scientific exploration, with code, results and graphics in a soingle environment.}
1150 # \end{figure}
1151
1152 # The Qt console accepts the same `--pylab` startup flags as the terminal, but you can additionally supply the value `--pylab inline`, which enables the support for inline graphics shown in the figure. This is ideal for keeping all the code and figures in the same session, given that the console can save the output of your entire session to HTML or PDF.
1153 #
1154 # Since the Qt console makes it far more convenient than the terminal to edit blocks of code with multiple lines, in this environment it's worth knowing about the `%loadpy` magic function. `%loadpy` takes a path to a local file or remote URL, fetches its contents, and puts it in the work area for you to further edit and execute. It can be an extremely fast and convenient way of loading code from local disk or remote examples from sites such as the [Matplotlib gallery](http://matplotlib.sourceforge.net/gallery.html).
1155 #
1156 # Other than its enhanced capabilities for code and graphics, all of the features of IPython we've explained before remain functional in this graphical console.
1157
1158 ### The IPython Notebook
1159
1160 # The third way to interact with IPython, in addition to the terminal and graphical Qt console, is a powerful web interface called the "IPython Notebook". If you run at the system console (you can omit the `pylab` flags if you don't need plotting support):
1161 #
1162 # $ ipython notebook --pylab inline
1163 #
1164 # IPython will start a process that runs a web server in your local machine and to which a web browser can connect. The Notebook is a workspace that lets you execute code in blocks called 'cells' and displays any results and figures, but which can also contain arbitrary text (including LaTeX-formatted mathematical expressions) and any rich media that a modern web browser is capable of displaying.
1165 #
1166 # <center><img src="ipython-notebook-specgram-2.png" width=400px></center>
1167
1168 # % This cell is for the pdflatex output only
1169 # \begin{figure}[htbp]
1170 # \centering
1171 # \includegraphics[width=3in]{ipython-notebook-specgram-2.png}
1172 # \caption{The IPython Notebook: text, equations, code, results, graphics and other multimedia in an open format for scientific exploration and collaboration}
1173 # \end{figure}
1174
1175 # In fact, this document was written as a Notebook, and only exported to LaTeX for printing. Inside of each cell, all the features of IPython that we have discussed before remain functional, since ultimately this web client is communicating with the same IPython code that runs in the terminal. But this interface is a much more rich and powerful environment for maintaining long-term "live and executable" scientific documents.
1176 #
1177 # Notebook environments have existed in commercial systems like Mathematica(TM) and Maple(TM) for a long time; in the open source world the [Sage](http://sagemath.org) project blazed this particular trail starting in 2006, and now we bring all the features that have made IPython such a widely used tool to a Notebook model.
1178 #
1179 # Since the Notebook runs as a web application, it is possible to configure it for remote access, letting you run your computations on a persistent server close to your data, which you can then access remotely from any browser-equipped computer. We encourage you to read the extensive documentation provided by the IPython project for details on how to do this and many more features of the notebook.
1180 #
1181 # Finally, as we said earlier, IPython also has a high-level and easy to use set of libraries for parallel computing, that let you control (interactively if desired) not just one IPython but an entire cluster of 'IPython engines'. Unfortunately a detailed discussion of these tools is beyond the scope of this text, but should you need to parallelize your analysis codes, a quick read of the tutorials and examples provided at the IPython site may prove fruitful.
This diff has been collapsed as it changes many lines, (2077 lines changed) Show them Hide them
@@ -0,0 +1,2077 b''
1 An Introduction to the Scientific Python Ecosystem
2 ==================================================
3
4 While the Python language is an excellent tool for general-purpose
5 programming, with a highly readable syntax, rich and powerful data types
6 (strings, lists, sets, dictionaries, arbitrary length integers, etc) and
7 a very comprehensive standard library, it was not designed specifically
8 for mathematical and scientific computing. Neither the language nor its
9 standard library have facilities for the efficient representation of
10 multidimensional datasets, tools for linear algebra and general matrix
11 manipulations (an essential building block of virtually all technical
12 computing), nor any data visualization facilities.
13
14 In particular, Python lists are very flexible containers that can be
15 nested arbitrarily deep and which can hold any Python object in them,
16 but they are poorly suited to represent efficiently common mathematical
17 constructs like vectors and matrices. In contrast, much of our modern
18 heritage of scientific computing has been built on top of libraries
19 written in the Fortran language, which has native support for vectors
20 and matrices as well as a library of mathematical functions that can
21 efficiently operate on entire arrays at once.
22
23 Scientific Python: a collaboration of projects built by scientists
24 ------------------------------------------------------------------
25
26 The scientific community has developed a set of related Python libraries
27 that provide powerful array facilities, linear algebra, numerical
28 algorithms, data visualization and more. In this appendix, we will
29 briefly outline the tools most frequently used for this purpose, that
30 make "Scientific Python" something far more powerful than the Python
31 language alone.
32
33 For reasons of space, we can only describe in some detail the central
34 Numpy library, but below we provide links to the websites of each
35 project where you can read their documentation in more detail.
36
37 First, let's look at an overview of the basic tools that most scientists
38 use in daily research with Python. The core of this ecosystem is
39 composed of:
40
41 - Numpy: the basic library that most others depend on, it provides a
42 powerful array type that can represent multidmensional datasets of
43 many different kinds and that supports arithmetic operations. Numpy
44 also provides a library of common mathematical functions, basic
45 linear algebra, random number generation and Fast Fourier Transforms.
46 Numpy can be found at `numpy.scipy.org <http://numpy.scipy.org>`_
47
48 - Scipy: a large collection of numerical algorithms that operate on
49 numpy arrays and provide facilities for many common tasks in
50 scientific computing, including dense and sparse linear algebra
51 support, optimization, special functions, statistics, n-dimensional
52 image processing, signal processing and more. Scipy can be found at
53 `scipy.org <http://scipy.org>`_.
54
55 - Matplotlib: a data visualization library with a strong focus on
56 producing high-quality output, it supports a variety of common
57 scientific plot types in two and three dimensions, with precise
58 control over the final output and format for publication-quality
59 results. Matplotlib can also be controlled interactively allowing
60 graphical manipulation of your data (zooming, panning, etc) and can
61 be used with most modern user interface toolkits. It can be found at
62 `matplotlib.sf.net <http://matplotlib.sf.net>`_.
63
64 - IPython: while not strictly scientific in nature, IPython is the
65 interactive environment in which many scientists spend their time.
66 IPython provides a powerful Python shell that integrates tightly with
67 Matplotlib and with easy access to the files and operating system,
68 and which can execute in a terminal or in a graphical Qt console.
69 IPython also has a web-based notebook interface that can combine code
70 with text, mathematical expressions, figures and multimedia. It can
71 be found at `ipython.org <http://ipython.org>`_.
72
73 While each of these tools can be installed separately, in our opinion
74 the most convenient way today of accessing them (especially on Windows
75 and Mac computers) is to install the `Free Edition of the Enthought
76 Python Distribution <http://www.enthought.com/products/epd_free.php>`_
77 which contain all the above. Other free alternatives on Windows (but not
78 on Macs) are `Python(x,y) <http://code.google.com/p/pythonxy>`_ and
79 `Christoph Gohlke's packages
80 page <http://www.lfd.uci.edu/~gohlke/pythonlibs>`_.
81
82 These four 'core' libraries are in practice complemented by a number of
83 other tools for more specialized work. We will briefly list here the
84 ones that we think are the most commonly needed:
85
86 - Sympy: a symbolic manipulation tool that turns a Python session into
87 a computer algebra system. It integrates with the IPython notebook,
88 rendering results in properly typeset mathematical notation.
89 `sympy.org <http://sympy.org>`_.
90
91 - Mayavi: sophisticated 3d data visualization;
92 `code.enthought.com/projects/mayavi <http://code.enthought.com/projects/mayavi>`_.
93
94 - Cython: a bridge language between Python and C, useful both to
95 optimize performance bottlenecks in Python and to access C libraries
96 directly; `cython.org <http://cython.org>`_.
97
98 - Pandas: high-performance data structures and data analysis tools,
99 with powerful data alignment and structural manipulation
100 capabilities; `pandas.pydata.org <http://pandas.pydata.org>`_.
101
102 - Statsmodels: statistical data exploration and model estimation;
103 `statsmodels.sourceforge.net <http://statsmodels.sourceforge.net>`_.
104
105 - Scikit-learn: general purpose machine learning algorithms with a
106 common interface; `scikit-learn.org <http://scikit-learn.org>`_.
107
108 - Scikits-image: image processing toolbox;
109 `scikits-image.org <http://scikits-image.org>`_.
110
111 - NetworkX: analysis of complex networks (in the graph theoretical
112 sense); `networkx.lanl.gov <http://networkx.lanl.gov>`_.
113
114 - PyTables: management of hierarchical datasets using the
115 industry-standard HDF5 format;
116 `www.pytables.org <http://www.pytables.org>`_.
117
118 Beyond these, for any specific problem you should look on the internet
119 first, before starting to write code from scratch. There's a good chance
120 that someone, somewhere, has written an open source library that you can
121 use for part or all of your problem.
122
123 A note about the examples below
124 -------------------------------
125
126 In all subsequent examples, you will see blocks of input code, followed
127 by the results of the code if the code generated output. This output may
128 include text, graphics and other result objects. These blocks of input
129 can be pasted into your interactive IPython session or notebook for you
130 to execute. In the print version of this document, a thin vertical bar
131 on the left of the blocks of input and output shows which blocks go
132 together.
133
134 If you are reading this text as an actual IPython notebook, you can
135 press ``Shift-Enter`` or use the 'play' button on the toolbar
136 (right-pointing triangle) to execute each block of code, known as a
137 'cell' in IPython:
138
139 In[71]:
140
141 .. code:: python
142
143 # This is a block of code, below you'll see its output
144 print "Welcome to the world of scientific computing with Python!"
145
146 .. parsed-literal::
147
148 Welcome to the world of scientific computing with Python!
149
150
151 Motivation: the trapezoidal rule
152 ================================
153
154 In subsequent sections we'll provide a basic introduction to the nuts
155 and bolts of the basic scientific python tools; but we'll first motivate
156 it with a brief example that illustrates what you can do in a few lines
157 with these tools. For this, we will use the simple problem of
158 approximating a definite integral with the trapezoid rule:
159
160 .. math::
161
162
163 \int_{a}^{b} f(x)\, dx \approx \frac{1}{2} \sum_{k=1}^{N} \left( x_{k} - x_{k-1} \right) \left( f(x_{k}) + f(x_{k-1}) \right).
164
165 Our task will be to compute this formula for a function such as:
166
167 .. math::
168
169
170 f(x) = (x-3)(x-5)(x-7)+85
171
172 integrated between :math:`a=1` and :math:`b=9`.
173
174 First, we define the function and sample it evenly between 0 and 10 at
175 200 points:
176
177 In[1]:
178
179 .. code:: python
180
181 def f(x):
182 return (x-3)*(x-5)*(x-7)+85
183
184 import numpy as np
185 x = np.linspace(0, 10, 200)
186 y = f(x)
187
188 We select :math:`a` and :math:`b`, our integration limits, and we take
189 only a few points in that region to illustrate the error behavior of the
190 trapezoid approximation:
191
192 In[2]:
193
194 .. code:: python
195
196 a, b = 1, 9
197 xint = x[logical_and(x>=a, x<=b)][::30]
198 yint = y[logical_and(x>=a, x<=b)][::30]
199
200 Let's plot both the function and the area below it in the trapezoid
201 approximation:
202
203 In[3]:
204
205 .. code:: python
206
207 import matplotlib.pyplot as plt
208 plt.plot(x, y, lw=2)
209 plt.axis([0, 10, 0, 140])
210 plt.fill_between(xint, 0, yint, facecolor='gray', alpha=0.4)
211 plt.text(0.5 * (a + b), 30,r"$\int_a^b f(x)dx$", horizontalalignment='center', fontsize=20);
212
213 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_00.svg
214
215 Compute the integral both at high accuracy and with the trapezoid
216 approximation
217
218 In[4]:
219
220 .. code:: python
221
222 from scipy.integrate import quad, trapz
223 integral, error = quad(f, 1, 9)
224 trap_integral = trapz(yint, xint)
225 print "The integral is: %g +/- %.1e" % (integral, error)
226 print "The trapezoid approximation with", len(xint), "points is:", trap_integral
227 print "The absolute error is:", abs(integral - trap_integral)
228
229 .. parsed-literal::
230
231 The integral is: 680 +/- 7.5e-12
232 The trapezoid approximation with 6 points is: 621.286411141
233 The absolute error is: 58.7135888589
234
235
236 This simple example showed us how, combining the numpy, scipy and
237 matplotlib libraries we can provide an illustration of a standard method
238 in elementary calculus with just a few lines of code. We will now
239 discuss with more detail the basic usage of these tools.
240
241 NumPy arrays: the right data structure for scientific computing
242 ===============================================================
243
244 Basics of Numpy arrays
245 ----------------------
246
247 We now turn our attention to the Numpy library, which forms the base
248 layer for the entire 'scipy ecosystem'. Once you have installed numpy,
249 you can import it as
250
251 In[5]:
252
253 .. code:: python
254
255 import numpy
256
257 though in this book we will use the common shorthand
258
259 In[6]:
260
261 .. code:: python
262
263 import numpy as np
264
265 As mentioned above, the main object provided by numpy is a powerful
266 array. We'll start by exploring how the numpy array differs from Python
267 lists. We start by creating a simple list and an array with the same
268 contents of the list:
269
270 In[7]:
271
272 .. code:: python
273
274 lst = [10, 20, 30, 40]
275 arr = np.array([10, 20, 30, 40])
276
277 Elements of a one-dimensional array are accessed with the same syntax as
278 a list:
279
280 In[8]:
281
282 .. code:: python
283
284 lst[0]
285
286 Out[8]:
287
288 .. parsed-literal::
289
290 10
291
292 In[9]:
293
294 .. code:: python
295
296 arr[0]
297
298 Out[9]:
299
300 .. parsed-literal::
301
302 10
303
304 In[10]:
305
306 .. code:: python
307
308 arr[-1]
309
310 Out[10]:
311
312 .. parsed-literal::
313
314 40
315
316 In[11]:
317
318 .. code:: python
319
320 arr[2:]
321
322 Out[11]:
323
324 .. parsed-literal::
325
326 array([30, 40])
327
328 The first difference to note between lists and arrays is that arrays are
329 *homogeneous*; i.e. all elements of an array must be of the same type.
330 In contrast, lists can contain elements of arbitrary type. For example,
331 we can change the last element in our list above to be a string:
332
333 In[12]:
334
335 .. code:: python
336
337 lst[-1] = 'a string inside a list'
338 lst
339
340 Out[12]:
341
342 .. parsed-literal::
343
344 [10, 20, 30, 'a string inside a list']
345
346 but the same can not be done with an array, as we get an error message:
347
348 In[13]:
349
350 .. code:: python
351
352 arr[-1] = 'a string inside an array'
353
354 ::
355
356 ---------------------------------------------------------------------------
357 ValueError Traceback (most recent call last)
358 /home/fperez/teach/book-math-labtool/<ipython-input-13-29c0bfa5fa8a> in <module>()
359 ----> 1 arr[-1] = 'a string inside an array'
360
361 ValueError: invalid literal for long() with base 10: 'a string inside an array'
362
363 The information about the type of an array is contained in its *dtype*
364 attribute:
365
366 In[14]:
367
368 .. code:: python
369
370 arr.dtype
371
372 Out[14]:
373
374 .. parsed-literal::
375
376 dtype('int32')
377
378 Once an array has been created, its dtype is fixed and it can only store
379 elements of the same type. For this example where the dtype is integer,
380 if we store a floating point number it will be automatically converted
381 into an integer:
382
383 In[15]:
384
385 .. code:: python
386
387 arr[-1] = 1.234
388 arr
389
390 Out[15]:
391
392 .. parsed-literal::
393
394 array([10, 20, 30, 1])
395
396 Above we created an array from an existing list; now let us now see
397 other ways in which we can create arrays, which we'll illustrate next. A
398 common need is to have an array initialized with a constant value, and
399 very often this value is 0 or 1 (suitable as starting value for additive
400 and multiplicative loops respectively); ``zeros`` creates arrays of all
401 zeros, with any desired dtype:
402
403 In[16]:
404
405 .. code:: python
406
407 np.zeros(5, float)
408
409 Out[16]:
410
411 .. parsed-literal::
412
413 array([ 0., 0., 0., 0., 0.])
414
415 In[17]:
416
417 .. code:: python
418
419 np.zeros(3, int)
420
421 Out[17]:
422
423 .. parsed-literal::
424
425 array([0, 0, 0])
426
427 In[18]:
428
429 .. code:: python
430
431 np.zeros(3, complex)
432
433 Out[18]:
434
435 .. parsed-literal::
436
437 array([ 0.+0.j, 0.+0.j, 0.+0.j])
438
439 and similarly for ``ones``:
440
441 In[19]:
442
443 .. code:: python
444
445 print '5 ones:', np.ones(5)
446
447 .. parsed-literal::
448
449 5 ones: [ 1. 1. 1. 1. 1.]
450
451
452 If we want an array initialized with an arbitrary value, we can create
453 an empty array and then use the fill method to put the value we want
454 into the array:
455
456 In[20]:
457
458 .. code:: python
459
460 a = empty(4)
461 a.fill(5.5)
462 a
463
464 Out[20]:
465
466 .. parsed-literal::
467
468 array([ 5.5, 5.5, 5.5, 5.5])
469
470 Numpy also offers the ``arange`` function, which works like the builtin
471 ``range`` but returns an array instead of a list:
472
473 In[21]:
474
475 .. code:: python
476
477 np.arange(5)
478
479 Out[21]:
480
481 .. parsed-literal::
482
483 array([0, 1, 2, 3, 4])
484
485 and the ``linspace`` and ``logspace`` functions to create linearly and
486 logarithmically-spaced grids respectively, with a fixed number of points
487 and including both ends of the specified interval:
488
489 In[22]:
490
491 .. code:: python
492
493 print "A linear grid between 0 and 1:", np.linspace(0, 1, 5)
494 print "A logarithmic grid between 10**1 and 10**4: ", np.logspace(1, 4, 4)
495
496 .. parsed-literal::
497
498 A linear grid between 0 and 1: [ 0. 0.25 0.5 0.75 1. ]
499 A logarithmic grid between 10**1 and 10**4: [ 10. 100. 1000. 10000.]
500
501
502 Finally, it is often useful to create arrays with random numbers that
503 follow a specific distribution. The ``np.random`` module contains a
504 number of functions that can be used to this effect, for example this
505 will produce an array of 5 random samples taken from a standard normal
506 distribution (0 mean and variance 1):
507
508 In[23]:
509
510 .. code:: python
511
512 np.random.randn(5)
513
514 Out[23]:
515
516 .. parsed-literal::
517
518 array([-0.08633343, -0.67375434, 1.00589536, 0.87081651, 1.65597822])
519
520 whereas this will also give 5 samples, but from a normal distribution
521 with a mean of 10 and a variance of 3:
522
523 In[24]:
524
525 .. code:: python
526
527 norm10 = np.random.normal(10, 3, 5)
528 norm10
529
530 Out[24]:
531
532 .. parsed-literal::
533
534 array([ 8.94879575, 5.53038269, 8.24847281, 12.14944165, 11.56209294])
535
536 Indexing with other arrays
537 --------------------------
538
539 Above we saw how to index arrays with single numbers and slices, just
540 like Python lists. But arrays allow for a more sophisticated kind of
541 indexing which is very powerful: you can index an array with another
542 array, and in particular with an array of boolean values. This is
543 particluarly useful to extract information from an array that matches a
544 certain condition.
545
546 Consider for example that in the array ``norm10`` we want to replace all
547 values above 9 with the value 0. We can do so by first finding the
548 *mask* that indicates where this condition is true or false:
549
550 In[25]:
551
552 .. code:: python
553
554 mask = norm10 > 9
555 mask
556
557 Out[25]:
558
559 .. parsed-literal::
560
561 array([False, False, False, True, True], dtype=bool)
562
563 Now that we have this mask, we can use it to either read those values or
564 to reset them to 0:
565
566 In[26]:
567
568 .. code:: python
569
570 print 'Values above 9:', norm10[mask]
571
572 .. parsed-literal::
573
574 Values above 9: [ 12.14944165 11.56209294]
575
576
577 In[27]:
578
579 .. code:: python
580
581 print 'Resetting all values above 9 to 0...'
582 norm10[mask] = 0
583 print norm10
584
585 .. parsed-literal::
586
587 Resetting all values above 9 to 0...
588 [ 8.94879575 5.53038269 8.24847281 0. 0. ]
589
590
591 Arrays with more than one dimension
592 -----------------------------------
593
594 Up until now all our examples have used one-dimensional arrays. But
595 Numpy can create arrays of aribtrary dimensions, and all the methods
596 illustrated in the previous section work with more than one dimension.
597 For example, a list of lists can be used to initialize a two dimensional
598 array:
599
600 In[28]:
601
602 .. code:: python
603
604 lst2 = [[1, 2], [3, 4]]
605 arr2 = np.array([[1, 2], [3, 4]])
606 arr2
607
608 Out[28]:
609
610 .. parsed-literal::
611
612 array([[1, 2],
613 [3, 4]])
614
615 With two-dimensional arrays we start seeing the power of numpy: while a
616 nested list can be indexed using repeatedly the ``[ ]`` operator,
617 multidimensional arrays support a much more natural indexing syntax with
618 a single ``[ ]`` and a set of indices separated by commas:
619
620 In[29]:
621
622 .. code:: python
623
624 print lst2[0][1]
625 print arr2[0,1]
626
627 .. parsed-literal::
628
629 2
630 2
631
632
633 Most of the array creation functions listed above can be used with more
634 than one dimension, for example:
635
636 In[30]:
637
638 .. code:: python
639
640 np.zeros((2,3))
641
642 Out[30]:
643
644 .. parsed-literal::
645
646 array([[ 0., 0., 0.],
647 [ 0., 0., 0.]])
648
649 In[31]:
650
651 .. code:: python
652
653 np.random.normal(10, 3, (2, 4))
654
655 Out[31]:
656
657 .. parsed-literal::
658
659 array([[ 11.26788826, 4.29619866, 11.09346496, 9.73861307],
660 [ 10.54025996, 9.5146268 , 10.80367214, 13.62204505]])
661
662 In fact, the shape of an array can be changed at any time, as long as
663 the total number of elements is unchanged. For example, if we want a 2x4
664 array with numbers increasing from 0, the easiest way to create it is:
665
666 In[32]:
667
668 .. code:: python
669
670 arr = np.arange(8).reshape(2,4)
671 print arr
672
673 .. parsed-literal::
674
675 [[0 1 2 3]
676 [4 5 6 7]]
677
678
679 With multidimensional arrays, you can also use slices, and you can mix
680 and match slices and single indices in the different dimensions (using
681 the same array as above):
682
683 In[33]:
684
685 .. code:: python
686
687 print 'Slicing in the second row:', arr[1, 2:4]
688 print 'All rows, third column :', arr[:, 2]
689
690 .. parsed-literal::
691
692 Slicing in the second row: [6 7]
693 All rows, third column : [2 6]
694
695
696 If you only provide one index, then you will get an array with one less
697 dimension containing that row:
698
699 In[34]:
700
701 .. code:: python
702
703 print 'First row: ', arr[0]
704 print 'Second row: ', arr[1]
705
706 .. parsed-literal::
707
708 First row: [0 1 2 3]
709 Second row: [4 5 6 7]
710
711
712 Now that we have seen how to create arrays with more than one dimension,
713 it's a good idea to look at some of the most useful properties and
714 methods that arrays have. The following provide basic information about
715 the size, shape and data in the array:
716
717 In[35]:
718
719 .. code:: python
720
721 print 'Data type :', arr.dtype
722 print 'Total number of elements :', arr.size
723 print 'Number of dimensions :', arr.ndim
724 print 'Shape (dimensionality) :', arr.shape
725 print 'Memory used (in bytes) :', arr.nbytes
726
727 .. parsed-literal::
728
729 Data type : int32
730 Total number of elements : 8
731 Number of dimensions : 2
732 Shape (dimensionality) : (2, 4)
733 Memory used (in bytes) : 32
734
735
736 Arrays also have many useful methods, some especially useful ones are:
737
738 In[36]:
739
740 .. code:: python
741
742 print 'Minimum and maximum :', arr.min(), arr.max()
743 print 'Sum and product of all elements :', arr.sum(), arr.prod()
744 print 'Mean and standard deviation :', arr.mean(), arr.std()
745
746 .. parsed-literal::
747
748 Minimum and maximum : 0 7
749 Sum and product of all elements : 28 0
750 Mean and standard deviation : 3.5 2.29128784748
751
752
753 For these methods, the above operations area all computed on all the
754 elements of the array. But for a multidimensional array, it's possible
755 to do the computation along a single dimension, by passing the ``axis``
756 parameter; for example:
757
758 In[37]:
759
760 .. code:: python
761
762 print 'For the following array:\n', arr
763 print 'The sum of elements along the rows is :', arr.sum(axis=1)
764 print 'The sum of elements along the columns is :', arr.sum(axis=0)
765
766 .. parsed-literal::
767
768 For the following array:
769 [[0 1 2 3]
770 [4 5 6 7]]
771 The sum of elements along the rows is : [ 6 22]
772 The sum of elements along the columns is : [ 4 6 8 10]
773
774
775 As you can see in this example, the value of the ``axis`` parameter is
776 the dimension which will be *consumed* once the operation has been
777 carried out. This is why to sum along the rows we use ``axis=0``.
778
779 This can be easily illustrated with an example that has more dimensions;
780 we create an array with 4 dimensions and shape ``(3,4,5,6)`` and sum
781 along the axis number 2 (i.e. the *third* axis, since in Python all
782 counts are 0-based). That consumes the dimension whose length was 5,
783 leaving us with a new array that has shape ``(3,4,6)``:
784
785 In[38]:
786
787 .. code:: python
788
789 np.zeros((3,4,5,6)).sum(2).shape
790
791 Out[38]:
792
793 .. parsed-literal::
794
795 (3, 4, 6)
796
797 Another widely used property of arrays is the ``.T`` attribute, which
798 allows you to access the transpose of the array:
799
800 In[39]:
801
802 .. code:: python
803
804 print 'Array:\n', arr
805 print 'Transpose:\n', arr.T
806
807 .. parsed-literal::
808
809 Array:
810 [[0 1 2 3]
811 [4 5 6 7]]
812 Transpose:
813 [[0 4]
814 [1 5]
815 [2 6]
816 [3 7]]
817
818
819 We don't have time here to look at all the methods and properties of
820 arrays, here's a complete list. Simply try exploring some of these
821 IPython to learn more, or read their description in the full Numpy
822 documentation:
823
824 ::
825
826 arr.T arr.copy arr.getfield arr.put arr.squeeze
827 arr.all arr.ctypes arr.imag arr.ravel arr.std
828 arr.any arr.cumprod arr.item arr.real arr.strides
829 arr.argmax arr.cumsum arr.itemset arr.repeat arr.sum
830 arr.argmin arr.data arr.itemsize arr.reshape arr.swapaxes
831 arr.argsort arr.diagonal arr.max arr.resize arr.take
832 arr.astype arr.dot arr.mean arr.round arr.tofile
833 arr.base arr.dtype arr.min arr.searchsorted arr.tolist
834 arr.byteswap arr.dump arr.nbytes arr.setasflat arr.tostring
835 arr.choose arr.dumps arr.ndim arr.setfield arr.trace
836 arr.clip arr.fill arr.newbyteorder arr.setflags arr.transpose
837 arr.compress arr.flags arr.nonzero arr.shape arr.var
838 arr.conj arr.flat arr.prod arr.size arr.view
839 arr.conjugate arr.flatten arr.ptp arr.sort
840
841
842 Operating with arrays
843 ---------------------
844
845 Arrays support all regular arithmetic operators, and the numpy library
846 also contains a complete collection of basic mathematical functions that
847 operate on arrays. It is important to remember that in general, all
848 operations with arrays are applied *element-wise*, i.e., are applied to
849 all the elements of the array at the same time. Consider for example:
850
851 In[40]:
852
853 .. code:: python
854
855 arr1 = np.arange(4)
856 arr2 = np.arange(10, 14)
857 print arr1, '+', arr2, '=', arr1+arr2
858
859 .. parsed-literal::
860
861 [0 1 2 3] + [10 11 12 13] = [10 12 14 16]
862
863
864 Importantly, you must remember that even the multiplication operator is
865 by default applied element-wise, it is *not* the matrix multiplication
866 from linear algebra (as is the case in Matlab, for example):
867
868 In[41]:
869
870 .. code:: python
871
872 print arr1, '*', arr2, '=', arr1*arr2
873
874 .. parsed-literal::
875
876 [0 1 2 3] * [10 11 12 13] = [ 0 11 24 39]
877
878
879 While this means that in principle arrays must always match in their
880 dimensionality in order for an operation to be valid, numpy will
881 *broadcast* dimensions when possible. For example, suppose that you want
882 to add the number 1.5 to ``arr1``; the following would be a valid way to
883 do it:
884
885 In[42]:
886
887 .. code:: python
888
889 arr1 + 1.5*np.ones(4)
890
891 Out[42]:
892
893 .. parsed-literal::
894
895 array([ 1.5, 2.5, 3.5, 4.5])
896
897 But thanks to numpy's broadcasting rules, the following is equally
898 valid:
899
900 In[43]:
901
902 .. code:: python
903
904 arr1 + 1.5
905
906 Out[43]:
907
908 .. parsed-literal::
909
910 array([ 1.5, 2.5, 3.5, 4.5])
911
912 In this case, numpy looked at both operands and saw that the first
913 (``arr1``) was a one-dimensional array of length 4 and the second was a
914 scalar, considered a zero-dimensional object. The broadcasting rules
915 allow numpy to:
916
917 - *create* new dimensions of length 1 (since this doesn't change the
918 size of the array)
919 - 'stretch' a dimension of length 1 that needs to be matched to a
920 dimension of a different size.
921
922 So in the above example, the scalar 1.5 is effectively:
923
924 - first 'promoted' to a 1-dimensional array of length 1
925 - then, this array is 'stretched' to length 4 to match the dimension of
926 ``arr1``.
927
928 After these two operations are complete, the addition can proceed as now
929 both operands are one-dimensional arrays of length 4.
930
931 This broadcasting behavior is in practice enormously powerful,
932 especially because when numpy broadcasts to create new dimensions or to
933 'stretch' existing ones, it doesn't actually replicate the data. In the
934 example above the operation is carried *as if* the 1.5 was a 1-d array
935 with 1.5 in all of its entries, but no actual array was ever created.
936 This can save lots of memory in cases when the arrays in question are
937 large and can have significant performance implications.
938
939 The general rule is: when operating on two arrays, NumPy compares their
940 shapes element-wise. It starts with the trailing dimensions, and works
941 its way forward, creating dimensions of length 1 as needed. Two
942 dimensions are considered compatible when
943
944 - they are equal to begin with, or
945 - one of them is 1; in this case numpy will do the 'stretching' to make
946 them equal.
947
948 If these conditions are not met, a
949 ``ValueError: frames are not aligned`` exception is thrown, indicating
950 that the arrays have incompatible shapes. The size of the resulting
951 array is the maximum size along each dimension of the input arrays.
952
953 This shows how the broadcasting rules work in several dimensions:
954
955 In[44]:
956
957 .. code:: python
958
959 b = np.array([2, 3, 4, 5])
960 print arr, '\n\n+', b , '\n----------------\n', arr + b
961
962 .. parsed-literal::
963
964 [[0 1 2 3]
965 [4 5 6 7]]
966
967 + [2 3 4 5]
968 ----------------
969 [[ 2 4 6 8]
970 [ 6 8 10 12]]
971
972
973 Now, how could you use broadcasting to say add ``[4, 6]`` along the rows
974 to ``arr`` above? Simply performing the direct addition will produce the
975 error we previously mentioned:
976
977 In[45]:
978
979 .. code:: python
980
981 c = np.array([4, 6])
982 arr + c
983
984 ::
985
986 ---------------------------------------------------------------------------
987 ValueError Traceback (most recent call last)
988 /home/fperez/teach/book-math-labtool/<ipython-input-45-62aa20ac1980> in <module>()
989 1 c = np.array([4, 6])
990 ----> 2 arr + c
991
992 ValueError: operands could not be broadcast together with shapes (2,4) (2)
993
994 According to the rules above, the array ``c`` would need to have a
995 *trailing* dimension of 1 for the broadcasting to work. It turns out
996 that numpy allows you to 'inject' new dimensions anywhere into an array
997 on the fly, by indexing it with the special object ``np.newaxis``:
998
999 In[46]:
1000
1001 .. code:: python
1002
1003 (c[:, np.newaxis]).shape
1004
1005 Out[46]:
1006
1007 .. parsed-literal::
1008
1009 (2, 1)
1010
1011 This is exactly what we need, and indeed it works:
1012
1013 In[47]:
1014
1015 .. code:: python
1016
1017 arr + c[:, np.newaxis]
1018
1019 Out[47]:
1020
1021 .. parsed-literal::
1022
1023 array([[ 4, 5, 6, 7],
1024 [10, 11, 12, 13]])
1025
1026 For the full broadcasting rules, please see the official Numpy docs,
1027 which describe them in detail and with more complex examples.
1028
1029 As we mentioned before, Numpy ships with a full complement of
1030 mathematical functions that work on entire arrays, including logarithms,
1031 exponentials, trigonometric and hyperbolic trigonometric functions, etc.
1032 Furthermore, scipy ships a rich special function library in the
1033 ``scipy.special`` module that includes Bessel, Airy, Fresnel, Laguerre
1034 and other classical special functions. For example, sampling the sine
1035 function at 100 points between :math:`0` and :math:`2\pi` is as simple
1036 as:
1037
1038 In[48]:
1039
1040 .. code:: python
1041
1042 x = np.linspace(0, 2*np.pi, 100)
1043 y = np.sin(x)
1044
1045 Linear algebra in numpy
1046 -----------------------
1047
1048 Numpy ships with a basic linear algebra library, and all arrays have a
1049 ``dot`` method whose behavior is that of the scalar dot product when its
1050 arguments are vectors (one-dimensional arrays) and the traditional
1051 matrix multiplication when one or both of its arguments are
1052 two-dimensional arrays:
1053
1054 In[49]:
1055
1056 .. code:: python
1057
1058 v1 = np.array([2, 3, 4])
1059 v2 = np.array([1, 0, 1])
1060 print v1, '.', v2, '=', v1.dot(v2)
1061
1062 .. parsed-literal::
1063
1064 [2 3 4] . [1 0 1] = 6
1065
1066
1067 Here is a regular matrix-vector multiplication, note that the array
1068 ``v1`` should be viewed as a *column* vector in traditional linear
1069 algebra notation; numpy makes no distinction between row and column
1070 vectors and simply verifies that the dimensions match the required rules
1071 of matrix multiplication, in this case we have a :math:`2 \times 3`
1072 matrix multiplied by a 3-vector, which produces a 2-vector:
1073
1074 In[50]:
1075
1076 .. code:: python
1077
1078 A = np.arange(6).reshape(2, 3)
1079 print A, 'x', v1, '=', A.dot(v1)
1080
1081 .. parsed-literal::
1082
1083 [[0 1 2]
1084 [3 4 5]] x [2 3 4] = [11 38]
1085
1086
1087 For matrix-matrix multiplication, the same dimension-matching rules must
1088 be satisfied, e.g. consider the difference between :math:`A \times A^T`:
1089
1090 In[51]:
1091
1092 .. code:: python
1093
1094 print A.dot(A.T)
1095
1096 .. parsed-literal::
1097
1098 [[ 5 14]
1099 [14 50]]
1100
1101
1102 and :math:`A^T \times A`:
1103
1104 In[52]:
1105
1106 .. code:: python
1107
1108 print A.T.dot(A)
1109
1110 .. parsed-literal::
1111
1112 [[ 9 12 15]
1113 [12 17 22]
1114 [15 22 29]]
1115
1116
1117 Furthermore, the ``numpy.linalg`` module includes additional
1118 functionality such as determinants, matrix norms, Cholesky, eigenvalue
1119 and singular value decompositions, etc. For even more linear algebra
1120 tools, ``scipy.linalg`` contains the majority of the tools in the
1121 classic LAPACK libraries as well as functions to operate on sparse
1122 matrices. We refer the reader to the Numpy and Scipy documentations for
1123 additional details on these.
1124
1125 Reading and writing arrays to disk
1126 ----------------------------------
1127
1128 Numpy lets you read and write arrays into files in a number of ways. In
1129 order to use these tools well, it is critical to understand the
1130 difference between a *text* and a *binary* file containing numerical
1131 data. In a text file, the number :math:`\pi` could be written as
1132 "3.141592653589793", for example: a string of digits that a human can
1133 read, with in this case 15 decimal digits. In contrast, that same number
1134 written to a binary file would be encoded as 8 characters (bytes) that
1135 are not readable by a human but which contain the exact same data that
1136 the variable ``pi`` had in the computer's memory.
1137
1138 The tradeoffs between the two modes are thus:
1139
1140 - Text mode: occupies more space, precision can be lost (if not all
1141 digits are written to disk), but is readable and editable by hand
1142 with a text editor. Can *only* be used for one- and two-dimensional
1143 arrays.
1144
1145 - Binary mode: compact and exact representation of the data in memory,
1146 can't be read or edited by hand. Arrays of any size and
1147 dimensionality can be saved and read without loss of information.
1148
1149 First, let's see how to read and write arrays in text mode. The
1150 ``np.savetxt`` function saves an array to a text file, with options to
1151 control the precision, separators and even adding a header:
1152
1153 In[53]:
1154
1155 .. code:: python
1156
1157 arr = np.arange(10).reshape(2, 5)
1158 np.savetxt('test.out', arr, fmt='%.2e', header="My dataset")
1159 !cat test.out
1160
1161 .. parsed-literal::
1162
1163 # My dataset
1164 0.00e+00 1.00e+00 2.00e+00 3.00e+00 4.00e+00
1165 5.00e+00 6.00e+00 7.00e+00 8.00e+00 9.00e+00
1166
1167
1168 And this same type of file can then be read with the matching
1169 ``np.loadtxt`` function:
1170
1171 In[54]:
1172
1173 .. code:: python
1174
1175 arr2 = np.loadtxt('test.out')
1176 print arr2
1177
1178 .. parsed-literal::
1179
1180 [[ 0. 1. 2. 3. 4.]
1181 [ 5. 6. 7. 8. 9.]]
1182
1183
1184 For binary data, Numpy provides the ``np.save`` and ``np.savez``
1185 routines. The first saves a single array to a file with ``.npy``
1186 extension, while the latter can be used to save a *group* of arrays into
1187 a single file with ``.npz`` extension. The files created with these
1188 routines can then be read with the ``np.load`` function.
1189
1190 Let us first see how to use the simpler ``np.save`` function to save a
1191 single array:
1192
1193 In[55]:
1194
1195 .. code:: python
1196
1197 np.save('test.npy', arr2)
1198 # Now we read this back
1199 arr2n = np.load('test.npy')
1200 # Let's see if any element is non-zero in the difference.
1201 # A value of True would be a problem.
1202 print 'Any differences?', np.any(arr2-arr2n)
1203
1204 .. parsed-literal::
1205
1206 Any differences? False
1207
1208
1209 Now let us see how the ``np.savez`` function works. You give it a
1210 filename and either a sequence of arrays or a set of keywords. In the
1211 first mode, the function will auotmatically name the saved arrays in the
1212 archive as ``arr_0``, ``arr_1``, etc:
1213
1214 In[56]:
1215
1216 .. code:: python
1217
1218 np.savez('test.npz', arr, arr2)
1219 arrays = np.load('test.npz')
1220 arrays.files
1221
1222 Out[56]:
1223
1224 .. parsed-literal::
1225
1226 ['arr_1', 'arr_0']
1227
1228 Alternatively, we can explicitly choose how to name the arrays we save:
1229
1230 In[57]:
1231
1232 .. code:: python
1233
1234 np.savez('test.npz', array1=arr, array2=arr2)
1235 arrays = np.load('test.npz')
1236 arrays.files
1237
1238 Out[57]:
1239
1240 .. parsed-literal::
1241
1242 ['array2', 'array1']
1243
1244 The object returned by ``np.load`` from an ``.npz`` file works like a
1245 dictionary, though you can also access its constituent files by
1246 attribute using its special ``.f`` field; this is best illustrated with
1247 an example with the ``arrays`` object from above:
1248
1249 In[58]:
1250
1251 .. code:: python
1252
1253 print 'First row of first array:', arrays['array1'][0]
1254 # This is an equivalent way to get the same field
1255 print 'First row of first array:', arrays.f.array1[0]
1256
1257 .. parsed-literal::
1258
1259 First row of first array: [0 1 2 3 4]
1260 First row of first array: [0 1 2 3 4]
1261
1262
1263 This ``.npz`` format is a very convenient way to package compactly and
1264 without loss of information, into a single file, a group of related
1265 arrays that pertain to a specific problem. At some point, however, the
1266 complexity of your dataset may be such that the optimal approach is to
1267 use one of the standard formats in scientific data processing that have
1268 been designed to handle complex datasets, such as NetCDF or HDF5.
1269
1270 Fortunately, there are tools for manipulating these formats in Python,
1271 and for storing data in other ways such as databases. A complete
1272 discussion of the possibilities is beyond the scope of this discussion,
1273 but of particular interest for scientific users we at least mention the
1274 following:
1275
1276 - The ``scipy.io`` module contains routines to read and write Matlab
1277 files in ``.mat`` format and files in the NetCDF format that is
1278 widely used in certain scientific disciplines.
1279
1280 - For manipulating files in the HDF5 format, there are two excellent
1281 options in Python: The PyTables project offers a high-level, object
1282 oriented approach to manipulating HDF5 datasets, while the h5py
1283 project offers a more direct mapping to the standard HDF5 library
1284 interface. Both are excellent tools; if you need to work with HDF5
1285 datasets you should read some of their documentation and examples and
1286 decide which approach is a better match for your needs.
1287
1288
1289
1290 High quality data visualization with Matplotlib
1291 ===============================================
1292
1293 The `matplotlib <http://matplotlib.sf.net>`_ library is a powerful tool
1294 capable of producing complex publication-quality figures with fine
1295 layout control in two and three dimensions; here we will only provide a
1296 minimal self-contained introduction to its usage that covers the
1297 functionality needed for the rest of the book. We encourage the reader
1298 to read the tutorials included with the matplotlib documentation as well
1299 as to browse its extensive gallery of examples that include source code.
1300
1301 Just as we typically use the shorthand ``np`` for Numpy, we will use
1302 ``plt`` for the ``matplotlib.pyplot`` module where the easy-to-use
1303 plotting functions reside (the library contains a rich object-oriented
1304 architecture that we don't have the space to discuss here):
1305
1306 In[59]:
1307
1308 .. code:: python
1309
1310 import matplotlib.pyplot as plt
1311
1312 The most frequently used function is simply called ``plot``, here is how
1313 you can make a simple plot of :math:`\sin(x)` for
1314 :math:`x \in [0, 2\pi]` with labels and a grid (we use the semicolon in
1315 the last line to suppress the display of some information that is
1316 unnecessary right now):
1317
1318 In[60]:
1319
1320 .. code:: python
1321
1322 x = np.linspace(0, 2*np.pi)
1323 y = np.sin(x)
1324 plt.plot(x,y, label='sin(x)')
1325 plt.legend()
1326 plt.grid()
1327 plt.title('Harmonic')
1328 plt.xlabel('x')
1329 plt.ylabel('y');
1330
1331 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_01.svg
1332
1333 You can control the style, color and other properties of the markers,
1334 for example:
1335
1336 In[61]:
1337
1338 .. code:: python
1339
1340 plt.plot(x, y, linewidth=2);
1341
1342 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_02.svg
1343
1344 In[62]:
1345
1346 .. code:: python
1347
1348 plt.plot(x, y, 'o', markersize=5, color='r');
1349
1350 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_03.svg
1351
1352 We will now see how to create a few other common plot types, such as a
1353 simple error plot:
1354
1355 In[63]:
1356
1357 .. code:: python
1358
1359 # example data
1360 x = np.arange(0.1, 4, 0.5)
1361 y = np.exp(-x)
1362
1363 # example variable error bar values
1364 yerr = 0.1 + 0.2*np.sqrt(x)
1365 xerr = 0.1 + yerr
1366
1367 # First illustrate basic pyplot interface, using defaults where possible.
1368 plt.figure()
1369 plt.errorbar(x, y, xerr=0.2, yerr=0.4)
1370 plt.title("Simplest errorbars, 0.2 in x, 0.4 in y");
1371
1372 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_04.svg
1373
1374 A simple log plot
1375
1376 In[64]:
1377
1378 .. code:: python
1379
1380 x = np.linspace(-5, 5)
1381 y = np.exp(-x**2)
1382 plt.semilogy(x, y);
1383
1384 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_05.svg
1385
1386 A histogram annotated with text inside the plot, using the ``text``
1387 function:
1388
1389 In[65]:
1390
1391 .. code:: python
1392
1393 mu, sigma = 100, 15
1394 x = mu + sigma * np.random.randn(10000)
1395
1396 # the histogram of the data
1397 n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
1398
1399 plt.xlabel('Smarts')
1400 plt.ylabel('Probability')
1401 plt.title('Histogram of IQ')
1402 # This will put a text fragment at the position given:
1403 plt.text(55, .027, r'$\mu=100,\ \sigma=15$', fontsize=14)
1404 plt.axis([40, 160, 0, 0.03])
1405 plt.grid(True)
1406
1407 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_06.svg
1408
1409 Image display
1410 -------------
1411
1412 The ``imshow`` command can display single or multi-channel images. A
1413 simple array of random numbers, plotted in grayscale:
1414
1415 In[66]:
1416
1417 .. code:: python
1418
1419 from matplotlib import cm
1420 plt.imshow(np.random.rand(5, 10), cmap=cm.gray, interpolation='nearest');
1421
1422 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_07.svg
1423
1424 A real photograph is a multichannel image, ``imshow`` interprets it
1425 correctly:
1426
1427 In[67]:
1428
1429 .. code:: python
1430
1431 img = plt.imread('stinkbug.png')
1432 print 'Dimensions of the array img:', img.shape
1433 plt.imshow(img);
1434
1435 .. parsed-literal::
1436
1437 Dimensions of the array img: (375, 500, 3)
1438
1439
1440 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_08.svg
1441
1442 Simple 3d plotting with matplotlib
1443 ----------------------------------
1444
1445 Note that you must execute at least once in your session:
1446
1447 In[68]:
1448
1449 .. code:: python
1450
1451 from mpl_toolkits.mplot3d import Axes3D
1452
1453 One this has been done, you can create 3d axes with the
1454 ``projection='3d'`` keyword to ``add_subplot``:
1455
1456 ::
1457
1458 fig = plt.figure()
1459 fig.add_subplot(<other arguments here>, projection='3d')
1460
1461
1462 A simple surface plot:
1463
1464 In[72]:
1465
1466 .. code:: python
1467
1468 from mpl_toolkits.mplot3d.axes3d import Axes3D
1469 from matplotlib import cm
1470
1471 fig = plt.figure()
1472 ax = fig.add_subplot(1, 1, 1, projection='3d')
1473 X = np.arange(-5, 5, 0.25)
1474 Y = np.arange(-5, 5, 0.25)
1475 X, Y = np.meshgrid(X, Y)
1476 R = np.sqrt(X**2 + Y**2)
1477 Z = np.sin(R)
1478 surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
1479 linewidth=0, antialiased=False)
1480 ax.set_zlim3d(-1.01, 1.01);
1481
1482 .. image:: /Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_09.svg
1483
1484 IPython: a powerful interactive environment
1485 ===========================================
1486
1487 A key component of the everyday workflow of most scientific computing
1488 environments is a good interactive environment, that is, a system in
1489 which you can execute small amounts of code and view the results
1490 immediately, combining both printing out data and opening graphical
1491 visualizations. All modern systems for scientific computing, commercial
1492 and open source, include such functionality.
1493
1494 Out of the box, Python also offers a simple interactive shell with very
1495 limited capabilities. But just like the scientific community built Numpy
1496 to provide arrays suited for scientific work (since Pytyhon's lists
1497 aren't optimal for this task), it has also developed an interactive
1498 environment much more sophisticated than the built-in one. The `IPython
1499 project <http://ipython.org>`_ offers a set of tools to make productive
1500 use of the Python language, all the while working interactively and with
1501 immedate feedback on your results. The basic tools that IPython provides
1502 are:
1503
1504 1. A powerful terminal shell, with many features designed to increase
1505 the fluidity and productivity of everyday scientific workflows,
1506 including:
1507
1508 - rich introspection of all objects and variables including easy
1509 access to the source code of any function
1510 - powerful and extensible tab completion of variables and filenames,
1511 - tight integration with matplotlib, supporting interactive figures
1512 that don't block the terminal,
1513 - direct access to the filesystem and underlying operating system,
1514 - an extensible system for shell-like commands called 'magics' that
1515 reduce the work needed to perform many common tasks,
1516 - tools for easily running, timing, profiling and debugging your
1517 codes,
1518 - syntax highlighted error messages with much more detail than the
1519 default Python ones,
1520 - logging and access to all previous history of inputs, including
1521 across sessions
1522
1523 2. A Qt console that provides the look and feel of a terminal, but adds
1524 support for inline figures, graphical calltips, a persistent session
1525 that can survive crashes (even segfaults) of the kernel process, and
1526 more.
1527
1528 3. A web-based notebook that can execute code and also contain rich text
1529 and figures, mathematical equations and arbitrary HTML. This notebook
1530 presents a document-like view with cells where code is executed but
1531 that can be edited in-place, reordered, mixed with explanatory text
1532 and figures, etc.
1533
1534 4. A high-performance, low-latency system for parallel computing that
1535 supports the control of a cluster of IPython engines communicating
1536 over a network, with optimizations that minimize unnecessary copying
1537 of large objects (especially numpy arrays).
1538
1539 We will now discuss the highlights of the tools 1-3 above so that you
1540 can make them an effective part of your workflow. The topic of parallel
1541 computing is beyond the scope of this document, but we encourage you to
1542 read the extensive
1543 `documentation <http://ipython.org/ipython-doc/rel-0.12.1/parallel/index.html>`_
1544 and `tutorials <http://minrk.github.com/scipy-tutorial-2011/>`_ on this
1545 available on the IPython website.
1546
1547 The IPython terminal
1548 --------------------
1549
1550 You can start IPython at the terminal simply by typing:
1551
1552 ::
1553
1554 $ ipython
1555
1556 which will provide you some basic information about how to get started
1557 and will then open a prompt labeled ``In [1]:`` for you to start typing.
1558 Here we type :math:`2^{64}` and Python computes the result for us in
1559 exact arithmetic, returning it as ``Out[1]``:
1560
1561 ::
1562
1563 $ ipython
1564 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
1565 Type "copyright", "credits" or "license" for more information.
1566
1567 IPython 0.13.dev -- An enhanced Interactive Python.
1568 ? -> Introduction and overview of IPython's features.
1569 %quickref -> Quick reference.
1570 help -> Python's own help system.
1571 object? -> Details about 'object', use 'object??' for extra details.
1572
1573 In [1]: 2**64
1574 Out[1]: 18446744073709551616L
1575
1576 The first thing you should know about IPython is that all your inputs
1577 and outputs are saved. There are two variables named ``In`` and ``Out``
1578 which are filled as you work with your results. Furthermore, all outputs
1579 are also saved to auto-created variables of the form ``_NN`` where
1580 ``NN`` is the prompt number, and inputs to ``_iNN``. This allows you to
1581 recover quickly the result of a prior computation by referring to its
1582 number even if you forgot to store it as a variable. For example, later
1583 on in the above session you can do:
1584
1585 ::
1586
1587 In [6]: print _1
1588 18446744073709551616
1589
1590
1591 We strongly recommend that you take a few minutes to read at least the
1592 basic introduction provided by the ``?`` command, and keep in mind that
1593 the ``%quickref`` command at all times can be used as a quick reference
1594 "cheat sheet" of the most frequently used features of IPython.
1595
1596 At the IPython prompt, any valid Python code that you type will be
1597 executed similarly to the default Python shell (though often with more
1598 informative feedback). But since IPython is a *superset* of the default
1599 Python shell; let's have a brief look at some of its additional
1600 functionality.
1601
1602 **Object introspection**
1603
1604 A simple ``?`` command provides a general introduction to IPython, but
1605 as indicated in the banner above, you can use the ``?`` syntax to ask
1606 for details about any object. For example, if we type ``_1?``, IPython
1607 will print the following details about this variable:
1608
1609 ::
1610
1611 In [14]: _1?
1612 Type: long
1613 Base Class: <type 'long'>
1614 String Form:18446744073709551616
1615 Namespace: Interactive
1616 Docstring:
1617 long(x[, base]) -> integer
1618
1619 Convert a string or number to a long integer, if possible. A floating
1620
1621 [etc... snipped for brevity]
1622
1623 If you add a second ``?`` and for any oobject ``x`` type ``x??``,
1624 IPython will try to provide an even more detailed analsysi of the
1625 object, including its syntax-highlighted source code when it can be
1626 found. It's possible that ``x??`` returns the same information as
1627 ``x?``, but in many cases ``x??`` will indeed provide additional
1628 details.
1629
1630 Finally, the ``?`` syntax is also useful to search *namespaces* with
1631 wildcards. Suppose you are wondering if there is any function in Numpy
1632 that may do text-related things; with ``np.*txt*?``, IPython will print
1633 all the names in the ``np`` namespace (our Numpy shorthand) that have
1634 'txt' anywhere in their name:
1635
1636 ::
1637
1638 In [17]: np.*txt*?
1639 np.genfromtxt
1640 np.loadtxt
1641 np.mafromtxt
1642 np.ndfromtxt
1643 np.recfromtxt
1644 np.savetxt
1645
1646
1647 **Tab completion**
1648
1649 IPython makes the tab key work extra hard for you as a way to rapidly
1650 inspect objects and libraries. Whenever you have typed something at the
1651 prompt, by hitting the ``<tab>`` key IPython will try to complete the
1652 rest of the line. For this, IPython will analyze the text you had so far
1653 and try to search for Python data or files that may match the context
1654 you have already provided.
1655
1656 For example, if you type ``np.load`` and hit the key, you'll see:
1657
1658 ::
1659
1660 In [21]: np.load<TAB HERE>
1661 np.load np.loads np.loadtxt
1662
1663 so you can quickly find all the load-related functionality in numpy. Tab
1664 completion works even for function arguments, for example consider this
1665 function definition:
1666
1667 ::
1668
1669 In [20]: def f(x, frobinate=False):
1670 ....: if frobinate:
1671 ....: return x**2
1672 ....:
1673
1674 If you now use the ``<tab>`` key after having typed 'fro' you'll get all
1675 valid Python completions, but those marked with ``=`` at the end are
1676 known to be keywords of your function:
1677
1678 ::
1679
1680 In [21]: f(2, fro<TAB HERE>
1681 frobinate= frombuffer fromfunction frompyfunc fromstring
1682 from fromfile fromiter fromregex frozenset
1683
1684 at this point you can add the ``b`` letter and hit ``<tab>`` once more,
1685 and IPython will finish the line for you:
1686
1687 ::
1688
1689 In [21]: f(2, frobinate=
1690
1691 As a beginner, simply get into the habit of using ``<tab>`` after most
1692 objects; it should quickly become second nature as you will see how
1693 helps keep a fluid workflow and discover useful information. Later on
1694 you can also customize this behavior by writing your own completion
1695 code, if you so desire.
1696
1697 **Matplotlib integration**
1698
1699 One of the most useful features of IPython for scientists is its tight
1700 integration with matplotlib: at the terminal IPython lets you open
1701 matplotlib figures without blocking your typing (which is what happens
1702 if you try to do the same thing at the default Python shell), and in the
1703 Qt console and notebook you can even view your figures embedded in your
1704 workspace next to the code that created them.
1705
1706 The matplotlib support can be either activated when you start IPython by
1707 passing the ``--pylab`` flag, or at any point later in your session by
1708 using the ``%pylab`` command. If you start IPython with ``--pylab``,
1709 you'll see something like this (note the extra message about pylab):
1710
1711 ::
1712
1713 $ ipython --pylab
1714 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
1715 Type "copyright", "credits" or "license" for more information.
1716
1717 IPython 0.13.dev -- An enhanced Interactive Python.
1718 ? -> Introduction and overview of IPython's features.
1719 %quickref -> Quick reference.
1720 help -> Python's own help system.
1721 object? -> Details about 'object', use 'object??' for extra details.
1722
1723 Welcome to pylab, a matplotlib-based Python environment [backend: Qt4Agg].
1724 For more information, type 'help(pylab)'.
1725
1726 In [1]:
1727
1728 Furthermore, IPython will import ``numpy`` with the ``np`` shorthand,
1729 ``matplotlib.pyplot`` as ``plt``, and it will also load all of the numpy
1730 and pyplot top-level names so that you can directly type something like:
1731
1732 ::
1733
1734 In [1]: x = linspace(0, 2*pi, 200)
1735
1736 In [2]: plot(x, sin(x))
1737 Out[2]: [<matplotlib.lines.Line2D at 0x9e7c16c>]
1738
1739 instead of having to prefix each call with its full signature (as we
1740 have been doing in the examples thus far):
1741
1742 ::
1743
1744 In [3]: x = np.linspace(0, 2*np.pi, 200)
1745
1746 In [4]: plt.plot(x, np.sin(x))
1747 Out[4]: [<matplotlib.lines.Line2D at 0x9e900ac>]
1748
1749 This shorthand notation can be a huge time-saver when working
1750 interactively (it's a few characters but you are likely to type them
1751 hundreds of times in a session). But we should note that as you develop
1752 persistent scripts and notebooks meant for reuse, it's best to get in
1753 the habit of using the longer notation (known as *fully qualified names*
1754 as it's clearer where things come from and it makes for more robust,
1755 readable and maintainable code in the long run).
1756
1757 **Access to the operating system and files**
1758
1759 In IPython, you can type ``ls`` to see your files or ``cd`` to change
1760 directories, just like you would at a regular system prompt:
1761
1762 ::
1763
1764 In [2]: cd tests
1765 /home/fperez/ipython/nbconvert/tests
1766
1767 In [3]: ls test.*
1768 test.aux test.html test.ipynb test.log test.out test.pdf test.rst test.tex
1769
1770 Furthermore, if you use the ``!`` at the beginning of a line, any
1771 commands you pass afterwards go directly to the operating system:
1772
1773 ::
1774
1775 In [4]: !echo "Hello IPython"
1776 Hello IPython
1777
1778 IPython offers a useful twist in this feature: it will substitute in the
1779 command the value of any *Python* variable you may have if you prepend
1780 it with a ``$`` sign:
1781
1782 ::
1783
1784 In [5]: message = 'IPython interpolates from Python to the shell'
1785
1786 In [6]: !echo $message
1787 IPython interpolates from Python to the shell
1788
1789 This feature can be extremely useful, as it lets you combine the power
1790 and clarity of Python for complex logic with the immediacy and
1791 familiarity of many shell commands. Additionally, if you start the line
1792 with *two* ``$$`` signs, the output of the command will be automatically
1793 captured as a list of lines, e.g.:
1794
1795 ::
1796
1797 In [10]: !!ls test.*
1798 Out[10]:
1799 ['test.aux',
1800 'test.html',
1801 'test.ipynb',
1802 'test.log',
1803 'test.out',
1804 'test.pdf',
1805 'test.rst',
1806 'test.tex']
1807
1808 As explained above, you can now use this as the variable ``_10``. If you
1809 directly want to capture the output of a system command to a Python
1810 variable, you can use the syntax ``=!``:
1811
1812 ::
1813
1814 In [11]: testfiles =! ls test.*
1815
1816 In [12]: print testfiles
1817 ['test.aux', 'test.html', 'test.ipynb', 'test.log', 'test.out', 'test.pdf', 'test.rst', 'test.tex']
1818
1819 Finally, the special ``%alias`` command lets you define names that are
1820 shorthands for system commands, so that you can type them without having
1821 to prefix them via ``!`` explicitly (for example, ``ls`` is an alias
1822 that has been predefined for you at startup).
1823
1824 **Magic commands**
1825
1826 IPython has a system for special commands, called 'magics', that let you
1827 control IPython itself and perform many common tasks with a more
1828 shell-like syntax: it uses spaces for delimiting arguments, flags can be
1829 set with dashes and all arguments are treated as strings, so no
1830 additional quoting is required. This kind of syntax is invalid in the
1831 Python language but very convenient for interactive typing (less
1832 parentheses, commans and quoting everywhere); IPython distinguishes the
1833 two by detecting lines that start with the ``%`` character.
1834
1835 You can learn more about the magic system by simply typing ``%magic`` at
1836 the prompt, which will give you a short description plus the
1837 documentation on *all* available magics. If you want to see only a
1838 listing of existing magics, you can use ``%lsmagic``:
1839
1840 ::
1841
1842 In [4]: lsmagic
1843 Available magic functions:
1844 %alias %autocall %autoindent %automagic %bookmark %c %cd %colors %config %cpaste
1845 %debug %dhist %dirs %doctest_mode %ds %ed %edit %env %gui %hist %history
1846 %install_default_config %install_ext %install_profiles %load_ext %loadpy %logoff %logon
1847 %logstart %logstate %logstop %lsmagic %macro %magic %notebook %page %paste %pastebin
1848 %pd %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pop %popd %pprint %precision %profile
1849 %prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall %rehashx
1850 %reload_ext %rep %rerun %reset %reset_selective %run %save %sc %stop %store %sx %tb
1851 %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
1852
1853 Automagic is ON, % prefix NOT needed for magic functions.
1854
1855 Note how the example above omitted the eplicit ``%`` marker and simply
1856 uses ``lsmagic``. As long as the 'automagic' feature is on (which it is
1857 by default), you can omit the ``%`` marker as long as there is no
1858 ambiguity with a Python variable of the same name.
1859
1860 **Running your code**
1861
1862 While it's easy to type a few lines of code in IPython, for any
1863 long-lived work you should keep your codes in Python scripts (or in
1864 IPython notebooks, see below). Consider that you have a script, in this
1865 case trivially simple for the sake of brevity, named ``simple.py``:
1866
1867 ::
1868
1869 In [12]: !cat simple.py
1870 import numpy as np
1871
1872 x = np.random.normal(size=100)
1873
1874 print 'First elment of x:', x[0]
1875
1876 The typical workflow with IPython is to use the ``%run`` magic to
1877 execute your script (you can omit the .py extension if you want). When
1878 you run it, the script will execute just as if it had been run at the
1879 system prompt with ``python simple.py`` (though since modules don't get
1880 re-executed on new imports by Python, all system initialization is
1881 essentially free, which can have a significant run time impact in some
1882 cases):
1883
1884 ::
1885
1886 In [13]: run simple
1887 First elment of x: -1.55872256289
1888
1889 Once it completes, all variables defined in it become available for you
1890 to use interactively:
1891
1892 ::
1893
1894 In [14]: x.shape
1895 Out[14]: (100,)
1896
1897 This allows you to plot data, try out ideas, etc, in a
1898 ``%run``/interact/edit cycle that can be very productive. As you start
1899 understanding your problem better you can refine your script further,
1900 incrementally improving it based on the work you do at the IPython
1901 prompt. At any point you can use the ``%hist`` magic to print out your
1902 history without prompts, so that you can copy useful fragments back into
1903 the script.
1904
1905 By default, ``%run`` executes scripts in a completely empty namespace,
1906 to better mimic how they would execute at the system prompt with plain
1907 Python. But if you use the ``-i`` flag, the script will also see your
1908 interactively defined variables. This lets you edit in a script larger
1909 amounts of code that still behave as if you had typed them at the
1910 IPython prompt.
1911
1912 You can also get a summary of the time taken by your script with the
1913 ``-t`` flag; consider a different script ``randsvd.py`` that takes a bit
1914 longer to run:
1915
1916 ::
1917
1918 In [21]: run -t randsvd.py
1919
1920 IPython CPU timings (estimated):
1921 User : 0.38 s.
1922 System : 0.04 s.
1923 Wall time: 0.34 s.
1924
1925 ``User`` is the time spent by the computer executing your code, while
1926 ``System`` is the time the operating system had to work on your behalf,
1927 doing things like memory allocation that are needed by your code but
1928 that you didn't explicitly program and that happen inside the kernel.
1929 The ``Wall time`` is the time on a 'clock on the wall' between the start
1930 and end of your program.
1931
1932 If ``Wall > User+System``, your code is most likely waiting idle for
1933 certain periods. That could be waiting for data to arrive from a remote
1934 source or perhaps because the operating system has to swap large amounts
1935 of virtual memory. If you know that your code doesn't explicitly wait
1936 for remote data to arrive, you should investigate further to identify
1937 possible ways of improving the performance profile.
1938
1939 If you only want to time how long a single statement takes, you don't
1940 need to put it into a script as you can use the ``%timeit`` magic, which
1941 uses Python's ``timeit`` module to very carefully measure timig data;
1942 ``timeit`` can measure even short statements that execute extremely
1943 fast:
1944
1945 ::
1946
1947 In [27]: %timeit a=1
1948 10000000 loops, best of 3: 23 ns per loop
1949
1950 and for code that runs longer, it automatically adjusts so the overall
1951 measurement doesn't take too long:
1952
1953 ::
1954
1955 In [28]: %timeit np.linalg.svd(x)
1956 1 loops, best of 3: 310 ms per loop
1957
1958 The ``%run`` magic still has more options for debugging and profiling
1959 data; you should read its documentation for many useful details (as
1960 always, just type ``%run?``).
1961
1962 The graphical Qt console
1963 ------------------------
1964
1965 If you type at the system prompt (see the IPython website for
1966 installation details, as this requires some additional libraries):
1967
1968 ::
1969
1970 $ ipython qtconsole
1971
1972 instead of opening in a terminal as before, IPython will start a
1973 graphical console that at first sight appears just like a terminal, but
1974 which is in fact much more capable than a text-only terminal. This is a
1975 specialized terminal designed for interactive scientific work, and it
1976 supports full multi-line editing with color highlighting and graphical
1977 calltips for functions, it can keep multiple IPython sessions open
1978 simultaneously in tabs, and when scripts run it can display the figures
1979 inline directly in the work area.
1980
1981 .. raw:: html
1982
1983 <center>
1984
1985 .. raw:: html
1986
1987 </center>
1988
1989
1990 % This cell is for the pdflatex output only
1991 \begin{figure}[htbp]
1992 \centering
1993 \includegraphics[width=3in]{ipython_qtconsole2.png}
1994 \caption{The IPython Qt console: a lightweight terminal for scientific exploration, with code, results and graphics in a soingle environment.}
1995 \end{figure}
1996 The Qt console accepts the same ``--pylab`` startup flags as the
1997 terminal, but you can additionally supply the value ``--pylab inline``,
1998 which enables the support for inline graphics shown in the figure. This
1999 is ideal for keeping all the code and figures in the same session, given
2000 that the console can save the output of your entire session to HTML or
2001 PDF.
2002
2003 Since the Qt console makes it far more convenient than the terminal to
2004 edit blocks of code with multiple lines, in this environment it's worth
2005 knowing about the ``%loadpy`` magic function. ``%loadpy`` takes a path
2006 to a local file or remote URL, fetches its contents, and puts it in the
2007 work area for you to further edit and execute. It can be an extremely
2008 fast and convenient way of loading code from local disk or remote
2009 examples from sites such as the `Matplotlib
2010 gallery <http://matplotlib.sourceforge.net/gallery.html>`_.
2011
2012 Other than its enhanced capabilities for code and graphics, all of the
2013 features of IPython we've explained before remain functional in this
2014 graphical console.
2015
2016 The IPython Notebook
2017 --------------------
2018
2019 The third way to interact with IPython, in addition to the terminal and
2020 graphical Qt console, is a powerful web interface called the "IPython
2021 Notebook". If you run at the system console (you can omit the ``pylab``
2022 flags if you don't need plotting support):
2023
2024 ::
2025
2026 $ ipython notebook --pylab inline
2027
2028 IPython will start a process that runs a web server in your local
2029 machine and to which a web browser can connect. The Notebook is a
2030 workspace that lets you execute code in blocks called 'cells' and
2031 displays any results and figures, but which can also contain arbitrary
2032 text (including LaTeX-formatted mathematical expressions) and any rich
2033 media that a modern web browser is capable of displaying.
2034
2035 .. raw:: html
2036
2037 <center>
2038
2039 .. raw:: html
2040
2041 </center>
2042
2043
2044 % This cell is for the pdflatex output only
2045 \begin{figure}[htbp]
2046 \centering
2047 \includegraphics[width=3in]{ipython-notebook-specgram-2.png}
2048 \caption{The IPython Notebook: text, equations, code, results, graphics and other multimedia in an open format for scientific exploration and collaboration}
2049 \end{figure}
2050 In fact, this document was written as a Notebook, and only exported to
2051 LaTeX for printing. Inside of each cell, all the features of IPython
2052 that we have discussed before remain functional, since ultimately this
2053 web client is communicating with the same IPython code that runs in the
2054 terminal. But this interface is a much more rich and powerful
2055 environment for maintaining long-term "live and executable" scientific
2056 documents.
2057
2058 Notebook environments have existed in commercial systems like
2059 Mathematica(TM) and Maple(TM) for a long time; in the open source world
2060 the `Sage <http://sagemath.org>`_ project blazed this particular trail
2061 starting in 2006, and now we bring all the features that have made
2062 IPython such a widely used tool to a Notebook model.
2063
2064 Since the Notebook runs as a web application, it is possible to
2065 configure it for remote access, letting you run your computations on a
2066 persistent server close to your data, which you can then access remotely
2067 from any browser-equipped computer. We encourage you to read the
2068 extensive documentation provided by the IPython project for details on
2069 how to do this and many more features of the notebook.
2070
2071 Finally, as we said earlier, IPython also has a high-level and easy to
2072 use set of libraries for parallel computing, that let you control
2073 (interactively if desired) not just one IPython but an entire cluster of
2074 'IPython engines'. Unfortunately a detailed discussion of these tools is
2075 beyond the scope of this text, but should you need to parallelize your
2076 analysis codes, a quick read of the tutorials and examples provided at
2077 the IPython site may prove fruitful.
This diff has been collapsed as it changes many lines, (2255 lines changed) Show them Hide them
@@ -0,0 +1,2255 b''
1 %% This file was auto-generated by IPython, do NOT edit
2 %% Conversion from the original notebook file:
3 %% tests/ipynbref/IntroNumPy.orig.ipynb
4 %%
5 \documentclass[11pt,english]{article}
6
7 %% This is the automatic preamble used by IPython. Note that it does *not*
8 %% include a documentclass declaration, that is added at runtime to the overall
9 %% document.
10
11 \usepackage{amsmath}
12 \usepackage{amssymb}
13 \usepackage{graphicx}
14 \usepackage{ucs}
15 \usepackage[utf8x]{inputenc}
16
17 % needed for markdown enumerations to work
18 \usepackage{enumerate}
19
20 % Slightly bigger margins than the latex defaults
21 \usepackage{geometry}
22 \geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=2.5cm,rmargin=2.5cm}
23
24 % Define a few colors for use in code, links and cell shading
25 \usepackage{color}
26 \definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
27 \definecolor{darkorange}{rgb}{.71,0.21,0.01}
28 \definecolor{darkgreen}{rgb}{.12,.54,.11}
29 \definecolor{myteal}{rgb}{.26, .44, .56}
30 \definecolor{gray}{gray}{0.45}
31 \definecolor{lightgray}{gray}{.95}
32 \definecolor{mediumgray}{gray}{.8}
33 \definecolor{inputbackground}{rgb}{.95, .95, .85}
34 \definecolor{outputbackground}{rgb}{.95, .95, .95}
35 \definecolor{traceback}{rgb}{1, .95, .95}
36
37 % Framed environments for code cells (inputs, outputs, errors, ...). The
38 % various uses of \unskip (or not) at the end were fine-tuned by hand, so don't
39 % randomly change them unless you're sure of the effect it will have.
40 \usepackage{framed}
41
42 % remove extraneous vertical space in boxes
43 \setlength\fboxsep{0pt}
44
45 % codecell is the whole input+output set of blocks that a Code cell can
46 % generate.
47
48 % TODO: unfortunately, it seems that using a framed codecell environment breaks
49 % the ability of the frames inside of it to be broken across pages. This
50 % causes at least the problem of having lots of empty space at the bottom of
51 % pages as new frames are moved to the next page, and if a single frame is too
52 % long to fit on a page, will completely stop latex from compiling the
53 % document. So unless we figure out a solution to this, we'll have to instead
54 % leave the codecell env. as empty. I'm keeping the original codecell
55 % definition here (a thin vertical bar) for reference, in case we find a
56 % solution to the page break issue.
57
58 %% \newenvironment{codecell}{%
59 %% \def\FrameCommand{\color{mediumgray} \vrule width 1pt \hspace{5pt}}%
60 %% \MakeFramed{\vspace{-0.5em}}}
61 %% {\unskip\endMakeFramed}
62
63 % For now, make this a no-op...
64 \newenvironment{codecell}{}
65
66 \newenvironment{codeinput}{%
67 \def\FrameCommand{\colorbox{inputbackground}}%
68 \MakeFramed{\advance\hsize-\width \FrameRestore}}
69 {\unskip\endMakeFramed}
70
71 \newenvironment{codeoutput}{%
72 \def\FrameCommand{\colorbox{outputbackground}}%
73 \vspace{-1.4em}
74 \MakeFramed{\advance\hsize-\width \FrameRestore}}
75 {\unskip\medskip\endMakeFramed}
76
77 \newenvironment{traceback}{%
78 \def\FrameCommand{\colorbox{traceback}}%
79 \MakeFramed{\advance\hsize-\width \FrameRestore}}
80 {\endMakeFramed}
81
82 % Use and configure listings package for nicely formatted code
83 \usepackage{listingsutf8}
84 \lstset{
85 language=python,
86 inputencoding=utf8x,
87 extendedchars=\true,
88 aboveskip=\smallskipamount,
89 belowskip=\smallskipamount,
90 xleftmargin=2mm,
91 breaklines=true,
92 basicstyle=\small \ttfamily,
93 showstringspaces=false,
94 keywordstyle=\color{blue}\bfseries,
95 commentstyle=\color{myteal},
96 stringstyle=\color{darkgreen},
97 identifierstyle=\color{darkorange},
98 columns=fullflexible, % tighter character kerning, like verb
99 }
100
101 % The hyperref package gives us a pdf with properly built
102 % internal navigation ('pdf bookmarks' for the table of contents,
103 % internal cross-reference links, web links for URLs, etc.)
104 \usepackage{hyperref}
105 \hypersetup{
106 breaklinks=true, % so long urls are correctly broken across lines
107 colorlinks=true,
108 urlcolor=blue,
109 linkcolor=darkorange,
110 citecolor=darkgreen,
111 }
112
113 % hardcode size of all verbatim environments to be a bit smaller
114 \makeatletter
115 \g@addto@macro\@verbatim\small\topsep=0.5em\partopsep=0pt
116 \makeatother
117
118 % Prevent overflowing lines due to urls and other hard-to-break entities.
119 \sloppy
120
121 \begin{document}
122
123 \section{An Introduction to the Scientific Python Ecosystem}
124 While the Python language is an excellent tool for general-purpose
125 programming, with a highly readable syntax, rich and powerful data types
126 (strings, lists, sets, dictionaries, arbitrary length integers, etc) and
127 a very comprehensive standard library, it was not designed specifically
128 for mathematical and scientific computing. Neither the language nor its
129 standard library have facilities for the efficient representation of
130 multidimensional datasets, tools for linear algebra and general matrix
131 manipulations (an essential building block of virtually all technical
132 computing), nor any data visualization facilities.
133
134 In particular, Python lists are very flexible containers that can be
135 nested arbitrarily deep and which can hold any Python object in them,
136 but they are poorly suited to represent efficiently common mathematical
137 constructs like vectors and matrices. In contrast, much of our modern
138 heritage of scientific computing has been built on top of libraries
139 written in the Fortran language, which has native support for vectors
140 and matrices as well as a library of mathematical functions that can
141 efficiently operate on entire arrays at once.
142
143 \subsection{Scientific Python: a collaboration of projects built by scientists}
144 The scientific community has developed a set of related Python libraries
145 that provide powerful array facilities, linear algebra, numerical
146 algorithms, data visualization and more. In this appendix, we will
147 briefly outline the tools most frequently used for this purpose, that
148 make ``Scientific Python'' something far more powerful than the Python
149 language alone.
150
151 For reasons of space, we can only describe in some detail the central
152 Numpy library, but below we provide links to the websites of each
153 project where you can read their documentation in more detail.
154
155 First, let's look at an overview of the basic tools that most scientists
156 use in daily research with Python. The core of this ecosystem is
157 composed of:
158
159 \begin{itemize}
160 \item
161 Numpy: the basic library that most others depend on, it provides a
162 powerful array type that can represent multidmensional datasets of
163 many different kinds and that supports arithmetic operations. Numpy
164 also provides a library of common mathematical functions, basic linear
165 algebra, random number generation and Fast Fourier Transforms. Numpy
166 can be found at \href{http://numpy.scipy.org}{numpy.scipy.org}
167 \item
168 Scipy: a large collection of numerical algorithms that operate on
169 numpy arrays and provide facilities for many common tasks in
170 scientific computing, including dense and sparse linear algebra
171 support, optimization, special functions, statistics, n-dimensional
172 image processing, signal processing and more. Scipy can be found at
173 \href{http://scipy.org}{scipy.org}.
174 \item
175 Matplotlib: a data visualization library with a strong focus on
176 producing high-quality output, it supports a variety of common
177 scientific plot types in two and three dimensions, with precise
178 control over the final output and format for publication-quality
179 results. Matplotlib can also be controlled interactively allowing
180 graphical manipulation of your data (zooming, panning, etc) and can be
181 used with most modern user interface toolkits. It can be found at
182 \href{http://matplotlib.sf.net}{matplotlib.sf.net}.
183 \item
184 IPython: while not strictly scientific in nature, IPython is the
185 interactive environment in which many scientists spend their time.
186 IPython provides a powerful Python shell that integrates tightly with
187 Matplotlib and with easy access to the files and operating system, and
188 which can execute in a terminal or in a graphical Qt console. IPython
189 also has a web-based notebook interface that can combine code with
190 text, mathematical expressions, figures and multimedia. It can be
191 found at \href{http://ipython.org}{ipython.org}.
192 \end{itemize}
193 While each of these tools can be installed separately, in our opinion
194 the most convenient way today of accessing them (especially on Windows
195 and Mac computers) is to install the
196 \href{http://www.enthought.com/products/epd\_free.php}{Free Edition of
197 the Enthought Python Distribution} which contain all the above. Other
198 free alternatives on Windows (but not on Macs) are
199 \href{http://code.google.com/p/pythonxy}{Python(x,y)} and
200 \href{http://www.lfd.uci.edu/~gohlke/pythonlibs}{Christoph Gohlke's
201 packages page}.
202
203 These four `core' libraries are in practice complemented by a number of
204 other tools for more specialized work. We will briefly list here the
205 ones that we think are the most commonly needed:
206
207 \begin{itemize}
208 \item
209 Sympy: a symbolic manipulation tool that turns a Python session into a
210 computer algebra system. It integrates with the IPython notebook,
211 rendering results in properly typeset mathematical notation.
212 \href{http://sympy.org}{sympy.org}.
213 \item
214 Mayavi: sophisticated 3d data visualization;
215 \href{http://code.enthought.com/projects/mayavi}{code.enthought.com/projects/mayavi}.
216 \item
217 Cython: a bridge language between Python and C, useful both to
218 optimize performance bottlenecks in Python and to access C libraries
219 directly; \href{http://cython.org}{cython.org}.
220 \item
221 Pandas: high-performance data structures and data analysis tools, with
222 powerful data alignment and structural manipulation capabilities;
223 \href{http://pandas.pydata.org}{pandas.pydata.org}.
224 \item
225 Statsmodels: statistical data exploration and model estimation;
226 \href{http://statsmodels.sourceforge.net}{statsmodels.sourceforge.net}.
227 \item
228 Scikit-learn: general purpose machine learning algorithms with a
229 common interface; \href{http://scikit-learn.org}{scikit-learn.org}.
230 \item
231 Scikits-image: image processing toolbox;
232 \href{http://scikits-image.org}{scikits-image.org}.
233 \item
234 NetworkX: analysis of complex networks (in the graph theoretical
235 sense); \href{http://networkx.lanl.gov}{networkx.lanl.gov}.
236 \item
237 PyTables: management of hierarchical datasets using the
238 industry-standard HDF5 format;
239 \href{http://www.pytables.org}{www.pytables.org}.
240 \end{itemize}
241 Beyond these, for any specific problem you should look on the internet
242 first, before starting to write code from scratch. There's a good chance
243 that someone, somewhere, has written an open source library that you can
244 use for part or all of your problem.
245
246 \subsection{A note about the examples below}
247 In all subsequent examples, you will see blocks of input code, followed
248 by the results of the code if the code generated output. This output may
249 include text, graphics and other result objects. These blocks of input
250 can be pasted into your interactive IPython session or notebook for you
251 to execute. In the print version of this document, a thin vertical bar
252 on the left of the blocks of input and output shows which blocks go
253 together.
254
255 If you are reading this text as an actual IPython notebook, you can
256 press \texttt{Shift-Enter} or use the `play' button on the toolbar
257 (right-pointing triangle) to execute each block of code, known as a
258 `cell' in IPython:
259
260 \begin{codecell}
261 \begin{codeinput}
262 \begin{lstlisting}
263 # This is a block of code, below you'll see its output
264 print "Welcome to the world of scientific computing with Python!"
265 \end{lstlisting}
266 \end{codeinput}
267 \begin{codeoutput}
268 \begin{verbatim}
269 Welcome to the world of scientific computing with Python!
270 \end{verbatim}
271 \end{codeoutput}
272 \end{codecell}
273 \section{Motivation: the trapezoidal rule}
274 In subsequent sections we'll provide a basic introduction to the nuts
275 and bolts of the basic scientific python tools; but we'll first motivate
276 it with a brief example that illustrates what you can do in a few lines
277 with these tools. For this, we will use the simple problem of
278 approximating a definite integral with the trapezoid rule:
279
280 \[
281 \int_{a}^{b} f(x)\, dx \approx \frac{1}{2} \sum_{k=1}^{N} \left( x_{k} - x_{k-1} \right) \left( f(x_{k}) + f(x_{k-1}) \right).
282 \]
283
284 Our task will be to compute this formula for a function such as:
285
286 \[
287 f(x) = (x-3)(x-5)(x-7)+85
288 \]
289
290 integrated between $a=1$ and $b=9$.
291
292 First, we define the function and sample it evenly between 0 and 10 at
293 200 points:
294
295 \begin{codecell}
296 \begin{codeinput}
297 \begin{lstlisting}
298 def f(x):
299 return (x-3)*(x-5)*(x-7)+85
300
301 import numpy as np
302 x = np.linspace(0, 10, 200)
303 y = f(x)
304 \end{lstlisting}
305 \end{codeinput}
306 \end{codecell}
307 We select $a$ and $b$, our integration limits, and we take only a few
308 points in that region to illustrate the error behavior of the trapezoid
309 approximation:
310
311 \begin{codecell}
312 \begin{codeinput}
313 \begin{lstlisting}
314 a, b = 1, 9
315 xint = x[logical_and(x>=a, x<=b)][::30]
316 yint = y[logical_and(x>=a, x<=b)][::30]
317 \end{lstlisting}
318 \end{codeinput}
319 \end{codecell}
320 Let's plot both the function and the area below it in the trapezoid
321 approximation:
322
323 \begin{codecell}
324 \begin{codeinput}
325 \begin{lstlisting}
326 import matplotlib.pyplot as plt
327 plt.plot(x, y, lw=2)
328 plt.axis([0, 10, 0, 140])
329 plt.fill_between(xint, 0, yint, facecolor='gray', alpha=0.4)
330 plt.text(0.5 * (a + b), 30,r"$\int_a^b f(x)dx$", horizontalalignment='center', fontsize=20);
331 \end{lstlisting}
332 \end{codeinput}
333 \begin{codeoutput}
334 \begin{center}
335 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_00.pdf}
336 \par
337 \end{center}
338 \end{codeoutput}
339 \end{codecell}
340 Compute the integral both at high accuracy and with the trapezoid
341 approximation
342
343 \begin{codecell}
344 \begin{codeinput}
345 \begin{lstlisting}
346 from scipy.integrate import quad, trapz
347 integral, error = quad(f, 1, 9)
348 trap_integral = trapz(yint, xint)
349 print "The integral is: %g +/- %.1e" % (integral, error)
350 print "The trapezoid approximation with", len(xint), "points is:", trap_integral
351 print "The absolute error is:", abs(integral - trap_integral)
352 \end{lstlisting}
353 \end{codeinput}
354 \begin{codeoutput}
355 \begin{verbatim}
356 The integral is: 680 +/- 7.5e-12
357 The trapezoid approximation with 6 points is: 621.286411141
358 The absolute error is: 58.7135888589
359 \end{verbatim}
360 \end{codeoutput}
361 \end{codecell}
362 This simple example showed us how, combining the numpy, scipy and
363 matplotlib libraries we can provide an illustration of a standard method
364 in elementary calculus with just a few lines of code. We will now
365 discuss with more detail the basic usage of these tools.
366
367 \section{NumPy arrays: the right data structure for scientific computing}
368 \subsection{Basics of Numpy arrays}
369 We now turn our attention to the Numpy library, which forms the base
370 layer for the entire `scipy ecosystem'. Once you have installed numpy,
371 you can import it as
372
373 \begin{codecell}
374 \begin{codeinput}
375 \begin{lstlisting}
376 import numpy
377 \end{lstlisting}
378 \end{codeinput}
379 \end{codecell}
380 though in this book we will use the common shorthand
381
382 \begin{codecell}
383 \begin{codeinput}
384 \begin{lstlisting}
385 import numpy as np
386 \end{lstlisting}
387 \end{codeinput}
388 \end{codecell}
389 As mentioned above, the main object provided by numpy is a powerful
390 array. We'll start by exploring how the numpy array differs from Python
391 lists. We start by creating a simple list and an array with the same
392 contents of the list:
393
394 \begin{codecell}
395 \begin{codeinput}
396 \begin{lstlisting}
397 lst = [10, 20, 30, 40]
398 arr = np.array([10, 20, 30, 40])
399 \end{lstlisting}
400 \end{codeinput}
401 \end{codecell}
402 Elements of a one-dimensional array are accessed with the same syntax as
403 a list:
404
405 \begin{codecell}
406 \begin{codeinput}
407 \begin{lstlisting}
408 lst[0]
409 \end{lstlisting}
410 \end{codeinput}
411 \begin{codeoutput}
412 \begin{verbatim}
413 10
414 \end{verbatim}
415 \end{codeoutput}
416 \end{codecell}
417 \begin{codecell}
418 \begin{codeinput}
419 \begin{lstlisting}
420 arr[0]
421 \end{lstlisting}
422 \end{codeinput}
423 \begin{codeoutput}
424 \begin{verbatim}
425 10
426 \end{verbatim}
427 \end{codeoutput}
428 \end{codecell}
429 \begin{codecell}
430 \begin{codeinput}
431 \begin{lstlisting}
432 arr[-1]
433 \end{lstlisting}
434 \end{codeinput}
435 \begin{codeoutput}
436 \begin{verbatim}
437 40
438 \end{verbatim}
439 \end{codeoutput}
440 \end{codecell}
441 \begin{codecell}
442 \begin{codeinput}
443 \begin{lstlisting}
444 arr[2:]
445 \end{lstlisting}
446 \end{codeinput}
447 \begin{codeoutput}
448 \begin{verbatim}
449 array([30, 40])
450 \end{verbatim}
451 \end{codeoutput}
452 \end{codecell}
453 The first difference to note between lists and arrays is that arrays are
454 \emph{homogeneous}; i.e.~all elements of an array must be of the same
455 type. In contrast, lists can contain elements of arbitrary type. For
456 example, we can change the last element in our list above to be a
457 string:
458
459 \begin{codecell}
460 \begin{codeinput}
461 \begin{lstlisting}
462 lst[-1] = 'a string inside a list'
463 lst
464 \end{lstlisting}
465 \end{codeinput}
466 \begin{codeoutput}
467 \begin{verbatim}
468 [10, 20, 30, 'a string inside a list']
469 \end{verbatim}
470 \end{codeoutput}
471 \end{codecell}
472 but the same can not be done with an array, as we get an error message:
473
474 \begin{codecell}
475 \begin{codeinput}
476 \begin{lstlisting}
477 arr[-1] = 'a string inside an array'
478 \end{lstlisting}
479 \end{codeinput}
480 \begin{codeoutput}
481 \begin{traceback}
482 \begin{verbatim}
483 ---------------------------------------------------------------------------
484 ValueError Traceback (most recent call last)
485 /home/fperez/teach/book-math-labtool/<ipython-input-13-29c0bfa5fa8a> in <module>()
486 ----> 1 arr[-1] = 'a string inside an array'
487
488 ValueError: invalid literal for long() with base 10: 'a string inside an array'
489 \end{verbatim}
490 \end{traceback}
491 \end{codeoutput}
492 \end{codecell}
493 The information about the type of an array is contained in its
494 \emph{dtype} attribute:
495
496 \begin{codecell}
497 \begin{codeinput}
498 \begin{lstlisting}
499 arr.dtype
500 \end{lstlisting}
501 \end{codeinput}
502 \begin{codeoutput}
503 \begin{verbatim}
504 dtype('int32')
505 \end{verbatim}
506 \end{codeoutput}
507 \end{codecell}
508 Once an array has been created, its dtype is fixed and it can only store
509 elements of the same type. For this example where the dtype is integer,
510 if we store a floating point number it will be automatically converted
511 into an integer:
512
513 \begin{codecell}
514 \begin{codeinput}
515 \begin{lstlisting}
516 arr[-1] = 1.234
517 arr
518 \end{lstlisting}
519 \end{codeinput}
520 \begin{codeoutput}
521 \begin{verbatim}
522 array([10, 20, 30, 1])
523 \end{verbatim}
524 \end{codeoutput}
525 \end{codecell}
526 Above we created an array from an existing list; now let us now see
527 other ways in which we can create arrays, which we'll illustrate next. A
528 common need is to have an array initialized with a constant value, and
529 very often this value is 0 or 1 (suitable as starting value for additive
530 and multiplicative loops respectively); \texttt{zeros} creates arrays of
531 all zeros, with any desired dtype:
532
533 \begin{codecell}
534 \begin{codeinput}
535 \begin{lstlisting}
536 np.zeros(5, float)
537 \end{lstlisting}
538 \end{codeinput}
539 \begin{codeoutput}
540 \begin{verbatim}
541 array([ 0., 0., 0., 0., 0.])
542 \end{verbatim}
543 \end{codeoutput}
544 \end{codecell}
545 \begin{codecell}
546 \begin{codeinput}
547 \begin{lstlisting}
548 np.zeros(3, int)
549 \end{lstlisting}
550 \end{codeinput}
551 \begin{codeoutput}
552 \begin{verbatim}
553 array([0, 0, 0])
554 \end{verbatim}
555 \end{codeoutput}
556 \end{codecell}
557 \begin{codecell}
558 \begin{codeinput}
559 \begin{lstlisting}
560 np.zeros(3, complex)
561 \end{lstlisting}
562 \end{codeinput}
563 \begin{codeoutput}
564 \begin{verbatim}
565 array([ 0.+0.j, 0.+0.j, 0.+0.j])
566 \end{verbatim}
567 \end{codeoutput}
568 \end{codecell}
569 and similarly for \texttt{ones}:
570
571 \begin{codecell}
572 \begin{codeinput}
573 \begin{lstlisting}
574 print '5 ones:', np.ones(5)
575 \end{lstlisting}
576 \end{codeinput}
577 \begin{codeoutput}
578 \begin{verbatim}
579 5 ones: [ 1. 1. 1. 1. 1.]
580 \end{verbatim}
581 \end{codeoutput}
582 \end{codecell}
583 If we want an array initialized with an arbitrary value, we can create
584 an empty array and then use the fill method to put the value we want
585 into the array:
586
587 \begin{codecell}
588 \begin{codeinput}
589 \begin{lstlisting}
590 a = empty(4)
591 a.fill(5.5)
592 a
593 \end{lstlisting}
594 \end{codeinput}
595 \begin{codeoutput}
596 \begin{verbatim}
597 array([ 5.5, 5.5, 5.5, 5.5])
598 \end{verbatim}
599 \end{codeoutput}
600 \end{codecell}
601 Numpy also offers the \texttt{arange} function, which works like the
602 builtin \texttt{range} but returns an array instead of a list:
603
604 \begin{codecell}
605 \begin{codeinput}
606 \begin{lstlisting}
607 np.arange(5)
608 \end{lstlisting}
609 \end{codeinput}
610 \begin{codeoutput}
611 \begin{verbatim}
612 array([0, 1, 2, 3, 4])
613 \end{verbatim}
614 \end{codeoutput}
615 \end{codecell}
616 and the \texttt{linspace} and \texttt{logspace} functions to create
617 linearly and logarithmically-spaced grids respectively, with a fixed
618 number of points and including both ends of the specified interval:
619
620 \begin{codecell}
621 \begin{codeinput}
622 \begin{lstlisting}
623 print "A linear grid between 0 and 1:", np.linspace(0, 1, 5)
624 print "A logarithmic grid between 10**1 and 10**4: ", np.logspace(1, 4, 4)
625 \end{lstlisting}
626 \end{codeinput}
627 \begin{codeoutput}
628 \begin{verbatim}
629 A linear grid between 0 and 1: [ 0. 0.25 0.5 0.75 1. ]
630 A logarithmic grid between 10**1 and 10**4: [ 10. 100. 1000. 10000.]
631 \end{verbatim}
632 \end{codeoutput}
633 \end{codecell}
634 Finally, it is often useful to create arrays with random numbers that
635 follow a specific distribution. The \texttt{np.random} module contains a
636 number of functions that can be used to this effect, for example this
637 will produce an array of 5 random samples taken from a standard normal
638 distribution (0 mean and variance 1):
639
640 \begin{codecell}
641 \begin{codeinput}
642 \begin{lstlisting}
643 np.random.randn(5)
644 \end{lstlisting}
645 \end{codeinput}
646 \begin{codeoutput}
647 \begin{verbatim}
648 array([-0.08633343, -0.67375434, 1.00589536, 0.87081651, 1.65597822])
649 \end{verbatim}
650 \end{codeoutput}
651 \end{codecell}
652 whereas this will also give 5 samples, but from a normal distribution
653 with a mean of 10 and a variance of 3:
654
655 \begin{codecell}
656 \begin{codeinput}
657 \begin{lstlisting}
658 norm10 = np.random.normal(10, 3, 5)
659 norm10
660 \end{lstlisting}
661 \end{codeinput}
662 \begin{codeoutput}
663 \begin{verbatim}
664 array([ 8.94879575, 5.53038269, 8.24847281, 12.14944165, 11.56209294])
665 \end{verbatim}
666 \end{codeoutput}
667 \end{codecell}
668 \subsection{Indexing with other arrays}
669 Above we saw how to index arrays with single numbers and slices, just
670 like Python lists. But arrays allow for a more sophisticated kind of
671 indexing which is very powerful: you can index an array with another
672 array, and in particular with an array of boolean values. This is
673 particluarly useful to extract information from an array that matches a
674 certain condition.
675
676 Consider for example that in the array \texttt{norm10} we want to
677 replace all values above 9 with the value 0. We can do so by first
678 finding the \emph{mask} that indicates where this condition is true or
679 false:
680
681 \begin{codecell}
682 \begin{codeinput}
683 \begin{lstlisting}
684 mask = norm10 > 9
685 mask
686 \end{lstlisting}
687 \end{codeinput}
688 \begin{codeoutput}
689 \begin{verbatim}
690 array([False, False, False, True, True], dtype=bool)
691 \end{verbatim}
692 \end{codeoutput}
693 \end{codecell}
694 Now that we have this mask, we can use it to either read those values or
695 to reset them to 0:
696
697 \begin{codecell}
698 \begin{codeinput}
699 \begin{lstlisting}
700 print 'Values above 9:', norm10[mask]
701 \end{lstlisting}
702 \end{codeinput}
703 \begin{codeoutput}
704 \begin{verbatim}
705 Values above 9: [ 12.14944165 11.56209294]
706 \end{verbatim}
707 \end{codeoutput}
708 \end{codecell}
709 \begin{codecell}
710 \begin{codeinput}
711 \begin{lstlisting}
712 print 'Resetting all values above 9 to 0...'
713 norm10[mask] = 0
714 print norm10
715 \end{lstlisting}
716 \end{codeinput}
717 \begin{codeoutput}
718 \begin{verbatim}
719 Resetting all values above 9 to 0...
720 [ 8.94879575 5.53038269 8.24847281 0. 0. ]
721 \end{verbatim}
722 \end{codeoutput}
723 \end{codecell}
724 \subsection{Arrays with more than one dimension}
725 Up until now all our examples have used one-dimensional arrays. But
726 Numpy can create arrays of aribtrary dimensions, and all the methods
727 illustrated in the previous section work with more than one dimension.
728 For example, a list of lists can be used to initialize a two dimensional
729 array:
730
731 \begin{codecell}
732 \begin{codeinput}
733 \begin{lstlisting}
734 lst2 = [[1, 2], [3, 4]]
735 arr2 = np.array([[1, 2], [3, 4]])
736 arr2
737 \end{lstlisting}
738 \end{codeinput}
739 \begin{codeoutput}
740 \begin{verbatim}
741 array([[1, 2],
742 [3, 4]])
743 \end{verbatim}
744 \end{codeoutput}
745 \end{codecell}
746 With two-dimensional arrays we start seeing the power of numpy: while a
747 nested list can be indexed using repeatedly the \texttt{{[} {]}}
748 operator, multidimensional arrays support a much more natural indexing
749 syntax with a single \texttt{{[} {]}} and a set of indices separated by
750 commas:
751
752 \begin{codecell}
753 \begin{codeinput}
754 \begin{lstlisting}
755 print lst2[0][1]
756 print arr2[0,1]
757 \end{lstlisting}
758 \end{codeinput}
759 \begin{codeoutput}
760 \begin{verbatim}
761 2
762 2
763 \end{verbatim}
764 \end{codeoutput}
765 \end{codecell}
766 Most of the array creation functions listed above can be used with more
767 than one dimension, for example:
768
769 \begin{codecell}
770 \begin{codeinput}
771 \begin{lstlisting}
772 np.zeros((2,3))
773 \end{lstlisting}
774 \end{codeinput}
775 \begin{codeoutput}
776 \begin{verbatim}
777 array([[ 0., 0., 0.],
778 [ 0., 0., 0.]])
779 \end{verbatim}
780 \end{codeoutput}
781 \end{codecell}
782 \begin{codecell}
783 \begin{codeinput}
784 \begin{lstlisting}
785 np.random.normal(10, 3, (2, 4))
786 \end{lstlisting}
787 \end{codeinput}
788 \begin{codeoutput}
789 \begin{verbatim}
790 array([[ 11.26788826, 4.29619866, 11.09346496, 9.73861307],
791 [ 10.54025996, 9.5146268 , 10.80367214, 13.62204505]])
792 \end{verbatim}
793 \end{codeoutput}
794 \end{codecell}
795 In fact, the shape of an array can be changed at any time, as long as
796 the total number of elements is unchanged. For example, if we want a 2x4
797 array with numbers increasing from 0, the easiest way to create it is:
798
799 \begin{codecell}
800 \begin{codeinput}
801 \begin{lstlisting}
802 arr = np.arange(8).reshape(2,4)
803 print arr
804 \end{lstlisting}
805 \end{codeinput}
806 \begin{codeoutput}
807 \begin{verbatim}
808 [[0 1 2 3]
809 [4 5 6 7]]
810 \end{verbatim}
811 \end{codeoutput}
812 \end{codecell}
813 With multidimensional arrays, you can also use slices, and you can mix
814 and match slices and single indices in the different dimensions (using
815 the same array as above):
816
817 \begin{codecell}
818 \begin{codeinput}
819 \begin{lstlisting}
820 print 'Slicing in the second row:', arr[1, 2:4]
821 print 'All rows, third column :', arr[:, 2]
822 \end{lstlisting}
823 \end{codeinput}
824 \begin{codeoutput}
825 \begin{verbatim}
826 Slicing in the second row: [6 7]
827 All rows, third column : [2 6]
828 \end{verbatim}
829 \end{codeoutput}
830 \end{codecell}
831 If you only provide one index, then you will get an array with one less
832 dimension containing that row:
833
834 \begin{codecell}
835 \begin{codeinput}
836 \begin{lstlisting}
837 print 'First row: ', arr[0]
838 print 'Second row: ', arr[1]
839 \end{lstlisting}
840 \end{codeinput}
841 \begin{codeoutput}
842 \begin{verbatim}
843 First row: [0 1 2 3]
844 Second row: [4 5 6 7]
845 \end{verbatim}
846 \end{codeoutput}
847 \end{codecell}
848 Now that we have seen how to create arrays with more than one dimension,
849 it's a good idea to look at some of the most useful properties and
850 methods that arrays have. The following provide basic information about
851 the size, shape and data in the array:
852
853 \begin{codecell}
854 \begin{codeinput}
855 \begin{lstlisting}
856 print 'Data type :', arr.dtype
857 print 'Total number of elements :', arr.size
858 print 'Number of dimensions :', arr.ndim
859 print 'Shape (dimensionality) :', arr.shape
860 print 'Memory used (in bytes) :', arr.nbytes
861 \end{lstlisting}
862 \end{codeinput}
863 \begin{codeoutput}
864 \begin{verbatim}
865 Data type : int32
866 Total number of elements : 8
867 Number of dimensions : 2
868 Shape (dimensionality) : (2, 4)
869 Memory used (in bytes) : 32
870 \end{verbatim}
871 \end{codeoutput}
872 \end{codecell}
873 Arrays also have many useful methods, some especially useful ones are:
874
875 \begin{codecell}
876 \begin{codeinput}
877 \begin{lstlisting}
878 print 'Minimum and maximum :', arr.min(), arr.max()
879 print 'Sum and product of all elements :', arr.sum(), arr.prod()
880 print 'Mean and standard deviation :', arr.mean(), arr.std()
881 \end{lstlisting}
882 \end{codeinput}
883 \begin{codeoutput}
884 \begin{verbatim}
885 Minimum and maximum : 0 7
886 Sum and product of all elements : 28 0
887 Mean and standard deviation : 3.5 2.29128784748
888 \end{verbatim}
889 \end{codeoutput}
890 \end{codecell}
891 For these methods, the above operations area all computed on all the
892 elements of the array. But for a multidimensional array, it's possible
893 to do the computation along a single dimension, by passing the
894 \texttt{axis} parameter; for example:
895
896 \begin{codecell}
897 \begin{codeinput}
898 \begin{lstlisting}
899 print 'For the following array:\n', arr
900 print 'The sum of elements along the rows is :', arr.sum(axis=1)
901 print 'The sum of elements along the columns is :', arr.sum(axis=0)
902 \end{lstlisting}
903 \end{codeinput}
904 \begin{codeoutput}
905 \begin{verbatim}
906 For the following array:
907 [[0 1 2 3]
908 [4 5 6 7]]
909 The sum of elements along the rows is : [ 6 22]
910 The sum of elements along the columns is : [ 4 6 8 10]
911 \end{verbatim}
912 \end{codeoutput}
913 \end{codecell}
914 As you can see in this example, the value of the \texttt{axis} parameter
915 is the dimension which will be \emph{consumed} once the operation has
916 been carried out. This is why to sum along the rows we use
917 \texttt{axis=0}.
918
919 This can be easily illustrated with an example that has more dimensions;
920 we create an array with 4 dimensions and shape \texttt{(3,4,5,6)} and
921 sum along the axis number 2 (i.e.~the \emph{third} axis, since in Python
922 all counts are 0-based). That consumes the dimension whose length was 5,
923 leaving us with a new array that has shape \texttt{(3,4,6)}:
924
925 \begin{codecell}
926 \begin{codeinput}
927 \begin{lstlisting}
928 np.zeros((3,4,5,6)).sum(2).shape
929 \end{lstlisting}
930 \end{codeinput}
931 \begin{codeoutput}
932 \begin{verbatim}
933 (3, 4, 6)
934 \end{verbatim}
935 \end{codeoutput}
936 \end{codecell}
937 Another widely used property of arrays is the \texttt{.T} attribute,
938 which allows you to access the transpose of the array:
939
940 \begin{codecell}
941 \begin{codeinput}
942 \begin{lstlisting}
943 print 'Array:\n', arr
944 print 'Transpose:\n', arr.T
945 \end{lstlisting}
946 \end{codeinput}
947 \begin{codeoutput}
948 \begin{verbatim}
949 Array:
950 [[0 1 2 3]
951 [4 5 6 7]]
952 Transpose:
953 [[0 4]
954 [1 5]
955 [2 6]
956 [3 7]]
957 \end{verbatim}
958 \end{codeoutput}
959 \end{codecell}
960 We don't have time here to look at all the methods and properties of
961 arrays, here's a complete list. Simply try exploring some of these
962 IPython to learn more, or read their description in the full Numpy
963 documentation:
964
965 \begin{verbatim}
966 arr.T arr.copy arr.getfield arr.put arr.squeeze
967 arr.all arr.ctypes arr.imag arr.ravel arr.std
968 arr.any arr.cumprod arr.item arr.real arr.strides
969 arr.argmax arr.cumsum arr.itemset arr.repeat arr.sum
970 arr.argmin arr.data arr.itemsize arr.reshape arr.swapaxes
971 arr.argsort arr.diagonal arr.max arr.resize arr.take
972 arr.astype arr.dot arr.mean arr.round arr.tofile
973 arr.base arr.dtype arr.min arr.searchsorted arr.tolist
974 arr.byteswap arr.dump arr.nbytes arr.setasflat arr.tostring
975 arr.choose arr.dumps arr.ndim arr.setfield arr.trace
976 arr.clip arr.fill arr.newbyteorder arr.setflags arr.transpose
977 arr.compress arr.flags arr.nonzero arr.shape arr.var
978 arr.conj arr.flat arr.prod arr.size arr.view
979 arr.conjugate arr.flatten arr.ptp arr.sort
980 \end{verbatim}
981
982
983 \subsection{Operating with arrays}
984 Arrays support all regular arithmetic operators, and the numpy library
985 also contains a complete collection of basic mathematical functions that
986 operate on arrays. It is important to remember that in general, all
987 operations with arrays are applied \emph{element-wise}, i.e., are
988 applied to all the elements of the array at the same time. Consider for
989 example:
990
991 \begin{codecell}
992 \begin{codeinput}
993 \begin{lstlisting}
994 arr1 = np.arange(4)
995 arr2 = np.arange(10, 14)
996 print arr1, '+', arr2, '=', arr1+arr2
997 \end{lstlisting}
998 \end{codeinput}
999 \begin{codeoutput}
1000 \begin{verbatim}
1001 [0 1 2 3] + [10 11 12 13] = [10 12 14 16]
1002 \end{verbatim}
1003 \end{codeoutput}
1004 \end{codecell}
1005 Importantly, you must remember that even the multiplication operator is
1006 by default applied element-wise, it is \emph{not} the matrix
1007 multiplication from linear algebra (as is the case in Matlab, for
1008 example):
1009
1010 \begin{codecell}
1011 \begin{codeinput}
1012 \begin{lstlisting}
1013 print arr1, '*', arr2, '=', arr1*arr2
1014 \end{lstlisting}
1015 \end{codeinput}
1016 \begin{codeoutput}
1017 \begin{verbatim}
1018 [0 1 2 3] * [10 11 12 13] = [ 0 11 24 39]
1019 \end{verbatim}
1020 \end{codeoutput}
1021 \end{codecell}
1022 While this means that in principle arrays must always match in their
1023 dimensionality in order for an operation to be valid, numpy will
1024 \emph{broadcast} dimensions when possible. For example, suppose that you
1025 want to add the number 1.5 to \texttt{arr1}; the following would be a
1026 valid way to do it:
1027
1028 \begin{codecell}
1029 \begin{codeinput}
1030 \begin{lstlisting}
1031 arr1 + 1.5*np.ones(4)
1032 \end{lstlisting}
1033 \end{codeinput}
1034 \begin{codeoutput}
1035 \begin{verbatim}
1036 array([ 1.5, 2.5, 3.5, 4.5])
1037 \end{verbatim}
1038 \end{codeoutput}
1039 \end{codecell}
1040 But thanks to numpy's broadcasting rules, the following is equally
1041 valid:
1042
1043 \begin{codecell}
1044 \begin{codeinput}
1045 \begin{lstlisting}
1046 arr1 + 1.5
1047 \end{lstlisting}
1048 \end{codeinput}
1049 \begin{codeoutput}
1050 \begin{verbatim}
1051 array([ 1.5, 2.5, 3.5, 4.5])
1052 \end{verbatim}
1053 \end{codeoutput}
1054 \end{codecell}
1055 In this case, numpy looked at both operands and saw that the first
1056 (\texttt{arr1}) was a one-dimensional array of length 4 and the second
1057 was a scalar, considered a zero-dimensional object. The broadcasting
1058 rules allow numpy to:
1059
1060 \begin{itemize}
1061 \item
1062 \emph{create} new dimensions of length 1 (since this doesn't change
1063 the size of the array)
1064 \item
1065 `stretch' a dimension of length 1 that needs to be matched to a
1066 dimension of a different size.
1067 \end{itemize}
1068 So in the above example, the scalar 1.5 is effectively:
1069
1070 \begin{itemize}
1071 \item
1072 first `promoted' to a 1-dimensional array of length 1
1073 \item
1074 then, this array is `stretched' to length 4 to match the dimension of
1075 \texttt{arr1}.
1076 \end{itemize}
1077 After these two operations are complete, the addition can proceed as now
1078 both operands are one-dimensional arrays of length 4.
1079
1080 This broadcasting behavior is in practice enormously powerful,
1081 especially because when numpy broadcasts to create new dimensions or to
1082 `stretch' existing ones, it doesn't actually replicate the data. In the
1083 example above the operation is carried \emph{as if} the 1.5 was a 1-d
1084 array with 1.5 in all of its entries, but no actual array was ever
1085 created. This can save lots of memory in cases when the arrays in
1086 question are large and can have significant performance implications.
1087
1088 The general rule is: when operating on two arrays, NumPy compares their
1089 shapes element-wise. It starts with the trailing dimensions, and works
1090 its way forward, creating dimensions of length 1 as needed. Two
1091 dimensions are considered compatible when
1092
1093 \begin{itemize}
1094 \item
1095 they are equal to begin with, or
1096 \item
1097 one of them is 1; in this case numpy will do the `stretching' to make
1098 them equal.
1099 \end{itemize}
1100 If these conditions are not met, a
1101 \texttt{ValueError: frames are not aligned} exception is thrown,
1102 indicating that the arrays have incompatible shapes. The size of the
1103 resulting array is the maximum size along each dimension of the input
1104 arrays.
1105
1106 This shows how the broadcasting rules work in several dimensions:
1107
1108 \begin{codecell}
1109 \begin{codeinput}
1110 \begin{lstlisting}
1111 b = np.array([2, 3, 4, 5])
1112 print arr, '\n\n+', b , '\n----------------\n', arr + b
1113 \end{lstlisting}
1114 \end{codeinput}
1115 \begin{codeoutput}
1116 \begin{verbatim}
1117 [[0 1 2 3]
1118 [4 5 6 7]]
1119
1120 + [2 3 4 5]
1121 ----------------
1122 [[ 2 4 6 8]
1123 [ 6 8 10 12]]
1124 \end{verbatim}
1125 \end{codeoutput}
1126 \end{codecell}
1127 Now, how could you use broadcasting to say add \texttt{{[}4, 6{]}} along
1128 the rows to \texttt{arr} above? Simply performing the direct addition
1129 will produce the error we previously mentioned:
1130
1131 \begin{codecell}
1132 \begin{codeinput}
1133 \begin{lstlisting}
1134 c = np.array([4, 6])
1135 arr + c
1136 \end{lstlisting}
1137 \end{codeinput}
1138 \begin{codeoutput}
1139 \begin{traceback}
1140 \begin{verbatim}
1141 ---------------------------------------------------------------------------
1142 ValueError Traceback (most recent call last)
1143 /home/fperez/teach/book-math-labtool/<ipython-input-45-62aa20ac1980> in <module>()
1144 1 c = np.array([4, 6])
1145 ----> 2 arr + c
1146
1147 ValueError: operands could not be broadcast together with shapes (2,4) (2)
1148 \end{verbatim}
1149 \end{traceback}
1150 \end{codeoutput}
1151 \end{codecell}
1152 According to the rules above, the array \texttt{c} would need to have a
1153 \emph{trailing} dimension of 1 for the broadcasting to work. It turns
1154 out that numpy allows you to `inject' new dimensions anywhere into an
1155 array on the fly, by indexing it with the special object
1156 \texttt{np.newaxis}:
1157
1158 \begin{codecell}
1159 \begin{codeinput}
1160 \begin{lstlisting}
1161 (c[:, np.newaxis]).shape
1162 \end{lstlisting}
1163 \end{codeinput}
1164 \begin{codeoutput}
1165 \begin{verbatim}
1166 (2, 1)
1167 \end{verbatim}
1168 \end{codeoutput}
1169 \end{codecell}
1170 This is exactly what we need, and indeed it works:
1171
1172 \begin{codecell}
1173 \begin{codeinput}
1174 \begin{lstlisting}
1175 arr + c[:, np.newaxis]
1176 \end{lstlisting}
1177 \end{codeinput}
1178 \begin{codeoutput}
1179 \begin{verbatim}
1180 array([[ 4, 5, 6, 7],
1181 [10, 11, 12, 13]])
1182 \end{verbatim}
1183 \end{codeoutput}
1184 \end{codecell}
1185 For the full broadcasting rules, please see the official Numpy docs,
1186 which describe them in detail and with more complex examples.
1187
1188 As we mentioned before, Numpy ships with a full complement of
1189 mathematical functions that work on entire arrays, including logarithms,
1190 exponentials, trigonometric and hyperbolic trigonometric functions, etc.
1191 Furthermore, scipy ships a rich special function library in the
1192 \texttt{scipy.special} module that includes Bessel, Airy, Fresnel,
1193 Laguerre and other classical special functions. For example, sampling
1194 the sine function at 100 points between $0$ and $2\pi$ is as simple as:
1195
1196 \begin{codecell}
1197 \begin{codeinput}
1198 \begin{lstlisting}
1199 x = np.linspace(0, 2*np.pi, 100)
1200 y = np.sin(x)
1201 \end{lstlisting}
1202 \end{codeinput}
1203 \end{codecell}
1204 \subsection{Linear algebra in numpy}
1205 Numpy ships with a basic linear algebra library, and all arrays have a
1206 \texttt{dot} method whose behavior is that of the scalar dot product
1207 when its arguments are vectors (one-dimensional arrays) and the
1208 traditional matrix multiplication when one or both of its arguments are
1209 two-dimensional arrays:
1210
1211 \begin{codecell}
1212 \begin{codeinput}
1213 \begin{lstlisting}
1214 v1 = np.array([2, 3, 4])
1215 v2 = np.array([1, 0, 1])
1216 print v1, '.', v2, '=', v1.dot(v2)
1217 \end{lstlisting}
1218 \end{codeinput}
1219 \begin{codeoutput}
1220 \begin{verbatim}
1221 [2 3 4] . [1 0 1] = 6
1222 \end{verbatim}
1223 \end{codeoutput}
1224 \end{codecell}
1225 Here is a regular matrix-vector multiplication, note that the array
1226 \texttt{v1} should be viewed as a \emph{column} vector in traditional
1227 linear algebra notation; numpy makes no distinction between row and
1228 column vectors and simply verifies that the dimensions match the
1229 required rules of matrix multiplication, in this case we have a
1230 $2 \times 3$ matrix multiplied by a 3-vector, which produces a 2-vector:
1231
1232 \begin{codecell}
1233 \begin{codeinput}
1234 \begin{lstlisting}
1235 A = np.arange(6).reshape(2, 3)
1236 print A, 'x', v1, '=', A.dot(v1)
1237 \end{lstlisting}
1238 \end{codeinput}
1239 \begin{codeoutput}
1240 \begin{verbatim}
1241 [[0 1 2]
1242 [3 4 5]] x [2 3 4] = [11 38]
1243 \end{verbatim}
1244 \end{codeoutput}
1245 \end{codecell}
1246 For matrix-matrix multiplication, the same dimension-matching rules must
1247 be satisfied, e.g.~consider the difference between $A \times A^T$:
1248
1249 \begin{codecell}
1250 \begin{codeinput}
1251 \begin{lstlisting}
1252 print A.dot(A.T)
1253 \end{lstlisting}
1254 \end{codeinput}
1255 \begin{codeoutput}
1256 \begin{verbatim}
1257 [[ 5 14]
1258 [14 50]]
1259 \end{verbatim}
1260 \end{codeoutput}
1261 \end{codecell}
1262 and $A^T \times A$:
1263
1264 \begin{codecell}
1265 \begin{codeinput}
1266 \begin{lstlisting}
1267 print A.T.dot(A)
1268 \end{lstlisting}
1269 \end{codeinput}
1270 \begin{codeoutput}
1271 \begin{verbatim}
1272 [[ 9 12 15]
1273 [12 17 22]
1274 [15 22 29]]
1275 \end{verbatim}
1276 \end{codeoutput}
1277 \end{codecell}
1278 Furthermore, the \texttt{numpy.linalg} module includes additional
1279 functionality such as determinants, matrix norms, Cholesky, eigenvalue
1280 and singular value decompositions, etc. For even more linear algebra
1281 tools, \texttt{scipy.linalg} contains the majority of the tools in the
1282 classic LAPACK libraries as well as functions to operate on sparse
1283 matrices. We refer the reader to the Numpy and Scipy documentations for
1284 additional details on these.
1285
1286 \subsection{Reading and writing arrays to disk}
1287 Numpy lets you read and write arrays into files in a number of ways. In
1288 order to use these tools well, it is critical to understand the
1289 difference between a \emph{text} and a \emph{binary} file containing
1290 numerical data. In a text file, the number $\pi$ could be written as
1291 ``3.141592653589793'', for example: a string of digits that a human can
1292 read, with in this case 15 decimal digits. In contrast, that same number
1293 written to a binary file would be encoded as 8 characters (bytes) that
1294 are not readable by a human but which contain the exact same data that
1295 the variable \texttt{pi} had in the computer's memory.
1296
1297 The tradeoffs between the two modes are thus:
1298
1299 \begin{itemize}
1300 \item
1301 Text mode: occupies more space, precision can be lost (if not all
1302 digits are written to disk), but is readable and editable by hand with
1303 a text editor. Can \emph{only} be used for one- and two-dimensional
1304 arrays.
1305 \item
1306 Binary mode: compact and exact representation of the data in memory,
1307 can't be read or edited by hand. Arrays of any size and dimensionality
1308 can be saved and read without loss of information.
1309 \end{itemize}
1310 First, let's see how to read and write arrays in text mode. The
1311 \texttt{np.savetxt} function saves an array to a text file, with options
1312 to control the precision, separators and even adding a header:
1313
1314 \begin{codecell}
1315 \begin{codeinput}
1316 \begin{lstlisting}
1317 arr = np.arange(10).reshape(2, 5)
1318 np.savetxt('test.out', arr, fmt='%.2e', header="My dataset")
1319 !cat test.out
1320 \end{lstlisting}
1321 \end{codeinput}
1322 \begin{codeoutput}
1323 \begin{verbatim}
1324 # My dataset
1325 0.00e+00 1.00e+00 2.00e+00 3.00e+00 4.00e+00
1326 5.00e+00 6.00e+00 7.00e+00 8.00e+00 9.00e+00
1327 \end{verbatim}
1328 \end{codeoutput}
1329 \end{codecell}
1330 And this same type of file can then be read with the matching
1331 \texttt{np.loadtxt} function:
1332
1333 \begin{codecell}
1334 \begin{codeinput}
1335 \begin{lstlisting}
1336 arr2 = np.loadtxt('test.out')
1337 print arr2
1338 \end{lstlisting}
1339 \end{codeinput}
1340 \begin{codeoutput}
1341 \begin{verbatim}
1342 [[ 0. 1. 2. 3. 4.]
1343 [ 5. 6. 7. 8. 9.]]
1344 \end{verbatim}
1345 \end{codeoutput}
1346 \end{codecell}
1347 For binary data, Numpy provides the \texttt{np.save} and
1348 \texttt{np.savez} routines. The first saves a single array to a file
1349 with \texttt{.npy} extension, while the latter can be used to save a
1350 \emph{group} of arrays into a single file with \texttt{.npz} extension.
1351 The files created with these routines can then be read with the
1352 \texttt{np.load} function.
1353
1354 Let us first see how to use the simpler \texttt{np.save} function to
1355 save a single array:
1356
1357 \begin{codecell}
1358 \begin{codeinput}
1359 \begin{lstlisting}
1360 np.save('test.npy', arr2)
1361 # Now we read this back
1362 arr2n = np.load('test.npy')
1363 # Let's see if any element is non-zero in the difference.
1364 # A value of True would be a problem.
1365 print 'Any differences?', np.any(arr2-arr2n)
1366 \end{lstlisting}
1367 \end{codeinput}
1368 \begin{codeoutput}
1369 \begin{verbatim}
1370 Any differences? False
1371 \end{verbatim}
1372 \end{codeoutput}
1373 \end{codecell}
1374 Now let us see how the \texttt{np.savez} function works. You give it a
1375 filename and either a sequence of arrays or a set of keywords. In the
1376 first mode, the function will auotmatically name the saved arrays in the
1377 archive as \texttt{arr\_0}, \texttt{arr\_1}, etc:
1378
1379 \begin{codecell}
1380 \begin{codeinput}
1381 \begin{lstlisting}
1382 np.savez('test.npz', arr, arr2)
1383 arrays = np.load('test.npz')
1384 arrays.files
1385 \end{lstlisting}
1386 \end{codeinput}
1387 \begin{codeoutput}
1388 \begin{verbatim}
1389 ['arr_1', 'arr_0']
1390 \end{verbatim}
1391 \end{codeoutput}
1392 \end{codecell}
1393 Alternatively, we can explicitly choose how to name the arrays we save:
1394
1395 \begin{codecell}
1396 \begin{codeinput}
1397 \begin{lstlisting}
1398 np.savez('test.npz', array1=arr, array2=arr2)
1399 arrays = np.load('test.npz')
1400 arrays.files
1401 \end{lstlisting}
1402 \end{codeinput}
1403 \begin{codeoutput}
1404 \begin{verbatim}
1405 ['array2', 'array1']
1406 \end{verbatim}
1407 \end{codeoutput}
1408 \end{codecell}
1409 The object returned by \texttt{np.load} from an \texttt{.npz} file works
1410 like a dictionary, though you can also access its constituent files by
1411 attribute using its special \texttt{.f} field; this is best illustrated
1412 with an example with the \texttt{arrays} object from above:
1413
1414 \begin{codecell}
1415 \begin{codeinput}
1416 \begin{lstlisting}
1417 print 'First row of first array:', arrays['array1'][0]
1418 # This is an equivalent way to get the same field
1419 print 'First row of first array:', arrays.f.array1[0]
1420 \end{lstlisting}
1421 \end{codeinput}
1422 \begin{codeoutput}
1423 \begin{verbatim}
1424 First row of first array: [0 1 2 3 4]
1425 First row of first array: [0 1 2 3 4]
1426 \end{verbatim}
1427 \end{codeoutput}
1428 \end{codecell}
1429 This \texttt{.npz} format is a very convenient way to package compactly
1430 and without loss of information, into a single file, a group of related
1431 arrays that pertain to a specific problem. At some point, however, the
1432 complexity of your dataset may be such that the optimal approach is to
1433 use one of the standard formats in scientific data processing that have
1434 been designed to handle complex datasets, such as NetCDF or HDF5.
1435
1436 Fortunately, there are tools for manipulating these formats in Python,
1437 and for storing data in other ways such as databases. A complete
1438 discussion of the possibilities is beyond the scope of this discussion,
1439 but of particular interest for scientific users we at least mention the
1440 following:
1441
1442 \begin{itemize}
1443 \item
1444 The \texttt{scipy.io} module contains routines to read and write
1445 Matlab files in \texttt{.mat} format and files in the NetCDF format
1446 that is widely used in certain scientific disciplines.
1447 \item
1448 For manipulating files in the HDF5 format, there are two excellent
1449 options in Python: The PyTables project offers a high-level, object
1450 oriented approach to manipulating HDF5 datasets, while the h5py
1451 project offers a more direct mapping to the standard HDF5 library
1452 interface. Both are excellent tools; if you need to work with HDF5
1453 datasets you should read some of their documentation and examples and
1454 decide which approach is a better match for your needs.
1455 \end{itemize}
1456
1457 \section{High quality data visualization with Matplotlib}
1458 The \href{http://matplotlib.sf.net}{matplotlib} library is a powerful
1459 tool capable of producing complex publication-quality figures with fine
1460 layout control in two and three dimensions; here we will only provide a
1461 minimal self-contained introduction to its usage that covers the
1462 functionality needed for the rest of the book. We encourage the reader
1463 to read the tutorials included with the matplotlib documentation as well
1464 as to browse its extensive gallery of examples that include source code.
1465
1466 Just as we typically use the shorthand \texttt{np} for Numpy, we will
1467 use \texttt{plt} for the \texttt{matplotlib.pyplot} module where the
1468 easy-to-use plotting functions reside (the library contains a rich
1469 object-oriented architecture that we don't have the space to discuss
1470 here):
1471
1472 \begin{codecell}
1473 \begin{codeinput}
1474 \begin{lstlisting}
1475 import matplotlib.pyplot as plt
1476 \end{lstlisting}
1477 \end{codeinput}
1478 \end{codecell}
1479 The most frequently used function is simply called \texttt{plot}, here
1480 is how you can make a simple plot of $\sin(x)$ for $x \in [0, 2\pi]$
1481 with labels and a grid (we use the semicolon in the last line to
1482 suppress the display of some information that is unnecessary right now):
1483
1484 \begin{codecell}
1485 \begin{codeinput}
1486 \begin{lstlisting}
1487 x = np.linspace(0, 2*np.pi)
1488 y = np.sin(x)
1489 plt.plot(x,y, label='sin(x)')
1490 plt.legend()
1491 plt.grid()
1492 plt.title('Harmonic')
1493 plt.xlabel('x')
1494 plt.ylabel('y');
1495 \end{lstlisting}
1496 \end{codeinput}
1497 \begin{codeoutput}
1498 \begin{center}
1499 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_01.pdf}
1500 \par
1501 \end{center}
1502 \end{codeoutput}
1503 \end{codecell}
1504 You can control the style, color and other properties of the markers,
1505 for example:
1506
1507 \begin{codecell}
1508 \begin{codeinput}
1509 \begin{lstlisting}
1510 plt.plot(x, y, linewidth=2);
1511 \end{lstlisting}
1512 \end{codeinput}
1513 \begin{codeoutput}
1514 \begin{center}
1515 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_02.pdf}
1516 \par
1517 \end{center}
1518 \end{codeoutput}
1519 \end{codecell}
1520 \begin{codecell}
1521 \begin{codeinput}
1522 \begin{lstlisting}
1523 plt.plot(x, y, 'o', markersize=5, color='r');
1524 \end{lstlisting}
1525 \end{codeinput}
1526 \begin{codeoutput}
1527 \begin{center}
1528 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_03.pdf}
1529 \par
1530 \end{center}
1531 \end{codeoutput}
1532 \end{codecell}
1533 We will now see how to create a few other common plot types, such as a
1534 simple error plot:
1535
1536 \begin{codecell}
1537 \begin{codeinput}
1538 \begin{lstlisting}
1539 # example data
1540 x = np.arange(0.1, 4, 0.5)
1541 y = np.exp(-x)
1542
1543 # example variable error bar values
1544 yerr = 0.1 + 0.2*np.sqrt(x)
1545 xerr = 0.1 + yerr
1546
1547 # First illustrate basic pyplot interface, using defaults where possible.
1548 plt.figure()
1549 plt.errorbar(x, y, xerr=0.2, yerr=0.4)
1550 plt.title("Simplest errorbars, 0.2 in x, 0.4 in y");
1551 \end{lstlisting}
1552 \end{codeinput}
1553 \begin{codeoutput}
1554 \begin{center}
1555 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_04.pdf}
1556 \par
1557 \end{center}
1558 \end{codeoutput}
1559 \end{codecell}
1560 A simple log plot
1561
1562 \begin{codecell}
1563 \begin{codeinput}
1564 \begin{lstlisting}
1565 x = np.linspace(-5, 5)
1566 y = np.exp(-x**2)
1567 plt.semilogy(x, y);
1568 \end{lstlisting}
1569 \end{codeinput}
1570 \begin{codeoutput}
1571 \begin{center}
1572 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_05.pdf}
1573 \par
1574 \end{center}
1575 \end{codeoutput}
1576 \end{codecell}
1577 A histogram annotated with text inside the plot, using the \texttt{text}
1578 function:
1579
1580 \begin{codecell}
1581 \begin{codeinput}
1582 \begin{lstlisting}
1583 mu, sigma = 100, 15
1584 x = mu + sigma * np.random.randn(10000)
1585
1586 # the histogram of the data
1587 n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
1588
1589 plt.xlabel('Smarts')
1590 plt.ylabel('Probability')
1591 plt.title('Histogram of IQ')
1592 # This will put a text fragment at the position given:
1593 plt.text(55, .027, r'$\mu=100,\ \sigma=15$', fontsize=14)
1594 plt.axis([40, 160, 0, 0.03])
1595 plt.grid(True)
1596 \end{lstlisting}
1597 \end{codeinput}
1598 \begin{codeoutput}
1599 \begin{center}
1600 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_06.pdf}
1601 \par
1602 \end{center}
1603 \end{codeoutput}
1604 \end{codecell}
1605 \subsection{Image display}
1606 The \texttt{imshow} command can display single or multi-channel images.
1607 A simple array of random numbers, plotted in grayscale:
1608
1609 \begin{codecell}
1610 \begin{codeinput}
1611 \begin{lstlisting}
1612 from matplotlib import cm
1613 plt.imshow(np.random.rand(5, 10), cmap=cm.gray, interpolation='nearest');
1614 \end{lstlisting}
1615 \end{codeinput}
1616 \begin{codeoutput}
1617 \begin{center}
1618 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_07.pdf}
1619 \par
1620 \end{center}
1621 \end{codeoutput}
1622 \end{codecell}
1623 A real photograph is a multichannel image, \texttt{imshow} interprets it
1624 correctly:
1625
1626 \begin{codecell}
1627 \begin{codeinput}
1628 \begin{lstlisting}
1629 img = plt.imread('stinkbug.png')
1630 print 'Dimensions of the array img:', img.shape
1631 plt.imshow(img);
1632 \end{lstlisting}
1633 \end{codeinput}
1634 \begin{codeoutput}
1635 \begin{verbatim}
1636 Dimensions of the array img: (375, 500, 3)
1637 \end{verbatim}
1638 \begin{center}
1639 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_08.pdf}
1640 \par
1641 \end{center}
1642 \end{codeoutput}
1643 \end{codecell}
1644 \subsection{Simple 3d plotting with matplotlib}
1645 Note that you must execute at least once in your session:
1646
1647 \begin{codecell}
1648 \begin{codeinput}
1649 \begin{lstlisting}
1650 from mpl_toolkits.mplot3d import Axes3D
1651 \end{lstlisting}
1652 \end{codeinput}
1653 \end{codecell}
1654 One this has been done, you can create 3d axes with the
1655 \texttt{projection='3d'} keyword to \texttt{add\_subplot}:
1656
1657 \begin{verbatim}
1658 fig = plt.figure()
1659 fig.add_subplot(<other arguments here>, projection='3d')
1660 \end{verbatim}
1661
1662
1663 A simple surface plot:
1664
1665 \begin{codecell}
1666 \begin{codeinput}
1667 \begin{lstlisting}
1668 from mpl_toolkits.mplot3d.axes3d import Axes3D
1669 from matplotlib import cm
1670
1671 fig = plt.figure()
1672 ax = fig.add_subplot(1, 1, 1, projection='3d')
1673 X = np.arange(-5, 5, 0.25)
1674 Y = np.arange(-5, 5, 0.25)
1675 X, Y = np.meshgrid(X, Y)
1676 R = np.sqrt(X**2 + Y**2)
1677 Z = np.sin(R)
1678 surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
1679 linewidth=0, antialiased=False)
1680 ax.set_zlim3d(-1.01, 1.01);
1681 \end{lstlisting}
1682 \end{codeinput}
1683 \begin{codeoutput}
1684 \begin{center}
1685 \includegraphics[width=6in]{/Users/bussonniermatthias/nbconvert/tests/ipynbref/IntroNumPy.orig_files/IntroNumPy.orig_fig_09.pdf}
1686 \par
1687 \end{center}
1688 \end{codeoutput}
1689 \end{codecell}
1690 \section{IPython: a powerful interactive environment}
1691 A key component of the everyday workflow of most scientific computing
1692 environments is a good interactive environment, that is, a system in
1693 which you can execute small amounts of code and view the results
1694 immediately, combining both printing out data and opening graphical
1695 visualizations. All modern systems for scientific computing, commercial
1696 and open source, include such functionality.
1697
1698 Out of the box, Python also offers a simple interactive shell with very
1699 limited capabilities. But just like the scientific community built Numpy
1700 to provide arrays suited for scientific work (since Pytyhon's lists
1701 aren't optimal for this task), it has also developed an interactive
1702 environment much more sophisticated than the built-in one. The
1703 \href{http://ipython.org}{IPython project} offers a set of tools to make
1704 productive use of the Python language, all the while working
1705 interactively and with immedate feedback on your results. The basic
1706 tools that IPython provides are:
1707
1708 \begin{enumerate}[1.]
1709 \item
1710 A powerful terminal shell, with many features designed to increase the
1711 fluidity and productivity of everyday scientific workflows, including:
1712
1713 \begin{itemize}
1714 \item
1715 rich introspection of all objects and variables including easy
1716 access to the source code of any function
1717 \item
1718 powerful and extensible tab completion of variables and filenames,
1719 \item
1720 tight integration with matplotlib, supporting interactive figures
1721 that don't block the terminal,
1722 \item
1723 direct access to the filesystem and underlying operating system,
1724 \item
1725 an extensible system for shell-like commands called `magics' that
1726 reduce the work needed to perform many common tasks,
1727 \item
1728 tools for easily running, timing, profiling and debugging your
1729 codes,
1730 \item
1731 syntax highlighted error messages with much more detail than the
1732 default Python ones,
1733 \item
1734 logging and access to all previous history of inputs, including
1735 across sessions
1736 \end{itemize}
1737 \item
1738 A Qt console that provides the look and feel of a terminal, but adds
1739 support for inline figures, graphical calltips, a persistent session
1740 that can survive crashes (even segfaults) of the kernel process, and
1741 more.
1742 \item
1743 A web-based notebook that can execute code and also contain rich text
1744 and figures, mathematical equations and arbitrary HTML. This notebook
1745 presents a document-like view with cells where code is executed but
1746 that can be edited in-place, reordered, mixed with explanatory text
1747 and figures, etc.
1748 \item
1749 A high-performance, low-latency system for parallel computing that
1750 supports the control of a cluster of IPython engines communicating
1751 over a network, with optimizations that minimize unnecessary copying
1752 of large objects (especially numpy arrays).
1753 \end{enumerate}
1754 We will now discuss the highlights of the tools 1-3 above so that you
1755 can make them an effective part of your workflow. The topic of parallel
1756 computing is beyond the scope of this document, but we encourage you to
1757 read the extensive
1758 \href{http://ipython.org/ipython-doc/rel-0.12.1/parallel/index.html}{documentation}
1759 and \href{http://minrk.github.com/scipy-tutorial-2011/}{tutorials} on
1760 this available on the IPython website.
1761
1762 \subsection{The IPython terminal}
1763 You can start IPython at the terminal simply by typing:
1764
1765 \begin{verbatim}
1766 $ ipython
1767 \end{verbatim}
1768 which will provide you some basic information about how to get started
1769 and will then open a prompt labeled \texttt{In {[}1{]}:} for you to
1770 start typing. Here we type $2^{64}$ and Python computes the result for
1771 us in exact arithmetic, returning it as \texttt{Out{[}1{]}}:
1772
1773 \begin{verbatim}
1774 $ ipython
1775 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
1776 Type "copyright", "credits" or "license" for more information.
1777
1778 IPython 0.13.dev -- An enhanced Interactive Python.
1779 ? -> Introduction and overview of IPython's features.
1780 %quickref -> Quick reference.
1781 help -> Python's own help system.
1782 object? -> Details about 'object', use 'object??' for extra details.
1783
1784 In [1]: 2**64
1785 Out[1]: 18446744073709551616L
1786 \end{verbatim}
1787 The first thing you should know about IPython is that all your inputs
1788 and outputs are saved. There are two variables named \texttt{In} and
1789 \texttt{Out} which are filled as you work with your results.
1790 Furthermore, all outputs are also saved to auto-created variables of the
1791 form \texttt{\_NN} where \texttt{NN} is the prompt number, and inputs to
1792 \texttt{\_iNN}. This allows you to recover quickly the result of a prior
1793 computation by referring to its number even if you forgot to store it as
1794 a variable. For example, later on in the above session you can do:
1795
1796 \begin{verbatim}
1797 In [6]: print _1
1798 18446744073709551616
1799 \end{verbatim}
1800
1801
1802 We strongly recommend that you take a few minutes to read at least the
1803 basic introduction provided by the \texttt{?} command, and keep in mind
1804 that the \texttt{\%quickref} command at all times can be used as a quick
1805 reference ``cheat sheet'' of the most frequently used features of
1806 IPython.
1807
1808 At the IPython prompt, any valid Python code that you type will be
1809 executed similarly to the default Python shell (though often with more
1810 informative feedback). But since IPython is a \emph{superset} of the
1811 default Python shell; let's have a brief look at some of its additional
1812 functionality.
1813
1814 \textbf{Object introspection}
1815
1816 A simple \texttt{?} command provides a general introduction to IPython,
1817 but as indicated in the banner above, you can use the \texttt{?} syntax
1818 to ask for details about any object. For example, if we type
1819 \texttt{\_1?}, IPython will print the following details about this
1820 variable:
1821
1822 \begin{verbatim}
1823 In [14]: _1?
1824 Type: long
1825 Base Class: <type 'long'>
1826 String Form:18446744073709551616
1827 Namespace: Interactive
1828 Docstring:
1829 long(x[, base]) -> integer
1830
1831 Convert a string or number to a long integer, if possible. A floating
1832
1833 [etc... snipped for brevity]
1834 \end{verbatim}
1835 If you add a second \texttt{?} and for any oobject \texttt{x} type
1836 \texttt{x??}, IPython will try to provide an even more detailed analsysi
1837 of the object, including its syntax-highlighted source code when it can
1838 be found. It's possible that \texttt{x??} returns the same information
1839 as \texttt{x?}, but in many cases \texttt{x??} will indeed provide
1840 additional details.
1841
1842 Finally, the \texttt{?} syntax is also useful to search
1843 \emph{namespaces} with wildcards. Suppose you are wondering if there is
1844 any function in Numpy that may do text-related things; with
1845 \texttt{np.*txt*?}, IPython will print all the names in the \texttt{np}
1846 namespace (our Numpy shorthand) that have `txt' anywhere in their name:
1847
1848 \begin{verbatim}
1849 In [17]: np.*txt*?
1850 np.genfromtxt
1851 np.loadtxt
1852 np.mafromtxt
1853 np.ndfromtxt
1854 np.recfromtxt
1855 np.savetxt
1856 \end{verbatim}
1857
1858
1859 \textbf{Tab completion}
1860
1861 IPython makes the tab key work extra hard for you as a way to rapidly
1862 inspect objects and libraries. Whenever you have typed something at the
1863 prompt, by hitting the \texttt{\textless{}tab\textgreater{}} key IPython
1864 will try to complete the rest of the line. For this, IPython will
1865 analyze the text you had so far and try to search for Python data or
1866 files that may match the context you have already provided.
1867
1868 For example, if you type \texttt{np.load} and hit the key, you'll see:
1869
1870 \begin{verbatim}
1871 In [21]: np.load<TAB HERE>
1872 np.load np.loads np.loadtxt
1873 \end{verbatim}
1874 so you can quickly find all the load-related functionality in numpy. Tab
1875 completion works even for function arguments, for example consider this
1876 function definition:
1877
1878 \begin{verbatim}
1879 In [20]: def f(x, frobinate=False):
1880 ....: if frobinate:
1881 ....: return x**2
1882 ....:
1883 \end{verbatim}
1884 If you now use the \texttt{\textless{}tab\textgreater{}} key after
1885 having typed `fro' you'll get all valid Python completions, but those
1886 marked with \texttt{=} at the end are known to be keywords of your
1887 function:
1888
1889 \begin{verbatim}
1890 In [21]: f(2, fro<TAB HERE>
1891 frobinate= frombuffer fromfunction frompyfunc fromstring
1892 from fromfile fromiter fromregex frozenset
1893 \end{verbatim}
1894 at this point you can add the \texttt{b} letter and hit
1895 \texttt{\textless{}tab\textgreater{}} once more, and IPython will finish
1896 the line for you:
1897
1898 \begin{verbatim}
1899 In [21]: f(2, frobinate=
1900 \end{verbatim}
1901 As a beginner, simply get into the habit of using
1902 \texttt{\textless{}tab\textgreater{}} after most objects; it should
1903 quickly become second nature as you will see how helps keep a fluid
1904 workflow and discover useful information. Later on you can also
1905 customize this behavior by writing your own completion code, if you so
1906 desire.
1907
1908 \textbf{Matplotlib integration}
1909
1910 One of the most useful features of IPython for scientists is its tight
1911 integration with matplotlib: at the terminal IPython lets you open
1912 matplotlib figures without blocking your typing (which is what happens
1913 if you try to do the same thing at the default Python shell), and in the
1914 Qt console and notebook you can even view your figures embedded in your
1915 workspace next to the code that created them.
1916
1917 The matplotlib support can be either activated when you start IPython by
1918 passing the \texttt{-{}-pylab} flag, or at any point later in your
1919 session by using the \texttt{\%pylab} command. If you start IPython with
1920 \texttt{-{}-pylab}, you'll see something like this (note the extra
1921 message about pylab):
1922
1923 \begin{verbatim}
1924 $ ipython --pylab
1925 Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
1926 Type "copyright", "credits" or "license" for more information.
1927
1928 IPython 0.13.dev -- An enhanced Interactive Python.
1929 ? -> Introduction and overview of IPython's features.
1930 %quickref -> Quick reference.
1931 help -> Python's own help system.
1932 object? -> Details about 'object', use 'object??' for extra details.
1933
1934 Welcome to pylab, a matplotlib-based Python environment [backend: Qt4Agg].
1935 For more information, type 'help(pylab)'.
1936
1937 In [1]:
1938 \end{verbatim}
1939 Furthermore, IPython will import \texttt{numpy} with the \texttt{np}
1940 shorthand, \texttt{matplotlib.pyplot} as \texttt{plt}, and it will also
1941 load all of the numpy and pyplot top-level names so that you can
1942 directly type something like:
1943
1944 \begin{verbatim}
1945 In [1]: x = linspace(0, 2*pi, 200)
1946
1947 In [2]: plot(x, sin(x))
1948 Out[2]: [<matplotlib.lines.Line2D at 0x9e7c16c>]
1949 \end{verbatim}
1950 instead of having to prefix each call with its full signature (as we
1951 have been doing in the examples thus far):
1952
1953 \begin{verbatim}
1954 In [3]: x = np.linspace(0, 2*np.pi, 200)
1955
1956 In [4]: plt.plot(x, np.sin(x))
1957 Out[4]: [<matplotlib.lines.Line2D at 0x9e900ac>]
1958 \end{verbatim}
1959 This shorthand notation can be a huge time-saver when working
1960 interactively (it's a few characters but you are likely to type them
1961 hundreds of times in a session). But we should note that as you develop
1962 persistent scripts and notebooks meant for reuse, it's best to get in
1963 the habit of using the longer notation (known as \emph{fully qualified
1964 names} as it's clearer where things come from and it makes for more
1965 robust, readable and maintainable code in the long run).
1966
1967 \textbf{Access to the operating system and files}
1968
1969 In IPython, you can type \texttt{ls} to see your files or \texttt{cd} to
1970 change directories, just like you would at a regular system prompt:
1971
1972 \begin{verbatim}
1973 In [2]: cd tests
1974 /home/fperez/ipython/nbconvert/tests
1975
1976 In [3]: ls test.*
1977 test.aux test.html test.ipynb test.log test.out test.pdf test.rst test.tex
1978 \end{verbatim}
1979 Furthermore, if you use the \texttt{!} at the beginning of a line, any
1980 commands you pass afterwards go directly to the operating system:
1981
1982 \begin{verbatim}
1983 In [4]: !echo "Hello IPython"
1984 Hello IPython
1985 \end{verbatim}
1986 IPython offers a useful twist in this feature: it will substitute in the
1987 command the value of any \emph{Python} variable you may have if you
1988 prepend it with a \texttt{\$} sign:
1989
1990 \begin{verbatim}
1991 In [5]: message = 'IPython interpolates from Python to the shell'
1992
1993 In [6]: !echo $message
1994 IPython interpolates from Python to the shell
1995 \end{verbatim}
1996 This feature can be extremely useful, as it lets you combine the power
1997 and clarity of Python for complex logic with the immediacy and
1998 familiarity of many shell commands. Additionally, if you start the line
1999 with \emph{two} \texttt{\$\$} signs, the output of the command will be
2000 automatically captured as a list of lines, e.g.:
2001
2002 \begin{verbatim}
2003 In [10]: !!ls test.*
2004 Out[10]:
2005 ['test.aux',
2006 'test.html',
2007 'test.ipynb',
2008 'test.log',
2009 'test.out',
2010 'test.pdf',
2011 'test.rst',
2012 'test.tex']
2013 \end{verbatim}
2014 As explained above, you can now use this as the variable \texttt{\_10}.
2015 If you directly want to capture the output of a system command to a
2016 Python variable, you can use the syntax \texttt{=!}:
2017
2018 \begin{verbatim}
2019 In [11]: testfiles =! ls test.*
2020
2021 In [12]: print testfiles
2022 ['test.aux', 'test.html', 'test.ipynb', 'test.log', 'test.out', 'test.pdf', 'test.rst', 'test.tex']
2023 \end{verbatim}
2024 Finally, the special \texttt{\%alias} command lets you define names that
2025 are shorthands for system commands, so that you can type them without
2026 having to prefix them via \texttt{!} explicitly (for example,
2027 \texttt{ls} is an alias that has been predefined for you at startup).
2028
2029 \textbf{Magic commands}
2030
2031 IPython has a system for special commands, called `magics', that let you
2032 control IPython itself and perform many common tasks with a more
2033 shell-like syntax: it uses spaces for delimiting arguments, flags can be
2034 set with dashes and all arguments are treated as strings, so no
2035 additional quoting is required. This kind of syntax is invalid in the
2036 Python language but very convenient for interactive typing (less
2037 parentheses, commans and quoting everywhere); IPython distinguishes the
2038 two by detecting lines that start with the \texttt{\%} character.
2039
2040 You can learn more about the magic system by simply typing
2041 \texttt{\%magic} at the prompt, which will give you a short description
2042 plus the documentation on \emph{all} available magics. If you want to
2043 see only a listing of existing magics, you can use \texttt{\%lsmagic}:
2044
2045 \begin{verbatim}
2046 In [4]: lsmagic
2047 Available magic functions:
2048 %alias %autocall %autoindent %automagic %bookmark %c %cd %colors %config %cpaste
2049 %debug %dhist %dirs %doctest_mode %ds %ed %edit %env %gui %hist %history
2050 %install_default_config %install_ext %install_profiles %load_ext %loadpy %logoff %logon
2051 %logstart %logstate %logstop %lsmagic %macro %magic %notebook %page %paste %pastebin
2052 %pd %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pop %popd %pprint %precision %profile
2053 %prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall %rehashx
2054 %reload_ext %rep %rerun %reset %reset_selective %run %save %sc %stop %store %sx %tb
2055 %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
2056
2057 Automagic is ON, % prefix NOT needed for magic functions.
2058 \end{verbatim}
2059 Note how the example above omitted the eplicit \texttt{\%} marker and
2060 simply uses \texttt{lsmagic}. As long as the `automagic' feature is on
2061 (which it is by default), you can omit the \texttt{\%} marker as long as
2062 there is no ambiguity with a Python variable of the same name.
2063
2064 \textbf{Running your code}
2065
2066 While it's easy to type a few lines of code in IPython, for any
2067 long-lived work you should keep your codes in Python scripts (or in
2068 IPython notebooks, see below). Consider that you have a script, in this
2069 case trivially simple for the sake of brevity, named \texttt{simple.py}:
2070
2071 \begin{verbatim}
2072 In [12]: !cat simple.py
2073 import numpy as np
2074
2075 x = np.random.normal(size=100)
2076
2077 print 'First elment of x:', x[0]
2078 \end{verbatim}
2079 The typical workflow with IPython is to use the \texttt{\%run} magic to
2080 execute your script (you can omit the .py extension if you want). When
2081 you run it, the script will execute just as if it had been run at the
2082 system prompt with \texttt{python simple.py} (though since modules don't
2083 get re-executed on new imports by Python, all system initialization is
2084 essentially free, which can have a significant run time impact in some
2085 cases):
2086
2087 \begin{verbatim}
2088 In [13]: run simple
2089 First elment of x: -1.55872256289
2090 \end{verbatim}
2091 Once it completes, all variables defined in it become available for you
2092 to use interactively:
2093
2094 \begin{verbatim}
2095 In [14]: x.shape
2096 Out[14]: (100,)
2097 \end{verbatim}
2098 This allows you to plot data, try out ideas, etc, in a
2099 \texttt{\%run}/interact/edit cycle that can be very productive. As you
2100 start understanding your problem better you can refine your script
2101 further, incrementally improving it based on the work you do at the
2102 IPython prompt. At any point you can use the \texttt{\%hist} magic to
2103 print out your history without prompts, so that you can copy useful
2104 fragments back into the script.
2105
2106 By default, \texttt{\%run} executes scripts in a completely empty
2107 namespace, to better mimic how they would execute at the system prompt
2108 with plain Python. But if you use the \texttt{-i} flag, the script will
2109 also see your interactively defined variables. This lets you edit in a
2110 script larger amounts of code that still behave as if you had typed them
2111 at the IPython prompt.
2112
2113 You can also get a summary of the time taken by your script with the
2114 \texttt{-t} flag; consider a different script \texttt{randsvd.py} that
2115 takes a bit longer to run:
2116
2117 \begin{verbatim}
2118 In [21]: run -t randsvd.py
2119
2120 IPython CPU timings (estimated):
2121 User : 0.38 s.
2122 System : 0.04 s.
2123 Wall time: 0.34 s.
2124 \end{verbatim}
2125 \texttt{User} is the time spent by the computer executing your code,
2126 while \texttt{System} is the time the operating system had to work on
2127 your behalf, doing things like memory allocation that are needed by your
2128 code but that you didn't explicitly program and that happen inside the
2129 kernel. The \texttt{Wall time} is the time on a `clock on the wall'
2130 between the start and end of your program.
2131
2132 If \texttt{Wall \textgreater{} User+System}, your code is most likely
2133 waiting idle for certain periods. That could be waiting for data to
2134 arrive from a remote source or perhaps because the operating system has
2135 to swap large amounts of virtual memory. If you know that your code
2136 doesn't explicitly wait for remote data to arrive, you should
2137 investigate further to identify possible ways of improving the
2138 performance profile.
2139
2140 If you only want to time how long a single statement takes, you don't
2141 need to put it into a script as you can use the \texttt{\%timeit} magic,
2142 which uses Python's \texttt{timeit} module to very carefully measure
2143 timig data; \texttt{timeit} can measure even short statements that
2144 execute extremely fast:
2145
2146 \begin{verbatim}
2147 In [27]: %timeit a=1
2148 10000000 loops, best of 3: 23 ns per loop
2149 \end{verbatim}
2150 and for code that runs longer, it automatically adjusts so the overall
2151 measurement doesn't take too long:
2152
2153 \begin{verbatim}
2154 In [28]: %timeit np.linalg.svd(x)
2155 1 loops, best of 3: 310 ms per loop
2156 \end{verbatim}
2157 The \texttt{\%run} magic still has more options for debugging and
2158 profiling data; you should read its documentation for many useful
2159 details (as always, just type \texttt{\%run?}).
2160
2161 \subsection{The graphical Qt console}
2162 If you type at the system prompt (see the IPython website for
2163 installation details, as this requires some additional libraries):
2164
2165 \begin{verbatim}
2166 $ ipython qtconsole
2167 \end{verbatim}
2168 instead of opening in a terminal as before, IPython will start a
2169 graphical console that at first sight appears just like a terminal, but
2170 which is in fact much more capable than a text-only terminal. This is a
2171 specialized terminal designed for interactive scientific work, and it
2172 supports full multi-line editing with color highlighting and graphical
2173 calltips for functions, it can keep multiple IPython sessions open
2174 simultaneously in tabs, and when scripts run it can display the figures
2175 inline directly in the work area.
2176
2177 % This cell is for the pdflatex output only
2178 \begin{figure}[htbp]
2179 \centering
2180 \includegraphics[width=3in]{ipython_qtconsole2.png}
2181 \caption{The IPython Qt console: a lightweight terminal for scientific exploration, with code, results and graphics in a soingle environment.}
2182 \end{figure}
2183 The Qt console accepts the same \texttt{-{}-pylab} startup flags as the
2184 terminal, but you can additionally supply the value
2185 \texttt{-{}-pylab inline}, which enables the support for inline graphics
2186 shown in the figure. This is ideal for keeping all the code and figures
2187 in the same session, given that the console can save the output of your
2188 entire session to HTML or PDF.
2189
2190 Since the Qt console makes it far more convenient than the terminal to
2191 edit blocks of code with multiple lines, in this environment it's worth
2192 knowing about the \texttt{\%loadpy} magic function. \texttt{\%loadpy}
2193 takes a path to a local file or remote URL, fetches its contents, and
2194 puts it in the work area for you to further edit and execute. It can be
2195 an extremely fast and convenient way of loading code from local disk or
2196 remote examples from sites such as the
2197 \href{http://matplotlib.sourceforge.net/gallery.html}{Matplotlib
2198 gallery}.
2199
2200 Other than its enhanced capabilities for code and graphics, all of the
2201 features of IPython we've explained before remain functional in this
2202 graphical console.
2203
2204 \subsection{The IPython Notebook}
2205 The third way to interact with IPython, in addition to the terminal and
2206 graphical Qt console, is a powerful web interface called the ``IPython
2207 Notebook''. If you run at the system console (you can omit the
2208 \texttt{pylab} flags if you don't need plotting support):
2209
2210 \begin{verbatim}
2211 $ ipython notebook --pylab inline
2212 \end{verbatim}
2213 IPython will start a process that runs a web server in your local
2214 machine and to which a web browser can connect. The Notebook is a
2215 workspace that lets you execute code in blocks called `cells' and
2216 displays any results and figures, but which can also contain arbitrary
2217 text (including LaTeX-formatted mathematical expressions) and any rich
2218 media that a modern web browser is capable of displaying.
2219
2220 % This cell is for the pdflatex output only
2221 \begin{figure}[htbp]
2222 \centering
2223 \includegraphics[width=3in]{ipython-notebook-specgram-2.png}
2224 \caption{The IPython Notebook: text, equations, code, results, graphics and other multimedia in an open format for scientific exploration and collaboration}
2225 \end{figure}
2226 In fact, this document was written as a Notebook, and only exported to
2227 LaTeX for printing. Inside of each cell, all the features of IPython
2228 that we have discussed before remain functional, since ultimately this
2229 web client is communicating with the same IPython code that runs in the
2230 terminal. But this interface is a much more rich and powerful
2231 environment for maintaining long-term ``live and executable'' scientific
2232 documents.
2233
2234 Notebook environments have existed in commercial systems like
2235 Mathematica(TM) and Maple(TM) for a long time; in the open source world
2236 the \href{http://sagemath.org}{Sage} project blazed this particular
2237 trail starting in 2006, and now we bring all the features that have made
2238 IPython such a widely used tool to a Notebook model.
2239
2240 Since the Notebook runs as a web application, it is possible to
2241 configure it for remote access, letting you run your computations on a
2242 persistent server close to your data, which you can then access remotely
2243 from any browser-equipped computer. We encourage you to read the
2244 extensive documentation provided by the IPython project for details on
2245 how to do this and many more features of the notebook.
2246
2247 Finally, as we said earlier, IPython also has a high-level and easy to
2248 use set of libraries for parallel computing, that let you control
2249 (interactively if desired) not just one IPython but an entire cluster of
2250 `IPython engines'. Unfortunately a detailed discussion of these tools is
2251 beyond the scope of this text, but should you need to parallelize your
2252 analysis codes, a quick read of the tutorials and examples provided at
2253 the IPython site may prove fruitful.
2254
2255 \end{document}
@@ -0,0 +1,39 b''
1 import os
2 import io
3 import nose.tools as nt
4 from nbconvert import *
5 from nose.tools import nottest
6
7
8 def test_evens():
9 ######
10 # for now, we don't need to really run inkscape to extract svg
11 # from file, on unix, for test, we monkeypathc it to 'true'
12 # which does not fail as doing anything.
13 ####
14 ConverterLaTeX.inkscape = 'true'
15
16 converters = [(ConverterRST,'rst'),
17 (ConverterMarkdown,'md'),
18 (ConverterLaTeX,'tex'),
19 (ConverterPy,'py'),
20 (ConverterHTML,'html')
21 ]
22 reflist = [
23 'tests/ipynbref/IntroNumPy.orig'
24 ]
25 for root in reflist :
26 for conv,ext in converters:
27 yield test_conversion, conv,root+'.ipynb',root+'.'+ext
28
29 @nottest
30 def test_conversion(ConverterClass, ipynb, ref_file):
31
32 converter = ConverterClass(ipynb)
33 converter.read()
34 cv =converter.convert()
35 with io.open(ref_file) as ref:
36 value = ref.read()
37 nt.assert_equal(cv.split('\n'),value.split('\n'))
38
39
@@ -29,6 +29,7 b' class ConverterLaTeX(Converter):'
29
29
30 (or set the equivalent flag at startup or in your configuration profile).
30 (or set the equivalent flag at startup or in your configuration profile).
31 """
31 """
32 inkscape = inkscape
32 extension = 'tex'
33 extension = 'tex'
33 documentclass = 'article'
34 documentclass = 'article'
34 documentclass_options = '11pt,english'
35 documentclass_options = '11pt,english'
@@ -129,7 +130,7 b' class ConverterLaTeX(Converter):'
129 def _svg_lines(self, img_file):
130 def _svg_lines(self, img_file):
130 base_file = os.path.splitext(img_file)[0]
131 base_file = os.path.splitext(img_file)[0]
131 pdf_file = base_file + '.pdf'
132 pdf_file = base_file + '.pdf'
132 subprocess.check_call([ inkscape, '--export-pdf=%s' % pdf_file,
133 subprocess.check_call([ self.inkscape, '--export-pdf=%s' % pdf_file,
133 img_file])
134 img_file])
134 return self._img_lines(pdf_file)
135 return self._img_lines(pdf_file)
135
136
General Comments 0
You need to be logged in to leave comments. Login now