From 55c731ef5bd07d12d71fba628f65841700b42761 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Fri, 10 May 2024 22:22:19 +0200 Subject: [PATCH] feat: add color Signed-off-by: kjuulh --- .../src/components/render_graph/summarize.rs | 47 +++-- demo.cast | 187 ++++++++++++------ 2 files changed, 161 insertions(+), 73 deletions(-) diff --git a/crates/hyperlog-tui/src/components/render_graph/summarize.rs b/crates/hyperlog-tui/src/components/render_graph/summarize.rs index 6777c6a..66f53e3 100644 --- a/crates/hyperlog-tui/src/components/render_graph/summarize.rs +++ b/crates/hyperlog-tui/src/components/render_graph/summarize.rs @@ -2,6 +2,9 @@ use crate::components::movement_graph::{GraphItemType, MovementGraph, MovementGr use itertools::Itertools; use ratatui::prelude::*; +const green: Color = Color::Rgb(127, 255, 0); +const orange: Color = Color::Rgb(255, 165, 0); + pub trait Summarize { fn heading(&self) -> Vec; fn brief(&self) -> Vec>; @@ -23,28 +26,40 @@ impl Summarize for MovementGraphItem { ] } GraphItemType::Item { done } => { - vec![Span::from(if done { "[x] " } else { "[ ] " }), name] + if done { + vec![ + Span::from("["), + Span::from("x").fg(green), + Span::from("] "), + name, + ] + } else { + vec![Span::from("[ ] "), name] + } } } } fn brief(&self) -> Vec> { let heading = self.heading(); + let mut output = vec![heading]; let items = &self.values.items; - let items = if items.len() > 2 { - vec![items.first().unwrap(), items.last().unwrap()] + let mut items = if items.len() > 2 { + vec![ + items.first().unwrap().heading(), + vec![Span::from("...").fg(Color::DarkGray)], + items.last().unwrap().heading(), + vec![Span::raw("")], + ] } else { - items.iter().collect() + items.iter().map(|i| i.heading()).collect() }; - let mut output = vec![heading]; - - for item in items { - let mut heading = item.heading(); - heading.insert(0, Span::from(" ".repeat(4))); - output.push(heading); + for mut item in items { + item.insert(0, Span::from(" ".repeat(4))); + output.push(item); } output @@ -54,7 +69,13 @@ impl Summarize for MovementGraphItem { let heading = self .heading() .into_iter() - .map(|h| if selected { h.bold() } else { h }) + .map(|h| { + if selected { + h.patch_style(Style::new().fg(orange)) + } else { + h + } + }) .collect_vec(); let items = &self.values.items; @@ -68,6 +89,10 @@ impl Summarize for MovementGraphItem { } } + if !items.is_empty() { + output.push(vec![Span::raw("")]); + } + output } } diff --git a/demo.cast b/demo.cast index 36319f5..48f22ed 100644 --- a/demo.cast +++ b/demo.cast @@ -1,62 +1,125 @@ -{"version": 2, "width": 105, "height": 39, "timestamp": 1715340853, "env": {"SHELL": "/usr/bin/zsh", "TERM": "alacritty"}} -[0.065225, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[0.112127, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mhyperlog\u001b[0m \u001b[90mmain\u001b[0m\u001b[38;2;255;153;102m \u001b[0m\u001b[38;2;255;153;102m≡ \u001b[0m\u001b[1;31mrs \u001b[0m\r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"] -[0.1128, "o", "\u001b[6 q"] -[0.113363, "o", "\u001b[6 q"] -[0.113422, "o", "\u001b[?2004h"] -[1.450765, "o", "a"] -[1.456624, "o", "\b\u001b[1m\u001b[31ma\u001b[0m\u001b[39m"] -[1.46532, "o", "\b\u001b[1m\u001b[31ma\u001b[0m\u001b[39m\u001b[90msciinema rec demo.cast --overwrite\u001b[39m\u001b[34D"] -[1.736304, "o", "\b\u001b[0m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[35D"] -[1.839923, "o", "c"] -[1.841146, "o", "\b\u001b[32mc\u001b[39m"] -[1.864659, "o", "\b\u001b[32mc\u001b[39m\u001b[90margo run\u001b[39m\u001b[8D"] -[1.915579, "o", "\b\u001b[32mc\u001b[32ma\u001b[39m"] -[1.918, "o", "\b\b\u001b[1m\u001b[31mc\u001b[1m\u001b[31ma\u001b[0m\u001b[39m"] -[1.989176, "o", "\b\b\u001b[1m\u001b[31mc\u001b[1m\u001b[31ma\u001b[1m\u001b[31mr\u001b[0m\u001b[39m"] -[2.156295, "o", "\b\u001b[1m\u001b[31mr\u001b[1m\u001b[31mg\u001b[0m\u001b[39m"] -[2.229595, "o", "\b\u001b[1m\u001b[31mg\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"] -[2.231137, "o", "\b\b\b\b\b\u001b[0m\u001b[32mc\u001b[0m\u001b[32ma\u001b[0m\u001b[32mr\u001b[0m\u001b[32mg\u001b[0m\u001b[32mo\u001b[39m"] -[2.306455, "o", "\b\u001b[32mo\u001b[32m \u001b[39m"] -[2.307463, "o", "\b\b\u001b[32mo\u001b[39m\u001b[39m "] -[2.439823, "o", "\u001b[39mr"] -[2.441994, "o", "\b\u001b[4mr\u001b[24m"] -[2.529761, "o", "\b\u001b[4mr\u001b[39m\u001b[4mu\u001b[24m"] -[2.531544, "o", "\b\b\u001b[24mr\u001b[24mu"] -[2.665739, "o", "\u001b[39mn"] -[2.863115, "o", "\u001b[0 q"] -[2.863297, "o", "\u001b[?2004l\r\r\n"] -[3.026194, "o", "\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ratatui::prelude::*`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph.rs:1:5\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse ratatui::prelude::*;\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `MovementGraphItem`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/classic.rs:3:71\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse crate::components::movement_graph::{GraphItemType, MovementGraph, MovementGraphItem};\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `items`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/summarize.rs:116:9\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m116\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m items: &[usize],\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_items`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `depth`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/summarize.rs:117:9\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m117\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m depth: usize,\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_depth`\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: method `render_graph` is never used\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/classic.rs:6:8\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mpub trait ClassicRenderGraph {\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m------------------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mmethod in this trait\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m6\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m fn render_graph(&self, items: &[usize]) -> Vec;\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: method `render_graph_spans` is never used\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/summarize.rs:72:8\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m70\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mpub trait SummarizeRenderGraph {\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--------------------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mmethod in this trait\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m71\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m fn render_graph(&self, items: &[usize]) -> Vec;\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m72\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m fn render_graph_spans(&self, items: &[usize], depth: usize)\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^\u001b[0m\r\n"] -[3.026243, "o", "\r\n\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m:\u001b[0m `hyperlog-tui` (lib) generated 6 warnings (run `cargo fix --lib -p hyperlog-tui` to apply 2 suggestions)\r\n\u001b[1m\u001b[32m Finished\u001b[0m \u001b]8;;https://doc.rust-lang.org/cargo/reference/profiles.html#default-profiles\u001b\\`dev` profile [unoptimized + debuginfo]\u001b]8;;\u001b\\ target(s) in 0.09s\r\n"] -[3.03314, "o", "\u001b[1m\u001b[32m Running\u001b[0m `target/debug/hyperlog`\r\n"] -[3.042745, "o", "\u001b[?1049h"] -[3.045803, "o", "\u001b[1;1H\u001b[38;5;2mhyperlog\u001b[2;1H\u001b[39m─────────────────────────────────────────────────────────────────────────────────────────────────────────\u001b[3;1Hother\u001b[3;7H~\u001b[3;9H(items:\u001b[3;17H1)\u001b[4;5Hother\u001b[4;11H~\u001b[4;13H(items:\u001b[4;21H4)\u001b[5;1Hsome\u001b[5;6H~\u001b[5;8H(items:\u001b[5;16H0)\u001b[6;1Hsomething\u001b[6;11H~\u001b[6;13H(items:\u001b[6;21H2)\u001b[7;5Helse\u001b[7;10H~\u001b[7;12H(items:\u001b[7;20H0)\u001b[8;5Hthird\u001b[8;11H~\u001b[8;13H(items:\u001b[8;21H0)\u001b[9;1Hwith-something\u001b[9;16H~\u001b[9;18H(items:\u001b[9;26H0)\u001b[39;2H--\u001b[39;5HVIEW\u001b[39;10H--\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[3.298574, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[3.551223, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[3.80331, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[4.003331, "o", "\u001b[5;1H \u001b[5;6H \u001b[5;8H o\u001b[5;11Hher ~ (items:\u001b[5;25H3)\u001b[6;1H - [ ] whatever\u001b[7;5H \u001b[7;10H \u001b[7;12H \u001b[7;20H \u001b[8;5H \u001b[8;11H \u001b[8;13H \u001b[8;21H \u001b[9;1H \u001b[9;16H \u001b[9;18H \u001b[9;26H \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[4.257492, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[4.511815, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[4.572094, "o", "\u001b[3;17H4\u001b[4;21H3\u001b[5;9H- [x]\u001b[5;15HI\u001b[5;17Hcan edit this\u001b[5;31Hand\u001b[5;35Hthis\u001b[5;40Hand\u001b[5;44Hthis\u001b[6;9H- [x] sdlfkasldjflsdaslkdjfalkjsdfl\u001b[7;5H-\u001b[7;7H[x]\u001b[7;11Hsome\u001b[8;5Hsomething\u001b[8;15H~\u001b[8;17H(items:\u001b[8;25H1)\u001b[9;9Hsomething-else\u001b[9;24H~\u001b[9;26H(items:\u001b[9;34H2)\u001b[10;6H-\u001b[10;8H[\u001b[10;10H]\u001b[10;12Hwhatever\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[4.825195, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[5.079088, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[5.332155, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[5.579252, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[5.832311, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[6.086202, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[6.23899, "o", "\u001b[3;17H1\u001b[4;21H4\u001b[5;9Hother\u001b[5;15H~\u001b[5;17H(items: 3) \u001b[5;31H \u001b[5;35H \u001b[5;40H \u001b[5;44H \u001b[6;9H - [ ] whatever \u001b[7;5H \u001b[7;7H \u001b[7;11H \u001b[8;5H \u001b[8;15H \u001b[8;17H \u001b[8;25H \u001b[9;9H \u001b[9;24H \u001b[9;26H \u001b[9;34H \u001b[10;6H \u001b[10;8H \u001b[10;10H \u001b[10;12H \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[6.492769, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[6.659079, "o", "\u001b[5;1Hsome\u001b[5;6H~\u001b[5;8H(i\u001b[5;11Hems: 0) \u001b[5;25H \u001b[6;1Hsomething ~ (items: 2) \u001b[7;5Helse\u001b[7;10H~\u001b[7;12H(items:\u001b[7;20H0)\u001b[8;5Hthird\u001b[8;11H~\u001b[8;13H(items:\u001b[8;21H0)\u001b[9;1Hwith-something\u001b[9;16H~\u001b[9;18H(items:\u001b[9;26H0)\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[6.912093, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[7.165847, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[7.419294, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[7.67258, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[7.859958, "o", "\u001b[39;1H: \u001b[39;5H \u001b[39;10H \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[7.992475, "o", "\u001b[39;2Hq\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] -[8.095791, "o", "\u001b[?1049l\u001b[?25h"] -[8.097473, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[8.122907, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mhyperlog\u001b[0m \u001b[90mmain\u001b[0m\u001b[38;2;255;153;102m \u001b[0m\u001b[38;2;255;153;102m≡ \u001b[0m\u001b[1;31mrs \u001b[0m\u001b[33m5s\u001b[0m \r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"] -[8.123656, "o", "\u001b[6 q"] -[8.124303, "o", "\u001b[6 q"] -[8.124397, "o", "\u001b[?2004h"] -[9.325871, "o", "\u001b[?2004l\r\r\n"] +{"version": 2, "width": 121, "height": 31, "timestamp": 1715372186, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}} +[0.351906, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[0.428373, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mhyperlog\u001b[0m \u001b[90mmain\u001b[0m\u001b[38;2;255;153;102m \u001b[0m\u001b[1;31mrs \u001b[0m\r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"] +[0.429356, "o", "\u001b[6 q"] +[0.43021, "o", "\u001b[6 q"] +[0.43038, "o", "\u001b[?2004h"] +[2.10749, "o", "e"] +[2.148482, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m"] +[2.148815, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m\u001b[90mxit\u001b[39m\b\b\b"] +[2.343655, "o", "\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mc\u001b[0m\u001b[39m\u001b[39m \u001b[39m \b\b"] +[2.376359, "o", "\u001b[90mho 'F8DF20EEBC764D9CA01861C2414A15DA' | hexdump\u001b[39m\u001b[47D"] +[2.423232, "o", "\b\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mc\u001b[1m\u001b[31mh\u001b[0m\u001b[39m"] +[2.550134, "o", "\b\u001b[1m\u001b[31mh\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"] +[2.555469, "o", "\b\b\b\b\u001b[0m\u001b[32me\u001b[0m\u001b[32mc\u001b[0m\u001b[32mh\u001b[0m\u001b[32mo\u001b[39m"] +[2.634357, "o", "\b\u001b[32mo\u001b[32m \u001b[39m"] +[2.638672, "o", "\b\b\u001b[32mo\u001b[39m\u001b[39m "] +[2.80366, "o", "\u001b[39m\"\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[43D"] +[2.809491, "o", "\b\u001b[33m\"\u001b[39m"] +[2.84011, "o", "\u001b[90m/Users/kah/git/github.com/lunarway/github-actions-runner-controller/.shuttle/temp/gha-runner-scale-set-controller\u001b[90m/\u001b[90mclusterrole-empower.yaml\" | sed -e 's|.*\\(\\.shuttle.*\\)\\..*|\\1|'\u001b[39m\u001b[K\u001b[A\u001b[57D"] +[3.091835, "o", "\b\u001b[33m\"\u001b[33mt\u001b[39m\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[9C"] +[3.239111, "o", "\b\u001b[33mt\u001b[33mr\u001b[39m"] +[3.315074, "o", "\b\u001b[33mr\u001b[33my\u001b[39m"] +[3.500285, "o", "\b\u001b[33my\u001b[33mi\u001b[39m"] +[3.650574, "o", "\b\u001b[33mi\u001b[33mn\u001b[39m"] +[3.735831, "o", "\b\u001b[33mn\u001b[33mg\u001b[39m"] +[3.820511, "o", "\b\u001b[33mg\u001b[33m \u001b[39m"] +[4.09964, "o", "\b\u001b[33m \u001b[33ms\u001b[39m"] +[4.143097, "o", "\b\u001b[33ms\u001b[33mo\u001b[39m"] +[4.26754, "o", "\b\u001b[33mo\u001b[33mm\u001b[39m"] +[4.36346, "o", "\b\u001b[33mm\u001b[33me\u001b[39m"] +[4.445717, "o", "\b\u001b[33me\u001b[33mt\u001b[39m"] +[4.501079, "o", "\b\u001b[33mt\u001b[33mh\u001b[39m"] +[4.651224, "o", "\b\u001b[33mh\u001b[33mi\u001b[39m"] +[4.79623, "o", "\b\u001b[33mi\u001b[33mn\u001b[39m"] +[4.872609, "o", "\b\u001b[33mn\u001b[33mg\u001b[39m"] +[5.098682, "o", "\b\u001b[33mg\u001b[33m\"\u001b[39m"] +[5.374477, "o", "\u001b[?1l\u001b>"] +[5.374783, "o", "\u001b[?2004l"] +[5.381763, "o", "\u001b[0 q"] +[5.382189, "o", "\u001b[1B\r"] +[5.410833, "o", "trying something\r\n"] +[5.410864, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[5.457086, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mhyperlog\u001b[0m \u001b[90mmain\u001b[0m\u001b[38;2;255;153;102m \u001b[0m\u001b[1;31mrs \u001b[0m\r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"] +[5.458107, "o", "\u001b[6 q"] +[5.458919, "o", "\u001b[6 q"] +[5.459083, "o", "\u001b[?2004h"] +[5.670337, "o", "c"] +[5.674705, "o", "\b\u001b[32mc\u001b[39m"] +[5.707867, "o", "\b\u001b[32mc\u001b[39m\u001b[90margo run\u001b[39m\u001b[8D"] +[5.761682, "o", "\b\u001b[32mc\u001b[32ma\u001b[39m"] +[5.767034, "o", "\b\b\u001b[1m\u001b[31mc\u001b[1m\u001b[31ma\u001b[0m\u001b[39m"] +[5.830984, "o", "\b\b\u001b[1m\u001b[31mc\u001b[1m\u001b[31ma\u001b[1m\u001b[31mr\u001b[0m\u001b[39m"] +[6.005118, "o", "\b\u001b[1m\u001b[31mr\u001b[1m\u001b[31mg\u001b[0m\u001b[39m"] +[6.062083, "o", "\b\u001b[1m\u001b[31mg\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"] +[6.066312, "o", "\b\b\b\b\b\u001b[0m\u001b[32mc\u001b[0m\u001b[32ma\u001b[0m\u001b[32mr\u001b[0m\u001b[32mg\u001b[0m\u001b[32mo\u001b[39m"] +[6.188824, "o", "\b\u001b[32mo\u001b[32m \u001b[39m"] +[6.192905, "o", "\b\b\u001b[32mo\u001b[39m\u001b[39m "] +[6.32251, "o", "\u001b[39mr"] +[6.327306, "o", "\b\u001b[4mr\u001b[24m"] +[6.407635, "o", "\b\u001b[4mr\u001b[39m\u001b[4mu\u001b[24m"] +[6.411709, "o", "\b\b\u001b[24mr\u001b[24mu"] +[6.553422, "o", "\u001b[39mn"] +[6.846164, "o", "\u001b[?1l\u001b>"] +[6.846512, "o", "\u001b[?2004l"] +[6.853193, "o", "\u001b[0 q"] +[6.853526, "o", "\r\r\n"] +[7.168475, "o", "\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ratatui::prelude::*`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph.rs:1:5\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse ratatui::prelude::*;\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `MovementGraphItem`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/classic.rs:3:71\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse crate::components::movement_graph::{GraphItemType, MovementGraph, MovementGraphItem};\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b["] +[7.168616, "o", "0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/summarize.rs:49:13\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m49\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut items = if items.len() > 2 {\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_mut)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `depth`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/summarize.rs:113:9\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m"] +[7.168673, "o", "\u001b[38;5;12m113\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m depth: usize,\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_depth`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: method `render_graph` is never used\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/classic.rs:6:8\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mpub trait ClassicRenderGraph {\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m------------------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mmethod in this trait\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m6\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m fn render_graph(&self, items: &[usize]) -> Vec;\u001b[0m\r\n\u001b[0m "] +[7.168725, "o", "\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: constant `green` should have an upper case name\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_graph/summarize.rs:5:7\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mconst green: Color = Color::Rgb(127, 255, 0);\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: convert the identifier to upper case: `GREEN`\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(non_upper_case_globals)]` on by default\u001b[0m\r\n\r\n\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: constant `orange` should have an upper case name\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mcrates/hyperlog-tui/src/components/render_gra"] +[7.168769, "o", "ph/summarize.rs:6:7\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;12m6\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mconst orange: Color = Color::Rgb(255, 165, 0);\u001b[0m\r\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: convert the identifier to upper case: `ORANGE`\u001b[0m\r\n\r\n"] +[7.169291, "o", "\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m:\u001b[0m `hyperlog-tui` (lib) generated 7 warnings (run `cargo fix --lib -p hyperlog-tui` to apply 3 suggestions)\r\n"] +[7.1708, "o", "\u001b[1m\u001b[32m Finished\u001b[0m `dev` profile [unoptimized + debuginfo] target(s) in 0.25s\r\n"] +[7.177539, "o", "\u001b[1m\u001b[32m Running\u001b[0m `target/debug/hyperlog`\r\n"] +[7.570497, "o", "\u001b[?1049h"] +[7.574266, "o", "\u001b[1;1H\u001b[38;5;2mhyperlog\u001b[2;1H\u001b[39m─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\u001b[3;1Ha\u001b[3;3H~\u001b[3;5H(items:\u001b[3;13H3)\u001b[4;5H[\u001b[38;2;127;255;0mx\u001b[39m]\u001b[4;9Halksjdflaksj\u001b[5;5H...\u001b[6;5H[\u001b[6;7H]\u001b[6;9Hc\u001b[8;1H[\u001b[8;3H]\u001b[8;5Halsdjflakjs\u001b[9;1Hb\u001b[9;3H~\u001b[9;5H(items:\u001b[9;13H4)\u001b[10;5Ha\u001b[10;7H~\u001b[10;9H(items:\u001b[10;17H2)\u001b[11;5H...\u001b[12;5H[\u001b[38;2;127;255;0mx\u001b[39m]\u001b[12;9Hsomething\u001b[14;1Hsomething\u001b[14;11H~\u001b[14;13H(items:\u001b[14;21H4)\u001b[15;5H[\u001b[38;2;127;255;0mx\u001b[39m]\u001b[15;9Ha\u001b[16;5H...\u001b[17;5H[\u001b[38;2;127;255;0mx\u001b[39m]\u001b[17;9Hd\u001b[31;2H--\u001b[31;5HVIEW\u001b[31;10H--\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[7.831461, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[8.089975, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[8.348645, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[8.421556, "o", "\u001b[3;1H\u001b[38;2;255;165;0ma ~ (items: 3)\u001b[5;5H\u001b[39m[ ]\u001b[5;9Hb\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[8.680285, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[8.937409, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[8.941439, "o", "\u001b[3;1Ha ~ (items: 3)\u001b[4;5H\u001b[38;2;255;165;0m[x] alksjdflaksj\u001b[8;1H\u001b[39m \u001b[8;3H \u001b[8;5H \u001b[9;1H \u001b[9;3H \u001b[9;5H \u001b[9;13H \u001b[10;5H \u001b[10;7H \u001b[10;9H \u001b[10;17H \u001b[11;5H \u001b[12;5H \u001b[12;9H \u001b[14;1H \u001b[14;11H \u001b[14;13H \u001b[14;21H \u001b[15;5H \u001b[15;9H \u001b[16;5H \u001b[17;5H \u001b[17;9H \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[9.200594, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[9.368271, "o", "\u001b[4;5H[\u001b[38;2;127;255;0mx\u001b[39m] alksjdflaksj\u001b[5;5H\u001b[38;2;255;165;0m[ ] b\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[9.628073, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[9.709102, "o", "\u001b[5;6H\u001b[38;2;255;165;0mx\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[9.971538, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[10.161269, "o", "\u001b[4;5H\u001b[38;2;255;165;0m[x] alksjdflaksj\u001b[5;5H\u001b[39m[\u001b[38;2;127;255;0mx\u001b[39m] b\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[10.420446, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[10.646926, "o", "\u001b[4;5H[\u001b[38;2;127;255;0mx\u001b[39m] alksjdflaksj\u001b[5;5H\u001b[38;2;255;165;0m[x] b\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[10.83944, "o", "\u001b[4;5H\u001b[38;2;255;165;0m[x] alksjdflaksj\u001b[5;5H\u001b[39m[\u001b[38;2;127;255;0mx\u001b[39m] b\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[11.098085, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[11.358744, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[11.421067, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[11.683829, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[11.69419, "o", "\u001b[3;1H\u001b[38;2;255;165;0ma ~ (items: 3)\u001b[4;5H\u001b[39m[\u001b[38;2;127;255;0mx\u001b[39m] alksjdflaksj\u001b[8;1H[\u001b[8;3H]\u001b[8;5Halsdjflakjs\u001b[9;1Hb\u001b[9;3H~\u001b[9;5H(items:\u001b[9;13H4)\u001b[10;5Ha\u001b[10;7H~\u001b[10;9H(items:\u001b[10;17H2)\u001b[11;5H...\u001b[12;5H[\u001b[38;2;127;255;0mx\u001b[39m]\u001b[12;9Hsomething\u001b[14;1Hsomething\u001b[14;11H~\u001b[14;13H(items:\u001b[14;21H4)\u001b[15;5H[\u001b[38;2;127;255;0mx\u001b[39m]\u001b[15;9Ha\u001b[16;5H...\u001b[17;5H[\u001b[38;2;127;255;0mx\u001b[39m]\u001b[17;9Hd\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[11.953488, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[12.213338, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[12.412273, "o", "\u001b[3;1Ha ~ (items: 3)\u001b[4;5H\u001b[38;2;255;165;0m[x] alksjdflaksj\u001b[8;1H\u001b[39m \u001b[8;3H \u001b[8;5H \u001b[9;1H \u001b[9;3H \u001b[9;5H \u001b[9;13H \u001b[10;5H \u001b[10;7H \u001b[10;9H \u001b[10;17H \u001b[11;5H \u001b[12;5H \u001b[12;9H \u001b[14;1H \u001b[14;11H \u001b[14;13H \u001b[14;21H \u001b[15;5H \u001b[15;9H \u001b[16;5H \u001b[17;5H \u001b[17;9H \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[12.67105, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[12.744423, "o", "\u001b[4;5H[\u001b[38;2;127;255;0mx\u001b[39m] alksjdflaksj\u001b[5;5H\u001b[38;2;255;165;0m[x] b\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[12.98176, "o", "\u001b[5;5H[\u001b[38;2;127;255;0mx\u001b[39m] b\u001b[6;5H\u001b[38;2;255;165;0m[ ] c\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[13.245069, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[13.319505, "o", "\u001b[6;6H\u001b[38;2;255;165;0mx\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[13.581362, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[13.797415, "o", "\u001b[6;6H\u001b[38;2;255;165;0m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[14.055626, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[14.08603, "o", "\u001b[5;5H\u001b[38;2;255;165;0m[x] b\u001b[6;5H\u001b[39m[ ] c\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[14.344694, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[14.400828, "o", "\u001b[5;6H\u001b[38;2;255;165;0m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[14.659358, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[14.781342, "o", "\u001b[4;5H\u001b[38;2;255;165;0m[x] alksjdflaksj\u001b[5;5H\u001b[39m[ ] b\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[15.038996, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[15.3, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[15.558937, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[15.665211, "o", "\u001b[31;1H: \u001b[31;5H \u001b[31;10H \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[15.814574, "o", "\u001b[31;2Hq\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"] +[15.954844, "o", "\u001b[?1049l\u001b[?25h"] +[15.95736, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[16.015597, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mhyperlog\u001b[0m \u001b[90mmain\u001b[0m\u001b[38;2;255;153;102m \u001b[0m\u001b[1;31mrs \u001b[0m\u001b[33m9s\u001b[0m \r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"] +[16.016754, "o", "\u001b[6 q"] +[16.017834, "o", "\u001b[6 q"] +[16.018018, "o", "\u001b[?2004h"] +[17.09888, "o", "\u001b[?2004l\r\r\n"]