Repository: Textualize/textual

Issue:
Can't scroll vertically programmatically within a `DataTable`
Run the app below and press <kbd>E</kbd>. It should scroll to the end.

Run the app below and press <kbd>J</kbd> and then <kbd>S</kbd>. It should scroll to the row with the number `100`.

Looking at `Widget.scroll_to_region`, the method concludes that the cell in question is already visible (`delta_x` and `delta_y` from `Region.get_scroll_to_visible` are both 0).

```py
from textual.app import App, ComposeResult
from textual.coordinate import Coordinate
from textual.widgets import DataTable


class TableApp(App):
    def compose(self) -> ComposeResult:
        yield DataTable()

    def on_mount(self) -> None:
        table = self.query_one(DataTable)
        table.cursor_type = "cell"
        table.zebra_stripes = True
        table.add_column("n")
        table.add_rows([(n,) for n in range(300)])

    def key_c(self):
        table = self.query_one(DataTable)
        table.cursor_type = next(cursors)

    def key_j(self):
        table = self.query_one(DataTable)
        table.cursor_coordinate = Coordinate(100, 0)

    def key_s(self):
        self.query_one(DataTable)._scroll_cursor_into_view()

    def key_e(self):
        self.query_one(DataTable).action_scroll_end()


app = TableApp()
if __name__ == "__main__":
    app.run()
```

Discussion:

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 36eaf4dce..798fb051d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
 
 ### Fixed
 
+- Fixed crash when creating a `DirectoryTree` starting anywhere other than `.`
+
+### Changed
+
+- The DataTable cursor is now scrolled into view when the cursor coordinate is changed programmatically https://github.com/Textualize/textual/issues/2459
+
+## [0.23.0] - 2023-05-03
+
+### Fixed
+
 - Fixed `outline` top and bottom not handling alpha - https://github.com/Textualize/textual/issues/2371
 - Fixed `!important` not applying to `align` https://github.com/Textualize/textual/issues/2420
 - Fixed `!important` not applying to `border` https://github.com/Textualize/textual/issues/2420
@@ -21,11 +31,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
 ### Changed
 
 - Setting attributes with a `compute_` method will now raise an `AttributeError` https://github.com/Textualize/textual/issues/2383
+- Unknown psuedo-selectors will now raise a tokenizer error (previously they were silently ignored) https://github.com/Textualize/textual/pull/2445
+- Breaking change: `DirectoryTree.FileSelected.path` is now always a `Path` https://github.com/Textualize/textual/issues/2448
+- Breaking change: `Directorytree.load_directory` renamed to `Directorytree._load_directory` https://github.com/Textualize/textual/issues/2448
 - Unknown pseudo-selectors will now raise a tokenizer error (previously they were silently ignored) https://github.com/Textualize/textual/pull/2445
 
 ### Added
 
 - Watch methods can now optionally be private https://github.com/Textualize/textual/issues/2382
+- Added `DirectoryTree.path` reactive attribute https://github.com/Textualize/textual/issues/2448
+- Added `DirectoryTree.FileSelected.node` https://github.com/Textualize/textual/pull/2463
+- Added `DirectoryTree.reload` https://github.com/Textualize/textual/issues/2448
 - Added textual.on decorator https://github.com/Textualize/textual/issues/2398
 
 ## [0.22.3] - 2023-04-29
@@ -867,6 +883,7 @@ https://textual.textualize.io/blog/2022/11/08/version-040/#version-040
 - New handler system for messages that doesn't require inheritance
 - Improved traceback handling
 
+[0.23.0]: https://github.com/Textualize/textual/compare/v0.22.3...v0.23.0
 [0.22.3]: https://github.com/Textualize/textual/compare/v0.22.2...v0.22.3
 [0.22.2]: https://github.com/Textualize/textual/compare/v0.22.1...v0.22.2
 [0.22.1]: https://github.com/Textualize/textual/compare/v0.22.0...v0.22.1
