ZacharyZhang-NY
|
ef33a0d34e
|
T37: programs ask for notifications through OSC 9, 777 and 99, read as Ghostty and kitty read them, OSC 99's chunks gathered by id with base64, options, close, query and alive, and the workspace hears each; OSC 9;4's progress stands as the root record until a program reports through OSC 7501, and again after a full reset
CI / platforms (windows-latest) (push) Successful in 1m39s
CI / platforms (ubuntu-24.04) (push) Successful in 2m31s
CI / macos (push) Successful in 29m38s
|
2026-10-17 01:23:09 -04:00 |
|
ZacharyZhang-NY
|
4a269cb57a
|
T36: review round 1: every pair of a known key is checked before the last of each key wins, a clear's too, so a report that breaks a rule anywhere drops whole; a sequence counts its length from OSC through ST with the controls its body skips; the scanners pass DEL and high bytes by in an escape as vte does, so ESC DEL c resets the records too
CI / platforms (ubuntu-24.04) (push) Successful in 1m6s
CI / platforms (windows-latest) (push) Successful in 1m33s
CI / macos (push) Successful in 14m17s
|
2026-10-17 00:54:03 -04:00 |
|
ZacharyZhang-NY
|
42b272ece6
|
T36: programs report their status through OSC 7501, revision 0.4, checked as the spec checks them; each terminal keeps their records by id, replaced whole, cleared with those under them, 256 at most; a new prompt drops working, blocked and idle, a full reset all; the support query is answered with every state and kind, ahead of a DA1 sent after it; the pty's tests move to their own file
CI / platforms (windows-latest) (push) Successful in 1m31s
CI / platforms (ubuntu-24.04) (push) Successful in 1m46s
CI / macos (push) Successful in 11m59s
|
2026-10-17 00:46:07 -04:00 |
|
ZacharyZhang-NY
|
11ec0effa0
|
T35: review round 3: a program's link target is kept whole, as the scanner keeps it, so a prompt inside a long link is numbered and gives the link back plain at its end, and the tap reads a 517th of its room to hold the growth; an ESC that ends an OSC the parser has goes on at once, so controls after it run where vte runs them
CI / platforms (ubuntu-24.04) (push) Successful in 1m15s
CI / platforms (windows-latest) (push) Successful in 1m45s
CI / macos (push) Successful in 11m49s
|
2026-10-17 00:26:34 -04:00 |
|
ZacharyZhang-NY
|
e2bb615a19
|
T35: review round 2: a program's link inside a prompt keeps its target and carries the prompt's number in its id, and a prompt that starts inside a link left open opens it again with the number, so a prompt all in links still starts on its first row; controls vte runs inside an escape go on before it, so only the ESC waits and a long run of them keeps the pty reading
CI / platforms (ubuntu-24.04) (push) Successful in 1m20s
CI / platforms (windows-latest) (push) Successful in 2m28s
CI / macos (push) Successful in 11m21s
|
2026-10-17 00:17:38 -04:00 |
|
ZacharyZhang-NY
|
310c219386
|
T35: review round 1: the tap holds an OSC that may be a mark until it ends and reads it as the session does, so 133;AB makes no prompt; each prompt's link carries the prompt's number, so a blank row within a prompt keeps one start; a program's own link keeps its cells and a prompt's link takes up again after it; controls vte runs in an escape go on before the link
CI / platforms (ubuntu-24.04) (push) Successful in 1m3s
CI / platforms (windows-latest) (push) Successful in 2m2s
CI / macos (push) Successful in 12m13s
|
2026-10-17 00:03:34 -04:00 |
|
ZacharyZhang-NY
|
15e83f5b7e
|
T35: Cmd-Up and Cmd-Down, Ctrl-Shift-Up and Ctrl-Shift-Down off macOS, jump to the prompt before or after the view's top, as Ghostty jumps: the tap rewrites each OSC 133 mark in place into an OSC 8 link of the terminal's own, which the parser keeps in the prompt's cells through scroll, reflow and history, and links pass over; the tap's OSC scanner ends a body as vte does
CI / platforms (ubuntu-24.04) (push) Successful in 1m4s
CI / platforms (windows-latest) (push) Successful in 1m36s
CI / macos (push) Successful in 11m52s
|
2026-10-16 23:46:58 -04:00 |
|
ZacharyZhang-NY
|
2c25116703
|
T34: review round 3: PowerShell keeps a program's code unless the line surely ends in PowerShell, a cmdlet, a name not found or no command, so a call through a variable keeps it; bash without promptvars, zsh without prompt_percent and PowerShell without PSReadLine say at start what they cannot mark
CI / platforms (ubuntu-24.04) (push) Successful in 1m21s
CI / platforms (windows-latest) (push) Successful in 1m40s
CI / macos (push) Successful in 11m13s
|
2026-10-16 23:28:36 -04:00 |
|
ZacharyZhang-NY
|
d4bc6e69fa
|
T34: review round 2: bash 3.2 drops its DEBUG trap, which ran for key bindings, missed lone subshells and decided commands under extdebug, so it sends no C, and its D comes from the prompt by the command number; PowerShell takes a program's code only when the line's last pipeline ends in it, as its syntax tree and Get-Command name it; each check waits for the prompt before its line, so a repeated status is the line's own
CI / platforms (ubuntu-24.04) (push) Successful in 1m35s
CI / platforms (windows-latest) (push) Successful in 1m41s
CI / macos (push) Successful in 11m11s
|
2026-10-16 23:13:42 -04:00 |
|
ZacharyZhang-NY
|
0a22200725
|
T34: review round 1: PowerShell reads a native program's code only when one ran in the command, by the new object each run stores, and 1 for any other failure; bash 3.2 runs the user's own DEBUG trap after its own and keeps $_, and a line that is only a subshell sends its D from the prompt by the command number; zsh marks the first prompt under a theme that sets PS1 in its own hook, through sched; each shell run gets its own folder
CI / platforms (windows-latest) (push) Successful in 1m55s
CI / platforms (ubuntu-24.04) (push) Successful in 2m50s
CI / macos (push) Successful in 12m29s
|
2026-10-16 22:45:25 -04:00 |
|
ZacharyZhang-NY
|
c53b540f42
|
T34: prompts and commands carry OSC 133 marks: the tap reads every OSC body and hands 133's marks to the session, which keeps its last command's status; zsh, bash, fish and PowerShell mark what the shell leaves unmarked, and the user's prompt still sees the status
CI / platforms (ubuntu-24.04) (push) Successful in 1m2s
CI / macos (push) Successful in 12m10s
CI / platforms (windows-latest) (push) Successful in 1m45s
|
2026-10-16 22:16:50 -04:00 |
|
ZacharyZhang-NY
|
3b5bf46093
|
T32: on Windows herdr's client is sought among the herdr.exe processes at or under the session's shell, none under another herdr, whose server and panes are its own; they are read when that list changes, and a server or a command beside the client is passed by, where round 1 found the server taken for the client
CI / macos (push) Successful in 13m34s
CI / platforms (ubuntu-24.04) (push) Successful in 1m28s
CI / platforms (windows-latest) (push) Successful in 1m54s
|
2026-10-16 16:38:45 -04:00 |
|
ZacharyZhang-NY
|
d7dc1af6b9
|
T32: on Windows the right column follows herdr's focused pane: the herdr.exe nearest under the session's shell, its arguments and variables read through sysinfo, its folder found as herdr finds it there, herdr's named pipe asked as herdr names it; on every system a herdr answer that lands after the shell reported a folder is dropped
CI / platforms (ubuntu-24.04) (push) Successful in 1m11s
CI / platforms (windows-latest) (push) Successful in 1m38s
CI / macos (push) Successful in 13m4s
|
2026-10-16 12:37:09 -04:00 |
|
ZacharyZhang-NY
|
2af45cbfb9
|
T29: the foreground is its group and the executable its leader runs, so exec herdr from a shell is followed and a program that did not read is tried again; a relative herdr socket lies in the client's folder; on Linux an executable an update replaced still names itself herdr
CI / platforms (ubuntu-24.04) (push) Successful in 1m16s
CI / platforms (windows-latest) (push) Successful in 1m26s
CI / macos (push) Successful in 12m16s
|
2026-10-16 03:19:13 -04:00 |
|
ZacharyZhang-NY
|
3e30f95543
|
T29: inside herdr the right column follows herdr's focused pane: herdr keeps its panes' OSC 7, so on macOS and Linux a session that finds herdr's client leading its pty's foreground reads the focused pane's folder from herdr's socket, found as herdr 0.9 finds it
CI / platforms (ubuntu-24.04) (push) Successful in 1m11s
CI / platforms (windows-latest) (push) Successful in 1m40s
CI / macos (push) Successful in 11m13s
|
2026-10-16 02:58:38 -04:00 |
|
ZacharyZhang-NY
|
340c7a92ea
|
T27: on Omarchy 4 an Omarchy theme wears the system's current theme, read from the ghostty.conf Omarchy renders, and follows each switch; it is the default where Omarchy runs, and its card leads the Appearance grid
CI / platforms (ubuntu-24.04) (push) Successful in 1m35s
CI / macos (push) Successful in 11m19s
CI / platforms (windows-latest) (push) Canceled after 0s
|
2026-10-16 00:10:37 -04:00 |
|
ZacharyZhang-NY
|
7bfb462ffa
|
T26: the arrow over the terminal; the settings window drops General, its Shell and Start in leading Terminal, which lists every shortcut from the keymap with a search, and its categories and page are two columns that scroll apart
CI / platforms (ubuntu-24.04) (push) Successful in 1m17s
CI / platforms (windows-latest) (push) Successful in 1m52s
CI / macos (push) Successful in 11m23s
|
2026-10-15 20:08:10 -04:00 |
|
ZacharyZhang-NY
|
90a46257a3
|
T26: on Windows Ctrl-V pastes too, as in Windows Terminal, where shells take it so; on Linux it stays the program's
CI / platforms (ubuntu-24.04) (push) Successful in 1m7s
CI / platforms (windows-latest) (push) Successful in 1m39s
CI / macos (push) Successful in 11m40s
|
2026-10-15 19:24:02 -04:00 |
|
ZacharyZhang-NY
|
09930c2934
|
T23: the owner's checks on macOS: on macOS 27 gpui's Selection material drew no blur, so blur/macos gives the window's effect view underWindowBackground, radius 30; a button at each end of the title bar hides and shows its column, kept in the settings; shot reads an effect view's blur radius; new comments cut to ten words
CI / platforms (ubuntu-24.04) (push) Successful in 2m9s
CI / platforms (windows-latest) (push) Successful in 2m32s
CI / macos (push) Successful in 17m37s
|
2026-10-15 14:42:28 -04:00 |
|
ZacharyZhang-NY
|
be8d0e20c5
|
T23: the shell tests type a line only once the line editor reads raw keys: on CI's pwsh 7.6.6 the probe, typed right after the first folder report, came before PSReadLine's first read and was echoed, never run; shot warns when the app it runs under lacks Screen Recording, which left this Mac's pictures with the window's ground alone; AGENTS.md records the CI runners, the build without debuginfo and the typing rule
CI / platforms (ubuntu-24.04) (push) Successful in 1m14s
CI / platforms (windows-latest) (push) Successful in 2m23s
CI / macos (push) Successful in 10m26s
|
2026-10-15 13:50:09 -04:00 |
|
ZacharyZhang-NY
|
37220a72d4
|
T22: Edit's Copy, Paste and Select All are Ely's text input actions, which Ely a2cb531 exports and the terminal handles too, so the menu reaches find and every field; Select All counts a space under a combining mark as a character; comments cut to one short line; the Ely pin moves to a2cb531; AGENTS.md says gpui draws a shot window only while macOS shows it
CI / platforms (windows-latest) (push) Failing after 7s
CI / macos (push) Failing after 8m50s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-15 10:15:53 -04:00 |
|
ZacharyZhang-NY
|
5ee67bd406
|
T22: the macOS menu bar holds the PRD's menus, each item showing its key; Quit, Select All, Bigger, Smaller, Reset Size and Minimize take Ghostty's keys, Ctrl-Shift off macOS where Ctrl with a letter types a control byte; the font's size moves for every session, unsaved; Select All runs from the first character in the history to the last, as Ghostty's; shot lists the menus and says whether the app was active at each key
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m29s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-15 01:51:46 -04:00 |
|
ZacharyZhang-NY
|
6523632ade
|
pty: when its pty closes, a program that ignores SIGHUP reads EIO on Linux and EOF on macOS; the test reads the shell's own exit, which holds on both
|
2026-10-15 00:42:30 -04:00 |
|
ZacharyZhang-NY
|
c98bbad6e0
|
T19: the main window lets the desktop through while Background opacity is under 1, blurred or clear as Background blur says, set at open and as the settings change; Ely's new ColumnShell::glass grounds every column and the title bar in the palette's glass, which the opacity sets, and the Ely pin moves to it past 27 of Ely's own commits; dialogs stay solid; the terminal paints no second ground; shot names the window's AppKit views
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m32s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 23:27:19 -04:00 |
|
ZacharyZhang-NY
|
ee37018577
|
T17: a font saves, and a settings file starts, only when gpui loads it as the terminal draws it, so the terminal never falls back without a word; numbers save on Enter, on leaving the field and on each step; after a refused change a number field drops its draft and the font picker shows the saved family again
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 9m27s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 22:37:18 -04:00 |
|
ZacharyZhang-NY
|
f2cc16fd94
|
T17: Appearance: every theme as a card over a small window in its colors, a separate dark theme with its own grid, font family, size, line height and ligatures, cursor style and blink over a live prompt, opacity by whole percents, blur, padding; a theme change re-dresses the chrome at once; a change the store refuses says why at the top of the page
CI / platforms (windows-latest) (push) Failing after 9s
CI / macos (push) Failing after 10m6s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 22:14:47 -04:00 |
|
ZacharyZhang-NY
|
9e69288956
|
T16: on Windows a shell named without an extension means its .exe, and one with an extension keeps it; the resolver hands the session its program as UTF-8 text, so a program whose path is not UTF-8 never saves
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 9m40s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 21:53:24 -04:00 |
|
ZacharyZhang-NY
|
3c51b01955
|
T16: a shell saves only when the running user may run it, as access answers, ACLs too, found at a full path or in one of PATH's full folders, never a relative one; a session runs that same full path, so the check and the start agree
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 12m23s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 21:29:54 -04:00 |
|
ZacharyZhang-NY
|
8369d96b36
|
T13: the right column's Git and Files switch, kept in settings; Files shows the shown session's folder as a tree, folders first, Git's marks on names from git status without optional locks, unreadable folders noted; a double press opens a folder, or a file in the system's app; it reloads when the session reports a folder, so at each prompt; a program without shell integration gets a line saying it reports no folder; header controls keep their presses from the header's double-press zoom
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 9m12s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 19:09:21 -04:00 |
|
ZacharyZhang-NY
|
dcf9f7bc27
|
T12: a terminal about to be hidden ends its mouse gesture as releases would: its selection drag ends and its program hears each held button come up
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m33s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 18:19:40 -04:00 |
|
ZacharyZhang-NY
|
39761d9f40
|
T10: a match whose line is kept, grown or cut stays current when held under the same line above or in its place, before a twin line elsewhere
CI / platforms (windows-latest) (push) Failing after 10s
CI / macos (push) Failing after 8m52s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 17:43:36 -04:00 |
|
ZacharyZhang-NY
|
11b2ce6f34
|
T10: following the current match takes one pass: a forward walk maps matches to cells, line ends are found once; the same occurrence ranks by an identical line, then one grown or cut at its end, then by line and column; a cleared or trimmed history moves no line; the title replays on CursorBlinkingChange, which a reset sends in the parser's order, synchronized updates too, and the tap's reset count is gone
CI / platforms (windows-latest) (push) Failing after 9s
CI / macos (push) Failing after 8m27s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 17:30:21 -04:00 |
|
ZacharyZhang-NY
|
1c21dfd197
|
T10: find reads the grid as it shows, through Ely's find_all: combining marks, hidden cells blank, wrapped rows joined, Unicode words; new output, a resize and a settings change search again, and the current match follows its line text; a full reset replays the title through set_options
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m31s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 16:57:09 -04:00 |
|
ZacharyZhang-NY
|
4d8788ff22
|
T10: focus in and out reach a program under mode 1004; the window wears the program's title; a bell is logged and silent; the scrollback setting caps history and trims it live; Cmd-F finds in the scrollback with Ely's FindWidget, matches washed, Enter older, Shift-Enter newer, new output searched again
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m24s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 16:26:20 -04:00 |
|
ZacharyZhang-NY
|
8bb276335e
|
T09: the mouse mode scanner reads controls as vte does: C0 runs and DEL is skipped mid-sequence, CAN and SUB cancel, subparameters count toward its 32 values; a byte-by-byte test against vte's parser; copy on select and OSC 52 primary writes go to Linux's selection
CI / platforms (windows-latest) (push) Failing after 9s
CI / macos (push) Failing after 9m9s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 16:09:28 -04:00 |
|
ZacharyZhang-NY
|
d6fa38e60b
|
T09: the tap holds one mouse tracking and one format as xterm does, any reset ends it; every reported button keeps its release, motion reports the first held; URLs keep combining marks; selections log start, run and end; shot hands real buttons to the view and shows its window without activating
CI / platforms (windows-latest) (push) Failing after 7s
CI / macos (push) Failing after 8m26s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 15:51:44 -04:00 |
|
ZacharyZhang-NY
|
9f81f1f704
|
T09: mouse: selection by cell, word and line, Shift extends; reports for X10, normal, button and any tracking in X10, UTF-8 and SGR bytes, mode 9 followed by the tap; the wheel reports, sends arrows or scrolls history; copy, bracketed paste, copy on select, OSC 52; Cmd-press opens OSC 8 targets and URLs; a release goes out only for a press the terminal saw; shot posts mouse gestures and never activates
CI / platforms (windows-latest) (push) Failing after 7s
CI / macos (push) Failing after 8m50s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 15:32:17 -04:00 |
|
ZacharyZhang-NY
|
11d7a30598
|
T08: Tab and F6 pass Ely's focus keys; each kitty flag reshapes only what it names; Cmd is Super; repeats and Command key-ups come from AppKit; IME commits stay UTF-8, as in kitty and Ghostty; key.zig out; the line rule reads every text file
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 9m0s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 14:59:59 -04:00 |
|
ZacharyZhang-NY
|
25365a98c8
|
T08: keys: xterm and kitty encoding, Option as Alt by side, IME composition at the cursor; shot types real AppKit keys
CI / platforms (windows-latest) (push) Failing after 9s
CI / macos (push) Failing after 8m31s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 14:22:52 -04:00 |
|
ZacharyZhang-NY
|
2804aa6117
|
T07: one coverage per pixel (overlaps cut, strokes as polygons, the cross cut around its first band); a drawn base keeps its geometry under marks
CI / platforms (windows-latest) (push) Failing after 7s
CI / macos (push) Failing after 8m53s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 13:57:47 -04:00 |
|
ZacharyZhang-NY
|
387bfa1c8b
|
T07: box drawing, block elements and powerline shapes painted as geometry, after Ghostty's sprite rules
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m43s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 13:40:22 -04:00 |
|
ZacharyZhang-NY
|
3c8f7460de
|
T06: hidden cells blank, inactive window hollows the cursor, glyphs painted on one baseline with CoreText's upward offsets flipped
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m50s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 13:11:51 -04:00 |
|
ZacharyZhang-NY
|
ae1d8ce746
|
T06: terminal view: frame, colors and styles, wide and combining cells, cursor and blink, font, padding, resize; bundled faces and icon font; shot example
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m31s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 12:59:32 -04:00 |
|
ZacharyZhang-NY
|
c2da9dd667
|
T05: fish search path, PowerShell policy and load failure, encoded OSC 7 paths, kept exit status, install read errors
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 9m9s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 12:39:47 -04:00 |
|
ZacharyZhang-NY
|
dfaf378418
|
T05: shell integration for zsh, bash, fish, PowerShell; installed at start
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m47s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 12:24:31 -04:00 |
|
ZacharyZhang-NY
|
0e7f3095c3
|
T04: close the pty master before reaping, so a program ignoring SIGHUP ends
CI / platforms (windows-latest) (push) Failing after 7s
CI / macos (push) Successful in 10m42s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 12:15:17 -04:00 |
|
ZacharyZhang-NY
|
fff436c8e9
|
T04: own Unix pty so a failed chdir fails the start; closing logs and reaps
CI / platforms (windows-latest) (push) Failing after 7s
CI / macos (push) Successful in 10m0s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 12:08:18 -04:00 |
|
ZacharyZhang-NY
|
96ae85b72c
|
T04: pid on Pty, enter check, one fitted size, folder and exit logs, non-root Linux tests
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Successful in 9m38s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 12:00:18 -04:00 |
|
ZacharyZhang-NY
|
62e50fe83a
|
T04: pty through alacritty's event loop, OSC 7 tap on the reader
CI / platforms (windows-latest) (push) Failing after 9s
CI / macos (push) Successful in 10m6s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
|
2026-10-14 11:51:51 -04:00 |
|