diff --git a/CMakeLists.txt b/CMakeLists.txt index fc9e0e6dc..e061918cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -814,6 +814,12 @@ add_test( COMMAND rgbbg ) LIST(APPEND TESTBINS notcurses-info sgr-direct sgr-full rgb rgbbg) +if(${USE_QRCODEGEN}) +add_test( + NAME qrcode + COMMAND qrcode +) +endif() set_tests_properties( ${TESTBINS} PROPERTIES RUN_SERIAL TRUE ) diff --git a/NEWS.md b/NEWS.md index d78e7d0e6..b6c63645e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,11 @@ rearrangements of Notcurses. * 3.0.2 (2021-12-21) * Added `ncplane_cursor_y()` and `ncplane_cursor_x()`. + * Added `NCOPTION_SCROLLING`, equivalent to calling + `ncplane_set_scrolling(true)` on the standard plane. + * Added `NCOPTION_CLI_MODE`, an alias for the bitwise OR of + `NCOPTION_SCROLLING`, `NCOPTION_NO_CLEAR_BITMAPS`, + `NCOPTION_NO_ALTERNATE_SCREEN`, and `NCOPTION_PRESERVE_CURSOR`. * 3.0.1 (2021-12-14) * Added the `NCPLANE_OPTION_VSCROLL` flag. Creating an `ncplane` with this diff --git a/USAGE.md b/USAGE.md index 8161f1f27..4461a553a 100644 --- a/USAGE.md +++ b/USAGE.md @@ -131,6 +131,16 @@ typedef enum { // eventually preventing Notcurses from processing terminal messages. #define NCOPTION_DRAIN_INPUT 0x0100 +// Prepare the standard plane in scrolling mode, useful for CLIs. This is +// equivalent to calling ncplane_set_scrolling(notcurses_stdplane(nc), true). +#define NCOPTION_SCROLLING 0x0200ull + +// "CLI mode" is just setting these four options. +#define NCOPTION_CLI_MODE (NCOPTION_NO_ALTERNATE_SCREEN \ + |NCOPTION_NO_CLEAR_BITMAPS \ + |NCOPTION_PRESERVE_CURSOR \ + |NCOPTION_SCROLLING) + // Configuration for notcurses_init(). typedef struct notcurses_options { // The name of the terminfo database entry describing this terminal. If NULL, diff --git a/doc/man/man3/notcurses_init.3.md b/doc/man/man3/notcurses_init.3.md index 13cc0f67c..16a13e08c 100644 --- a/doc/man/man3/notcurses_init.3.md +++ b/doc/man/man3/notcurses_init.3.md @@ -20,6 +20,12 @@ notcurses_init - initialize a Notcurses instance #define NCOPTION_NO_ALTERNATE_SCREEN 0x0040ull #define NCOPTION_NO_FONT_CHANGES 0x0080ull #define NCOPTION_DRAIN_INPUT 0x0100ull +#define NCOPTION_SCROLLING 0x0200ull + +#define NCOPTION_CLI_MODE (NCOPTION_NO_ALTERNATE_SCREEN \ + |NCOPTION_NO_CLEAR_BITMAPS \ + |NCOPTION_PRESERVE_CURSOR \ + |NCOPTION_SCROLLING) typedef enum { NCLOGLEVEL_SILENT, // print nothing once fullscreen service begins @@ -170,6 +176,16 @@ zero. The following flags are defined: eventually prevent Notcurses from processing messages from the terminal. It will furthermore avoid wasting time processing useless input. +* **NCOPTION_SCROLLING**: Enable scrolling on the standard plane. This is + equivalent to calling **ncplane_set_scrolling(stdn, true)** on some + standard plane ***stdn***. + +**NCOPTION_CLI_MODE** is provided as an alias for the bitwise OR of +**NCOPTION_SCROLLING**, **NCOPTION_NO_ALTERNATE_SCREEN**, +**NCOPTION_PRESERVE_CURSOR**, and **NCOPTION_NO_CLEAR_BITMAPS**. If +writing a CLI, it is recommended to use **NCOPTION_CLI_MODE** rather +than explicitly listing these options. + **notcurses_default_foreground** returns the default foreground color, if it could be detected. **notcurses_default_background** returns the default background color, if it could be detected. diff --git a/include/notcurses/notcurses.h b/include/notcurses/notcurses.h index 56ca0e30b..5f9103388 100644 --- a/include/notcurses/notcurses.h +++ b/include/notcurses/notcurses.h @@ -964,8 +964,15 @@ typedef enum { // eventually preventing Notcurses from processing terminal messages. #define NCOPTION_DRAIN_INPUT 0x0100ull -// "CLI mode" is just NCOPTION_NO_CLEAR_BITMAPS | NCOPTION_NO_ALTERNATE_SCREEN | -// NCOPTION_PRESERVE_CURSOR, plus enabling scrolling on the standard plane. +// Prepare the standard plane in scrolling mode, useful for CLIs. This is +// equivalent to calling ncplane_set_scrolling(notcurses_stdplane(nc), true). +#define NCOPTION_SCROLLING 0x0200ull + +// "CLI mode" is just setting these four options. +#define NCOPTION_CLI_MODE (NCOPTION_NO_ALTERNATE_SCREEN \ + |NCOPTION_NO_CLEAR_BITMAPS \ + |NCOPTION_PRESERVE_CURSOR \ + |NCOPTION_SCROLLING) // Configuration for notcurses_init(). typedef struct notcurses_options { diff --git a/src/demo/demo.c b/src/demo/demo.c index 401e8e77e..68ca418a3 100644 --- a/src/demo/demo.c +++ b/src/demo/demo.c @@ -122,17 +122,14 @@ static void usage(const char* exe, int status){ FILE* out = status == EXIT_SUCCESS ? stdout : stderr; struct notcurses_options opts = {0}; - opts.flags = NCOPTION_NO_ALTERNATE_SCREEN + opts.flags = NCOPTION_CLI_MODE | NCOPTION_DRAIN_INPUT - | NCOPTION_NO_CLEAR_BITMAPS - | NCOPTION_PRESERVE_CURSOR | NCOPTION_SUPPRESS_BANNERS; struct notcurses* nc = notcurses_init(&opts, out); if(!nc){ exit(status); } struct ncplane* n = notcurses_stdplane(nc); - ncplane_set_scrolling(n, true); ncplane_set_fg_rgb8(n, 0x00, 0xc0, 0xc0); ncplane_putstr(n, "usage: "); ncplane_set_fg_rgb8(n, 0x80, 0xff, 0x80); diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index 24e351d35..3706b3849 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -1140,7 +1140,7 @@ notcurses_early_init(const struct notcurses_options* opts, FILE* fp, unsigned* u } memset(ret, 0, sizeof(*ret)); if(opts){ - if(opts->flags >= (NCOPTION_DRAIN_INPUT << 1u)){ + if(opts->flags >= (NCOPTION_SCROLLING << 1u)){ fprintf(stderr, "warning: unknown Notcurses options %016" PRIu64, opts->flags); } if(opts->termtype){ @@ -1287,6 +1287,9 @@ notcurses* notcurses_core_init(const notcurses_options* opts, FILE* outfp){ logpanic("couldn't create the initial plane (bad margins?)"); goto err; } + if(ret->flags & NCOPTION_SCROLLING){ + ncplane_set_scrolling(ret->stdplane, true); + } reset_term_attributes(&ret->tcache, &ret->rstate.f); const char* cinvis = get_escape(&ret->tcache, ESCAPE_CIVIS); if(cinvis && fbuf_emit(&ret->rstate.f, cinvis) < 0){ diff --git a/src/ls/main.cpp b/src/ls/main.cpp index 1b2d4afae..6a98bfaec 100644 --- a/src/ls/main.cpp +++ b/src/ls/main.cpp @@ -310,9 +310,7 @@ int main(int argc, char* const * argv){ } std::vector threads; struct notcurses_options nopts{}; - nopts.flags |= NCOPTION_PRESERVE_CURSOR - | NCOPTION_NO_ALTERNATE_SCREEN - | NCOPTION_NO_CLEAR_BITMAPS + nopts.flags |= NCOPTION_CLI_MODE | NCOPTION_SUPPRESS_BANNERS | NCOPTION_DRAIN_INPUT; lsContext ctx = { @@ -329,7 +327,6 @@ int main(int argc, char* const * argv){ if((ctx.nc = notcurses_init(&nopts, nullptr)) == nullptr){ return EXIT_FAILURE; } - ncplane_set_scrolling(notcurses_stdplane(ctx.nc), true); keep_working = true; for(auto s = 0u ; s < procs ; ++s){ threads.emplace_back(std::thread(ncls_thread, &ctx)); diff --git a/src/poc/cjkscroll.c b/src/poc/cjkscroll.c index 8cdbe81d0..cc2fe8bb3 100644 --- a/src/poc/cjkscroll.c +++ b/src/poc/cjkscroll.c @@ -6,9 +6,8 @@ int main(void){ setlocale(LC_ALL, ""); notcurses_options nopts = { .flags = NCOPTION_INHIBIT_SETLOCALE - | NCOPTION_NO_ALTERNATE_SCREEN - | NCOPTION_DRAIN_INPUT - | NCOPTION_PRESERVE_CURSOR, + | NCOPTION_CLI_MODE + | NCOPTION_DRAIN_INPUT, }; struct notcurses* nc = notcurses_core_init(&nopts, NULL); if(nc == NULL){ @@ -17,7 +16,6 @@ int main(void){ unsigned dimy, dimx; struct ncplane* n = notcurses_stddim_yx(nc, &dimy, &dimx); wchar_t wc = 0x4e00; - ncplane_set_scrolling(n, true); ncplane_set_styles(n, NCSTYLE_BOLD); ncplane_putstr(n, "This program is *not* indicative of real scrolling speed.\n"); ncplane_set_styles(n, NCSTYLE_NONE); diff --git a/src/poc/cli1.c b/src/poc/cli1.c index a1eb08344..192e8db0c 100644 --- a/src/poc/cli1.c +++ b/src/poc/cli1.c @@ -5,16 +5,13 @@ int main(void){ struct notcurses_options nopts = { - .flags = NCOPTION_PRESERVE_CURSOR | - NCOPTION_NO_CLEAR_BITMAPS | - NCOPTION_NO_ALTERNATE_SCREEN, + .flags = NCOPTION_CLI_MODE, }; struct notcurses* nc = notcurses_init(&nopts, NULL); if(nc == NULL){ return EXIT_FAILURE; } struct ncplane* stdn = notcurses_stdplane(nc); - ncplane_set_scrolling(stdn, true); ncinput ni; do{ if(ncplane_putstr(stdn, "press any key, q to quit\n") < 0){ diff --git a/src/poc/cli2.c b/src/poc/cli2.c index ab0ced275..b97f24b47 100644 --- a/src/poc/cli2.c +++ b/src/poc/cli2.c @@ -2,9 +2,7 @@ int main(void){ struct notcurses_options opts = { - .flags = NCOPTION_NO_ALTERNATE_SCREEN | - NCOPTION_PRESERVE_CURSOR | - NCOPTION_NO_CLEAR_BITMAPS | + .flags = NCOPTION_CLI_MODE | NCOPTION_DRAIN_INPUT, }; struct notcurses* nc = notcurses_init(&opts, NULL); diff --git a/src/poc/cli3.c b/src/poc/cli3.c index 71925fddb..28a9528de 100644 --- a/src/poc/cli3.c +++ b/src/poc/cli3.c @@ -1,6 +1,7 @@ #include int main(void){ + // explicitly want alternate screen, so no NCOPTION_CLI_MODE struct notcurses_options opts = { .flags = NCOPTION_PRESERVE_CURSOR | NCOPTION_NO_CLEAR_BITMAPS | diff --git a/src/poc/fbconscroll.c b/src/poc/fbconscroll.c index 1fe6d38be..5159034bb 100644 --- a/src/poc/fbconscroll.c +++ b/src/poc/fbconscroll.c @@ -14,11 +14,9 @@ int main(int argc, char** argv){ } } struct notcurses_options nopts = { - .flags = NCOPTION_NO_ALTERNATE_SCREEN - | NCOPTION_NO_CLEAR_BITMAPS + .flags = NCOPTION_CLI_MODE | NCOPTION_SUPPRESS_BANNERS | NCOPTION_NO_FONT_CHANGES - | NCOPTION_PRESERVE_CURSOR | NCOPTION_DRAIN_INPUT, }; struct notcurses* nc = notcurses_init(&nopts, NULL); @@ -27,7 +25,6 @@ int main(int argc, char** argv){ } unsigned dimy, dimx; struct ncplane* n = notcurses_stddim_yx(nc, &dimy, &dimx); - ncplane_set_scrolling(n, true); for(int i = 0 ; i < rows ; ++i){ int r; if((r = ncplane_putchar(n, '\n')) != 0){ diff --git a/src/poc/grid.c b/src/poc/grid.c index 7ea1c113c..a35b583c1 100644 --- a/src/poc/grid.c +++ b/src/poc/grid.c @@ -63,11 +63,9 @@ draw_grid(struct ncplane* stdn){ int main(void){ struct notcurses_options opts = { - .flags = NCOPTION_NO_ALTERNATE_SCREEN | - NCOPTION_DRAIN_INPUT | - NCOPTION_NO_CLEAR_BITMAPS | + .flags = NCOPTION_CLI_MODE | NCOPTION_SUPPRESS_BANNERS | - NCOPTION_PRESERVE_CURSOR, + NCOPTION_DRAIN_INPUT, // .loglevel = NCLOGLEVEL_TRACE, }; struct notcurses* nc = notcurses_init(&opts, NULL); diff --git a/src/poc/procroller.c b/src/poc/procroller.c index 86b489f23..aa0a032e2 100644 --- a/src/poc/procroller.c +++ b/src/poc/procroller.c @@ -44,7 +44,8 @@ int main(int argc, char** argv){ setlocale(LC_ALL, ""); notcurses_options opts = { .flags = NCOPTION_INHIBIT_SETLOCALE - | NCOPTION_SUPPRESS_BANNERS, + | NCOPTION_SUPPRESS_BANNERS + | NCOPTION_DRAIN_INPUT, }; struct notcurses* nc = notcurses_core_init(&opts, NULL); if(nc == NULL){ diff --git a/src/poc/scroll.c b/src/poc/scroll.c index 135fe2e04..e45ce56b9 100644 --- a/src/poc/scroll.c +++ b/src/poc/scroll.c @@ -6,8 +6,7 @@ int main(void){ setlocale(LC_ALL, ""); struct notcurses_options opts = { .flags = NCOPTION_INHIBIT_SETLOCALE - | NCOPTION_NO_ALTERNATE_SCREEN - | NCOPTION_PRESERVE_CURSOR + | NCOPTION_CLI_MODE | NCOPTION_DRAIN_INPUT, }; struct notcurses* nc = notcurses_core_init(&opts, NULL); @@ -17,7 +16,6 @@ int main(void){ unsigned dimy, dimx; struct ncplane* n = notcurses_stddim_yx(nc, &dimy, &dimx); char c = 'A'; - ncplane_set_scrolling(n, true); ncplane_set_styles(n, NCSTYLE_BOLD); ncplane_putstr(n, "This program is *not* indicative of real scrolling speed.\n"); ncplane_set_styles(n, NCSTYLE_NONE); diff --git a/src/poc/sgr-full.c b/src/poc/sgr-full.c index 63fb47624..c21a7a0dd 100644 --- a/src/poc/sgr-full.c +++ b/src/poc/sgr-full.c @@ -4,9 +4,8 @@ int main(void){ struct notcurses_options nopts = { - .flags = NCOPTION_NO_ALTERNATE_SCREEN + .flags = NCOPTION_CLI_MODE | NCOPTION_SUPPRESS_BANNERS - | NCOPTION_PRESERVE_CURSOR | NCOPTION_DRAIN_INPUT, }; struct notcurses* nc = notcurses_core_init(&nopts, NULL); @@ -15,7 +14,6 @@ int main(void){ } unsigned dimy, dimx; struct ncplane* n = notcurses_stddim_yx(nc, &dimy, &dimx); - ncplane_set_scrolling(n, true); // FIXME do full permutations? ncplane_set_styles(n, NCSTYLE_NONE); ncplane_putstr(n, "a ═ none\n"); diff --git a/src/poc/zalgo.c b/src/poc/zalgo.c index 1a3959931..1b3aa9a14 100644 --- a/src/poc/zalgo.c +++ b/src/poc/zalgo.c @@ -1,32 +1,30 @@ #include +#include #include int main(void){ struct notcurses_options nops = { - .flags = NCOPTION_NO_ALTERNATE_SCREEN - | NCOPTION_SUPPRESS_BANNERS - | NCOPTION_DRAIN_INPUT, + .flags = NCOPTION_CLI_MODE | NCOPTION_DRAIN_INPUT, }; struct notcurses* nc = notcurses_core_init(&nops, NULL); if(nc == NULL){ return EXIT_FAILURE; } struct ncplane* n = notcurses_stdplane(nc); - const int y = 10; - ncplane_set_scrolling(n, true); - ncplane_putstr_aligned(n, y + 0, NCALIGN_CENTER, "Pack my box with five dozen liquor jugs\n"); - ncplane_putstr_aligned(n, y + 1, NCALIGN_CENTER, "sɓnɾ ɹonbıl uǝzop ǝʌıɟ ɥʇıʍ xoq ʎɯ ʞɔɐԀ\n"); - ncplane_putstr_aligned(n, y + 2, NCALIGN_CENTER, "ꙅǫuꞁ ɿoupi| ᴎɘƹob ɘviᎸ ʜƚiw xod ʏm ʞɔɒꟼ\n"); - ncplane_putstr_aligned(n, y + 3, NCALIGN_CENTER, "P̸̯̼͙̻̲͚̜͚͈̩̎͠a̶̯̳̱̟͚͇̩̯̬͂̒̒̌̅͊̽̿͗̈́͘͝ͅć̸̮̦̩̭͓̫̟̹̆͂͒̓͆̈̅̀͐̿̚ͅk̶̡̻̜̼̙͍̥̗̯̠̜͓̪̽ ̷̮͚̺͎̗̂̈́̿̑͝m̴̩͍̺̟͓̼͓͇̟̙͂̏̈́͆̎́̐̐̽̕̚͘͜ͅy̵̧̻̗̦̯̱̬̤͈̦̺͗̓͛ ̵̣̤͕͙̟͛͌͑̉͘͝b̵̨̡̨̯̞̘͕̰̙̬̳͇̮͖̹͗o̶̻̫͑̎͑̽̈́̚̚̕ͅx̵̢̦̗̳̝̻̗̟̘̻̼͚̰̓̇̓͛̀ ̸͈̜͙́̍͂̅̃̿͘w̵̧̪̻̤̮̑͊͌̈́͋́̔͂̑̌͑͋̇͂ḯ̴̺͛̒̔̏́̅̓̾̔̊̆͗͠͝t̷̢̛̟͉͕̗̙̭̖͈̼̂̎́͌͜͝h̸̢̨̜̤̗͎̳̖͙̺̹̭̘̞̀̀̓̊̐̀͐̈́̀̿͆̔̄͝ͅ ̴̹̙̜̥͕͖͑́͛̈́̄̈́̿̕f̶̡̢̳̗͉̩͖̹͚̗̩̰͖̀̂͗͌̑i̴̧̝̰͎͕̣͓͓̋͒̇̀̾͐̃̚̕v̵̛̠̩̪̻̟͕̭͕̗̲̼̽͗͐̄̈́̾͂̍̔̎͌̌͘͝e̵̢̤͇̪̻͚̜͉̻͉̝͙͗̀̃̐͋̌̋̌̈́̅̈̌̉͘͜ ̶̡̢̭͙̤͑̑͂̐͛̑̍͑͌̀͛d̴̨̧͍̫͔͔̫̻̗̙͖̞̱͆̒͂̈̐͑̕̚͠͝ó̸̰̠̦̦̞̼̘͔̥͎͕̦̯̑̀̇̈́̎̄͘z̴̡̧̡̦̦̙̞̪̣̤͕̫̳̈̉͌̃͌͛̀͌̎̃̌͒͜͝ȩ̷̻͖̥̬̹̖̫͛͐̍̂̾̀͑͊̎̀̊̏̕ͅn̵̢̢̧͚̜͉̯̲͕̒͊̒͌͋͗̓́͂͝ ̵̡̧̨̛̛͓͚̘̺̲̺̻̻̫̾̄̒̑̄̄̏̇̍̽͜l̴̗̩͍̰̇i̴̡̭̳͉̘̩͚̽̏̿̈̔́̂̈́̊͝q̷̫͚̌̅̈́̓̐̎ů̶̢͈̪͔̅̓̀̓̓̈͆̍͋͋̉͝͠ǫ̵̻͠r̵̰̯̠̟̬͖̳͔̚ͅ ̶̡̣̭̥̻̭͙͎̰̜̥̜̊j̷̧̡̟̝̼̞̭͙͈̘̇̾̽͊̄̈̍͗͒͑͜u̷̡̪̤̖̣̰͈̽̀̚͜g̸̨̢̧̳̙̝̠̩̜̻͙̘̪̞̈́͐̈́̇̆̎̈ͅs̶̫͑͂̂͛̋̇̅̒͝.̴͈̖̮̪̮͓̹̈̐̇̓̇͝\n"); - ncplane_putstr_aligned(n, y + 4, NCALIGN_CENTER, "Ⓟⓐⓒⓚ ⓜⓨ ⓑⓞⓧ ⓦⓘⓣⓗ ⓕⓘⓥⓔ ⓓⓞⓩⓔⓝ ⓛⓘⓠⓤⓞⓡ ⓙⓤⓖⓢ\n"); - ncplane_putstr_aligned(n, y + 5, NCALIGN_CENTER, "φąçҟ ʍվ ҍօ× աìէհ ƒìѵҽ ժօՀҽղ Ӏìզմօɾ ʝմցʂ\n"); - ncplane_putstr_aligned(n, y + 6, NCALIGN_CENTER, "P⃞a⃞c⃞k⃞m⃞y⃞b⃞o⃞x⃞w⃞i⃞t⃞h⃞f⃞i⃞v⃞e⃞d⃞o⃞z⃞e⃞n⃞l⃞i⃞q⃞u⃞o⃞r⃞j⃞u⃞g⃞s⃞.⃞\n"); - ncplane_putstr_aligned(n, y + 7, NCALIGN_CENTER, "P⃣a⃣c⃣k⃣m⃣y⃣b⃣o⃣x⃣w⃣i⃣t⃣h⃣f⃣i⃣v⃣e⃣d⃣o⃣z⃣e⃣n⃣l⃣i⃣q⃣u⃣o⃣r⃣j⃣u⃣g⃣s⃣.⃣\n"); - ncplane_putstr_aligned(n, y + 8, NCALIGN_CENTER, "ᴘᴀᴄᴋ ᴍʏ ʙᴏx ᴡɪᴛʜ ꜰɪᴠᴇ ᴅᴏᴢᴇɴ ʟɪQᴜᴏʀ ᴊᴜɢꜱ\n"); - ncplane_putstr_aligned(n, y + 9, NCALIGN_CENTER, "🅝🅔🅖🅐🅣🅘🅥🅔 🅒🅘🅡🅒🅛🅔🅢 🅐🅡🅔 🅐🅛🅢🅞 🅐🅥🅐🅘🅛🅐🅑🅛🅔 \n"); - ncplane_putstr_aligned(n, y + 10, NCALIGN_CENTER, "🄴 🅂 🄲 🄷 🄴 🅆 🄲 🄸 🅁 🄲 🄻 🄴 🅂 🄶 🄴 🅃 🅂 🅀 🅄 🄰 🅁 🄴 🅂 \n"); - ncplane_putstr_aligned(n, y + 11, NCALIGN_CENTER, "🅰 🅱🅴🅰🆄🆃🅸🅵🆄🅻 🆄🆂🅴 🅾🅵 🅽🅴🅶🅰🆃🅸🆅🅴 🆂🆀🆄🅰🆁🅴🆂\n"); - ncplane_putstr_aligned(n, y + 14, NCALIGN_CENTER, "į̵̢̡̢̨̨̛͈̤͇̭͈̣̗̮̫̫̰̤̳̘̞̥̟͙̞̥͉̳̜̫̣̯̗̠͖̲̪̘̟͉͖̜͔̪͈̜̼̩̥̗͔̭͔̠̺̫̺̦͇̐͛̉̃͒̿̒͆̅̐̆͆͌͋̎̈́̓̔̓͌̌̀̽̾̈́̄̈́̇̒̀͆͆͌̄́̎̋̑̀͊̐̆̚̚̚̚͜͜͜͝͠͠͝ͅͅn̵̡̢̧̧̧̢̢̛̛̙̩͈̦̠̳̜͖̤͍̻̹̼̯̦̦̰͕͈͈̖̬̣̦͓̳̣̮͙͓̣͖̲͉̭̞̤̞͙̝̝͔͓̗͓̣͙͕̲̩̠̬̑̊̈̐͛͒̎̐͒̓̆̌͊̅̿̂͛̈́̈́́̉̽̔̓̔̎̈̿͒̃̊̾̏̇̈́̋́͆̐̈́͛̔̓̄̀͋̊̃͛͑̋͂̔̈̐͐͐̆̇͌̓́́̿́̍̈́̈́̈́͋̄͆̈͛͂̇͗̅̓̀̈́̂͂̆̃̈́̈́̓̓̐̔̌̍̋͐̚̕̚͘͘͘͘̚̚͘͘͜͝͝͝͝͠͝e̶̡̨̨̧̨̨̨̧̦͇̖͔̫̹̺̺̯͈̺̫̗͈̲͕̮͈͓̭̱͔͈͚̬̰̜͇̼̙̰̣͎͕̠̥̯̖̣̬̗͎̓͑͌̊̇͆͐͑̂̎͋̑͐̀̅̂͌̽̉̊̀͌̓̈́̀͛̐́̋̈͑͆̐̑̉̐̍́̈́̅̿͒̕̕̚͜͜͝͝͠ļ̷̢̨̢̢̡̡̣͕͈̩͔̻̬̻͙͙̩̲͇͈̥͎̖̻͖̮̪̞̠̹͍̙͖̳̱͓̘͖̱̱͕̯̰͙̝̣͕̭̮̿̑͘͜͜͜ự̴̡̡̨̨̢̨̨̤͈̝̟̣̠͖̗͙̗̖̦̯͍̘̟͎̝͔͙̗͎̟̺̣͖̝̩̜̜̖̳̹͍̦̩͔̜̘̲͈̮̠͚̭̭̜͉̘̫̰̺̫͖̗̦̮͓̗̻̖͍̥̤͎͖̣̻̝͚͙̤̥͎̖̯͙̯̫̘̜̘̤̠̯͖͉͍̎̈͐̄̊̈̊̌͑̎͂͒͌́̃͐̐̉͗̽̀͂̃̒͋̂̀̊̉́̃̄̄̍̆́̑͑̇̇̾́̊̂͊̐͑̾̀͊̒̓́̂̐̄͋̀̈́̅̏̒̎̊̒͂͐̑͐̉́̄̂̀̕̕͘̕̕͘̕̕̕͜͜͝͝͝͝͝͝͠͝ć̵̡̨̨̢̢̛̛͔̩̦͓̥̠̜̳̯̮̩̜̖͖̘̜̖͖̖̳̹̲̻̯̬̪̰̭͇̮͉̳͉̬̬͇͉̟̲̞̱̯̖̗̞͚͎͓͔͍͈̲͇̳͈̦̠͚̲͎̦͙̰̲̬̝̞̟̪͈̘̖̦̩̝̩͕͈̦̯͙̞̖̥̺̝̗̔͊̂̈́́̿̾̾͛̈͐̔̉̈͐̈́̈̉͑̃̂͋́̆̓̒̈̈̉͛̏̅͌͌̆̓́͊̂̾̈̚͘͘͜͜͜͝͠͝͠͠͠͝͠ͅͅͅt̶̡̡̧̛̛̮̘̹̼̺̹͓̠͖̳̺̹̘̥͙͇̪̩͇̖̦̾͐̍̇͊̅̅̇̀̂̏̀̆̑͗̑͆͊̾̎͗̋̊̇̒͛̀̇͂̒͆̀̊̽̑̀̐̅̔̅̀̋͆͐̋́͆̒̓̐͐́͂̐̋̇̿̑͆̅͑͐́̄́̈́̌̈́͋̄̎͌̈́̅̍̎̓̑̕̚͘̚̚͜͠͠͝͝͠͝ͅą̵̧̛̛͎͕̯̪͚̫̟̺͚̱͎͚̹̟̖̦̼͍̦͙̹̹̰̫̤̯͚̠̼͉̭̳̓͗̈́̎̀̇͌͌͌̐̌̀̾̀̈̍̾̓̀͌͑̔̆̋̇̇̈́̔̌̈́̐͒͌̒̐̋̅̀̉͆̒̓̀͌̒̒͋̐̀̒̇̉̅̏̾̕͘̕͝͝͠͝ͅͅb̷̧̧̡̢̨̧̡̡̛̛̛͈̩̰͖̰̹̯̪͍̯͉͙̺̬̝̟̥̜͙̙͕͇̗̪̬̣̙͕̙̙͉͔̦̦̼̜̳̤̺͕͇̠̲̘̼̲̦̺̝̪̲̣̠̪̮͉̮͙̥̤̫̫͉͍̤͍͙̺̩̫̜͚̞̫̺͍̺̣͍̥̠͓̯̳̳̖̟͉̄̏͛̆͊͆͆̆̐̀̏̎̊͆̾͋̇͑̓̒͑̂͛́͊͗̇̔̾͆͂̒̃͋͊̊̆̀̈̊̌͗̈̿̄̀́̌̌̑͐͂̈́̇͛̒̏̒̋̅̆̈̽̽̅̐͊͆̿̐̌̈̂̓͌̀̋͛͛̎͒͒͋̏̐̀̒̇̀̐́̕͘̕͜͜͜͜͜͝͝͝͠͠͝͠͝ͅl̴̨̨̢̨̨̢̧̨̧̨͍͕̟̲͙̺̯̹̺̟̼̜͍̙̣̼̬̺͕͚̤̙͍͓̳̘͍̠̙͍͎̝̮͍̤̰̩̯̦̠̦̻̣̜͎͉͓͎̦̝̖̲͚̦͓̭̩͉͖̘̟̪͔͎̪̰͓͔̟̬͂̌̈̉͋͘ͅͅͅê̸̡̨̧̧̧̡̧̧̨̧̛̛̝͕̪̲̟̣͍̹̻̠̥̟̯͔̻̗̙̳̺͍̗̬̥̼͕͖͈͔̝̩͙͔̜̩̫͕̠͇͔͍̥͚͕͉̬̩̫̟͉̝̭̖̳̳̰̘͙͓̙͍̙̞̣̖̝̦̰̰̺̰̺̖̦̝͈̲͈̗̬̦̺̹͎̯̭̟̺̯̠̬̮̝̰͙̗͎͈͔̮̲̯̩̪͈͙̲̪̱̦̩̘̲̈̋̒̉̑̈́̍̀̄̇̓́̓̾̌̒̏͌͒̂͆̆̈́́͐̾̈́͌̍͌̉̐̐̑̇̽̑̋̆͗̑̆̌͂͛̑́̒̅̌̌̀͗͂̅̎̋̈́̅͑̌̄̃̾̎͌͒͑͊̍̂̾͋̉̒̋̃̒̑̈͋̊̒͆̏̎̊̃̕̚̚̕͘̕͘͘̚͜͜͠͠͝͝͝͝͝͝͠͠͝ͅͅͅͅͅ ̷̧̡̢̡̧̢̧̧̡̨̖̤̺̤̮̗̭̬̰̰̟̳͚̱̩͍̱̰̩̠̮͕͓̣̺̳͈͔̟̳̣͈̱̰̬̞̖̦͔̼̹̥͖͈͚̩̼͖̬̞̩͎͇̞̬̯̟͕̞̗͖̘̙͖̞͓̜̭͖̹̱̙̖͔̭̲̻̘͚͇͍̱̹͇̱̬̘̲͕̝̗̳̰͖̮̞͉̗̝͖̥̹̣̣̬̠̘̦͚̫̜̻̱̌̀͂̃̑̓̄̈́͐̌͒̐́͑̂̇͋͗́́͗̍͊̐͑̾͂̍̈́̏̈́́̑̌̓̎̈́̐̑͗̊̇̈́͂̚͘̚͜͜͝͝͝͝͝͝ͅͅͅm̷̢̡̛̛͚̹̻̮̘̤̩̬͙͎̈́̿̂̍͂̽̀͒͌́̃͑̓̿̉̀͑̈̓͒͘̕͝͝͝͠ͅǫ̶̢̢̢̨̼͇̗͕͖͚̤̤̰̰̯̜͕͍̠̳̰͕̣͍̱̞̮̠̳̤̭̰̫͖̘͉̠̝̹̩̳̳̱͔͍̲̪̱͔̫̠͑́͋́́̓̀͋̈́̍̉̅̾́͘͘͜͜͠ḑ̸̢̨̡̛̛͍̞͉̝̖͓̝̳̝̲͈̗̼͖̤̯͈̮̮͇̹̲̰̟͎̼̏͂́̃̈̀̾̅̊̍̒͛̓̒̆̀͐͗̍̆͛͊̂͗̃́̓͑̃̇͒͌͛̆̋̈́̑̕͝ͅą̸̛̛̗̠̙̳̣̯͇̙̯̰̊͒̆̔͛͌̄̓̒͐̑̏̃̊̏͌͊͑̒̂̂͂̈́̐̎̂̀͒̓̅̈́͊́́̒̾̑̒̒̉͛́̃̔̈̀̍͋͑̓͆̂̿̽̏́͑͂̀̍̀̓̒͛̊̋̈̑̎̅̀̉̑̈́͑̓̐͑̾̃̒͊̉̒̓̌̀͑̍͑̾͊̿͌̔̏͗͗̈́͘͘͘̚̕͘̕͘̕͘͠͠͝ͅĺ̴̨̨̡̧̡̧̨̧̡̡̢̡͖͔̗̮͓̼̗͈͔̳̬̞̺͙̩̣̩̥͎̙̭̯̖̪̫͎͇̪̯̬̠͓͖̣͇͍̮̮͈̟̫͚͉̻͈̖̗̠̙̝͙̠̰͚̱̲̤̺̪̭̫̱̫̠̞͓̹̮̖̘̣̓̿́̌͂̀̇͐̈́̾̀̂̍͆͛͗͊̈́̀̈́͑̎͋̒͒̕̚̕̚̕͜͠͠͠ͅͅi̴̧̨̢̝͎͇̠̭̟͇̭͙͚̳̭̘͈̟͓͈̥̭͚͈͍̲̲͔̤͉͈̎̈͂͆̀͛͋͊̏͊͗͋̓̐̉̆̒̈́͊̏̈͋́̓̿̾͛̒̓̅͛̚̕͜͜͝͠͝ͅͅṯ̶̡̛̪͚̮̩̤̗͇̗͍̩̬̲͔͙̼̯͉͓̃̐̽̐̌͂̑͊͊͝y̷̨̡̧̢̧̧̧̧̡̡̨̧͈̫͉̟̠̘̜̟̜̻̭̜̦̻̺̮͖̫̺͙̰̟̥̱̝̤̘͙̳̜͔̼̹̹͉̳̰̻̳̩̻̺̫͈̼̘͉͓͎̙͔̣̥̪̺͎̙̹͕͇̖̤̗͙͈͉̭̦̺͈̞̼̗̜̯̞̠̬̱̼͈͇̖̬͕͕̬̮͖̤̜͔͙̻̤͈͓̣̖͓̘̘̬̳̻̜̲̳̏̄̂̈́̒̃̎̇̏͆͊̓̎́̓͛̄͆̃͆̈́́͊̋̈́̾̈͒̍͊̔̆̉̏͐̿͆̂̊̀̌̀̽̆̋̓́͆̓̈́̚͘͜͜͜͝ͅͅͅͅͅ ̴̢̧̧̨̢̨̡̡̨̢̨̛̛̛̥͓̬͍̭̫̬̬̱̩͇̱̗͚̲̘͉̘͇͓̮͇̹̱̠͖̦͈̟̮̬̦̝͚͙̝̠͖̞̖̱̥̜̯̼͓̫̹͖̘͓̣͎̱̘̰̦̺̪͙̜͓̼͚̺̖̞̻͈͚̲͙̗͈̱̯̘͈̟̞̞͈̬̤̦̹̹̿̐̅́͛̒͐͋́̓̊̊̋̊͐̈́̇̍͒̑̎̿̀͑̉͒̾̀̈̈́̂̐͋͑͗̓͒̑̔̌̏͒̑̓͒̏͌̀͌̋̂̇̓̈͗̓͛̉͑͗͒̾̐͊̏̈́̅́̈̾͋̐͂̽̈̏̐̀̆̃͗̓̚̕̕̕̚̚͝͝͝͝ͅǫ̵̢̡̨̡̨̡̨̤̤̖͕̠̥̰̠̩̙̰̮̜̘̪̭̭̯̺̭͚͙̞̜̪̰͚̘̭̻͓͈̺͉̯͔͖̯̠̭̰̫̲͈̦̖͖̪̣̰͖͎̙͚̙̹̰̬̜̲̱̘̘̪̭̣̻̫͓̼̦̦̘̩̥̱̣̺̌̇͒̊̃̐̾̍̈́̅̉̊͐͒̀͆̉̀̇͊̕̕͜͜͝ͅͅͅͅͅͅͅf̷̨̨̧̨̢̢̨̧̛̮̖̝͎̻̟̦̗͕͍̻̫̤̰̣̜̮͙̱̝̮͈̫̯̣̻̪͚̘͍͈̝̱̞͚͔̣̗̱̳̰̣̦̘̦̮̞̬̗͈̘̤̦̞̞̱̠̹̖̣̰̦̦͍̙̫̲̮̲͇̼̗͓̹̹͓̬̩͍̦͍̆͊̀̆͂͑̾̔̎̎̿͂̀̐̈́̈̇͒̔̋̇̒͆̏̋͋͒͊̏̉̏̎͛̋̔͐̈̈́̿͋̽̀̈́͗͒̑̽͋̏̅̌̇̓͑̅̿͐̂͆͆̃̈̈́̌̈́̆̌̋̎̀̾͆͂̿̃̃̐͒͌̃́̑̐̽́̐̔̔̅̄͘̚̚͘̚͘̚͘͜͜͝͝͝͠͠͝͝͠͠ ̷̡̡̨̨̧̛̛̱̼̜͙̜͔̠̹̺̞̰̞̟̘͚̣̮̼̞̙̘̱͔̖̬͈͖͇̳̪͚̩̰̠̦͖̫͖͈̗͍̩̤̂̆̂͂̓̾̑̉́̏͊́̉͗͌͆̒̑̅̓̅̑͛͐̌̅͑̍̋͛͒̆͆̐̇̒̌́͐̔̐͂̽̋̋̐̾̆̆̀̋̈́̆̔̀̎͐̄̌̀̈͑̂͛̈́͐̈́͋̽͊͑̔̀͛͑͑̐̎͋̾̓͗̍͋̏̈́͛̂͒̉̅̊̂̆͂́̅͑̾͆̈́̇̆̑͋̐̋̚̚̚̚͘͘̚̚̕͘͠͝͝͝͝͝͝͝͝͝ͅt̸̨̛̛̛̛̙͕̪̬̣͚̩͕̺̯̹͂̿̃̊̔̇̄̌̉̒̆͐̈́̌͐̓̿͊͊͆̈́̄̌͂̓̅̐̓̐͒̍̽̓͊̄̏͌́̃̓̉́̀̈̿̓͌̆̅̎̇͒͐̀͗̉̀͂̏̓̀̈́͑͐̾̿̌̉̔̓͌͛̈͌́̊̕̕̚̕̕̕͘̚͠͝͝͠͝͝͝͝͝͠h̴̡̨̡̨̧̛̛̛̳͙̳̦͚̫̟̰͔̘̼̣̳̲̯͍̮͚̝͔̠͔͓̥̫̜̩̟̝͖̼͉͎̹̲̤̝̤̠̤̮͖͙͉̫̦̖͇̤̝̼̝̖̲̠̥̦͍͈͇̼͇̙̟̱͕̦̘͍͕̗̩͇͚̩͙̻̣͙̥͕͎̬̙̙̰͇͕͎͎̹̼̭̘̠̟̲͇̟͖͂̋̏̅̔̏͋̇̀͐̅͂̿̍̒͛́̾͗̑͂͊͂̀̋̓̀̓̽̔̋̐̈̓̀͑̑̒̒̍͑͌͌̎́͛̄͛͛̅́͗̿̚̚̕͘̚͜͝͝͝͝ͅͅę̶̢̡̨̡̧̨̢̢̛̛̛̛̛͉̬̜̘̪͕̪̖͚͚̝̜̜̩̹̗̰̫̼͕̼̰͔̞̤̬̞͓̖͙͙̣̰̭̹̫̬̘̯̭̟͖͉̖̰̗̮̯̭̿͒͒̌͐͛͒̿̋̐͂͌̾̾̀̉͆̾̆̇͋̒̿͂͐̍̄̽͌͆̏̉̐̈́̿̎̒̃̉̀͌̉̈́͌͊̇̒̔͌̈́̆̆̌̅̈͛͆͆̋̓̀͋̓̓̔͛́̃̾͛̂͊͂͑̐̑͑̉̐̂̊̒̕͘̕͘̕͘̚͘͜͜͝͝͝͝͠͠ͅ ̶̡̧̨̧̧̧̨̧̡̨̧̺̯͍͖̺̟̖͇̜͚̟̪̟̤̠̭͓͇̩͉̯̮͉͚͓̯̼̝̘͕͕͔͈͉̱̠̱͇̞̗̠̱̪̟̯͔͖͓̺̫̪̠͉̺͕̟̮̲̰͔̻̮͓͈̮̭̥̱͇̰͈̟̮̥̣̭̯̹̑̈́̿̅̾̃̄͆̆̉̔̂͗͐̒̄̈̈̋̈͊̾̀̓̾̒͘͜͠͝͝v̴̨̡̡̧̨̨̧̛̛̛̛̻͕͔̠͚͎̱̪̮͓̘̟͓͚̜̯͚̼͉͉̯̖͓͖̖̪̹͖̱̝̫̜̖̠̙̺̳͇̭͈̯̹̺̮̝̲͎̮̮̦͓͈͍̳̫̞͓͉̰̺͇̻̩̗̩̞̺̻̬̬̮͈̗͇͉̝͔̺̖̲͉̭͎̞̣̈́̎͊͗̾̌̅͋́̀̍̓͆̈̀͑̎̏̉̽͗̀̄͋̋̍͊̅̽̈́͑̉̓̐̀̾̀̀̎͑͆̿̈́͆͆̉̎͆̈́̃̓͐͑̃̐̊̏̒͛̀͌͑̐̆̅̋̿͐͒͂̅̃̍̄͆̈̎̔̆̓̇̈̾̾̇̿̈͌͆̔̄̀͘̕̚̕͘͘͜͜͜͜͝͠͝͠͝͠͝͝ͅͅͅͅi̵̢̧̧̢̡̡̨̡̛͙͙̲̫͙̪̠̹͕̲̺̻̜̜̭̠̱̟̙͖͖̘͍̣̙̬͈̜̣͍͙̘̟͚͙͕͉̲̺͍̜͎͚̘̫͇̲̗̲̞̞̩̫̗̫͍̲̥̺̮̻̹̝̹͉̪̪̭͓̰̭̠̤̝̰͕̮͍͖͕̙̖̫͉̭͓̰̱̳̫̠͍̬͉̣̱̮̳̲̭̮̪̭̗̳̳̲̞̻̯͙̎̅̈́̍͒̄̀̀̾̒͐̾̃̂̑́̅́̈́̑̈́̏͐͑̑̄̇̍̌̚̕̕̕̕͜͠͠͝͝͝͝ͅͅş̴̛̛͎̜̖͓̏̒̽̽́̿́̀̎́̐͒͋́͊̓̎͌̋̉̒̾͒͐̌̕͘ͅĩ̴̡̡̢̨̛̛̛͙̹̗̭͔̱͈̠̟̹̬̯̯̱͔̞͓̯͓̩̯̻̹̯̤̭̭͔̬͓͍͈͔̝̯͉̻̦̝̪̰̜̣̝̲̱͈̥̦̼͔̹̩͔̫̳̖̭̜̖̯̙̘̗̳͈͇̤̥͔̯̜͕̜̟̬̻̲̎͌͒̈́͗̂̇̓́̎̈́̄̾̿͑̂͒̀͌̆́͛͑̀̐̎͗͐̈́̈͊̐́́̈́͛̊͌̓͂̔̊́̉̋́̂̿̎̋̄͂͂͊͛̍̽͋̑̾͋̎̇̐̊̔͐̓̈́̀̇̾̆̃͑̌̂̀̊̀̒͐̒̍̍̒̒̓͗̎̽̌̄̒̄͌̓͊̿̂̊͋̀̈́̃͋̈̍́͆̑̑͘͘͘͘̕͘͘͜͜͝͝͠͠͠ͅͅͅb̵̧̧͓̻͚̰̰̻͕̮͕̹̱̲̞͙̝̹̆̊̔͑̓̐́͛̿̔̓̿̅̂̉̎͂͗̀̿͒͐̈̑͂̏͒̑̾̽̇̄̾̑̄̊̌̀͒̾͂̉̍͋̋̇̏̆̕̚̕͘͝͝͠͝l̷̢̧̨̢̡̨̢̡̡̛̗̤̹̞̱̬͎̗̣͍͈̦̝͇̱̖̮̩͙͉̪̞̮͙͍͍͔̘̭̻̼̘̺͙̪̳̣̱̲̲͈͔͍͎͙̙̲̟̥̪̺̩̺͓̜̗̬͙̬̳̜͍̻̩̙̭͈̘̗̝̦͓͇̟̭̦͚͖̥̤̦̻͈̘̩̭͇̫̩̺̟̪̝̩̟̰̥̞̥̝̮̖̺̟̺̗̗͇̦͙͙̞̽̑͑̊̐̓̀́̓͗̇̓͗͋̑̆͋̅͋͛̈̋̈́͛̚͘͜͜͜ͅͅͅͅȩ̴̨̨̢̡̨̼̻̻̝͔̱̘͕̥͚̟̦̻͖̺̼͇̼̬̙̦̫̝̗̥̞̥̻̦̙̬̩̠̟̺͖̪͚̲̙̪̲̻̺̺̥͈̝̲͉̟̥͇̰̻̫̟̣̰̫̹̲̦̬̼̦͓͍͎̙̼͎̤̥̻̪̩͖̼̱͇̗̋͋̐͂͑̊͊̉̿̉͗̎͋͌͌̀͒͋̐̃͊͗̆̑̀͒̈́̂̀͒͌̕̚̕͘͜ͅ\n"); + int y = ncplane_cursor_y(n); + ncplane_putstr_aligned(n, y + 0, NCALIGN_CENTER, "Pack my box with five dozen liquor jugs" NL); + ncplane_putstr_aligned(n, y + 1, NCALIGN_CENTER, "sɓnɾ ɹonbıl uǝzop ǝʌıɟ ɥʇıʍ xoq ʎɯ ʞɔɐԀ" NL); + ncplane_putstr_aligned(n, y + 2, NCALIGN_CENTER, "ꙅǫuꞁ ɿoupi| ᴎɘƹob ɘviᎸ ʜƚiw xod ʏm ʞɔɒꟼ" NL); + ncplane_putstr_aligned(n, y + 3, NCALIGN_CENTER, "P̸̯̼͙̻̲͚̜͚͈̩̎͠a̶̯̳̱̟͚͇̩̯̬͂̒̒̌̅͊̽̿͗̈́͘͝ͅć̸̮̦̩̭͓̫̟̹̆͂͒̓͆̈̅̀͐̿̚ͅk̶̡̻̜̼̙͍̥̗̯̠̜͓̪̽ ̷̮͚̺͎̗̂̈́̿̑͝m̴̩͍̺̟͓̼͓͇̟̙͂̏̈́͆̎́̐̐̽̕̚͘͜ͅy̵̧̻̗̦̯̱̬̤͈̦̺͗̓͛ ̵̣̤͕͙̟͛͌͑̉͘͝b̵̨̡̨̯̞̘͕̰̙̬̳͇̮͖̹͗o̶̻̫͑̎͑̽̈́̚̚̕ͅx̵̢̦̗̳̝̻̗̟̘̻̼͚̰̓̇̓͛̀ ̸͈̜͙́̍͂̅̃̿͘w̵̧̪̻̤̮̑͊͌̈́͋́̔͂̑̌͑͋̇͂ḯ̴̺͛̒̔̏́̅̓̾̔̊̆͗͠͝t̷̢̛̟͉͕̗̙̭̖͈̼̂̎́͌͜͝h̸̢̨̜̤̗͎̳̖͙̺̹̭̘̞̀̀̓̊̐̀͐̈́̀̿͆̔̄͝ͅ ̴̹̙̜̥͕͖͑́͛̈́̄̈́̿̕f̶̡̢̳̗͉̩͖̹͚̗̩̰͖̀̂͗͌̑i̴̧̝̰͎͕̣͓͓̋͒̇̀̾͐̃̚̕v̵̛̠̩̪̻̟͕̭͕̗̲̼̽͗͐̄̈́̾͂̍̔̎͌̌͘͝e̵̢̤͇̪̻͚̜͉̻͉̝͙͗̀̃̐͋̌̋̌̈́̅̈̌̉͘͜ ̶̡̢̭͙̤͑̑͂̐͛̑̍͑͌̀͛d̴̨̧͍̫͔͔̫̻̗̙͖̞̱͆̒͂̈̐͑̕̚͠͝ó̸̰̠̦̦̞̼̘͔̥͎͕̦̯̑̀̇̈́̎̄͘z̴̡̧̡̦̦̙̞̪̣̤͕̫̳̈̉͌̃͌͛̀͌̎̃̌͒͜͝ȩ̷̻͖̥̬̹̖̫͛͐̍̂̾̀͑͊̎̀̊̏̕ͅn̵̢̢̧͚̜͉̯̲͕̒͊̒͌͋͗̓́͂͝ ̵̡̧̨̛̛͓͚̘̺̲̺̻̻̫̾̄̒̑̄̄̏̇̍̽͜l̴̗̩͍̰̇i̴̡̭̳͉̘̩͚̽̏̿̈̔́̂̈́̊͝q̷̫͚̌̅̈́̓̐̎ů̶̢͈̪͔̅̓̀̓̓̈͆̍͋͋̉͝͠ǫ̵̻͠r̵̰̯̠̟̬͖̳͔̚ͅ ̶̡̣̭̥̻̭͙͎̰̜̥̜̊j̷̧̡̟̝̼̞̭͙͈̘̇̾̽͊̄̈̍͗͒͑͜u̷̡̪̤̖̣̰͈̽̀̚͜g̸̨̢̧̳̙̝̠̩̜̻͙̘̪̞̈́͐̈́̇̆̎̈ͅs̶̫͑͂̂͛̋̇̅̒͝.̴͈̖̮̪̮͓̹̈̐̇̓̇͝" NL); + ncplane_putstr_aligned(n, y + 4, NCALIGN_CENTER, "Ⓟⓐⓒⓚ ⓜⓨ ⓑⓞⓧ ⓦⓘⓣⓗ ⓕⓘⓥⓔ ⓓⓞⓩⓔⓝ ⓛⓘⓠⓤⓞⓡ ⓙⓤⓖⓢ" NL); + ncplane_putstr_aligned(n, y + 5, NCALIGN_CENTER, "φąçҟ ʍվ ҍօ× աìէհ ƒìѵҽ ժօՀҽղ Ӏìզմօɾ ʝմցʂ" NL); + ncplane_putstr_aligned(n, y + 6, NCALIGN_CENTER, "P⃞a⃞c⃞k⃞m⃞y⃞b⃞o⃞x⃞w⃞i⃞t⃞h⃞f⃞i⃞v⃞e⃞d⃞o⃞z⃞e⃞n⃞l⃞i⃞q⃞u⃞o⃞r⃞j⃞u⃞g⃞s⃞.⃞" NL); + ncplane_putstr_aligned(n, y + 7, NCALIGN_CENTER, "P⃣a⃣c⃣k⃣m⃣y⃣b⃣o⃣x⃣w⃣i⃣t⃣h⃣f⃣i⃣v⃣e⃣d⃣o⃣z⃣e⃣n⃣l⃣i⃣q⃣u⃣o⃣r⃣j⃣u⃣g⃣s⃣.⃣" NL); + ncplane_putstr_aligned(n, y + 8, NCALIGN_CENTER, "ᴘᴀᴄᴋ ᴍʏ ʙᴏx ᴡɪᴛʜ ꜰɪᴠᴇ ᴅᴏᴢᴇɴ ʟɪQᴜᴏʀ ᴊᴜɢꜱ" NL); + ncplane_putstr_aligned(n, y + 9, NCALIGN_CENTER, "🅝🅔🅖🅐🅣🅘🅥🅔 🅒🅘🅡🅒🅛🅔🅢 🅐🅡🅔 🅐🅛🅢🅞 🅐🅥🅐🅘🅛🅐🅑🅛🅔 " NL); + ncplane_putstr_aligned(n, y + 10, NCALIGN_CENTER, "🄴 🅂 🄲 🄷 🄴 🅆 🄲 🄸 🅁 🄲 🄻 🄴 🅂 🄶 🄴 🅃 🅂 🅀 🅄 🄰 🅁 🄴 🅂 " NL); + ncplane_putstr_aligned(n, y + 11, NCALIGN_CENTER, "🅰 🅱🅴🅰🆄🆃🅸🅵🆄🅻 🆄🆂🅴 🅾🅵 🅽🅴🅶🅰🆃🅸🆅🅴 🆂🆀🆄🅰🆁🅴🆂" NL); + ncplane_putstr_aligned(n, y + 14, NCALIGN_CENTER, "į̵̢̡̢̨̨̛͈̤͇̭͈̣̗̮̫̫̰̤̳̘̞̥̟͙̞̥͉̳̜̫̣̯̗̠͖̲̪̘̟͉͖̜͔̪͈̜̼̩̥̗͔̭͔̠̺̫̺̦͇̐͛̉̃͒̿̒͆̅̐̆͆͌͋̎̈́̓̔̓͌̌̀̽̾̈́̄̈́̇̒̀͆͆͌̄́̎̋̑̀͊̐̆̚̚̚̚͜͜͜͝͠͠͝ͅͅn̵̡̢̧̧̧̢̢̛̛̙̩͈̦̠̳̜͖̤͍̻̹̼̯̦̦̰͕͈͈̖̬̣̦͓̳̣̮͙͓̣͖̲͉̭̞̤̞͙̝̝͔͓̗͓̣͙͕̲̩̠̬̑̊̈̐͛͒̎̐͒̓̆̌͊̅̿̂͛̈́̈́́̉̽̔̓̔̎̈̿͒̃̊̾̏̇̈́̋́͆̐̈́͛̔̓̄̀͋̊̃͛͑̋͂̔̈̐͐͐̆̇͌̓́́̿́̍̈́̈́̈́͋̄͆̈͛͂̇͗̅̓̀̈́̂͂̆̃̈́̈́̓̓̐̔̌̍̋͐̚̕̚͘͘͘͘̚̚͘͘͜͝͝͝͝͠͝e̶̡̨̨̧̨̨̨̧̦͇̖͔̫̹̺̺̯͈̺̫̗͈̲͕̮͈͓̭̱͔͈͚̬̰̜͇̼̙̰̣͎͕̠̥̯̖̣̬̗͎̓͑͌̊̇͆͐͑̂̎͋̑͐̀̅̂͌̽̉̊̀͌̓̈́̀͛̐́̋̈͑͆̐̑̉̐̍́̈́̅̿͒̕̕̚͜͜͝͝͠ļ̷̢̨̢̢̡̡̣͕͈̩͔̻̬̻͙͙̩̲͇͈̥͎̖̻͖̮̪̞̠̹͍̙͖̳̱͓̘͖̱̱͕̯̰͙̝̣͕̭̮̿̑͘͜͜͜ự̴̡̡̨̨̢̨̨̤͈̝̟̣̠͖̗͙̗̖̦̯͍̘̟͎̝͔͙̗͎̟̺̣͖̝̩̜̜̖̳̹͍̦̩͔̜̘̲͈̮̠͚̭̭̜͉̘̫̰̺̫͖̗̦̮͓̗̻̖͍̥̤͎͖̣̻̝͚͙̤̥͎̖̯͙̯̫̘̜̘̤̠̯͖͉͍̎̈͐̄̊̈̊̌͑̎͂͒͌́̃͐̐̉͗̽̀͂̃̒͋̂̀̊̉́̃̄̄̍̆́̑͑̇̇̾́̊̂͊̐͑̾̀͊̒̓́̂̐̄͋̀̈́̅̏̒̎̊̒͂͐̑͐̉́̄̂̀̕̕͘̕̕͘̕̕̕͜͜͝͝͝͝͝͝͠͝ć̵̡̨̨̢̢̛̛͔̩̦͓̥̠̜̳̯̮̩̜̖͖̘̜̖͖̖̳̹̲̻̯̬̪̰̭͇̮͉̳͉̬̬͇͉̟̲̞̱̯̖̗̞͚͎͓͔͍͈̲͇̳͈̦̠͚̲͎̦͙̰̲̬̝̞̟̪͈̘̖̦̩̝̩͕͈̦̯͙̞̖̥̺̝̗̔͊̂̈́́̿̾̾͛̈͐̔̉̈͐̈́̈̉͑̃̂͋́̆̓̒̈̈̉͛̏̅͌͌̆̓́͊̂̾̈̚͘͘͜͜͜͝͠͝͠͠͠͝͠ͅͅͅt̶̡̡̧̛̛̮̘̹̼̺̹͓̠͖̳̺̹̘̥͙͇̪̩͇̖̦̾͐̍̇͊̅̅̇̀̂̏̀̆̑͗̑͆͊̾̎͗̋̊̇̒͛̀̇͂̒͆̀̊̽̑̀̐̅̔̅̀̋͆͐̋́͆̒̓̐͐́͂̐̋̇̿̑͆̅͑͐́̄́̈́̌̈́͋̄̎͌̈́̅̍̎̓̑̕̚͘̚̚͜͠͠͝͝͠͝ͅą̵̧̛̛͎͕̯̪͚̫̟̺͚̱͎͚̹̟̖̦̼͍̦͙̹̹̰̫̤̯͚̠̼͉̭̳̓͗̈́̎̀̇͌͌͌̐̌̀̾̀̈̍̾̓̀͌͑̔̆̋̇̇̈́̔̌̈́̐͒͌̒̐̋̅̀̉͆̒̓̀͌̒̒͋̐̀̒̇̉̅̏̾̕͘̕͝͝͠͝ͅͅb̷̧̧̡̢̨̧̡̡̛̛̛͈̩̰͖̰̹̯̪͍̯͉͙̺̬̝̟̥̜͙̙͕͇̗̪̬̣̙͕̙̙͉͔̦̦̼̜̳̤̺͕͇̠̲̘̼̲̦̺̝̪̲̣̠̪̮͉̮͙̥̤̫̫͉͍̤͍͙̺̩̫̜͚̞̫̺͍̺̣͍̥̠͓̯̳̳̖̟͉̄̏͛̆͊͆͆̆̐̀̏̎̊͆̾͋̇͑̓̒͑̂͛́͊͗̇̔̾͆͂̒̃͋͊̊̆̀̈̊̌͗̈̿̄̀́̌̌̑͐͂̈́̇͛̒̏̒̋̅̆̈̽̽̅̐͊͆̿̐̌̈̂̓͌̀̋͛͛̎͒͒͋̏̐̀̒̇̀̐́̕͘̕͜͜͜͜͜͝͝͝͠͠͝͠͝ͅl̴̨̨̢̨̨̢̧̨̧̨͍͕̟̲͙̺̯̹̺̟̼̜͍̙̣̼̬̺͕͚̤̙͍͓̳̘͍̠̙͍͎̝̮͍̤̰̩̯̦̠̦̻̣̜͎͉͓͎̦̝̖̲͚̦͓̭̩͉͖̘̟̪͔͎̪̰͓͔̟̬͂̌̈̉͋͘ͅͅͅê̸̡̨̧̧̧̡̧̧̨̧̛̛̝͕̪̲̟̣͍̹̻̠̥̟̯͔̻̗̙̳̺͍̗̬̥̼͕͖͈͔̝̩͙͔̜̩̫͕̠͇͔͍̥͚͕͉̬̩̫̟͉̝̭̖̳̳̰̘͙͓̙͍̙̞̣̖̝̦̰̰̺̰̺̖̦̝͈̲͈̗̬̦̺̹͎̯̭̟̺̯̠̬̮̝̰͙̗͎͈͔̮̲̯̩̪͈͙̲̪̱̦̩̘̲̈̋̒̉̑̈́̍̀̄̇̓́̓̾̌̒̏͌͒̂͆̆̈́́͐̾̈́͌̍͌̉̐̐̑̇̽̑̋̆͗̑̆̌͂͛̑́̒̅̌̌̀͗͂̅̎̋̈́̅͑̌̄̃̾̎͌͒͑͊̍̂̾͋̉̒̋̃̒̑̈͋̊̒͆̏̎̊̃̕̚̚̕͘̕͘͘̚͜͜͠͠͝͝͝͝͝͝͠͠͝ͅͅͅͅͅ ̷̧̡̢̡̧̢̧̧̡̨̖̤̺̤̮̗̭̬̰̰̟̳͚̱̩͍̱̰̩̠̮͕͓̣̺̳͈͔̟̳̣͈̱̰̬̞̖̦͔̼̹̥͖͈͚̩̼͖̬̞̩͎͇̞̬̯̟͕̞̗͖̘̙͖̞͓̜̭͖̹̱̙̖͔̭̲̻̘͚͇͍̱̹͇̱̬̘̲͕̝̗̳̰͖̮̞͉̗̝͖̥̹̣̣̬̠̘̦͚̫̜̻̱̌̀͂̃̑̓̄̈́͐̌͒̐́͑̂̇͋͗́́͗̍͊̐͑̾͂̍̈́̏̈́́̑̌̓̎̈́̐̑͗̊̇̈́͂̚͘̚͜͜͝͝͝͝͝͝ͅͅͅm̷̢̡̛̛͚̹̻̮̘̤̩̬͙͎̈́̿̂̍͂̽̀͒͌́̃͑̓̿̉̀͑̈̓͒͘̕͝͝͝͠ͅǫ̶̢̢̢̨̼͇̗͕͖͚̤̤̰̰̯̜͕͍̠̳̰͕̣͍̱̞̮̠̳̤̭̰̫͖̘͉̠̝̹̩̳̳̱͔͍̲̪̱͔̫̠͑́͋́́̓̀͋̈́̍̉̅̾́͘͘͜͜͠ḑ̸̢̨̡̛̛͍̞͉̝̖͓̝̳̝̲͈̗̼͖̤̯͈̮̮͇̹̲̰̟͎̼̏͂́̃̈̀̾̅̊̍̒͛̓̒̆̀͐͗̍̆͛͊̂͗̃́̓͑̃̇͒͌͛̆̋̈́̑̕͝ͅą̸̛̛̗̠̙̳̣̯͇̙̯̰̊͒̆̔͛͌̄̓̒͐̑̏̃̊̏͌͊͑̒̂̂͂̈́̐̎̂̀͒̓̅̈́͊́́̒̾̑̒̒̉͛́̃̔̈̀̍͋͑̓͆̂̿̽̏́͑͂̀̍̀̓̒͛̊̋̈̑̎̅̀̉̑̈́͑̓̐͑̾̃̒͊̉̒̓̌̀͑̍͑̾͊̿͌̔̏͗͗̈́͘͘͘̚̕͘̕͘̕͘͠͠͝ͅĺ̴̨̨̡̧̡̧̨̧̡̡̢̡͖͔̗̮͓̼̗͈͔̳̬̞̺͙̩̣̩̥͎̙̭̯̖̪̫͎͇̪̯̬̠͓͖̣͇͍̮̮͈̟̫͚͉̻͈̖̗̠̙̝͙̠̰͚̱̲̤̺̪̭̫̱̫̠̞͓̹̮̖̘̣̓̿́̌͂̀̇͐̈́̾̀̂̍͆͛͗͊̈́̀̈́͑̎͋̒͒̕̚̕̚̕͜͠͠͠ͅͅi̴̧̨̢̝͎͇̠̭̟͇̭͙͚̳̭̘͈̟͓͈̥̭͚͈͍̲̲͔̤͉͈̎̈͂͆̀͛͋͊̏͊͗͋̓̐̉̆̒̈́͊̏̈͋́̓̿̾͛̒̓̅͛̚̕͜͜͝͠͝ͅͅṯ̶̡̛̪͚̮̩̤̗͇̗͍̩̬̲͔͙̼̯͉͓̃̐̽̐̌͂̑͊͊͝y̷̨̡̧̢̧̧̧̧̡̡̨̧͈̫͉̟̠̘̜̟̜̻̭̜̦̻̺̮͖̫̺͙̰̟̥̱̝̤̘͙̳̜͔̼̹̹͉̳̰̻̳̩̻̺̫͈̼̘͉͓͎̙͔̣̥̪̺͎̙̹͕͇̖̤̗͙͈͉̭̦̺͈̞̼̗̜̯̞̠̬̱̼͈͇̖̬͕͕̬̮͖̤̜͔͙̻̤͈͓̣̖͓̘̘̬̳̻̜̲̳̏̄̂̈́̒̃̎̇̏͆͊̓̎́̓͛̄͆̃͆̈́́͊̋̈́̾̈͒̍͊̔̆̉̏͐̿͆̂̊̀̌̀̽̆̋̓́͆̓̈́̚͘͜͜͜͝ͅͅͅͅͅ ̴̢̧̧̨̢̨̡̡̨̢̨̛̛̛̥͓̬͍̭̫̬̬̱̩͇̱̗͚̲̘͉̘͇͓̮͇̹̱̠͖̦͈̟̮̬̦̝͚͙̝̠͖̞̖̱̥̜̯̼͓̫̹͖̘͓̣͎̱̘̰̦̺̪͙̜͓̼͚̺̖̞̻͈͚̲͙̗͈̱̯̘͈̟̞̞͈̬̤̦̹̹̿̐̅́͛̒͐͋́̓̊̊̋̊͐̈́̇̍͒̑̎̿̀͑̉͒̾̀̈̈́̂̐͋͑͗̓͒̑̔̌̏͒̑̓͒̏͌̀͌̋̂̇̓̈͗̓͛̉͑͗͒̾̐͊̏̈́̅́̈̾͋̐͂̽̈̏̐̀̆̃͗̓̚̕̕̕̚̚͝͝͝͝ͅǫ̵̢̡̨̡̨̡̨̤̤̖͕̠̥̰̠̩̙̰̮̜̘̪̭̭̯̺̭͚͙̞̜̪̰͚̘̭̻͓͈̺͉̯͔͖̯̠̭̰̫̲͈̦̖͖̪̣̰͖͎̙͚̙̹̰̬̜̲̱̘̘̪̭̣̻̫͓̼̦̦̘̩̥̱̣̺̌̇͒̊̃̐̾̍̈́̅̉̊͐͒̀͆̉̀̇͊̕̕͜͜͝ͅͅͅͅͅͅͅf̷̨̨̧̨̢̢̨̧̛̮̖̝͎̻̟̦̗͕͍̻̫̤̰̣̜̮͙̱̝̮͈̫̯̣̻̪͚̘͍͈̝̱̞͚͔̣̗̱̳̰̣̦̘̦̮̞̬̗͈̘̤̦̞̞̱̠̹̖̣̰̦̦͍̙̫̲̮̲͇̼̗͓̹̹͓̬̩͍̦͍̆͊̀̆͂͑̾̔̎̎̿͂̀̐̈́̈̇͒̔̋̇̒͆̏̋͋͒͊̏̉̏̎͛̋̔͐̈̈́̿͋̽̀̈́͗͒̑̽͋̏̅̌̇̓͑̅̿͐̂͆͆̃̈̈́̌̈́̆̌̋̎̀̾͆͂̿̃̃̐͒͌̃́̑̐̽́̐̔̔̅̄͘̚̚͘̚͘̚͘͜͜͝͝͝͠͠͝͝͠͠ ̷̡̡̨̨̧̛̛̱̼̜͙̜͔̠̹̺̞̰̞̟̘͚̣̮̼̞̙̘̱͔̖̬͈͖͇̳̪͚̩̰̠̦͖̫͖͈̗͍̩̤̂̆̂͂̓̾̑̉́̏͊́̉͗͌͆̒̑̅̓̅̑͛͐̌̅͑̍̋͛͒̆͆̐̇̒̌́͐̔̐͂̽̋̋̐̾̆̆̀̋̈́̆̔̀̎͐̄̌̀̈͑̂͛̈́͐̈́͋̽͊͑̔̀͛͑͑̐̎͋̾̓͗̍͋̏̈́͛̂͒̉̅̊̂̆͂́̅͑̾͆̈́̇̆̑͋̐̋̚̚̚̚͘͘̚̚̕͘͠͝͝͝͝͝͝͝͝͝ͅt̸̨̛̛̛̛̙͕̪̬̣͚̩͕̺̯̹͂̿̃̊̔̇̄̌̉̒̆͐̈́̌͐̓̿͊͊͆̈́̄̌͂̓̅̐̓̐͒̍̽̓͊̄̏͌́̃̓̉́̀̈̿̓͌̆̅̎̇͒͐̀͗̉̀͂̏̓̀̈́͑͐̾̿̌̉̔̓͌͛̈͌́̊̕̕̚̕̕̕͘̚͠͝͝͠͝͝͝͝͝͠h̴̡̨̡̨̧̛̛̛̳͙̳̦͚̫̟̰͔̘̼̣̳̲̯͍̮͚̝͔̠͔͓̥̫̜̩̟̝͖̼͉͎̹̲̤̝̤̠̤̮͖͙͉̫̦̖͇̤̝̼̝̖̲̠̥̦͍͈͇̼͇̙̟̱͕̦̘͍͕̗̩͇͚̩͙̻̣͙̥͕͎̬̙̙̰͇͕͎͎̹̼̭̘̠̟̲͇̟͖͂̋̏̅̔̏͋̇̀͐̅͂̿̍̒͛́̾͗̑͂͊͂̀̋̓̀̓̽̔̋̐̈̓̀͑̑̒̒̍͑͌͌̎́͛̄͛͛̅́͗̿̚̚̕͘̚͜͝͝͝͝ͅͅę̶̢̡̨̡̧̨̢̢̛̛̛̛̛͉̬̜̘̪͕̪̖͚͚̝̜̜̩̹̗̰̫̼͕̼̰͔̞̤̬̞͓̖͙͙̣̰̭̹̫̬̘̯̭̟͖͉̖̰̗̮̯̭̿͒͒̌͐͛͒̿̋̐͂͌̾̾̀̉͆̾̆̇͋̒̿͂͐̍̄̽͌͆̏̉̐̈́̿̎̒̃̉̀͌̉̈́͌͊̇̒̔͌̈́̆̆̌̅̈͛͆͆̋̓̀͋̓̓̔͛́̃̾͛̂͊͂͑̐̑͑̉̐̂̊̒̕͘̕͘̕͘̚͘͜͜͝͝͝͝͠͠ͅ ̶̡̧̨̧̧̧̨̧̡̨̧̺̯͍͖̺̟̖͇̜͚̟̪̟̤̠̭͓͇̩͉̯̮͉͚͓̯̼̝̘͕͕͔͈͉̱̠̱͇̞̗̠̱̪̟̯͔͖͓̺̫̪̠͉̺͕̟̮̲̰͔̻̮͓͈̮̭̥̱͇̰͈̟̮̥̣̭̯̹̑̈́̿̅̾̃̄͆̆̉̔̂͗͐̒̄̈̈̋̈͊̾̀̓̾̒͘͜͠͝͝v̴̨̡̡̧̨̨̧̛̛̛̛̻͕͔̠͚͎̱̪̮͓̘̟͓͚̜̯͚̼͉͉̯̖͓͖̖̪̹͖̱̝̫̜̖̠̙̺̳͇̭͈̯̹̺̮̝̲͎̮̮̦͓͈͍̳̫̞͓͉̰̺͇̻̩̗̩̞̺̻̬̬̮͈̗͇͉̝͔̺̖̲͉̭͎̞̣̈́̎͊͗̾̌̅͋́̀̍̓͆̈̀͑̎̏̉̽͗̀̄͋̋̍͊̅̽̈́͑̉̓̐̀̾̀̀̎͑͆̿̈́͆͆̉̎͆̈́̃̓͐͑̃̐̊̏̒͛̀͌͑̐̆̅̋̿͐͒͂̅̃̍̄͆̈̎̔̆̓̇̈̾̾̇̿̈͌͆̔̄̀͘̕̚̕͘͘͜͜͜͜͝͠͝͠͝͠͝͝ͅͅͅͅi̵̢̧̧̢̡̡̨̡̛͙͙̲̫͙̪̠̹͕̲̺̻̜̜̭̠̱̟̙͖͖̘͍̣̙̬͈̜̣͍͙̘̟͚͙͕͉̲̺͍̜͎͚̘̫͇̲̗̲̞̞̩̫̗̫͍̲̥̺̮̻̹̝̹͉̪̪̭͓̰̭̠̤̝̰͕̮͍͖͕̙̖̫͉̭͓̰̱̳̫̠͍̬͉̣̱̮̳̲̭̮̪̭̗̳̳̲̞̻̯͙̎̅̈́̍͒̄̀̀̾̒͐̾̃̂̑́̅́̈́̑̈́̏͐͑̑̄̇̍̌̚̕̕̕̕͜͠͠͝͝͝͝ͅͅş̴̛̛͎̜̖͓̏̒̽̽́̿́̀̎́̐͒͋́͊̓̎͌̋̉̒̾͒͐̌̕͘ͅĩ̴̡̡̢̨̛̛̛͙̹̗̭͔̱͈̠̟̹̬̯̯̱͔̞͓̯͓̩̯̻̹̯̤̭̭͔̬͓͍͈͔̝̯͉̻̦̝̪̰̜̣̝̲̱͈̥̦̼͔̹̩͔̫̳̖̭̜̖̯̙̘̗̳͈͇̤̥͔̯̜͕̜̟̬̻̲̎͌͒̈́͗̂̇̓́̎̈́̄̾̿͑̂͒̀͌̆́͛͑̀̐̎͗͐̈́̈͊̐́́̈́͛̊͌̓͂̔̊́̉̋́̂̿̎̋̄͂͂͊͛̍̽͋̑̾͋̎̇̐̊̔͐̓̈́̀̇̾̆̃͑̌̂̀̊̀̒͐̒̍̍̒̒̓͗̎̽̌̄̒̄͌̓͊̿̂̊͋̀̈́̃͋̈̍́͆̑̑͘͘͘͘̕͘͘͜͜͝͝͠͠͠ͅͅͅb̵̧̧͓̻͚̰̰̻͕̮͕̹̱̲̞͙̝̹̆̊̔͑̓̐́͛̿̔̓̿̅̂̉̎͂͗̀̿͒͐̈̑͂̏͒̑̾̽̇̄̾̑̄̊̌̀͒̾͂̉̍͋̋̇̏̆̕̚̕͘͝͝͠͝l̷̢̧̨̢̡̨̢̡̡̛̗̤̹̞̱̬͎̗̣͍͈̦̝͇̱̖̮̩͙͉̪̞̮͙͍͍͔̘̭̻̼̘̺͙̪̳̣̱̲̲͈͔͍͎͙̙̲̟̥̪̺̩̺͓̜̗̬͙̬̳̜͍̻̩̙̭͈̘̗̝̦͓͇̟̭̦͚͖̥̤̦̻͈̘̩̭͇̫̩̺̟̪̝̩̟̰̥̞̥̝̮̖̺̟̺̗̗͇̦͙͙̞̽̑͑̊̐̓̀́̓͗̇̓͗͋̑̆͋̅͋͛̈̋̈́͛̚͘͜͜͜ͅͅͅͅȩ̴̨̨̢̡̨̼̻̻̝͔̱̘͕̥͚̟̦̻͖̺̼͇̼̬̙̦̫̝̗̥̞̥̻̦̙̬̩̠̟̺͖̪͚̲̙̪̲̻̺̺̥͈̝̲͉̟̥͇̰̻̫̟̣̰̫̹̲̦̬̼̦͓͍͎̙̼͎̤̥̻̪̩͖̼̱͇̗̋͋̐͂͑̊͊̉̿̉͗̎͋͌͌̀͒͋̐̃͊͗̆̑̀͒̈́̂̀͒͌̕̚̕͘͜ͅ" NL); notcurses_render(nc); notcurses_stop(nc); return EXIT_SUCCESS;