diff --git a/FAQ.md b/FAQ.md
index ffb91b1d7..72879e9d2 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -11,11 +11,12 @@
 - [Why do some key combinations never make it to my app?](#why-do-some-key-combinations-never-make-it-to-my-app)
 - [Why doesn't Textual look good on macOS?](#why-doesn't-textual-look-good-on-macos)
 - [Why doesn't Textual support ANSI themes?](#why-doesn't-textual-support-ansi-themes)
+- [Why doesn't the `DataTable` scroll programmatically?](#why-doesn't-the-`datatable`-scroll-programmatically)
 
 <a name="does-textual-support-images"></a>
 ## Does Textual support images?
 
-Textual doesn't have built in support for images yet, but it is on the [Roadmap](https://textual.textualize.io/roadmap/).
+Textual doesn't have built-in support for images yet, but it is on the [Roadmap](https://textual.textualize.io/roadmap/).
 
 See also the [rich-pixels](https://github.com/darrenburns/rich-pixels) project for a Rich renderable for images that works with Textual.
 
@@ -231,6 +232,48 @@ Textual has a design system which guarantees apps will be readable on all platfo
 
 There is currently a light and dark version of the design system, but more are planned. It will also be possible for users to customize the source colors on a per-app or per-system basis. This means that in the future you will be able to modify the core colors to blend in with your chosen terminal theme.
 
+<a name="why-doesn't-the-`datatable`-scroll-programmatically"></a>
+## Why doesn't the `DataTable` scroll programmatically?
+
+If it looks like the scrolling in your `DataTable` is broken, it may be because your `DataTable` does not have its height set, which means it is using the default value of `height: auto`.
+In turn, this means that the `DataTable` itself does not have a scrollbar and, hence, it cannot scroll.
+
+If it looks like your `DataTable` has scrollbars, those might belong to the container(s) of the `DataTable`, which in turn makes it look like the scrolling of the `DataTable` is broken.
+
+To see the difference, try running the app below with and without the comment in the attribute `TableApp.CSS`.
+Press <kbd>E</kbd> to scroll the `DataTable` to the end.
+If the `CSS` is commented out, the `DataTable` does not have a scrollbar and, therefore, there is nothing to scroll.
+
+<details>
+<summary>Example app.</summary>
+
+```py
+from textual.app import App, ComposeResult
+from textual.widgets import DataTable
+
+
+class TableApp(App):
+    # CSS = "DataTable { height: 100% }"
+
+    def compose(self) -> ComposeResult:
+        yield DataTable()
+
+    def on_mount(self) -> None:
+        table = self.query_one(DataTable)
+        table.add_column("n")
+        table.add_rows([(n,) for n in range(300)])
+
+    def key_e(self) -> None:
+        self.query_one(DataTable).action_scroll_end()
+
+
+app = TableApp()
+if __name__ == "__main__":
+    app.run()
+```
+
+</details>
+
 <hr>
 
 Generated by [FAQtory](https://github.com/willmcgugan/faqtory)
diff --git a/docs/blog/images/frogmouth.svg b/docs/blog/images/frogmouth.svg
new file mode 100644
index 000000000..685064d26
--- /dev/null
+++ b/docs/blog/images/frogmouth.svg
@@ -0,0 +1,268 @@
+<svg class="rich-terminal" viewBox="0 0 2092 1172.3999999999999" xmlns="http://www.w3.org/2000/svg">
+    <!-- Generated with Rich https://www.textualize.io -->
+    <style>
+
+    @font-face {
+        font-family: "Fira Code";
+        src: local("FiraCode-Regular"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+        font-style: normal;
+        font-weight: 400;
+    }
+    @font-face {
+        font-family: "Fira Code";
+        src: local("FiraCode-Bold"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+        font-style: bold;
+        font-weight: 700;
+    }
+
+    .terminal-3557953295-matrix {
+        font-family: Fira Code, monospace;
+        font-size: 20px;
+        line-height: 24.4px;
+        font-variant-east-asian: full-width;
+    }
+
+    .terminal-3557953295-title {
+        font-size: 18px;
+        font-weight: bold;
+        font-family: arial;
+    }
+
+    .terminal-3557953295-r1 { fill: #00ff00 }
+.terminal-3557953295-r2 { fill: #c5c8c6 }
+.terminal-3557953295-r3 { fill: #e2e2e2 }
+.terminal-3557953295-r4 { fill: #e1e1e1 }
+.terminal-3557953295-r5 { fill: #e2e3e3;font-weight: bold }
+.terminal-3557953295-r6 { fill: #777a7e }
+.terminal-3557953295-r7 { fill: #121212 }
+.terminal-3557953295-r8 { fill: #383c42 }
+.terminal-3557953295-r9 { fill: #0178d4 }
+.terminal-3557953295-r10 { fill: #24292f }
+.terminal-3557953295-r11 { fill: #e2e3e3 }
+.terminal-3557953295-r12 { fill: #96989b }
+.terminal-3557953295-r13 { fill: #008139 }
+.terminal-3557953295-r14 { fill: #939393;font-weight: bold }
+.terminal-3557953295-r15 { fill: #d2d2d2 }
+.terminal-3557953295-r16 { fill: #89ddff;font-style: italic; }
+.terminal-3557953295-r17 { fill: #eeffff }
+.terminal-3557953295-r18 { fill: #ffcb6b }
+.terminal-3557953295-r19 { fill: #89ddff }
+.terminal-3557953295-r20 { fill: #8dabc2;font-weight: bold }
+.terminal-3557953295-r21 { fill: #e0e8ee;font-weight: bold }
+.terminal-3557953295-r22 { fill: #bb80b3 }
+.terminal-3557953295-r23 { fill: #999c9f;text-decoration: underline; }
+.terminal-3557953295-r24 { fill: #e3e4e5;text-decoration: underline; }
+.terminal-3557953295-r25 { fill: #41565f;font-style: italic; }
+.terminal-3557953295-r26 { fill: #82aaff }
+.terminal-3557953295-r27 { fill: #c3e88d }
+.terminal-3557953295-r28 { fill: #23568b }
+.terminal-3557953295-r29 { fill: #546e7a;font-style: italic; }
+.terminal-3557953295-r30 { fill: #14191f }
+.terminal-3557953295-r31 { fill: #dde8f3;font-weight: bold }
+.terminal-3557953295-r32 { fill: #ddedf9 }
+    </style>
+
+    <defs>
+    <clipPath id="terminal-3557953295-clip-terminal">
+      <rect x="0" y="0" width="2073.0" height="1121.3999999999999" />
+    </clipPath>
+    <clipPath id="terminal-3557953295-line-0">
+    <rect x="0" y="1.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-1">
+    <rect x="0" y="25.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-2">
+    <rect x="0" y="50.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-3">
+    <rect x="0" y="74.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-4">
+    <rect x="0" y="99.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-5">
+    <rect x="0" y="123.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-6">
+    <rect x="0" y="147.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-7">
+    <rect x="0" y="172.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-8">
+    <rect x="0" y="196.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-9">
+    <rect x="0" y="221.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-10">
+    <rect x="0" y="245.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-11">
+    <rect x="0" y="269.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-12">
+    <rect x="0" y="294.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-13">
+    <rect x="0" y="318.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-14">
+    <rect x="0" y="343.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-15">
+    <rect x="0" y="367.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-16">
+    <rect x="0" y="391.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-17">
+    <rect x="0" y="416.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-18">
+    <rect x="0" y="440.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-19">
+    <rect x="0" y="465.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-20">
+    <rect x="0" y="489.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-21">
+    <rect x="0" y="513.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-22">
+    <rect x="0" y="538.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-23">
+    <rect x="0" y="562.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-24">
+    <rect x="0" y="587.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-25">
+    <rect x="0" y="611.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-26">
+    <rect x="0" y="635.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-27">
+    <rect x="0" y="660.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-28">
+    <rect x="0" y="684.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-29">
+    <rect x="0" y="709.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-30">
+    <rect x="0" y="733.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-31">
+    <rect x="0" y="757.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-32">
+    <rect x="0" y="782.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-33">
+    <rect x="0" y="806.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-34">
+    <rect x="0" y="831.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-35">
+    <rect x="0" y="855.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-36">
+    <rect x="0" y="879.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-37">
+    <rect x="0" y="904.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-38">
+    <rect x="0" y="928.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-39">
+    <rect x="0" y="953.1" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-40">
+    <rect x="0" y="977.5" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-41">
+    <rect x="0" y="1001.9" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-42">
+    <rect x="0" y="1026.3" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-43">
+    <rect x="0" y="1050.7" width="2074" height="24.65"/>
+            </clipPath>
+<clipPath id="terminal-3557953295-line-44">
+    <rect x="0" y="1075.1" width="2074" height="24.65"/>
+            </clipPath>
+    </defs>
+
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="2090" height="1170.4" rx="8"/><text class="terminal-3557953295-title" fill="#c5c8c6" text-anchor="middle" x="1045" y="27">Frogmouth</text>
+            <g transform="translate(26,22)">
+            <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
+            <circle cx="22" cy="0" r="7" fill="#febc2e"/>
+            <circle cx="44" cy="0" r="7" fill="#28c840"/>
+            </g>
+
+    <g transform="translate(9, 41)" clip-path="url(#terminal-3557953295-clip-terminal)">
+    <rect fill="#262626" x="0" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="12.2" y="1.5" width="2049.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="2061.8" y="1.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="0" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="12.2" y="25.9" width="512.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="524.6" y="25.9" width="1537.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="2061.8" y="25.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="0" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="12.2" y="50.3" width="2049.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#262626" x="2061.8" y="50.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="74.7" width="512.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="74.7" width="1512.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="74.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="99.1" width="134.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="146.4" y="99.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="244" y="99.1" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="390.4" y="99.1" width="122" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="99.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="99.1" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="99.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="99.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="99.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="123.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="36.6" y="123.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="134.2" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="146.4" y="123.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="170.8" y="123.5" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="231.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="244" y="123.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="268.4" y="123.5" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="378.2" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="390.4" y="123.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="414.8" y="123.5" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="500.2" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="123.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="610" y="123.5" width="1366.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1976.4" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="123.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="123.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="123.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="36.6" y="147.9" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="134.2" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="146.4" y="147.9" width="378.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="147.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="597.8" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="610" y="147.9" width="1366.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="1976.4" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="147.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="147.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="147.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="172.3" width="512.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="172.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="597.8" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="610" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="622.2" y="172.3" width="463.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="1085.8" y="172.3" width="414.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="1500.6" y="172.3" width="463.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="1964.2" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="1976.4" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="172.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="172.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="172.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="196.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="196.7" width="512.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="196.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="196.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="196.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="597.8" y="196.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="610" y="196.7" width="1366.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="1976.4" y="196.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="196.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="196.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="196.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="221.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="48.8" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="61" y="221.1" width="329.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="390.4" y="221.1" width="122" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="221.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="610" y="221.1" width="1366.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1976.4" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="221.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="221.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="221.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="245.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="73.2" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="85.4" y="245.5" width="353.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="439.2" y="245.5" width="73.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="245.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="245.5" width="231.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="829.6" y="245.5" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="866.2" y="245.5" width="207.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1073.6" y="245.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1171.2" y="245.5" width="219.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1390.8" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1403" y="245.5" width="402.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1805.6" y="245.5" width="183" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="245.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="245.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="245.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="269.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="269.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="269.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="73.2" y="269.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="85.4" y="269.9" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="269.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="269.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="269.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="269.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="269.9" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="269.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="269.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="269.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="294.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="294.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="294.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="73.2" y="294.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="85.4" y="294.3" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="294.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="294.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="294.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="294.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="294.3" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="294.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="294.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="294.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="318.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="73.2" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="85.4" y="318.7" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="318.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="318.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="318.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="671" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="683.2" y="318.7" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="768.6" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="780.8" y="318.7" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="817.4" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="829.6" y="318.7" width="73.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="902.8" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="318.7" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="951.6" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="963.8" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="976" y="318.7" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1134.6" y="318.7" width="829.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="318.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="318.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="318.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="318.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="343.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="73.2" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="85.4" y="343.1" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="343.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="343.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="343.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="671" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="683.2" y="343.1" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="768.6" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="780.8" y="343.1" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="866.2" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="878.4" y="343.1" width="73.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="951.6" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="963.8" y="343.1" width="73.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1037" y="343.1" width="927.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="343.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="343.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="343.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="343.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="367.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="367.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="367.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#125081" x="73.2" y="367.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#125081" x="85.4" y="367.5" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="367.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="367.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="367.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="367.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="367.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="367.5" width="1342" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="367.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="367.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="367.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="367.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="391.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="73.2" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="85.4" y="391.9" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="391.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="391.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="391.9" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="683.2" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="695.4" y="391.9" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="805.2" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="817.4" y="391.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="854" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="866.2" y="391.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="927.2" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="939.4" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="951.6" y="391.9" width="1012.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="391.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="391.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="391.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="391.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="416.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="416.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#2c3137" x="24.4" y="416.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#2c3137" x="73.2" y="416.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#2c3137" x="85.4" y="416.3" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="416.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="416.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="416.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="416.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="416.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="416.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="671" y="416.3" width="1293.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="416.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="416.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="416.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="416.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="440.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="73.2" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="85.4" y="440.7" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="440.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="440.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="440.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="671" y="440.7" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="707.6" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="719.8" y="440.7" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="817.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="829.6" y="440.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="878.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="890.6" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="902.8" y="440.7" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1000.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1012.6" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1024.8" y="440.7" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1061.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1073.6" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1085.8" y="440.7" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1146.8" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1159" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1171.2" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1183.4" y="440.7" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1281" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1293.2" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1305.4" y="440.7" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1342" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1354.2" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1366.4" y="440.7" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1427.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1439.6" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1451.8" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1464" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1476.2" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1488.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1500.6" y="440.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1549.4" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1561.6" y="440.7" width="402.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="440.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="440.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="440.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="440.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="465.1" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="465.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="465.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="465.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="719.8" y="465.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="768.6" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="780.8" y="465.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="878.4" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="890.6" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="902.8" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="465.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1012.6" y="465.1" width="951.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="465.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="465.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="465.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="465.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="489.5" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="489.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="489.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="489.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="719.8" y="489.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="768.6" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="780.8" y="489.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="878.4" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="890.6" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="902.8" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="489.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1012.6" y="489.5" width="951.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="489.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="489.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="489.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="489.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="513.9" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="513.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="513.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="513.9" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="719.8" y="513.9" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="780.8" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="793" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="805.2" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="817.4" y="513.9" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="927.2" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="939.4" y="513.9" width="1024.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="513.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="513.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="513.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="513.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="538.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="538.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="538.3" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="538.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="538.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="538.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="538.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="538.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="538.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="671" y="538.3" width="1293.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="538.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="538.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="538.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="538.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="562.7" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="562.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="562.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="562.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="671" y="562.7" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="707.6" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="719.8" y="562.7" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="805.2" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="817.4" y="562.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="866.2" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="878.4" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="890.6" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="902.8" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="927.2" y="562.7" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1085.8" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1098" y="562.7" width="866.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="562.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="562.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="562.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="562.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="587.1" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="587.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="587.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="587.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="719.8" y="587.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="780.8" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="793" y="587.1" width="73.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="866.2" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="878.4" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="890.6" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="902.8" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="587.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="963.8" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="976" y="587.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1073.6" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1085.8" y="587.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1110.2" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1122.4" y="587.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1171.2" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1183.4" y="587.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1281" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1293.2" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1305.4" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1317.6" y="587.1" width="646.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="587.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="587.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="587.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="587.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="611.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="611.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="611.5" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="611.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="611.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="611.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="611.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="611.5" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="611.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="611.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="611.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="635.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="635.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="635.9" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="635.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="635.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="635.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="635.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="635.9" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="635.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="635.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="635.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="660.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="660.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="660.3" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="660.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="660.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="660.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="660.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="660.3" width="817.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1415.2" y="660.3" width="573.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="660.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="660.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="660.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="684.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="684.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="684.7" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="684.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="684.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="684.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="684.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="684.7" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="684.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="684.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="684.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="709.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="709.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="709.1" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="709.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="709.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="709.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="709.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="709.1" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="709.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="2037.4" y="709.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="709.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="733.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="733.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="733.5" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="733.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="733.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="733.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="733.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="733.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="733.5" width="402.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1024.8" y="733.5" width="939.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="733.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="733.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="2037.4" y="733.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="733.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="757.9" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="757.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="757.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="757.9" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="732" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="744.2" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="756.4" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="768.6" y="757.9" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="805.2" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="817.4" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="829.6" y="757.9" width="1134.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="757.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="757.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="2037.4" y="757.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="757.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="782.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="782.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="782.3" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="782.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="782.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="782.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="782.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="782.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="782.3" width="1342" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="782.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="782.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="2037.4" y="782.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="782.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="806.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="806.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="806.7" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="806.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="806.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="806.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="806.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="806.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="806.7" width="427" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1049.2" y="806.7" width="915" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="806.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="806.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="2037.4" y="806.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="806.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="831.1" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="831.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="831.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="831.1" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="732" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="744.2" y="831.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="841.8" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="854" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="866.2" y="831.1" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="927.2" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="939.4" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="951.6" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="963.8" y="831.1" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1000.4" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1012.6" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1024.8" y="831.1" width="939.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="831.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="831.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="2037.4" y="831.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="831.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="855.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="855.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="855.5" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="855.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="855.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="855.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="855.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="855.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="855.5" width="1342" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="855.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="855.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="855.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="855.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="879.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="879.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="879.9" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="879.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="879.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="879.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="879.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="879.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="879.9" width="500.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1122.4" y="879.9" width="841.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="879.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="879.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="879.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="879.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="904.3" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="904.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="904.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="622.2" y="904.3" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="732" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="744.2" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="756.4" y="904.3" width="122" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="878.4" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="890.6" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="902.8" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="915" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="927.2" y="904.3" width="61" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="988.2" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1000.4" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1012.6" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1024.8" y="904.3" width="36.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1061.4" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1073.6" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1085.8" y="904.3" width="878.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="1964.2" y="904.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="904.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="904.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="904.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="928.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="928.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="928.7" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="928.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="928.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="928.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="928.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#263238" x="597.8" y="928.7" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="928.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="928.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="928.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="953.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="953.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="953.1" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="953.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="953.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="953.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="953.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="953.1" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="953.1" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="953.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="953.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="977.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="977.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="977.5" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="977.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="977.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="977.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="977.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="977.5" width="0" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="977.5" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="977.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="977.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="977.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="1001.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="1001.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="1001.9" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="1001.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="1001.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="1001.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="1001.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="1001.9" width="1390.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="1001.9" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="1001.9" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="1001.9" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="24.4" y="1026.3" width="488" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="1026.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="597.8" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="610" y="1026.3" width="1366.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1976.4" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="1026.3" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="1026.3" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="1026.3" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="24.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="36.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="48.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="61" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="73.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="85.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="97.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="109.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="122" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="134.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="146.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="158.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="170.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="183" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="195.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="207.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="219.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#23568b" x="231.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="244" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="256.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="268.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="280.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="292.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="305" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="317.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="329.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="341.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="353.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="366" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="378.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="390.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="402.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="414.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="427" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="439.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="451.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="463.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="475.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="488" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="500.2" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="512.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="1050.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="597.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="610" y="1050.7" width="1366.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#121212" x="1976.4" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="1988.6" y="1050.7" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#14191f" x="2037.4" y="1050.7" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="1050.7" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="0" y="1075.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="12.2" y="1075.1" width="512.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#24292f" x="524.6" y="1075.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="536.8" y="1075.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="549" y="1075.1" width="1512.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#1e1e1e" x="2061.8" y="1075.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0053aa" x="0" y="1099.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="48.8" y="1099.5" width="73.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0053aa" x="122" y="1099.5" width="48.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="170.8" y="1099.5" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#0053aa" x="256.2" y="1099.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="353.8" y="1099.5" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#0053aa" x="500.2" y="1099.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="597.8" y="1099.5" width="73.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#0178d4" x="671" y="1099.5" width="1403" height="24.65" shape-rendering="crispEdges"/>
+    <g class="terminal-3557953295-matrix">
+    <text class="terminal-3557953295-r2" x="2074" y="20" textLength="12.2" clip-path="url(#terminal-3557953295-line-0)">
+</text><text class="terminal-3557953295-r3" x="12.2" y="44.4" textLength="512.4" clip-path="url(#terminal-3557953295-line-1)">/Users/willmcgugan/projects/textual/FAQ.md</text><text class="terminal-3557953295-r2" x="2074" y="44.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-1)">
+</text><text class="terminal-3557953295-r2" x="2074" y="68.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-2)">
+</text><text class="terminal-3557953295-r2" x="2074" y="93.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-3)">
+</text><text class="terminal-3557953295-r2" x="2074" y="117.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-4)">
+</text><text class="terminal-3557953295-r5" x="36.6" y="142" textLength="97.6" clip-path="url(#terminal-3557953295-line-5)">Contents</text><text class="terminal-3557953295-r6" x="170.8" y="142" textLength="61" clip-path="url(#terminal-3557953295-line-5)">Local</text><text class="terminal-3557953295-r6" x="268.4" y="142" textLength="109.8" clip-path="url(#terminal-3557953295-line-5)">Bookmarks</text><text class="terminal-3557953295-r6" x="414.8" y="142" textLength="85.4" clip-path="url(#terminal-3557953295-line-5)">History</text><text class="terminal-3557953295-r7" x="597.8" y="142" textLength="12.2" clip-path="url(#terminal-3557953295-line-5)">▁</text><text class="terminal-3557953295-r7" x="610" y="142" textLength="1366.4" clip-path="url(#terminal-3557953295-line-5)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-3557953295-r7" x="1976.4" y="142" textLength="12.2" clip-path="url(#terminal-3557953295-line-5)">▁</text><text class="terminal-3557953295-r2" x="2074" y="142" textLength="12.2" clip-path="url(#terminal-3557953295-line-5)">
+</text><text class="terminal-3557953295-r8" x="12.2" y="166.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-6)">━</text><text class="terminal-3557953295-r8" x="24.4" y="166.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-6)">╸</text><text class="terminal-3557953295-r9" x="36.6" y="166.4" textLength="97.6" clip-path="url(#terminal-3557953295-line-6)">━━━━━━━━</text><text class="terminal-3557953295-r8" x="134.2" y="166.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-6)">╺</text><text class="terminal-3557953295-r8" x="146.4" y="166.4" textLength="378.2" clip-path="url(#terminal-3557953295-line-6)">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</text><text class="terminal-3557953295-r7" x="597.8" y="166.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-6)">▎</text><text class="terminal-3557953295-r10" x="1976.4" y="166.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-6)">▊</text><text class="terminal-3557953295-r2" x="2074" y="166.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-6)">
+</text><text class="terminal-3557953295-r7" x="597.8" y="190.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-7)">▎</text><text class="terminal-3557953295-r5" x="1085.8" y="190.8" textLength="414.8" clip-path="url(#terminal-3557953295-line-7)">How&#160;do&#160;I&#160;pass&#160;arguments&#160;to&#160;an&#160;app?</text><text class="terminal-3557953295-r10" x="1976.4" y="190.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-7)">▊</text><text class="terminal-3557953295-r2" x="2074" y="190.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-7)">
+</text><text class="terminal-3557953295-r9" x="0" y="215.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-8)">┏</text><text class="terminal-3557953295-r9" x="12.2" y="215.2" textLength="512.4" clip-path="url(#terminal-3557953295-line-8)">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</text><text class="terminal-3557953295-r9" x="524.6" y="215.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-8)">┓</text><text class="terminal-3557953295-r7" x="597.8" y="215.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-8)">▎</text><text class="terminal-3557953295-r10" x="1976.4" y="215.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-8)">▊</text><text class="terminal-3557953295-r2" x="2074" y="215.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-8)">
+</text><text class="terminal-3557953295-r9" x="0" y="239.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-9)">┃</text><text class="terminal-3557953295-r11" x="24.4" y="239.6" textLength="24.4" clip-path="url(#terminal-3557953295-line-9)">▼&#160;</text><text class="terminal-3557953295-r12" x="48.8" y="239.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-9)">Ⅰ</text><text class="terminal-3557953295-r11" x="61" y="239.6" textLength="329.4" clip-path="url(#terminal-3557953295-line-9)">&#160;Frequently&#160;Asked&#160;Questions</text><text class="terminal-3557953295-r9" x="524.6" y="239.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-9)">┃</text><text class="terminal-3557953295-r7" x="597.8" y="239.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-9)">▔</text><text class="terminal-3557953295-r7" x="610" y="239.6" textLength="1366.4" clip-path="url(#terminal-3557953295-line-9)">▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔</text><text class="terminal-3557953295-r7" x="1976.4" y="239.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-9)">▔</text><text class="terminal-3557953295-r2" x="2074" y="239.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-9)">
+</text><text class="terminal-3557953295-r9" x="0" y="264" textLength="12.2" clip-path="url(#terminal-3557953295-line-10)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="264" textLength="48.8" clip-path="url(#terminal-3557953295-line-10)">├──&#160;</text><text class="terminal-3557953295-r12" x="73.2" y="264" textLength="12.2" clip-path="url(#terminal-3557953295-line-10)">Ⅱ</text><text class="terminal-3557953295-r11" x="85.4" y="264" textLength="353.8" clip-path="url(#terminal-3557953295-line-10)">&#160;Does&#160;Textual&#160;support&#160;images?</text><text class="terminal-3557953295-r9" x="524.6" y="264" textLength="12.2" clip-path="url(#terminal-3557953295-line-10)">┃</text><text class="terminal-3557953295-r4" x="597.8" y="264" textLength="231.8" clip-path="url(#terminal-3557953295-line-10)">When&#160;creating&#160;your&#160;</text><text class="terminal-3557953295-r14" x="829.6" y="264" textLength="36.6" clip-path="url(#terminal-3557953295-line-10)">App</text><text class="terminal-3557953295-r4" x="866.2" y="264" textLength="207.4" clip-path="url(#terminal-3557953295-line-10)">&#160;class,&#160;override&#160;</text><text class="terminal-3557953295-r14" x="1073.6" y="264" textLength="97.6" clip-path="url(#terminal-3557953295-line-10)">__init__</text><text class="terminal-3557953295-r4" x="1171.2" y="264" textLength="219.6" clip-path="url(#terminal-3557953295-line-10)">&#160;as&#160;you&#160;would&#160;when</text><text class="terminal-3557953295-r4" x="1403" y="264" textLength="402.6" clip-path="url(#terminal-3557953295-line-10)">inheriting&#160;normally.&#160;For&#160;example:</text><text class="terminal-3557953295-r2" x="2074" y="264" textLength="12.2" clip-path="url(#terminal-3557953295-line-10)">
+</text><text class="terminal-3557953295-r9" x="0" y="288.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-11)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="288.4" textLength="48.8" clip-path="url(#terminal-3557953295-line-11)">├──&#160;</text><text class="terminal-3557953295-r12" x="73.2" y="288.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-11)">Ⅱ</text><text class="terminal-3557953295-r11" x="85.4" y="288.4" textLength="427" clip-path="url(#terminal-3557953295-line-11)">&#160;How&#160;can&#160;I&#160;fix&#160;ImportError&#160;cannot&#160;i</text><text class="terminal-3557953295-r9" x="524.6" y="288.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-11)">┃</text><text class="terminal-3557953295-r2" x="2074" y="288.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-11)">
+</text><text class="terminal-3557953295-r9" x="0" y="312.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-12)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="312.8" textLength="48.8" clip-path="url(#terminal-3557953295-line-12)">├──&#160;</text><text class="terminal-3557953295-r12" x="73.2" y="312.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-12)">Ⅱ</text><text class="terminal-3557953295-r11" x="85.4" y="312.8" textLength="427" clip-path="url(#terminal-3557953295-line-12)">&#160;How&#160;can&#160;I&#160;select&#160;and&#160;copy&#160;text&#160;in&#160;</text><text class="terminal-3557953295-r9" x="524.6" y="312.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-12)">┃</text><text class="terminal-3557953295-r2" x="2074" y="312.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-12)">
+</text><text class="terminal-3557953295-r9" x="0" y="337.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-13)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="337.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-13)">├──&#160;</text><text class="terminal-3557953295-r12" x="73.2" y="337.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-13)">Ⅱ</text><text class="terminal-3557953295-r11" x="85.4" y="337.2" textLength="427" clip-path="url(#terminal-3557953295-line-13)">&#160;How&#160;can&#160;I&#160;set&#160;a&#160;translucent&#160;app&#160;ba</text><text class="terminal-3557953295-r9" x="524.6" y="337.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-13)">┃</text><text class="terminal-3557953295-r16" x="622.2" y="337.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-13)">from</text><text class="terminal-3557953295-r18" x="683.2" y="337.2" textLength="85.4" clip-path="url(#terminal-3557953295-line-13)">textual</text><text class="terminal-3557953295-r18" x="768.6" y="337.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-13)">.</text><text class="terminal-3557953295-r18" x="780.8" y="337.2" textLength="36.6" clip-path="url(#terminal-3557953295-line-13)">app</text><text class="terminal-3557953295-r16" x="829.6" y="337.2" textLength="73.2" clip-path="url(#terminal-3557953295-line-13)">import</text><text class="terminal-3557953295-r17" x="915" y="337.2" textLength="36.6" clip-path="url(#terminal-3557953295-line-13)">App</text><text class="terminal-3557953295-r19" x="951.6" y="337.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-13)">,</text><text class="terminal-3557953295-r17" x="976" y="337.2" textLength="158.6" clip-path="url(#terminal-3557953295-line-13)">ComposeResult</text><text class="terminal-3557953295-r2" x="2074" y="337.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-13)">
+</text><text class="terminal-3557953295-r9" x="0" y="361.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-14)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="361.6" textLength="48.8" clip-path="url(#terminal-3557953295-line-14)">├──&#160;</text><text class="terminal-3557953295-r12" x="73.2" y="361.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-14)">Ⅱ</text><text class="terminal-3557953295-r11" x="85.4" y="361.6" textLength="427" clip-path="url(#terminal-3557953295-line-14)">&#160;How&#160;do&#160;I&#160;center&#160;a&#160;widget&#160;in&#160;a&#160;scre</text><text class="terminal-3557953295-r9" x="524.6" y="361.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-14)">┃</text><text class="terminal-3557953295-r16" x="622.2" y="361.6" textLength="48.8" clip-path="url(#terminal-3557953295-line-14)">from</text><text class="terminal-3557953295-r18" x="683.2" y="361.6" textLength="85.4" clip-path="url(#terminal-3557953295-line-14)">textual</text><text class="terminal-3557953295-r18" x="768.6" y="361.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-14)">.</text><text class="terminal-3557953295-r18" x="780.8" y="361.6" textLength="85.4" clip-path="url(#terminal-3557953295-line-14)">widgets</text><text class="terminal-3557953295-r16" x="878.4" y="361.6" textLength="73.2" clip-path="url(#terminal-3557953295-line-14)">import</text><text class="terminal-3557953295-r17" x="963.8" y="361.6" textLength="73.2" clip-path="url(#terminal-3557953295-line-14)">Static</text><text class="terminal-3557953295-r2" x="2074" y="361.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-14)">
+</text><text class="terminal-3557953295-r9" x="0" y="386" textLength="12.2" clip-path="url(#terminal-3557953295-line-15)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="386" textLength="48.8" clip-path="url(#terminal-3557953295-line-15)">├──&#160;</text><text class="terminal-3557953295-r20" x="73.2" y="386" textLength="12.2" clip-path="url(#terminal-3557953295-line-15)">Ⅱ</text><text class="terminal-3557953295-r21" x="85.4" y="386" textLength="427" clip-path="url(#terminal-3557953295-line-15)">&#160;How&#160;do&#160;I&#160;pass&#160;arguments&#160;to&#160;an&#160;app?</text><text class="terminal-3557953295-r9" x="524.6" y="386" textLength="12.2" clip-path="url(#terminal-3557953295-line-15)">┃</text><text class="terminal-3557953295-r2" x="2074" y="386" textLength="12.2" clip-path="url(#terminal-3557953295-line-15)">
+</text><text class="terminal-3557953295-r9" x="0" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="410.4" textLength="48.8" clip-path="url(#terminal-3557953295-line-16)">├──&#160;</text><text class="terminal-3557953295-r12" x="73.2" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">Ⅱ</text><text class="terminal-3557953295-r11" x="85.4" y="410.4" textLength="427" clip-path="url(#terminal-3557953295-line-16)">&#160;Why&#160;do&#160;some&#160;key&#160;combinations&#160;never</text><text class="terminal-3557953295-r9" x="524.6" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">┃</text><text class="terminal-3557953295-r22" x="622.2" y="410.4" textLength="61" clip-path="url(#terminal-3557953295-line-16)">class</text><text class="terminal-3557953295-r18" x="695.4" y="410.4" textLength="109.8" clip-path="url(#terminal-3557953295-line-16)">Greetings</text><text class="terminal-3557953295-r19" x="805.2" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">(</text><text class="terminal-3557953295-r17" x="817.4" y="410.4" textLength="36.6" clip-path="url(#terminal-3557953295-line-16)">App</text><text class="terminal-3557953295-r19" x="854" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">[</text><text class="terminal-3557953295-r19" x="866.2" y="410.4" textLength="48.8" clip-path="url(#terminal-3557953295-line-16)">None</text><text class="terminal-3557953295-r19" x="915" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">]</text><text class="terminal-3557953295-r19" x="927.2" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">)</text><text class="terminal-3557953295-r19" x="939.4" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">:</text><text class="terminal-3557953295-r2" x="2074" y="410.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-16)">
+</text><text class="terminal-3557953295-r9" x="0" y="434.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-17)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="434.8" textLength="48.8" clip-path="url(#terminal-3557953295-line-17)">├──&#160;</text><text class="terminal-3557953295-r23" x="73.2" y="434.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-17)">Ⅱ</text><text class="terminal-3557953295-r24" x="85.4" y="434.8" textLength="427" clip-path="url(#terminal-3557953295-line-17)">&#160;Why&#160;doesn&#x27;t&#160;Textual&#160;look&#160;good&#160;on&#160;m</text><text class="terminal-3557953295-r9" x="524.6" y="434.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-17)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="434.8" textLength="48.8" clip-path="url(#terminal-3557953295-line-17)">│&#160;&#160;&#160;</text><text class="terminal-3557953295-r2" x="2074" y="434.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-17)">
+</text><text class="terminal-3557953295-r9" x="0" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">┃</text><text class="terminal-3557953295-r13" x="24.4" y="459.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-18)">└──&#160;</text><text class="terminal-3557953295-r12" x="73.2" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">Ⅱ</text><text class="terminal-3557953295-r11" x="85.4" y="459.2" textLength="427" clip-path="url(#terminal-3557953295-line-18)">&#160;Why&#160;doesn&#x27;t&#160;Textual&#160;support&#160;ANSI&#160;t</text><text class="terminal-3557953295-r9" x="524.6" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="459.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-18)">│&#160;&#160;&#160;</text><text class="terminal-3557953295-r22" x="671" y="459.2" textLength="36.6" clip-path="url(#terminal-3557953295-line-18)">def</text><text class="terminal-3557953295-r26" x="719.8" y="459.2" textLength="97.6" clip-path="url(#terminal-3557953295-line-18)">__init__</text><text class="terminal-3557953295-r19" x="817.4" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">(</text><text class="terminal-3557953295-r19" x="829.6" y="459.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-18)">self</text><text class="terminal-3557953295-r19" x="878.4" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">,</text><text class="terminal-3557953295-r17" x="902.8" y="459.2" textLength="97.6" clip-path="url(#terminal-3557953295-line-18)">greeting</text><text class="terminal-3557953295-r19" x="1000.4" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">:</text><text class="terminal-3557953295-r26" x="1024.8" y="459.2" textLength="36.6" clip-path="url(#terminal-3557953295-line-18)">str</text><text class="terminal-3557953295-r19" x="1061.4" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">=</text><text class="terminal-3557953295-r27" x="1073.6" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">&quot;</text><text class="terminal-3557953295-r27" x="1085.8" y="459.2" textLength="61" clip-path="url(#terminal-3557953295-line-18)">Hello</text><text class="terminal-3557953295-r27" x="1146.8" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">&quot;</text><text class="terminal-3557953295-r19" x="1159" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">,</text><text class="terminal-3557953295-r17" x="1183.4" y="459.2" textLength="97.6" clip-path="url(#terminal-3557953295-line-18)">to_greet</text><text class="terminal-3557953295-r19" x="1281" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">:</text><text class="terminal-3557953295-r26" x="1305.4" y="459.2" textLength="36.6" clip-path="url(#terminal-3557953295-line-18)">str</text><text class="terminal-3557953295-r19" x="1342" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">=</text><text class="terminal-3557953295-r27" x="1354.2" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">&quot;</text><text class="terminal-3557953295-r27" x="1366.4" y="459.2" textLength="61" clip-path="url(#terminal-3557953295-line-18)">World</text><text class="terminal-3557953295-r27" x="1427.4" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">&quot;</text><text class="terminal-3557953295-r19" x="1439.6" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">)</text><text class="terminal-3557953295-r19" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">-</text><text class="terminal-3557953295-r19" x="1476.2" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">&gt;</text><text class="terminal-3557953295-r19" x="1500.6" y="459.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-18)">None</text><text class="terminal-3557953295-r19" x="1549.4" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">:</text><text class="terminal-3557953295-r2" x="2074" y="459.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-18)">
+</text><text class="terminal-3557953295-r9" x="0" y="483.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-19)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="483.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-19)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="483.6" textLength="97.6" clip-path="url(#terminal-3557953295-line-19)">│&#160;&#160;&#160;│&#160;&#160;&#160;</text><text class="terminal-3557953295-r19" x="719.8" y="483.6" textLength="48.8" clip-path="url(#terminal-3557953295-line-19)">self</text><text class="terminal-3557953295-r19" x="768.6" y="483.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-19)">.</text><text class="terminal-3557953295-r17" x="780.8" y="483.6" textLength="97.6" clip-path="url(#terminal-3557953295-line-19)">greeting</text><text class="terminal-3557953295-r19" x="890.6" y="483.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-19)">=</text><text class="terminal-3557953295-r17" x="915" y="483.6" textLength="97.6" clip-path="url(#terminal-3557953295-line-19)">greeting</text><text class="terminal-3557953295-r2" x="2074" y="483.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-19)">
+</text><text class="terminal-3557953295-r9" x="0" y="508" textLength="12.2" clip-path="url(#terminal-3557953295-line-20)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="508" textLength="12.2" clip-path="url(#terminal-3557953295-line-20)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="508" textLength="97.6" clip-path="url(#terminal-3557953295-line-20)">│&#160;&#160;&#160;│&#160;&#160;&#160;</text><text class="terminal-3557953295-r19" x="719.8" y="508" textLength="48.8" clip-path="url(#terminal-3557953295-line-20)">self</text><text class="terminal-3557953295-r19" x="768.6" y="508" textLength="12.2" clip-path="url(#terminal-3557953295-line-20)">.</text><text class="terminal-3557953295-r17" x="780.8" y="508" textLength="97.6" clip-path="url(#terminal-3557953295-line-20)">to_greet</text><text class="terminal-3557953295-r19" x="890.6" y="508" textLength="12.2" clip-path="url(#terminal-3557953295-line-20)">=</text><text class="terminal-3557953295-r17" x="915" y="508" textLength="97.6" clip-path="url(#terminal-3557953295-line-20)">to_greet</text><text class="terminal-3557953295-r2" x="2074" y="508" textLength="12.2" clip-path="url(#terminal-3557953295-line-20)">
+</text><text class="terminal-3557953295-r9" x="0" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="532.4" textLength="97.6" clip-path="url(#terminal-3557953295-line-21)">│&#160;&#160;&#160;│&#160;&#160;&#160;</text><text class="terminal-3557953295-r26" x="719.8" y="532.4" textLength="61" clip-path="url(#terminal-3557953295-line-21)">super</text><text class="terminal-3557953295-r19" x="780.8" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">(</text><text class="terminal-3557953295-r19" x="793" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">)</text><text class="terminal-3557953295-r19" x="805.2" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">.</text><text class="terminal-3557953295-r26" x="817.4" y="532.4" textLength="97.6" clip-path="url(#terminal-3557953295-line-21)">__init__</text><text class="terminal-3557953295-r19" x="915" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">(</text><text class="terminal-3557953295-r19" x="927.2" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">)</text><text class="terminal-3557953295-r2" x="2074" y="532.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-21)">
+</text><text class="terminal-3557953295-r9" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-22)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="556.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-22)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="556.8" textLength="48.8" clip-path="url(#terminal-3557953295-line-22)">│&#160;&#160;&#160;</text><text class="terminal-3557953295-r2" x="2074" y="556.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-22)">
+</text><text class="terminal-3557953295-r9" x="0" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="581.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-23)">│&#160;&#160;&#160;</text><text class="terminal-3557953295-r22" x="671" y="581.2" textLength="36.6" clip-path="url(#terminal-3557953295-line-23)">def</text><text class="terminal-3557953295-r26" x="719.8" y="581.2" textLength="85.4" clip-path="url(#terminal-3557953295-line-23)">compose</text><text class="terminal-3557953295-r19" x="805.2" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">(</text><text class="terminal-3557953295-r19" x="817.4" y="581.2" textLength="48.8" clip-path="url(#terminal-3557953295-line-23)">self</text><text class="terminal-3557953295-r19" x="866.2" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">)</text><text class="terminal-3557953295-r19" x="890.6" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">-</text><text class="terminal-3557953295-r19" x="902.8" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">&gt;</text><text class="terminal-3557953295-r17" x="927.2" y="581.2" textLength="158.6" clip-path="url(#terminal-3557953295-line-23)">ComposeResult</text><text class="terminal-3557953295-r19" x="1085.8" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">:</text><text class="terminal-3557953295-r2" x="2074" y="581.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-23)">
+</text><text class="terminal-3557953295-r9" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">┃</text><text class="terminal-3557953295-r25" x="622.2" y="605.6" textLength="97.6" clip-path="url(#terminal-3557953295-line-24)">│&#160;&#160;&#160;│&#160;&#160;&#160;</text><text class="terminal-3557953295-r22" x="719.8" y="605.6" textLength="61" clip-path="url(#terminal-3557953295-line-24)">yield</text><text class="terminal-3557953295-r17" x="793" y="605.6" textLength="73.2" clip-path="url(#terminal-3557953295-line-24)">Static</text><text class="terminal-3557953295-r19" x="866.2" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">(</text><text class="terminal-3557953295-r22" x="878.4" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">f</text><text class="terminal-3557953295-r27" x="890.6" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">&quot;</text><text class="terminal-3557953295-r19" x="902.8" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">{</text><text class="terminal-3557953295-r19" x="915" y="605.6" textLength="48.8" clip-path="url(#terminal-3557953295-line-24)">self</text><text class="terminal-3557953295-r19" x="963.8" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">.</text><text class="terminal-3557953295-r17" x="976" y="605.6" textLength="97.6" clip-path="url(#terminal-3557953295-line-24)">greeting</text><text class="terminal-3557953295-r19" x="1073.6" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">}</text><text class="terminal-3557953295-r27" x="1085.8" y="605.6" textLength="24.4" clip-path="url(#terminal-3557953295-line-24)">,&#160;</text><text class="terminal-3557953295-r19" x="1110.2" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">{</text><text class="terminal-3557953295-r19" x="1122.4" y="605.6" textLength="48.8" clip-path="url(#terminal-3557953295-line-24)">self</text><text class="terminal-3557953295-r19" x="1171.2" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">.</text><text class="terminal-3557953295-r17" x="1183.4" y="605.6" textLength="97.6" clip-path="url(#terminal-3557953295-line-24)">to_greet</text><text class="terminal-3557953295-r19" x="1281" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">}</text><text class="terminal-3557953295-r27" x="1293.2" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">&quot;</text><text class="terminal-3557953295-r19" x="1305.4" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">)</text><text class="terminal-3557953295-r2" x="2074" y="605.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-24)">
+</text><text class="terminal-3557953295-r9" x="0" y="630" textLength="12.2" clip-path="url(#terminal-3557953295-line-25)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="630" textLength="12.2" clip-path="url(#terminal-3557953295-line-25)">┃</text><text class="terminal-3557953295-r2" x="2074" y="630" textLength="12.2" clip-path="url(#terminal-3557953295-line-25)">
+</text><text class="terminal-3557953295-r9" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-26)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="654.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-26)">┃</text><text class="terminal-3557953295-r2" x="2074" y="654.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-26)">
+</text><text class="terminal-3557953295-r9" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-27)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="678.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-27)">┃</text><text class="terminal-3557953295-r4" x="597.8" y="678.8" textLength="817.4" clip-path="url(#terminal-3557953295-line-27)">Then&#160;the&#160;app&#160;can&#160;be&#160;run,&#160;passing&#160;in&#160;various&#160;arguments;&#160;for&#160;example:</text><text class="terminal-3557953295-r2" x="2074" y="678.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-27)">
+</text><text class="terminal-3557953295-r9" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-28)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="703.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-28)">┃</text><text class="terminal-3557953295-r28" x="2037.4" y="703.2" textLength="24.4" clip-path="url(#terminal-3557953295-line-28)">▅▅</text><text class="terminal-3557953295-r2" x="2074" y="703.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-28)">
+</text><text class="terminal-3557953295-r9" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-29)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="727.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-29)">┃</text><text class="terminal-3557953295-r2" x="2074" y="727.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-29)">
+</text><text class="terminal-3557953295-r9" x="0" y="752" textLength="12.2" clip-path="url(#terminal-3557953295-line-30)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="752" textLength="12.2" clip-path="url(#terminal-3557953295-line-30)">┃</text><text class="terminal-3557953295-r29" x="622.2" y="752" textLength="402.6" clip-path="url(#terminal-3557953295-line-30)">#&#160;Running&#160;with&#160;default&#160;arguments.</text><text class="terminal-3557953295-r2" x="2074" y="752" textLength="12.2" clip-path="url(#terminal-3557953295-line-30)">
+</text><text class="terminal-3557953295-r9" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">┃</text><text class="terminal-3557953295-r17" x="622.2" y="776.4" textLength="109.8" clip-path="url(#terminal-3557953295-line-31)">Greetings</text><text class="terminal-3557953295-r19" x="732" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">(</text><text class="terminal-3557953295-r19" x="744.2" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">)</text><text class="terminal-3557953295-r19" x="756.4" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">.</text><text class="terminal-3557953295-r17" x="768.6" y="776.4" textLength="36.6" clip-path="url(#terminal-3557953295-line-31)">run</text><text class="terminal-3557953295-r19" x="805.2" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">(</text><text class="terminal-3557953295-r19" x="817.4" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">)</text><text class="terminal-3557953295-r2" x="2074" y="776.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-31)">
+</text><text class="terminal-3557953295-r9" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-32)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="800.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-32)">┃</text><text class="terminal-3557953295-r2" x="2074" y="800.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-32)">
+</text><text class="terminal-3557953295-r9" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-33)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="825.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-33)">┃</text><text class="terminal-3557953295-r29" x="622.2" y="825.2" textLength="427" clip-path="url(#terminal-3557953295-line-33)">#&#160;Running&#160;with&#160;a&#160;keyword&#160;arguyment.</text><text class="terminal-3557953295-r2" x="2074" y="825.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-33)">
+</text><text class="terminal-3557953295-r9" x="0" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">┃</text><text class="terminal-3557953295-r17" x="622.2" y="849.6" textLength="109.8" clip-path="url(#terminal-3557953295-line-34)">Greetings</text><text class="terminal-3557953295-r19" x="732" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">(</text><text class="terminal-3557953295-r17" x="744.2" y="849.6" textLength="97.6" clip-path="url(#terminal-3557953295-line-34)">to_greet</text><text class="terminal-3557953295-r19" x="841.8" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">=</text><text class="terminal-3557953295-r27" x="854" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">&quot;</text><text class="terminal-3557953295-r27" x="866.2" y="849.6" textLength="61" clip-path="url(#terminal-3557953295-line-34)">davep</text><text class="terminal-3557953295-r27" x="927.2" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">&quot;</text><text class="terminal-3557953295-r19" x="939.4" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">)</text><text class="terminal-3557953295-r19" x="951.6" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">.</text><text class="terminal-3557953295-r17" x="963.8" y="849.6" textLength="36.6" clip-path="url(#terminal-3557953295-line-34)">run</text><text class="terminal-3557953295-r19" x="1000.4" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">(</text><text class="terminal-3557953295-r19" x="1012.6" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">)</text><text class="terminal-3557953295-r30" x="2037.4" y="849.6" textLength="24.4" clip-path="url(#terminal-3557953295-line-34)">▅▅</text><text class="terminal-3557953295-r2" x="2074" y="849.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-34)">
+</text><text class="terminal-3557953295-r9" x="0" y="874" textLength="12.2" clip-path="url(#terminal-3557953295-line-35)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="874" textLength="12.2" clip-path="url(#terminal-3557953295-line-35)">┃</text><text class="terminal-3557953295-r2" x="2074" y="874" textLength="12.2" clip-path="url(#terminal-3557953295-line-35)">
+</text><text class="terminal-3557953295-r9" x="0" y="898.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-36)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="898.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-36)">┃</text><text class="terminal-3557953295-r29" x="622.2" y="898.4" textLength="500.2" clip-path="url(#terminal-3557953295-line-36)">#&#160;Running&#160;with&#160;both&#160;positional&#160;arguments.</text><text class="terminal-3557953295-r2" x="2074" y="898.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-36)">
+</text><text class="terminal-3557953295-r9" x="0" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">┃</text><text class="terminal-3557953295-r17" x="622.2" y="922.8" textLength="109.8" clip-path="url(#terminal-3557953295-line-37)">Greetings</text><text class="terminal-3557953295-r19" x="732" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">(</text><text class="terminal-3557953295-r27" x="744.2" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">&quot;</text><text class="terminal-3557953295-r27" x="756.4" y="922.8" textLength="122" clip-path="url(#terminal-3557953295-line-37)">Well&#160;hello</text><text class="terminal-3557953295-r27" x="878.4" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">&quot;</text><text class="terminal-3557953295-r19" x="890.6" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">,</text><text class="terminal-3557953295-r27" x="915" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">&quot;</text><text class="terminal-3557953295-r27" x="927.2" y="922.8" textLength="61" clip-path="url(#terminal-3557953295-line-37)">there</text><text class="terminal-3557953295-r27" x="988.2" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">&quot;</text><text class="terminal-3557953295-r19" x="1000.4" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">)</text><text class="terminal-3557953295-r19" x="1012.6" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">.</text><text class="terminal-3557953295-r17" x="1024.8" y="922.8" textLength="36.6" clip-path="url(#terminal-3557953295-line-37)">run</text><text class="terminal-3557953295-r19" x="1061.4" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">(</text><text class="terminal-3557953295-r19" x="1073.6" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">)</text><text class="terminal-3557953295-r2" x="2074" y="922.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-37)">
+</text><text class="terminal-3557953295-r9" x="0" y="947.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-38)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="947.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-38)">┃</text><text class="terminal-3557953295-r2" x="2074" y="947.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-38)">
+</text><text class="terminal-3557953295-r9" x="0" y="971.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-39)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="971.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-39)">┃</text><text class="terminal-3557953295-r2" x="2074" y="971.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-39)">
+</text><text class="terminal-3557953295-r9" x="0" y="996" textLength="12.2" clip-path="url(#terminal-3557953295-line-40)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="996" textLength="12.2" clip-path="url(#terminal-3557953295-line-40)">┃</text><text class="terminal-3557953295-r2" x="2074" y="996" textLength="12.2" clip-path="url(#terminal-3557953295-line-40)">
+</text><text class="terminal-3557953295-r9" x="0" y="1020.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-41)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="1020.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-41)">┃</text><text class="terminal-3557953295-r2" x="2074" y="1020.4" textLength="12.2" clip-path="url(#terminal-3557953295-line-41)">
+</text><text class="terminal-3557953295-r9" x="0" y="1044.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-42)">┃</text><text class="terminal-3557953295-r9" x="524.6" y="1044.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-42)">┃</text><text class="terminal-3557953295-r7" x="597.8" y="1044.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-42)">▁</text><text class="terminal-3557953295-r7" x="610" y="1044.8" textLength="1366.4" clip-path="url(#terminal-3557953295-line-42)">▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁</text><text class="terminal-3557953295-r7" x="1976.4" y="1044.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-42)">▁</text><text class="terminal-3557953295-r2" x="2074" y="1044.8" textLength="12.2" clip-path="url(#terminal-3557953295-line-42)">
+</text><text class="terminal-3557953295-r9" x="0" y="1069.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-43)">┃</text><text class="terminal-3557953295-r28" x="244" y="1069.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-43)">▉</text><text class="terminal-3557953295-r9" x="524.6" y="1069.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-43)">┃</text><text class="terminal-3557953295-r7" x="597.8" y="1069.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-43)">▎</text><text class="terminal-3557953295-r10" x="1976.4" y="1069.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-43)">▊</text><text class="terminal-3557953295-r2" x="2074" y="1069.2" textLength="12.2" clip-path="url(#terminal-3557953295-line-43)">
+</text><text class="terminal-3557953295-r9" x="0" y="1093.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-44)">┗</text><text class="terminal-3557953295-r9" x="12.2" y="1093.6" textLength="512.4" clip-path="url(#terminal-3557953295-line-44)">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</text><text class="terminal-3557953295-r9" x="524.6" y="1093.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-44)">┛</text><text class="terminal-3557953295-r2" x="2074" y="1093.6" textLength="12.2" clip-path="url(#terminal-3557953295-line-44)">
+</text><text class="terminal-3557953295-r31" x="0" y="1118" textLength="48.8" clip-path="url(#terminal-3557953295-line-45)">&#160;F1&#160;</text><text class="terminal-3557953295-r32" x="48.8" y="1118" textLength="73.2" clip-path="url(#terminal-3557953295-line-45)">&#160;Help&#160;</text><text class="terminal-3557953295-r31" x="122" y="1118" textLength="48.8" clip-path="url(#terminal-3557953295-line-45)">&#160;F2&#160;</text><text class="terminal-3557953295-r32" x="170.8" y="1118" textLength="85.4" clip-path="url(#terminal-3557953295-line-45)">&#160;About&#160;</text><text class="terminal-3557953295-r31" x="256.2" y="1118" textLength="97.6" clip-path="url(#terminal-3557953295-line-45)">&#160;CTRL+N&#160;</text><text class="terminal-3557953295-r32" x="353.8" y="1118" textLength="146.4" clip-path="url(#terminal-3557953295-line-45)">&#160;Navigation&#160;</text><text class="terminal-3557953295-r31" x="500.2" y="1118" textLength="97.6" clip-path="url(#terminal-3557953295-line-45)">&#160;CTRL+Q&#160;</text><text class="terminal-3557953295-r32" x="597.8" y="1118" textLength="73.2" clip-path="url(#terminal-3557953295-line-45)">&#160;Quit&#160;</text>
+    </g>
+    </g>
+</svg>
diff --git a/docs/blog/posts/release0-23-0.md b/docs/blog/posts/release0-23-0.md
new file mode 100644
index 000000000..8fbe14573
--- /dev/null
+++ b/docs/blog/posts/release0-23-0.md
@@ -0,0 +1,88 @@
+---
+draft: false
+date: 2023-05-03
+categories:
+  - Release
+title: "Textual 0.23.0 improves message handling"
+authors:
+  - willmcgugan
+---
+
+# Textual 0.23.0 improves message handling
+
+It's been a busy couple of weeks at Textualize.
+We've been building apps with [Textual](https://github.com/Textualize/textual), as part of our *dog-fooding* week.
+The first app, [Frogmouth](https://github.com/Textualize/frogmouth), was released at the weekend and already has 1K GitHub stars!
+Expect two more such apps this month.
+
+<!-- more -->
+
+<div>
+--8<-- "docs/blog/images/frogmouth.svg"
+</div>
+
+!!! tip
+
+    Join our [mailing list](http://eepurl.com/hL0BF1) if you would like to be the first to hear about our apps.
+
+We haven't stopped developing Textual in that time.
+Today we released version 0.23.0 which has a really interesting API update I'd like to introduce.
+
+Textual *widgets* can send messages to each other.
+To respond to those messages, you implement a message handler with a naming convention.
+For instance, the [Button](/widget_gallery/#button) widget sends a `Pressed` event.
+To handle that event, you implement a method called `on_button_pressed`.
+
+Simple enough, but handler methods are called to handle pressed events from *all* Buttons.
+To manage multiple buttons you typically had to write a large `if` statement to wire up each button to the code it should run.
+It didn't take many Buttons before the handler became hard to follow.
+
+## On decorator
+
+Version 0.23.0 introduces the [`@on`](/guide/events/#on-decorator) decorator which allows you to dispatch events based on the widget that initiated them.
+
+This is probably best explained in code.
+The following two listings respond to buttons being pressed.
+The first uses a single message handler, the second uses the decorator approach:
+
+=== "on_decorator01.py"
+
+    ```python title="on_decorator01.py"
+    --8<-- "docs/examples/events/on_decorator01.py"
+    ```
+
+    1. The message handler is called when any button is pressed
+
+=== "on_decorator02.py"
+
+    ```python title="on_decorator02.py"
+    --8<-- "docs/examples/events/on_decorator02.py"
+    ```
+
+    1. Matches the button with an id of "bell" (note the `#` to match the id)
+    2. Matches the button with class names "toggle" *and* "dark"
+    3. Matches the button with an id of "quit"
+
+=== "Output"
+
+    ```{.textual path="docs/examples/events/on_decorator01.py"}
+    ```
+
+The decorator dispatches events based on a CSS selector.
+This means that you could have a handler per button, or a handler for buttons with a shared class, or parent.
+
+We think this is a very flexible mechanism that will help keep code readable and maintainable.
+
+## Why didn't we do this earlier?
+
+It's a reasonable question to ask: why didn't we implement this in an earlier version?
+We were certainly aware there was a deficiency in the API.
+
+The truth is simply that we didn't have an elegant solution in mind until recently.
+The `@on` decorator is, I believe, an elegant and powerful mechanism for dispatching handlers.
+It might seem obvious in hindsight, but it took many iterations and brainstorming in the office to come up with it!
+
+
+## Join us
+
+If you want to talk about this update or anything else Textual related, join us on our [Discord server](https://discord.gg/Enf6Z3qhVr).
diff --git a/docs/examples/events/on_decorator01.py b/docs/examples/events/on_decorator01.py
index 3b97f7f0d..7b9c0276e 100644
--- a/docs/examples/events/on_decorator01.py
+++ b/docs/examples/events/on_decorator01.py
@@ -12,7 +12,7 @@ class OnDecoratorApp(App):
         yield Button("Toggle dark", classes="toggle dark")
         yield Button("Quit", id="quit")
 
-    def on_button_pressed(self, event: Button.Pressed) -> None:
+    def on_button_pressed(self, event: Button.Pressed) -> None:  # (1)!
         """Handle all button pressed events."""
         if event.button.id == "bell":
             self.bell()
diff --git a/docs/guide/events.md b/docs/guide/events.md
index 1e6136c8f..0629e17e5 100644
--- a/docs/guide/events.md
+++ b/docs/guide/events.md
@@ -181,6 +181,8 @@ In the following example we have three buttons, each of which does something dif
     --8<-- "docs/examples/events/on_decorator01.py"
     ```
 
+    1. The message handler is called when any button is pressed
+
 === "Output"
 
     ```{.textual path="docs/examples/events/on_decorator01.py"}
diff --git a/pyproject.toml b/pyproject.toml
index e1b4cbee6..ba155e993 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "textual"
-version = "0.22.3"
+version = "0.23.0"
 homepage = "https://github.com/Textualize/textual"
 description = "Modern Text User Interface framework"
 authors = ["Will McGugan <will@textualize.io>"]
diff --git a/questions/README.md b/questions/README.md
index bb201b128..f4b1f622d 100644
--- a/questions/README.md
+++ b/questions/README.md
@@ -5,13 +5,13 @@ Your questions should go in this directory.
 
 Question files should be named with the extension ".question.md".
 
-To build the faq, install [faqtory](https://github.com/willmcgugan/faqtory) if you haven't already:
+To build the FAQ, install [faqtory](https://github.com/willmcgugan/faqtory) if you haven't already:
 
 ```
 pip install faqtory
 ```
 
-The run the following from the top of the repository:
+Then run the following from the top of the repository:
 
 ```
 faqtory build
diff --git a/questions/datatable-doesnt-scroll.question.md b/questions/datatable-doesnt-scroll.question.md
new file mode 100644
index 000000000..868d04c20
--- /dev/null
+++ b/questions/datatable-doesnt-scroll.question.md
@@ -0,0 +1,45 @@
+---
+title: "Why doesn't the `DataTable` scroll programmatically?"
+alt_titles:
+  - "Scroll bindings from `DataTable` not working."
+  - "Datatable cursor goes off screen and doesn't scroll."
+---
+
+If it looks like the scrolling in your `DataTable` is broken, it may be because your `DataTable` does not have its height set, which means it is using the default value of `height: auto`.
+In turn, this means that the `DataTable` itself does not have a scrollbar and, hence, it cannot scroll.
+
+If it looks like your `DataTable` has scrollbars, those might belong to the container(s) of the `DataTable`, which in turn makes it look like the scrolling of the `DataTable` is broken.
+
+To see the difference, try running the app below with and without the comment in the attribute `TableApp.CSS`.
+Press <kbd>E</kbd> to scroll the `DataTable` to the end.
+If the `CSS` is commented out, the `DataTable` does not have a scrollbar and, therefore, there is nothing to scroll.
+
+<details>
+<summary>Example app.</summary>
+
+```py
+from textual.app import App, ComposeResult
+from textual.widgets import DataTable
+
+
+class TableApp(App):
+    # CSS = "DataTable { height: 100% }"
+
+    def compose(self) -> ComposeResult:
+        yield DataTable()
+
+    def on_mount(self) -> None:
+        table = self.query_one(DataTable)
+        table.add_column("n")
+        table.add_rows([(n,) for n in range(300)])
+
+    def key_e(self) -> None:
+        self.query_one(DataTable).action_scroll_end()
+
+
+app = TableApp()
+if __name__ == "__main__":
+    app.run()
+```
+
+</details>
diff --git a/questions/images.question.md b/questions/images.question.md
index 6d86ea2f5..c6a1e3dc8 100644
--- a/questions/images.question.md
+++ b/questions/images.question.md
@@ -3,9 +3,8 @@ title: "Does Textual support images?"
 alt_titles:
   - "Can Textual display PNG / SVG files?"
   - "Render images"
-
 ---
 
-Textual doesn't have built in support for images yet, but it is on the [Roadmap](https://textual.textualize.io/roadmap/).
+Textual doesn't have built-in support for images yet, but it is on the [Roadmap](https://textual.textualize.io/roadmap/).
 
 See also the [rich-pixels](https://github.com/darrenburns/rich-pixels) project for a Rich renderable for images that works with Textual.
diff --git a/src/textual/widgets/_data_table.py b/src/textual/widgets/_data_table.py
index 0681c3993..5991c98db 100644
--- a/src/textual/widgets/_data_table.py
+++ b/src/textual/widgets/_data_table.py
@@ -950,6 +950,7 @@ class DataTable(ScrollView, Generic[CellType], can_focus=True):
             elif self.cursor_type == "column":
                 self.refresh_column(old_coordinate.column)
                 self._highlight_column(new_coordinate.column)
+            self._scroll_cursor_into_view()
 
     def _highlight_coordinate(self, coordinate: Coordinate) -> None:
         """Apply highlighting to the cell at the coordinate, and post event."""
diff --git a/src/textual/widgets/_directory_tree.py b/src/textual/widgets/_directory_tree.py
index 64e52d38a..b2a8ab692 100644
--- a/src/textual/widgets/_directory_tree.py
+++ b/src/textual/widgets/_directory_tree.py
@@ -1,6 +1,5 @@
 from __future__ import annotations
 
-import os
 from dataclasses import dataclass
 from pathlib import Path
 from typing import ClassVar, Iterable
@@ -10,6 +9,7 @@ from rich.text import Text, TextType
 
 from ..events import Mount
 from ..message import Message
+from ..reactive import var
 from ._tree import TOGGLE_STYLE, Tree, TreeNode
 
 
@@ -17,26 +17,19 @@ from ._tree import TOGGLE_STYLE, Tree, TreeNode
 class DirEntry:
     """Attaches directory information to a node."""
 
-    path: str
-    is_dir: bool
+    path: Path
+    """The path of the directory entry."""
     loaded: bool = False
+    """Has this been loaded?"""
 
 
 class DirectoryTree(Tree[DirEntry]):
-    """A Tree widget that presents files and directories.
-
-    Args:
-        path: Path to directory.
-        name: The name of the widget, or None for no name.
-        id: The ID of the widget in the DOM, or None for no ID.
-        classes: A space-separated list of classes, or None for no classes.
-        disabled: Whether the directory tree is disabled or not.
-    """
+    """A Tree widget that presents files and directories."""
 
     COMPONENT_CLASSES: ClassVar[set[str]] = {
-        "directory-tree--folder",
-        "directory-tree--file",
         "directory-tree--extension",
+        "directory-tree--file",
+        "directory-tree--folder",
         "directory-tree--hidden",
     }
     """
@@ -55,10 +48,6 @@ class DirectoryTree(Tree[DirEntry]):
         text-style: bold;
     }
 
-    DirectoryTree > .directory-tree--file {
-
-    }
-
     DirectoryTree > .directory-tree--extension {
         text-style: italic;
     }
@@ -73,14 +62,28 @@ class DirectoryTree(Tree[DirEntry]):
 
         Can be handled using `on_directory_tree_file_selected` in a subclass of
         `DirectoryTree` or in a parent widget in the DOM.
-
-        Attributes:
-            path: The path of the file that was selected.
         """
 
-        def __init__(self, path: str) -> None:
-            self.path: str = path
+        def __init__(self, node: TreeNode[DirEntry], path: Path) -> None:
+            """Initialise the FileSelected object.
+
+            Args:
+                node: The tree node for the file that was selected.
+                path: The path of the file that was selected.
+            """
             super().__init__()
+            self.node: TreeNode[DirEntry] = node
+            """The tree node of the file that was selected."""
+            self.path: Path = path
+            """The path of the file that was selected."""
+
+    path: var[str | Path] = var["str | Path"](Path("."), init=False)
+    """The path that is the root of the directory tree.
+
+    Note:
+        This can be set to either a `str` or a `pathlib.Path` object, but
+        the value will always be a `pathlib.Path` object.
+    """
 
     def __init__(
         self,
@@ -91,18 +94,54 @@ class DirectoryTree(Tree[DirEntry]):
         classes: str | None = None,
         disabled: bool = False,
     ) -> None:
-        str_path = os.fspath(path)
-        self.path = str_path
+        """Initialise the directory tree.
+
+        Args:
+            path: Path to directory.
+            name: The name of the widget, or None for no name.
+            id: The ID of the widget in the DOM, or None for no ID.
+            classes: A space-separated list of classes, or None for no classes.
+            disabled: Whether the directory tree is disabled or not.
+        """
         super().__init__(
-            str_path,
-            data=DirEntry(str_path, True),
+            str(path),
+            data=DirEntry(Path(path)),
             name=name,
             id=id,
             classes=classes,
             disabled=disabled,
         )
+        self.path = path
+
+    def reload(self) -> None:
+        """Reload the `DirectoryTree` contents."""
+        self.reset(str(self.path), DirEntry(Path(self.path)))
+        self._load_directory(self.root)
+
+    def validate_path(self, path: str | Path) -> Path:
+        """Ensure that the path is of the `Path` type.
 
-    def process_label(self, label: TextType):
+        Args:
+            path: The path to validate.
+
+        Returns:
+            The validated Path value.
+
+        Note:
+            The result will always be a Python `Path` object, regardless of
+            the value given.
+        """
+        return Path(path)
+
+    def watch_path(self) -> None:
+        """Watch for changes to the `path` of the directory tree.
+
+        If the path is changed the directory tree will be repopulated using
+        the new value as the root.
+        """
+        self.reload()
+
+    def process_label(self, label: TextType) -> Text:
         """Process a str or Text into a label. Maybe overridden in a subclass to modify how labels are rendered.
 
         Args:
@@ -118,7 +157,19 @@ class DirectoryTree(Tree[DirEntry]):
         first_line = text_label.split()[0]
         return first_line
 
-    def render_label(self, node: TreeNode[DirEntry], base_style: Style, style: Style):
+    def render_label(
+        self, node: TreeNode[DirEntry], base_style: Style, style: Style
+    ) -> Text:
+        """Render a label for the given node.
+
+        Args:
+            node: A tree node.
+            base_style: The base style of the widget.
+            style: The additional style for the label.
+
+        Returns:
+            A Rich Text object containing the label.
+        """
         node_label = node._label.copy()
         node_label.stylize(style)
 
@@ -165,40 +216,44 @@ class DirectoryTree(Tree[DirEntry]):
         """
         return paths
 
-    def load_directory(self, node: TreeNode[DirEntry]) -> None:
+    def _load_directory(self, node: TreeNode[DirEntry]) -> None:
+        """Load the directory contents for a given node.
+
+        Args:
+            node: The node to load the directory contents for.
+        """
         assert node.data is not None
-        dir_path = Path(node.data.path)
         node.data.loaded = True
         directory = sorted(
-            self.filter_paths(dir_path.iterdir()),
+            self.filter_paths(node.data.path.iterdir()),
             key=lambda path: (not path.is_dir(), path.name.lower()),
         )
         for path in directory:
             node.add(
                 path.name,
-                data=DirEntry(str(path), path.is_dir()),
+                data=DirEntry(path),
                 allow_expand=path.is_dir(),
             )
         node.expand()
 
     def _on_mount(self, _: Mount) -> None:
-        self.load_directory(self.root)
+        self._load_directory(self.root)
 
-    def _on_tree_node_expanded(self, event: Tree.NodeSelected) -> None:
+    def _on_tree_node_expanded(self, event: Tree.NodeExpanded) -> None:
         event.stop()
         dir_entry = event.node.data
         if dir_entry is None:
             return
-        if dir_entry.is_dir:
+        if dir_entry.path.is_dir():
             if not dir_entry.loaded:
-                self.load_directory(event.node)
+                self._load_directory(event.node)
         else:
-            self.post_message(self.FileSelected(dir_entry.path))
+            self.post_message(self.FileSelected(event.node, dir_entry.path))
 
     def _on_tree_node_selected(self, event: Tree.NodeSelected) -> None:
         event.stop()
         dir_entry = event.node.data
         if dir_entry is None:
             return
-        if not dir_entry.is_dir:
-            self.post_message(self.FileSelected(dir_entry.path))
+        if not dir_entry.path.is_dir():
+            self.post_message(self.FileSelected(event.node, dir_entry.path))


Test patch:
diff --git a/tests/test_data_table.py b/tests/test_data_table.py
index 56b148d56..0bba677cf 100644
--- a/tests/test_data_table.py
+++ b/tests/test_data_table.py
@@ -991,3 +991,28 @@ def test_key_string_lookup():
     assert dictionary[RowKey("foo")] == "bar"
     assert dictionary["hello"] == "world"
     assert dictionary[RowKey("hello")] == "world"
+
+
+async def test_scrolling_cursor_into_view():
+    """Regression test for https://github.com/Textualize/textual/issues/2459"""
+
+    class TableApp(App):
+        CSS = "DataTable { height: 100%; }"
+
+        def compose(self):
+            yield DataTable()
+
+        def on_mount(self) -> None:
+            table = self.query_one(DataTable)
+            table.add_column("n")
+            table.add_rows([(n,) for n in range(300)])
+
+        def key_c(self):
+            self.query_one(DataTable).cursor_coordinate = Coordinate(200, 0)
+
+    app = TableApp()
+
+    async with app.run_test() as pilot:
+        await pilot.press("c")
+        await pilot.pause()
+        assert app.query_one(DataTable).scroll_y > 100