Skip to content

Create large titles in your terminal/console, faster

Notifications You must be signed in to change notification settings

thedzy/go-titles

Repository files navigation

title_creator

Print in large font in your terminal/console

This was an attempt to rewrite the python version of title_creator in Go. The idea was to improve the speed. And yes, it is much faster but with caveats, see State.

  ,,,_    _gMMp,                 _qqq,   ,qqq
 MMMMMM   %MMMMMk                MMMMM  @MMMMB
 @MMMM"    MMMM"                 MMMMW  @MMMM
 @MMMM    ]MMMM                  MMMMB  @MMMM
 MMMMM    1MMMM                  MMMMB  @MMMM
 MMMMH    1MMMM       _gMMMMp,   MMMMB  @MMMM     ,pMMMMpq_
 @MMMH    dMMMM      pMMMMMMMMp  MMMMB  1MMMM    gMMMMMMMMMp
 @MMMM,qqpMMMMMp    MMMMP  %MMM  MMMMB  1MMMM   gMMM@   @MMMp
@MMMMMMMMMMMMMMMM  gMMMK   @MMM  MMMMB  1MMMM  _MMMM     MMMM
"MMMMMMMWWPMMMM"   MMMM   gMMM"  MMMMB  1MMMM  gMMMH     MMMM
 @MMMM     MMMM    MMMM_gMMMH`   MMMMB  1MMMM  MMMMB     MMMM
 @MMMM     MMMM    MMMMMMMH"     MMMMB  jMMMM  @MMMH    qMMMM
 @MMMM     MMMM    MMMMW"`  ,pp_ MMMMB  ]MMMM  'MMMM    @MMMW
 @MMMM    @MMMM    MMMMk   ,MMMM MMMMB  ]MMMM   @MMMp  gMMMM
 @MMMM    MMMMM@    MMMMMMMMMMH` MMMMH  gMMMM,   @MMMMMMMMM`
 MMMMM      `""      "MMMMMWP"   MMMMM  @MMMM#    "MMMMMM"

,,,,,,,,,         =,        ,,,,,,,,                                    ,,===[]                ,===[[                 ,=
 ''[]][          ,]]           ][]'                                        [[]}                  {[[[                []]
   []]]          ]]]]          [[                                          [][[                  ][[]                [[[
    []]         [}][],         ]/                                          [[[[                  ]][]                []]
    []][       {] '[[]        []             ,,,,              ,    ,,     {][[             ,,,  ]]]]                {]]
     ][[      =[   \[]]      ,]'         ,=='''''=]]=     ===[[[ ,=][]]    {[[          ,=='''=[][[[]                 []
     [[[,    ,]'    []]\     [}        ,]['       '[]],      [][=/'''[[    {]]       ,[]'       '{[]]                 [[
     ']]]    [/      [[],   ][        ,][[         ']]]      [[[           {[]      ,]['         ][[]                 []
      ][[,  [}       ']][   [/        [[]           ][[]     ][[           {[]      ]]]          ][[]                 []
      '[[] {]         {[[] {[         ][[[          ][]}     [[]           {[][     []]          ]]]]                 ='
       ][[=[           [[],]/         [][]          []]      ]][           []][     [[][         []]]
       ]][]'           '[[[[           [][=        ,[]'      [][           [[[}     '[]]=       ={]]]                ,==
        ][}             \]]'            \[[],    ,=]'       ,[[[,          [[[]       =]][]====' ][][,               [][

What?

title_creator.go

title_creator is a single use script that will print a title in a window or to file

β–‡β–€β–€β–‡β–€β–€β–Š β–†                            β– β–Ž      β– β–Š         β–žβ–€β–œ                ▝▋                                 ▆▏                               β––  β–‡               ▆▏                      β–‰                                     β–‡
  β–•β–‰    β–ˆβ–ƒβ– β–…β––  β–„β– β–…       β––β– β–—β–– β–—β––  β–…  ▄▏ β–—β––β– β–…  β–Š β–—β––     ▐▋  ▁▖■▅▖ β–—β–… β–—β––     β–„β–– β–—β––  ▅▏ β–„β–ƒβ– β–…β––β–„β– β–…  β–…β–„β– β–…β––  β––β– β–„  β–—β– β– β–Ÿβ–     ▁▖■▅▖ β–…β–– β–—β–– β–„β– β–…β–– β–„β–„β–…β––    ■▍  β–ˆβ–ƒβ– β–…β––  β––β– β–…      β–œβ– β–—β––β– β–– β–—β–  β–…β–– β–…  β–—β––     β–‰β–„β–…β–„  β–„β–„β–… β–ƒβ– β– β–„  β–… β–—β–…  β–… β–„β–ƒβ– β– β––      β–„β– β–—β–ˆ  β–—β––β– β–„  β–—β– β–—β–„
   β–‰    β–œβ– ▐▋ β–Ÿβ–˜β– β–β–˜     β–‰  β–β–Œ β–β–Œ  β–ˆ  β–œβ– β–Š  β–” β–•β–Šβ–†β–”      ▐▋ β–•β–Š   β–ˆ  β–β–†β–˜      β–•β–‹ β–•β–‹  β–Ÿβ–Ž ▐▍  β–‰  β–œβ–Ž β–œβ– β–•β–Š β–Ÿβ– β– β–β–˜β–β–‹  β–œβ–Ž     β–‰   β–ˆ ▝▙ β–ž ▐▍■▝▀ ▐▋      ▐▍  β–ˆ  β–β–Œ β–Ÿ β– β–β–˜     β–Ÿβ– β–β–ƒβ–•β–Š   β–Ÿβ–€  β–β–Œ β–ž      β–‰  β–œβ–Œ β–œβ– β–β–Œ  ▐▋ β–œβ––β–—β–ˆβ––β–—β–˜ β–œβ–  β–Š     ▗▍  β–ˆ ▐▋  β–•β–‰ β–œβ–β–β–‰
  β–•β–‰    β–Ÿβ– ▐▋ ▝▙▂▂▖     β–œβ–‚β–β–Ÿβ–Œ β–β–™β–β–ƒβ–ˆβ–‚ β–Ÿβ–Ž β–œβ–„β–‚β–„β–˜β–•β–Šβ–β–šβ–ƒ     ▐▋  β–œβ–‚ β–‚β–› β–β–žβ–”β–šβ––     β–•β–Š β–•β–™β–β–‚β–Ÿβ–‚ ▐▍  β–‰  β–Ÿβ–Ž β–β–β–β–ƒβ–˜ β–œβ–„β–‚β–‚β–Œβ–•β–™β–‚β–β–Ÿβ–‚     β–œβ–– β–‚β–›  β–β–†β–˜ β–β–™β–‚β–‚β–ž ▐▋      ▐▍▁ β–ˆ  β–β–Œ β–œβ–„β–‚β–‚β––     β–Ÿβ–Ž β–‰β–β–•β–Šβ–β–—β–Ÿβ–β–β–‚  β–œβ–ž       β–‰ β–β–Ÿβ–˜ β–Ÿβ– ▝▙▁ β–„β–˜  β–œβ–› β–ˆβ–˜  β–Ÿβ–  β–‰     β–β–™β–β–‚β–ˆβ–‚ β–šβ– β–—β–› β–Ÿβ–„β–„β–„
  β–”β–”β–”  β–”β–”β–” β–”β–”β–” β–”β–”β–”       β–”β–”β–β–Œ  β–”β–” β–” β–”β–”β–”  β–”β–”  β–”β–”β–”β–”β–”     β–”β–”β–”  β–”β–”β–”  β–”β–” β–”β–”    β–„β–‚β–‹  β–”β–”β–”β–”  β–”β–” β–”β–”β–” β–”β–” β–Ÿβ–β–”β–”   β–”β–”β–”   β–”β–”β–”       β–”β–”β–”    β–”    β–”β–”  β–”β–”β–”      β–” β–”β–”β–” β–”β–”  β–”β–”β–”     β–”β–”β–” β–”β–” β–” β–”β–”β–”β–”β–” β–„β–ž        β–”β–”β–”  β–”β–”β–”   β–”β–”       β–”   β–”β–” β–”β–”β–”     β–”β–”β–”β–”   β–”β–”β–” ▕▙▂▁▃
β–—β–†β–‡β–‡β–‡β–‡β–†β––β–Ÿβ–ˆβ–                          β–β–ˆβ–Ž      β–β–ˆβ–        β–†β–ˆβ–‹                 β– β–Š                                  β–ˆβ–‰                                 β–—β–… β–•β–ˆβ–Š              β–Ÿβ–ˆ                      β–β–ˆβ–Œ                                     β–•β–ˆβ–‹            β–‚
β–€β–”β–•β–ˆβ–› β–€ β–ˆβ–ˆβ–…β–†β–…  β–„β–†β–†β–†β––    β–—β–…β–†β–†β–†β–– β–…β–… β–…β–… ▗▅▏ β–—β–…β–†β–†β––β–Ÿβ–ˆβ–β–—β–…β–Ž   β–—β–†β–ˆβ–™β–… β–„β–†β–†β–…β––β–•β–…β–– β–…β–…     β–…β–… ▗▅▏▐▆▖ β–‡β–‡β–…β–…β–…β–„β–…β–…β–– β–†β–‡β–†β–†β–…  β–„β–†β–†β–…β–– β–—β–†β–†β–ˆβ–ˆ     β–„β–†β–†β–…β––β–•β–…β–– β–•β–†β–– β–„β–†β–†β–…β––β–—β–…β–„β–†β–†   β–•β–…β–ˆβ–ˆβ–…β–β–ˆβ–™β–†β–†β––  β–…β–†β–†β–…     β–ˆβ–Š β–…β–†β–†β–…β–– β–—β–†β–…β–†β–…β–—β–…β–– ▗▅▏   β–β–ˆβ–†β–†β–†β–– β–…β–…β–…β–†β––β–—β–…β–†β–†β–„ ▗▅▏▐▅▍▕▆▖▗▇▙▅▅▖     β–„β–†β–†β–ˆβ–Š β–—β–…β–†β–†β–„  β–„β–†β–†β–‡β–›
  β–β–ˆβ–Œ   β–ˆβ–‰ β–β–ˆβ–Œβ–—β–ˆβ–β–ƒβ–ˆβ–‰    β–ˆβ–‹ β–•β–ˆβ–Œβ–β–ˆβ– β–β–ˆβ–Žβ–Ÿβ–ˆ β–—β–ˆβ–˜ ▝ β–Ÿβ–ˆβ–‚β–ˆβ–›     β–β–ˆβ– β–Ÿβ–›β–” β–œβ–ˆ β–œβ–ˆβ–„β–ˆβ–˜     β–œβ–ˆ β–Ÿβ–‰  β–ˆβ–Šβ–•β–ˆβ–›β–”β–œβ–ˆβ–Žβ–”β–ˆβ–‰ β–ˆβ–Š β–”β–ˆβ–Œβ–Ÿβ–‰β–β–ƒβ–ˆβ–‹β–—β–ˆβ–˜ β–œβ–ˆ    β–—β–ˆβ–” β–β–ˆβ–β–ˆβ–‹ β–•β–ˆβ–β–Ÿβ–‰β–β–ƒβ–ˆβ–‹β–β–ˆβ–›β–”β–€    β–•β–ˆβ–Œ β–β–ˆβ–Œ β–œβ–ˆ β–ˆβ–›β–‚β–„β–ˆβ–    β–ˆβ–‹ β–€β–β–ƒβ–ˆβ–‰  β–”β–Ÿβ–ˆβ–€β–•β–ˆβ–™ β–Ÿβ–ˆβ–   β–β–ˆβ–Ž β–œβ–ˆβ–β–ˆβ–‰β–”β–€β–˜β–ˆβ–› β–”β–œβ–‹β–œβ–ˆβ–β–β–ˆβ–β–•β–ˆβ–Œβ–Ÿβ–ˆβ–˜β–”β–ˆβ–Š    β–Ÿβ–ˆβ–˜ β–ˆβ–‰β–β–ˆβ–˜ β–”β–ˆβ–Œβ–β–ˆβ–Ž β–Ÿβ–‰
  β–Ÿβ–ˆβ–Œ   β–ˆβ–Š β–β–ˆβ–Œβ–œβ–ˆβ–›β–€β–”     β–β–ˆβ–…β–„β–ˆβ–Œβ–β–ˆβ– β–β–ˆβ–Žβ–Ÿβ–ˆβ–β–œβ–ˆ    β–Ÿβ–ˆβ–›β–œβ–‡β––    β–β–ˆβ– β–ˆβ–Š  β–Ÿβ–ˆβ–β–—β–ˆβ–ˆβ–ˆβ––     β–Ÿβ–ˆβ–β–ˆβ–‰  β–ˆβ–Šβ–β–ˆβ–Œ β–β–ˆβ–Ž β–ˆβ–‰ β–ˆβ–™β–„β–Ÿβ–›β–˜β–ˆβ–ˆβ–€β–€β–” β–œβ–ˆ  β–Ÿβ–ˆ    β–œβ–‰  β–β–ˆβ–β–œβ–ˆβ–β–Ÿβ–ˆ β–ˆβ–ˆβ–€β–€β–” β–β–ˆβ–Ž      β–β–ˆβ–Œ β–β–ˆβ– β–Ÿβ–ˆβ–•β–ˆβ–ˆβ–€β–€β–”     β–ˆβ–Š β–Ÿβ–›β–€β–œβ–ˆ β–—β–ˆβ–›β–˜  β–β–œβ–‡β–ˆβ–˜    β–β–ˆβ–Ž β–Ÿβ–ˆβ–β–ˆβ–‹  β–•β–ˆβ–  β–Ÿβ–‰β–β–ˆβ–Œβ–Ÿβ–ˆβ–™β–—β–ˆβ–β–Ÿβ–ˆ  β–ˆβ–‰    β–ˆβ–‰  β–ˆβ–‰β–β–ˆβ–Ž  β–ˆβ–‹ β–ˆβ–ˆβ–ˆβ–›β–˜
  β–œβ–ˆβ–Š   β–ˆβ–‰ β–Ÿβ–ˆβ–β–β–ˆβ–†β–…β–…β–›     β–”β–€β–β–ˆβ–Œβ–•β–ˆβ–™β–…β–ˆβ–ˆβ–β–œβ–ˆβ–Žβ–β–ˆβ–‡β–†β–‡β–˜β–œβ–ˆβ–Žβ–•β–ˆβ–‰    β–β–ˆβ–‹ β–β–ˆβ–‡β–‡β–ˆβ–›β–β–ˆβ– β–œβ–ˆβ–   β–†β–ˆβ–› β–œβ–ˆβ–…β–Ÿβ–ˆβ–‹β–•β–ˆβ–‹ β–Ÿβ–ˆβ– β–ˆβ–‰ β–ˆβ–Šβ–β–”  β–β–ˆβ–†β–…β–†β–Œβ–β–ˆβ–ˆβ–†β–ˆβ–ˆ    β–β–ˆβ–‡β–‡β–ˆβ–›  β–œβ–ˆβ–›β–˜ β–β–ˆβ–†β–…β–†β–Œβ–β–ˆβ–Œ      β–•β–ˆβ–™ β–β–ˆβ– β–ˆβ–‰ β–œβ–ˆβ–…β–…β–†β–˜    β–ˆβ–‰ β–œβ–ˆβ–…β–ˆβ–ˆβ–β–ˆβ–ˆβ–…β–…β–…β–β–‡β–ˆβ–›β–˜     β–β–ˆβ–ˆβ–‡β–ˆβ–˜ β–ˆβ–‰   β–œβ–ˆβ–‡β–‡β–ˆβ–˜ β–œβ–ˆβ–›β–β–ˆβ–ˆβ–˜ β–œβ–ˆβ–β–•β–ˆβ–Š    β–β–ˆβ–‡β–†β–ˆβ–Š β–œβ–ˆβ–‡β–ˆβ–ˆβ–˜β–œβ–ˆβ–†β–‡β–‡β–‡
β–Ÿβ–‡β–‡β–ˆβ–Š     ▁▁▁                 ▁    ▁     ▁▁                             ▁▂   ▁▁  ▁▁             ▁ ▁▁▁  ▁       ▁▁   ▁  ▁▁          ▁                ▁   ▁               ▁      ▁▁        β–‚
β–€β–œβ–›β–” β–‡β–β–Ÿβ–Žβ–ˆβ–›β–›β–˜    β–…β–ˆβ–™ β–Ÿβ– β–œβ–β–‡ β–…β–ˆβ–ˆβ–Œβ–ˆ β–Ÿβ–Œ    β–Ÿβ–›β–€β–˜β–…β–ˆβ–™ β–‡β–„ β–Ÿβ–˜    ▅▆▇■▗▍ ▐▋▐▙ β–—β–ˆβ–β–ˆβ–€β–ˆβ–β–ˆβ–›β–›β–β–†β–ˆβ–œβ–ˆβ–    β–Ÿβ–ˆβ–™ β–– β–Ÿβ–˜β–ˆβ–›β–›β–˜β–†β–›β–œβ–Œ    β–Ÿβ–ˆβ–ˆβ–ˆβ–•β–Š β–ˆβ–β–ˆβ–ˆβ–€    β–β–Œ   β–—β–ˆβ–β– β–ˆβ–ˆβ–β–•β–‡β––β–—β–Œ    β–—β–›β–œβ–‹β–…β–ˆβ–œβ–Šβ–—β–‡β–ˆβ––β–β–‹   ▇▖▆▁ β–Ÿβ–   β–—β–‡β–ˆβ–ˆβ–ˆβ–β–Ÿβ–ˆβ–™ β–—β–›β–œβ–‹
 β–Ÿβ–Œ  β–ˆβ–„β–ˆβ–β–ˆβ–†β–Œ    β–•β–Šβ–”β–ˆβ–β–ˆ  ▐▍▉▐▛ β–β–˜β–ˆβ–Ÿβ–˜     β–ˆβ–…β–†β–•β–Š β–œβ–Žβ–β–ˆβ–ˆβ–‹      β–•β–‹ β–Ÿβ–Ž β–β–‹β–Ÿβ–ˆβ–„β–ˆβ–ˆβ–β–™β–†β–›β–β–ˆβ–†β–Ž β–‰  β–Ÿβ–Ž   β–β–Œ β–ˆβ–β–ˆβ–ƒβ–›β–•β–ˆβ–†β––β–•β–ˆβ–„β–ˆβ–˜     β–ˆβ–Ž β–•β–Šβ–…β–‰β–β–™β–†β–Ž    ▐▍  β–—β–Šβ–ˆβ– β–Ÿβ–€  β–β–œβ–›     β–œβ–ˆβ–ˆβ–…β–œβ–™β–Ÿβ–˜β–Ÿβ–Žβ–•β–Šβ–Ÿβ–‹β–Ÿβ–Ž β–œβ–Œβ–ˆβ–ˆβ–…β–ˆ     β–‰  β–Ÿβ–β–‹ β–œβ–β–‰ β–…β–™
 β–œβ–‹  β–ˆβ–”β–œβ–Žβ–ˆβ–…β–…β––   β–•β–ˆβ–ˆβ–ˆ β–œβ–†β–…β–ˆβ–•β–‰β–β–™β–…β–„β––β–ˆβ–ˆβ–…     β–‰β–”  β–ˆβ–†β–›  β–Ÿβ–œβ–ˆβ–Ž    ▐▆▉ β–β–‡β–…β–Ÿβ–˜β–Ÿβ–›β–€β–˜β–œβ–•β–Šβ–” β–β–ˆβ–…β–…β–β–ˆβ–…β–‡β–›    β–β–ˆβ–†β–› β–œβ–ˆ β–•β–ˆβ–…β–…β––β–œβ–ˆβ–…      β–ˆβ–Ž β–β–Šβ–”β–‰β–β–ˆβ–…β–…    β–β–™β–…β–…β–Ÿβ–›β–œβ–Œβ–Ÿβ–ˆβ–†β–†β– β–Ÿβ–˜     β–Ÿβ–™β–…β–˜β–β–ˆβ–™β––β–β–‡β–‡β–˜β–β–ˆβ–ˆβ–ˆβ–†β–ˆβ–β–‹β–β–œβ–ˆ    β–β–ˆβ–…β–‡β–›β–•β–ˆβ–†β–›β–•β–ˆβ–†β–ˆβ–ˆ
 β–”β–”  β–” β–β–˜β–”β–”β–”     β–”β–”β–”  β–”β–”  β–” β–”β–”β–” β–” β–”     β–”    β–”     β–”      β–”β–”  β–”β–”β–” β–”   β–” β–”   β–”β–”β–” β–”β–”β–”      β–”β–”   β–”  β–”β–”β–” β–” β–”      β–”   β–” β–€ β–”β–”β–”     β–”β–”β–”β–”  β–”β–”β–”β–”β–”  β–”      β–”β–”   β–”β–”  β–”β–”  β–” β–”β–”  β–”  β–€     β–”β–”β–”  β–”β–”   β–”β–”β–Ÿ
β–…β–…β–†β–†β–…β–β–ˆβ–                       β–†β–†     β–β–ˆβ–Ž      β–—β–‡β–Š              β–—β–†β––                             β–Ÿβ–Š                            β–‚β–‚ β–Ÿβ–Š            β–Ÿβ–Š                    β–Ÿβ–Š                                  β–ˆβ–Œ
 β–Ÿβ–ˆβ–” β–Ÿβ–ˆβ–ƒβ–ƒ  β–‚β–ƒβ–ƒ      β–ƒβ–ƒβ–‚β–ƒ β–ƒβ–– β–ƒβ–ƒ β–ƒβ–” β–‚β–ƒβ–ƒ β–Ÿβ–ˆ β–ƒβ––    β–ˆβ–Š ▁▃▃▁ β–ƒβ–ƒ ▁▃    β–—β–ƒ β–ƒβ–– β–ƒβ–ƒ ▃▂▃▂▁▃▂ β–ƒβ–ƒβ–ƒβ–ƒ  ▁▃▃▁  β–ƒβ–ƒβ–‚β–ˆβ–Œ    β–ƒβ–„β–ƒ  β–ƒ  β–ƒβ–ƒ ▁▃▃▁ β–—β–ƒβ–ƒβ––   β–ƒβ–ˆβ–™β–•β–ˆβ–™β–ƒβ–– ▁▃▃▂    β–•β–ˆβ– β–ƒβ–ƒβ–‚β–ƒ β–ƒβ–ƒβ–ƒβ–ƒ β–ƒ  β–‚β–ƒ   β–•β–ˆβ–™β–ƒβ–ƒ  β–ƒβ–ƒβ–ƒ β–ƒβ–ƒβ–ƒ  β–ƒ  β–ƒβ–ƒ  β–ƒ β–ƒβ–ƒβ–ƒβ–‚    β–β–ƒβ–ƒβ–β–ˆβ–β–β–ƒβ–ƒβ–‚  β–‚β–ƒβ–‚β–ƒ
 β–ˆβ–Š  β–ˆβ–›β–”β–ˆβ–β–Ÿβ–ˆβ–„β–ˆβ–™   β–—β–ˆβ–›β–€β–œβ–ˆβ–•β–ˆβ– β–ˆβ–Œβ–β–ˆβ–β–Ÿβ–›β–€β–€β–˜β–ˆβ–ˆβ–ˆβ–€    β–β–ˆβ–€β–Ÿβ–ˆβ–€β–€β–ˆβ–Œ β–œβ–‡β–›β–˜    β–Ÿβ–Šβ–•β–ˆβ– β–ˆβ–Œβ–β–ˆβ–€β–œβ–ˆβ–€β–œβ–‰β–•β–ˆβ–€β–€β–œβ–Šβ–—β–ˆβ–ˆβ–ˆβ–ˆβ–Žβ–Ÿβ–›β–€β–œβ–ˆβ–Ž   β–‡β–›β–€β–œβ–ˆ β–œβ–™β–—β–ˆβ–˜β–—β–ˆβ–ˆβ–Ÿβ–ˆβ–Žβ–Ÿβ–ˆβ–€β–˜   β–œβ–ˆβ–€β–β–ˆβ–€β–œβ–‰β–—β–ˆβ–ˆβ–„β–ˆβ––   β–β–ˆβ–•β–ˆβ–›β–€β–œβ–ˆ β–€β–ˆβ–ˆβ–˜ β–œβ–™β–—β–ˆβ–˜   β–β–ˆβ–€β–€β–ˆβ–‹β–Ÿβ–ˆβ–€β–˜β–ˆβ–›β–€β–œβ–ˆ β–œβ–‹β–Ÿβ–ˆβ–ˆβ–ƒβ–ˆβ–˜β–β–ˆβ–€β–œβ–ˆ   β–—β–ˆβ–€β–€β–ˆβ–‰β–—β–ˆβ–€β–€β–ˆβ–‹β–Ÿβ–›β–€β–œβ–ˆ
β–•β–ˆβ–Œ β–β–ˆβ–Žβ–β–ˆβ–β–œβ–ˆβ–„β–Ÿβ––   β–β–ˆβ–™β–„β–ˆβ–‹β–•β–ˆβ–™β–…β–ˆβ–β–Ÿβ–Š β–œβ–™β–„β–„β–•β–ˆβ–›β–ˆβ–„    β–—β–ˆ β–œβ–ˆβ–…β–…β–ˆβ–˜β–„β–ˆβ–€β–ˆβ––    β–ˆβ–Œβ–•β–ˆβ–…β–Ÿβ–ˆ β–Ÿβ–Š β–Ÿβ–Š β–Ÿβ–Šβ–—β–ˆβ–…β–…β–ˆβ–˜β–β–ˆβ–„β–„β–…β–”β–ˆβ–™β–„β–Ÿβ–‰    β–œβ–™β–„β–Ÿβ–› β–β–ˆβ–›β–˜ β–β–ˆβ–„β–„β–… β–ˆβ–Œ     β–Ÿβ–Š β–Ÿβ–Š β–ˆβ–‹β–β–ˆβ–™β–„β–…β–”   β–Ÿβ–‰β–β–ˆβ–™β–„β–ˆβ–Šβ–—β–Ÿβ–ˆβ–„β–„ β–•β–ˆβ–›β–˜    β–Ÿβ–ˆβ–…β–…β–ˆβ–˜β–ˆβ–‹ β–•β–ˆβ–™β–„β–Ÿβ–› β–β–ˆβ–› β–œβ–ˆβ–˜ β–Ÿβ–ˆ β–Ÿβ–Š   β–β–ˆβ–…β–„β–ˆβ–‹β–β–ˆβ–…β–…β–ˆβ–˜β–œβ–ˆβ–„β–Ÿβ–ˆ
 β–”   β–”  β–”  β–”β–”β–”     β–”β–”β–”β–ˆβ–  β–”β–”  β–”β–”  β–”β–”β–” β–” β–”β–”    β–”β–”  β–”β–”β–”  β–”  β–”β–”   β–β–ˆβ–  β–”β–”  β–”β–” β–”β–” β–”β–”β–Ÿβ–Šβ–”β–”β–”  β–”β–”β–”   β–”β–”β–”β–”     β–”β–”β–”   β–”    β–”β–”β–”  β–”      β–”β–” β–”β–” β–”   β–”β–”     β–”β–” β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” β–Ÿβ–›      β–”β–”β–”β–”  β–”    β–”β–”β–”   β–”  β–”   β–”β–” β–”β–”    β–”β–”β–”β–”   β–”β–”  β–…β–…β–ƒβ–ˆβ–‹
▆■■▇▆■▆▏■▇▍                             β–—β–†β––       ▆▇▏        ▅▉▀▇▏                β–…β–†                                     β– β–‡β–Œ                                  β–—  β– β–‡β–Š               β–†β–‡                        β–†β–‡                                         β– β–†β–Š
β–€ β–β–ˆβ–‹ β–β–˜β–β–ˆβ–β–ƒβ–„β–‚  ▁▃▄▃      β–‚β–„β–„β–‚β–ƒ ▁▂▖ ▁▃▖ β–β–ˆβ–  ▃▄▄▁ β–œβ–ˆβ–β–—β–„β–ƒ    β–„β–ˆβ–™β–ƒ  β–ƒβ–„β–„β–‚ β–—β–„β–„β––β–—β–„β–ƒ    β–‚β–™ ▁▂▖ ▁▃▖ ▂▃▁▃▄▁▂▄▃  β–‚β–ƒβ–‚β–„β–ƒ   β–‚β–„β–„β–‚  β–β–ƒβ–„β–β–ˆβ–Œ     β–‚β–„β–„β–ƒ  β–„β–ƒβ–ƒ β–ƒβ–„ ▁▃▄▃  ▁▃▂▄▃    β–„β–ˆβ–„β–– β–ˆβ–‰β–‚β–„β–ƒ   ▃▄▃▁     β–ˆβ–ˆ  β–‚β–„β–„β–ƒ  β–—β–„β–ƒβ–„β–ƒβ–—β–ƒβ–„β–– β–ƒβ–„    β–ˆβ–ˆβ–ƒβ–„β–ƒ  ▁▃▂▄▃  β–ƒβ–„β–„β–‚ β–ƒβ–„β–„ β–ƒβ–„β–ƒ ▃▃▁▂▖▂▄▃      β–ƒβ–„β–ƒβ–ˆβ–‰  β–‚β–„β–„β–ƒ   β–‚β–„β–„β–ƒβ–‚
  β–β–ˆβ–‹   β–β–ˆβ–›β–”β–œβ–ˆβ–β–—β–ˆβ–Œβ–β–ˆβ–™    β–Ÿβ–ˆβ–˜ β–ˆβ–ˆ β–β–ˆβ–‹ β–β–ˆβ–Œ β–œβ–ˆβ–Žβ–•β–ˆβ–› ▝▀ β–ˆβ–ˆβ–ƒβ–Ÿβ–€     β–β–ˆβ–‹ β–—β–ˆβ–› β–β–ˆβ–‹ β–β–ˆβ–™β–Ÿβ–€    β–”β–ˆβ–ˆ β–β–ˆβ–‹ β–β–ˆβ–Œ β–œβ–ˆβ–Žβ–”β–ˆβ–‰β–”β–β–ˆβ–Œ β–œβ–ˆβ–Žβ–”β–œβ–ˆβ–β–Ÿβ–ˆβ–β–β–ˆβ–‹β–—β–ˆβ–› β–β–ˆβ–Œ    β–Ÿβ–ˆ  β–ˆβ–ˆ β–β–ˆβ–Œ β–Ÿβ–˜β–—β–ˆβ–Œβ–β–ˆβ–ˆ β–œβ–ˆβ–›β–”β–€    β–œβ–ˆβ–Ž  β–ˆβ–‰β–”β–β–ˆβ–‹ β–Ÿβ–‰β–β–β–ˆβ––    β–ˆβ–ˆ β–β–€β–˜β–‚β–ˆβ–Š β–β–”β–Ÿβ–ˆβ–€ β–β–ˆβ–Œ β–Ÿβ–˜    β–ˆβ–ˆβ–” β–ˆβ–ˆ β–œβ–ˆβ–›β–”β–€β–—β–ˆβ–› β–β–ˆβ–‹ β–ˆβ–‰ β–β–ˆβ–‹ β–Ÿ β–•β–ˆβ–›β–”β–β–ˆβ–Œ    β–Ÿβ–ˆ β–”β–ˆβ–‰ β–Ÿβ–ˆβ–˜ β–œβ–ˆβ–β–—β–ˆβ–Ž β–œβ–ˆ
  β–β–ˆβ–‹   β–β–ˆβ– β–Ÿβ–ˆβ–β–œβ–ˆβ–β–”β–”β–”    β–ˆβ–ˆ  β–ˆβ–ˆ β–•β–ˆβ–‹ β–β–ˆβ–Œ β–œβ–ˆβ–Žβ–β–ˆβ–‹    β–ˆβ–ˆβ–€β–ˆβ–™     β–•β–ˆβ–‹ β–β–ˆβ–Œ β–•β–ˆβ–‰  β–Ÿβ–œβ–ˆβ––     β–œβ–ˆ β–•β–ˆβ–‹ β–β–ˆβ–Œ β–œβ–ˆβ–Ž β–ˆβ–‰ β–β–ˆβ–Œ β–œβ–ˆβ–Ž β–Ÿβ–ˆβ–Žβ–ˆβ–ˆβ–”β–”β–”β–”β–β–ˆβ–Œ β–β–ˆβ–Œ    β–ˆβ–‰  β–Ÿβ–ˆβ–Ž β–œβ–ˆβ–…β–˜ β–β–ˆβ–Œβ–”β–”β–” β–β–ˆβ–Œ      β–œβ–ˆβ–  β–ˆβ–Š β–β–ˆβ–‹β–•β–ˆβ–‰β–”β–”β–”β–”    β–ˆβ–ˆ β–—β–‡β–›β–”β–ˆβ–‰  β–Ÿβ–ˆβ–˜   β–œβ–ˆβ–…β–Œ     β–ˆβ–ˆ  β–ˆβ–ˆβ–β–β–ˆβ–Œ  β–β–ˆβ–Œ β–•β–ˆβ–‰ β–β–ˆβ–™β–›β–β–ˆβ–„β– β–•β–ˆβ–‹ β–β–ˆβ–Œ    β–ˆβ–‰  β–ˆβ–‰ β–ˆβ–ˆ  β–Ÿβ–ˆβ–β–β–ˆβ–™β–„β–ˆβ–€
  β– β–ˆβ– β––  β–Ÿβ–ˆβ–™ β– β–ˆβ–Ž β–€β– β–…β– β–€    β–β–œβ–™β– β–ˆβ–ˆ  β–œβ–ˆβ– β– β–ˆβ–  β–Ÿβ–ˆβ–  β–€β–œβ–…β– β–€β–—β–ˆβ–ˆβ–β–β–ˆβ– β––   β– β–ˆβ–Šβ–– β–€β– β–„β–Ÿβ–€β–˜β–—β– β–Œβ–β–ˆβ–ˆβ–     β–Ÿβ–ˆβ– β–œβ–ˆβ– β– β–ˆβ–  β– β–ˆβ–Žβ–—β–ˆβ–‰β––β– β–ˆβ–™ β–Ÿβ–ˆβ– β–…β–ˆβ–€ β–β–€β– β–…β– β–˜ β–€β–ˆβ–…β– β–ˆβ–     β–β–œβ– β–…β–›β–˜   β–œβ–›   β–€β– β–…β– β–€ β–Ÿβ–ˆβ–™      β–β–ˆβ–…β– β–—β–ˆβ–‰ β–β–ˆβ–  β–β–œβ– β–…β– β–˜   β–—β–ˆβ–ˆβ––β–β–ˆβ– β– β–œβ–‰β––β– β–ˆβ–™β– β– β–  β–œβ–›      β–œβ–€β– β–…β–›β–˜ β–Ÿβ–ˆβ–™   β–€β– β–„β–Ÿβ–€β–˜  β–œβ–ˆβ– β–œβ–›  β– β–ˆβ–Š β– β–ˆβ–™    β–β–œβ–…β– β–ˆβ–‰ ▝▀▙▅■▀ β–β–ˆβ–†β–†β–…β–…
                             β–ˆβ–ˆ                                                β–—β–„ β–ˆβ–›                    β–Ÿβ–ˆβ–Ž                                                                                       β–—β–– β–›                                                             β–‡β–Œ  β–”β–ˆ
▆▆▆▆▆▆▆▆▐▇▋                                 β–β–ˆβ–Œ       β–•β–‡β–‹         β–—β–‡β–ˆβ–€β–                    β–œβ–ˆβ–Ž                                         β–Ÿβ–ˆβ–                                     ▗▅▏  ▇▇▏                β–•β–‡β–Š                           ▇▇▏                                              β–‡β–Š
  β–”β–ˆβ–‰   β–β–ˆβ–™β–…β–†β–†β–…  β–„β–†β– β–‡β–†β––     β–—β–…β–†β–†β–…β–†β–Œ ▗▆▏ β–•β–†β–† β–—β–†β–– β–—β–…β–†β–‡β–†β––β–β–ˆβ–‹ β–—β–†β–     β–—β–†β–ˆβ–†β–† β–„β–†β–‡β–‡β–†β–„ β– β–†β–… β–—β–†β–†     ▆▆▆▏ β–†β–†  ▗▆▍ β–†β–†β–„β–†β–†β–…β–ƒβ–…β–‡β–†β–– β–—β–†β–„β–†β–‡β–†β––  β–…β–†β– β–†β–…  β–„β–†β–†β–†β–Ÿβ–ˆβ–     β–„β–†β–‡β–‡β–†β–„ β–†β–†   β–†β–† β–—β–†β– β–‡β–†β–„ ▗▆▃▅▆▏   β–—β–ˆβ–ˆβ–†β–†β–β–ˆβ–ˆβ–„β–†β–†β–†β–– ▁▅▆■▆▅     β–•β–ˆβ–Š β–—β–†β– β–‡β–†β–… β–•β–†β–†β–†β–†β–†β–‹β– β–†β––  β–†β–†     β–œβ–ˆβ–„β–†β–‡β–†β–– β–†β–†β–ƒβ–…β–† β–„β–†β–‡β–‡β–†β–– β–†β–†  β–†β–†β–– ▗▆▏▗▆▄▅▆▆▖      β–…β–†β–‡β–…β–ˆβ–Š  β–…β–†β–‡β–†β–…β–– β–—β–…β–†β–†β–…β–†
   β–ˆβ–‰   β–β–ˆβ–‹  β–œβ–ˆβ–β–—β–ˆβ–™β–„β–„β–ˆβ–ˆβ–    β–ˆβ–ˆβ–” β–β–ˆβ–‹ β–œβ–ˆβ– β–•β–ˆβ–Š β–β–ˆβ–β–•β–ˆβ–‰   β–”β–β–ˆβ–Šβ–Ÿβ–ˆβ–€      β–œβ–ˆβ– β–β–ˆβ–Œ  β–œβ–ˆβ– β–β–ˆβ–‡β–ˆβ–›       β–œβ–ˆβ–Ž β–ˆβ–Š  β–β–ˆβ– β–ˆβ–ˆβ–” β–œβ–ˆβ–Œ β–•β–ˆβ–Š β–β–ˆβ–  β–œβ–ˆβ–β–Ÿβ–ˆβ–„β–„β–Ÿβ–ˆβ–‹β–—β–ˆβ–›  β–œβ–ˆβ–    β–—β–ˆβ–Œ  β–œβ–ˆβ–β–β–ˆβ–™ β–Ÿβ–ˆβ–˜β–β–ˆβ–™β–„β–„β–Ÿβ–ˆβ–Žβ–β–ˆβ–›β–”β–”     β–ˆβ–ˆβ–  β–ˆβ–ˆβ– β–β–ˆβ–‹ β–ˆβ–ˆβ–„β–„β–Ÿβ–ˆβ–‹    β–•β–ˆβ–Š  β–ƒβ–„β–„β–Ÿβ–ˆβ–   β–…β–ˆβ–€  β–ˆβ–ˆ β–—β–ˆβ–˜     β–œβ–ˆβ– β–β–ˆβ–‰ β–ˆβ–ˆβ–€β–”β–”β–—β–ˆβ–  β–œβ–ˆβ–Žβ–β–ˆβ–Œβ–—β–ˆβ–œβ–™β–•β–ˆβ–› β–œβ–ˆβ– β–”β–ˆβ–‰     β–Ÿβ–ˆβ–˜  β–ˆβ–Š β–Ÿβ–ˆβ–˜  β–ˆβ–ˆ β–ˆβ–ˆβ–” β–β–ˆ
   β–ˆβ–‰   β–β–ˆβ–‹  β–œβ–ˆβ–β–β–ˆβ–‹β–”β–”β–”β–”     β–ˆβ–ˆβ– β–β–ˆβ–‹ β–œβ–ˆβ–Ž β–•β–ˆβ–Š β–β–ˆβ–β–•β–ˆβ–‰   β–β–β–ˆβ–ˆβ–€β–ˆβ–™β––     β–Ÿβ–ˆβ– β–β–ˆβ–™  β–Ÿβ–ˆβ– β–—β–‡β–›β–ˆβ–™       β–œβ–ˆβ– β–ˆβ–‰  β–Ÿβ–ˆβ– β–ˆβ–ˆβ– β–β–ˆβ–  β–ˆβ–Š β–β–ˆβ– β–β–ˆβ–ˆβ–β–œβ–ˆβ–”β–”β–”β–”β–”β–β–ˆβ–Œ  β–Ÿβ–ˆβ–    β–β–ˆβ–Œ  β–Ÿβ–ˆβ– β–β–ˆβ–™β–ˆβ–˜ β–β–ˆβ–™β–”β–”β–”β–” β–β–ˆβ–       β–œβ–ˆβ–  β–ˆβ–ˆβ– β–β–ˆβ–Š β–ˆβ–ˆβ–”β–”β–”β–”β–”    β–•β–ˆβ–Š β–Ÿβ–ˆβ–”β–”β–β–ˆβ– β–„β–ˆβ–›β–˜   β–β–ˆβ–™β–ˆβ–›      β–ˆβ–ˆβ– β–—β–ˆβ–‰ β–œβ–ˆβ–  β–β–ˆβ–Œ  β–Ÿβ–ˆβ–Ž β–œβ–ˆβ–ˆβ– β–ˆβ–ˆβ–ˆβ– β–œβ–ˆβ–  β–ˆβ–‰     β–œβ–ˆβ–– β–β–ˆβ–‰ β–œβ–ˆβ––  β–ˆβ–ˆ β–ˆβ–ˆβ–‚β–β–‚β–ˆ
   β–ˆβ–‰   β–β–œβ–‹  β–β–ˆβ– β–β–€β–ˆβ–‡β– β–€     β–β–€β–ˆβ–€β–œβ–ˆβ–‹ β–β–œβ–ˆβ–›β–€β–ˆβ–Š β–β–ˆβ– β–β–€β–œβ– β–›β–˜β–•β–œβ–‹ β–β–œβ–      β–β–ˆβ–  ▝▀▇▇▀▀ β– β– β–€ β–β–œβ–       β–Ÿβ–ˆβ– β–β–œβ–ˆβ–€β–€β– β– β–œβ–œ  β–β–ˆβ–˜  β– β–Š β–Ÿβ–ˆβ–›β– β–ˆβ–€β–˜  β–€β–œβ– β– β–€β–˜ β–€β–œβ–ˆβ–€β–œβ–ˆβ–     β–€β–œβ–‡β–‡β–€β–˜   ▝■▀   β–β–€β–œβ–‡β– β–€β–β–β– β–       β–β–œβ–ˆβ– β–β–β–›β– β–•β–œβ–‹ β–”β–€β–œβ–‡β– β–€β–˜    β–•β– β–Š β–β–œβ– β– β–€β–ˆβ–β–β–ˆβ–œβ– β– β–€β–‹  β–œβ–ˆβ–›       β–€β–›β–€β– β–ˆβ–€  β–β–œβ–   β–€β–œβ–‡β– β–€β–˜  β–•β–€β–€  β–β– β–˜  β–β–ˆβ–Ž  β–€β–‰     β–β–€β–ˆβ–›β–€β–›β–Š  β–€β–œβ– β–ˆβ–€β–˜ β–β–€β–€β–€β–œβ–ˆ
                                β–β–ˆβ–Œ                                                      β–†β–†β–ˆβ–›                      β–β–ˆβ–                                                                                                     β–ˆβ–ˆ                                                                    β–β–‡β–†β–†β–ˆβ–›
β–β–ƒβ–„β–…β–‡β––β–Ÿβ–Š                     β–—β–…β––    β–—β–†β–Ž       β–—β–‡β–›              β–„                           β–„β–„                           ▁▁ β–β–ˆβ–Ž          β–•β–‡β–Œ                    β–—β–„                                 β–„β–„
β–€β–œβ–ˆβ–β–” β–Ÿβ–Šβ–β–ƒβ–  β–ƒβ–ƒ     β–ƒβ–ƒβ–ƒβ–ƒ β–„ β–‚β–β–β–ˆβ– β–ƒβ–ƒ β–β–ˆβ–Ž β–ƒβ–‚    β–Ÿβ–Šβ–ƒβ–β–β–ƒβ–ƒ ▁▃ β–—β–„   β–•β–ˆβ–Žβ–ƒβ–ƒ β–‚ β–ƒβ–ƒβ–—β–„β–‚ ▁  ▄▂▃▁  ▃▃▁ β–β–ƒβ–Ÿβ–‰    ▁▃▃ β–ƒβ–‚  β–ƒβ–ƒ β–‚β–ƒβ–‚ β–‚ β–ƒβ–„    β–ˆβ–ˆβ–„β–β–ˆβ–β–‚β–ƒ  β–‚β–ƒβ–ƒ   β–•β–ˆβ– ▁▃▃  ▁▁▂▃▃▃▃  β–ƒβ–‚   β–œβ–‰β–ƒβ–‚ ▁▂ β–„β–„ ▃▃▁▂▃  β–ƒ  β–—β–„β–‚β–ƒ  β–‚     β–β–ƒβ–Ÿβ–‰ ▁▃▃  ▁▃▂▃
 β–β–ˆβ–  β–ˆβ–ˆβ–ˆβ–œβ–ˆ β–Ÿβ–›β–œβ–Š   β–Ÿβ–ˆβ–€β–ˆβ–‹β–β–ˆ β–ˆβ–Šβ–β–ˆβ–β–Ÿβ–›β–ˆβ–‹β–β–ˆβ–„β–†β–ˆβ–€   β– β–ˆβ–›β–€β–šβ–ˆβ–€β–œβ–™β–β–ˆβ–™β–ˆβ–˜   β–β–ˆβ–Žβ–ˆβ–Œβ–β–ˆβ–Žβ–ˆβ–‹β–ˆβ–ˆβ–‹β–Ÿβ–ˆβ–‹β–β–ˆβ–›β–œβ–ˆβ–β–Ÿβ–›β–œβ–‰β–—β–ˆβ–€β–ˆβ–‰   β–•β–ˆβ–€β–œβ–ˆβ–β–ˆβ––β–—β–ˆβ–›β–Ÿβ–›β–œβ–ˆβ–β–ˆβ–ˆβ–›β–”   β– β–ˆβ–Šβ–€β–β–ˆβ–ˆβ–›β–ˆβ–Œβ–—β–ˆβ–€β–ˆβ–Ž  β–•β–ˆβ–Œβ–Ÿβ–›β–€β–ˆβ–Œ β–€β–€β–œβ–ˆβ–›β–œβ–ˆβ–Žβ–—β–ˆβ–›   β–œβ–ˆβ–›β–ˆβ–Œβ–œβ–ˆβ–ˆβ–€β–”β–Ÿβ–›β–€β–ˆβ–Ÿβ–ˆβ–β–β–ˆβ–‹ β–Ÿβ–›β–β–ˆβ–Žβ–‡β–ˆβ–Š   β–—β–ˆβ–€β–ˆβ–‰β–•β–ˆβ–€β–œβ–ˆβ–•β–ˆβ–€β–ˆβ–ˆ
 β–β–ˆβ–  β–ˆβ–ˆβ–˜β–β–ˆβ–β–ˆβ–…β–›β–˜   β–ˆβ–‰ β–ˆβ–‹β–œβ–ˆ β–ˆβ–‹β–β–ˆβ–•β–ˆβ–β–β–‚β–β–ˆβ–ˆβ–‰β–     β–Ÿβ–Š β–β–ˆ β–β–ˆβ–β–Ÿβ–ˆβ–Œ    β–β–ˆβ–Žβ–ˆβ–Œβ–β–ˆβ–β–ˆβ–ˆβ–˜β–ˆβ–ˆβ–›β–ˆβ–Šβ–β–ˆβ–Œβ–β–ˆβ–Žβ–ˆβ–™β–›β–˜β–œβ–ˆ β–ˆβ–Š   β–β–ˆβ–β–β–ˆβ–β–œβ–™β–Ÿβ–› β–ˆβ–™β–ˆβ–˜β–β–ˆβ–˜      β–ˆβ–Š β–β–ˆβ–› β–Ÿβ–Šβ–ˆβ–™β–‡β–€   β–•β–ˆβ–β–„β–‡β–€β–ˆβ–Š  β–Ÿβ–ˆβ–˜  β–œβ–™β–ˆβ–›    β–œβ–ˆ β–ˆβ–Šβ–œβ–ˆβ–˜ β–•β–ˆβ–β–•β–ˆβ–β–ˆβ–™β–ˆβ–›β–ˆβ–…β–ˆβ–β–β–ˆβ–ˆβ–˜β–ˆβ–‰   β–œβ–ˆ β–ˆβ–‰β–β–ˆβ–β–β–ˆβ–β–ˆ β–Ÿβ–ˆ
 β–β–ˆβ–  β–œβ–Š β–β–ˆ β–œβ–™β–…β–‰   β–β–ˆβ–†β–ˆβ–‹β–β–ˆβ–…β–ˆβ–˜β–β–ˆβ–β–œβ–™β–Ÿβ–€β–β–ˆβ–›β–€β–ˆβ–†    β–œβ–Š β–β–ˆβ–„β–Ÿβ–›β–—β–ˆβ–€β–ˆβ––   β–β–ˆβ–β–œβ–™β–Ÿβ–› ▝▛ β–ˆβ–ˆβ–β–ˆβ–Šβ–•β–ˆβ–ˆβ–Ÿβ–› β–œβ–™β–…β–ˆβ–β–ˆβ–…β–ˆβ–‰   β–•β–ˆβ–™β–Ÿβ–› β–β–ˆβ–ˆβ– β–œβ–™β–„β–ˆβ–β–ˆβ–Ž      β–ˆβ–Š β–β–ˆβ–Ž β–ˆβ–Œβ–β–ˆβ–„β–ˆβ–  β–•β–ˆβ–Œβ–ˆβ–™β–Ÿβ–œβ–ˆβ–—β–‡β–ˆβ–…β–†β–‡  β–ˆβ–‰     β–Ÿβ–ˆβ–™β–ˆβ–Œβ–Ÿβ–ˆ   β–œβ–™β–Ÿβ–› β–β–ˆβ–‰ β–œβ–ˆβ–Œ β–β–ˆβ–‹ β–ˆβ–‰   β–β–ˆβ–…β–ˆβ–‰β–•β–ˆβ–™β–Ÿβ–›β–•β–ˆβ–†β–›β–ˆ
  β–”β–”  β–”β–”     β–”β–”      β–”β–Ÿβ–‹ β–”β–”β–”  β–”  β–”β–”  β–”   β–”    β–”β–”   β–”β–”  β–” β–”β–”  β–—β–Ÿβ–›  β–”β–”     β–”β–˜ β–”β–”β–β–ˆβ–Žβ–”   β–”β–”   β–”β–”β–”     β–”β–”   β–”β–”   β–”β–”  β–”       β–”β–”  β–”     β–”β–”     β–”β–”β–”β–”  β–” β–”β–”β–”   β–•β–ˆβ–     β–”β–”β–”β–”  β–”    β–”β–”   β–”β–” β–”β–”   β–€β–˜        β–”β–”β–”  β–”β–”  β–—β–…β–„β–ˆ
β–—β–  β–…β–… ▅▖▐▛                       β–ƒ      β–œβ–Œ       β–„β–€β–œ            β–—β––                             β–‡                             β–—β–Œ           β–‡β–˜                  β–•β–‡                                 β–‡
   β–‰    β–Ÿ ▁    ▁      ▁ ▁        β–”   ▁  β–› ▁     β–Ÿβ–˜  ▁           ▝▔       ▁  ▁ ▁   β–—     ▁    β–β–Ÿβ–˜     ▁   ▁     ▁  ▁ ▁    β–—β––  β–› ▁         β–—β–›    β–‚  ▁   ▁       β–Ÿβ–˜β–  ▁ ▁   ▁             ▁       β–β–Ÿβ–˜  ▁    ▁
  β–Ÿβ–˜   β–—β–™β–β–œβ–‹ β–…β–šβ–›    β–„β–€β–”β–ˆβ–˜β– β–ˆβ–˜β–—β–› β–β–ˆβ–˜ β–žβ–”β–€ β–Ÿβ–Žβ–β–›β–   β–œβ–›β–”β–—β–›β–”β–‰ β–€β–™β––β–€β–˜   ▝▉ β–β–ˆ β–—β–› β–€β–ˆβ––β–šβ–Šβ–žβ–œβ–‹ ▐▛▔▇ β–—β–žβ–ƒβ–‹β–—β–…β–€β–β–›    β–„β–€β–”β–Š ▐▛ β–Ÿβ–Žβ–—β–€β–Ÿβ–˜β–β–‰β–žβ–€   β–•β–›β–˜ β–Ÿβ–β–€β–œβ–β–—β–žβ–šβ–›    β–Ÿ  β––β–€β–œβ–˜β–•β–›β–€β–›β–˜β–β–œβ–Žβ–Ÿβ–   β–—β–‹β–€β–β–‹β–β–œβ–Žβ–€β–β–†β–˜β–œβ– β–œβ–˜ β–ž β–β–Œβ–β–ˆβ–β–€β–ˆβ–   ▗▅▀▐▛ β–„β–€β–”β–Š β–†β–˜β–Ÿβ–Ž
 β–—β–›   β–—β–›β–” β–Ÿ β–Ÿβ–˜β–”    β–Ÿβ–˜β–‚β–Ÿβ–Œ β–—β–˜β––β–ˆβ–š β–Ÿβ–˜ β–Ÿβ–β– β–—β–€β–œβ–”     β–Ÿβ–β–β–› β–Ÿβ–˜β–β–—β–œβ––β–    β–Ÿβ–˜ β–Ÿβ–˜β––β–ˆβ–‚ β–Ÿβ–˜ β–Ÿβ–˜β–—β–›β– β–Ÿ β–—β–›β–•β–Šβ–”β–β–•β–› β–„β–ˆβ–‚   ▐▛ β–Ÿβ–˜ β–Ÿβ–˜β–—β–˜β–—β–›β–”  β–Ÿβ–˜     β–Ÿβ–šβ––β–—β–› β–—β–› ▉▔▁    β–Ÿβ–˜β–ƒβ–Ÿβ–β–…β–›β–β–β–…β–˜ β–– β–Ÿβ–Žβ–˜   β–•β–‰ β–—β–› β–—β–›  β–Ÿβ–˜β–—β–› β–—β–›β–—β–Ÿβ–Žβ–β–ž β–—β–› β–Ÿβ–˜   β–•β–› β–„β–ˆβ–‚β–β–› β–Ÿβ–˜β–β–™β– β–€
▝▀▀   ▝ ▝▀  ▝▀▔    ▝▀▔▉  β–€β–” β–€β–” β–€β–” ▝▀▔ β–€  β–€    β–—β–Œ  β–€β–€β–” β–€β–” β–€β–˜   β–—β–›  ▀▔▝▀▔ β–˜ β–β–˜ ▝▀ β–Ÿβ–€β–€β–”  β–€β–€β–” β–€β–˜ β–€β–”    β–€β–€β–”  β–€β–€   β–€β–€  β–˜      β–€β–” β–€ β–β–˜  β–€β–€β–”    β–€β–˜ ▀▔▝▀ β–˜β–”β–€β–€β–” β–Ÿβ–˜     β–€β–€β–”  ▝   β–β–€β–˜  ▝▀▔▝▀▔  β–€  β–€β–”    β–€β–˜ β–€β–” β–€β–€β–” β–ƒβ– β–…β–‚
                    β–β–Ÿβ–Œ                     β–…β–„β–ž             β–—β–ƒβ–ž                β–ƒβ–Š                                                                  ▗▄▝▔                                              ▝▙▂▃▛
β–…β– β– β–…β– β– β–… β–‡β–Œ                         β–•β–…       ▐▇        β–…β–€β–€β–Ž              β–…β––                                ▐▇                                 ▐▇             β–œβ–‹                      β–‡β–Œ                                    β–‡β–Œ
β–˜ ▐▉  β–˜ β–ˆβ–β–ƒβ–‚   β–‚β–ƒβ–‚     ▁▃▂▂ β–‚β–‚  β–‚  β–‚   ▁▂▃  β–Ÿβ–Œ β–‚β–‚   β–β–Ÿβ–Œβ– β–‚β–ƒβ–‚  ▁▃  β–‚β–‚   β–‚β–ƒ β–‚β–ƒ  ▁  ▂▂▁▃▂ β–‚β–‚  ▂▂▁▂   ▁▂▃   β–‚β–ƒβ–Ÿβ–Œ     ▂▃▁ β–‚β–ƒ  ▁▖  β–‚β–ƒ  ▂▁▁▂   β–β–Ÿβ–β– β–Ÿβ–Œβ–‚β–ƒ   ▁▃▂     β–Ÿβ–Ž  β–‚β–ƒβ–‚  ▂▂▂▂▂▂▁  ▁     β–ˆβ–β–ƒ  ▂▃▁▂  β–‚β–ƒβ–‚ ▁▃  ▁   β–‚ ▃▁▂▃      β–β–‚β–ƒβ–ˆβ– ▁▂▂    β–‚β–ƒβ–‚
  β–Ÿβ–Œ   β–β–›β–”β–”β–ˆβ–β–—β–‡β–”β–ƒβ–›    β–Ÿβ–˜ β–Ÿβ–Œ β–Ÿβ–‹  β–ˆ  β–Ÿβ– β–Ÿβ–˜ β–β–Ž β–ˆβ–‚β–žβ–˜    β–•β–ˆβ–”β–”β–Ÿβ–˜ ▝▙  β–œβ–™β–žβ–€    β–β–Š β–β–Š  β–ˆβ–Ž β–Ÿβ–›β–”β–β–‰β–”β–”β–ˆβ–Ž β–Ÿβ–›β–”β–β–‰ β–Ÿβ–€β–‚β–Ÿβ–˜β–—β–›β–” β–ˆβ–   β–—β–›β–” β–œβ–Œ β–œβ–Ž β–Ÿβ–˜β–—β–›β–β–Ÿβ–‹ β–Ÿβ–β–”β–˜   β–β–Šβ–”β–” β–ˆβ–”β–”β–œβ–Œ β–Ÿβ–˜β–‚β–Ÿβ–˜   ▐▉ β–—β–›β–”β–•β–ˆ β–•β–˜β–β–Ÿβ–€ β–”β–ˆβ–β–•β–›    β–β–›β–”β–β–ˆ β–•β–ˆβ–”β–€ β–‡β–˜ ▐▙ β–œβ–‹ β–Ÿβ–Œ β–Ÿβ–˜ β–ˆβ–€β–”β–œβ–‹    β–Ÿβ–€ ▐▋ β–Ÿβ–›β–”β–”β–ˆβ–Žβ–—β–›β–” β–ˆ
 β–•β–ˆβ–   β–Ÿβ–Ž β–β–Š β–œβ–‹β–”β–”    β–β–Š β–β–ˆ  β–ˆβ–Ž β–Ÿβ–‹ β–•β–ˆ β–β–Š    ▐▋▝▙     ▐▋ ▐▉  β–—β–› β–β–„β–œβ–Œ     β–Ÿβ– β–Ÿβ– ▐▉  β–ˆβ– β–Ÿβ–Œ β–•β–‰  β–ˆβ– β–Ÿβ–›β–β–ˆβ–”β–”  β–ˆβ– ▐▋    β–œβ–Œ  β–Ÿβ–˜ β–β–™β–žβ–˜ β–ˆβ–Žβ–”  β–•β–ˆ      β–Ÿβ–  β–—β–‹  β–ˆβ–β–β–ˆβ–”β–”     β–Ÿβ– β–ˆβ– β–Ÿβ–‹  β–„β–›β–˜β–—  β–β–‹β–ž     β–Ÿβ–Ž β–—β–› β–Ÿβ–Œ  β–β–Š  ▐▛ β–•β–‰β–Ÿβ–€β–Šβ–Ÿβ–˜ ▐▉  β–Ÿβ–Ž   ▐▉  β–Ÿβ–Ž β–ˆβ–Ž  β–ˆβ–β–Ÿβ–Œ β–β–Š
 β–€β–€β–˜   β–€  ▝▀  β–€β–€β–€β–”    β–€β–€β–œβ–‹  ▝▀▀▝▀ ▝▀  β–€β–€β–€β–” β–β–˜ ▝▀    β–Ÿβ–  ▝▀■▀ ▝▀  β–€β–˜   β–—β–›  ▝▀▀▝▀ β–•β–€  β–€β–˜ ▝▀ ▐▛■▀▔  β–β–€β–€β–˜ ▝▀▀▝▀     β–€β– β–€β–˜  ▝▀   ▝▀▀▀ β–β–˜      β–€β–€β–˜ β–€β–˜  β–€β–˜ β–€β–€β–€β–˜    β–€β–˜ ▝▀▀▝▀ β–€β–€β–€β–€β–€  β–•β–›      β–€β– β–€β–˜  β–€    ▝▀▀▀   β–€  β–€   β–β–˜  β–€β–˜    β–€β–€β–”β–€β–˜ β–”β–€β– β–€β–” β–β–€β–€β–ˆβ–˜
                       β–ƒβ–ˆβ–                       β–•β–…β–„β–˜                β–—β–€                  β–—β–Ÿβ–™                                                                              β–„β–›                                                     β–•β–…β–„β– β–˜
β–Ÿβ–‡β–‡β–ˆβ–Š     ▁▁▁                 ▁    ▁     ▁▁                             ▁▂   ▁▁  ▁▁             ▁ ▁▁▁  ▁       ▁▁   ▁  ▁▁          ▁                ▁   ▁                      ▁▁        β–‚
β–€β–œβ–›β–”β–”β–‡β–β–Ÿβ–Žβ–ˆβ–ˆβ–€β–˜    β–…β–ˆβ–™ β–Ÿβ– β–œβ–β–‡ β–…β–ˆβ–ˆβ–Œβ–ˆ β–Ÿβ–Œ    β–Ÿβ–›β–€β–˜β–…β–ˆβ–™ β–‡β–„ β–Ÿβ–˜    ▅▆▇■▗▍ ▐▋▐▙ β–—β–ˆβ–β–ˆβ–€β–ˆβ–β–ˆβ–ˆβ–€β–•β–†β–ˆβ–œβ–ˆβ–    β–Ÿβ–ˆβ–™ β–– β–Ÿβ–˜β–ˆβ–ˆβ–€β–˜β–†β–ˆβ–œβ–Œ    β–Ÿβ–ˆβ–ˆβ–ˆ β–Š β–ˆβ–β–ˆβ– β–€    β–β–Œ   β–—β–ˆβ–β– β–ˆβ–ˆβ–β–•β–‡β––β–—β–    β–—β–›β–œβ–Œβ–…β–ˆβ–œβ–Šβ–—β–‡β–ˆβ––β–β–‹   ▇▖▆▁ β–Ÿβ–   β–—β–‡β–ˆβ–œβ–ˆβ–β–Ÿβ–ˆβ–™ β–—β–›β–œβ–‹
 β–Ÿβ–‹  β–ˆβ–„β–ˆβ–β–ˆβ–†β––    β–•β–Šβ–”β–ˆβ–β–ˆ  ▐▍▉▐▛ β–β–˜β–ˆβ–Ÿβ–˜     β–ˆβ–…β–†β–•β–Š β–œβ–Žβ–β–ˆβ–ˆβ–‹      β–•β–‹ β–Ÿβ–Ž β–β–‹β–Ÿβ–ˆβ–„β–ˆβ–ˆβ–β–™β–†β–›β–β–ˆβ–†β–Ž β–‰  β–Ÿβ–Ž   β–β–Œ β–ˆβ–β–ˆβ–ƒβ–›β–•β–ˆβ–†β––β–•β–ˆβ–„β–ˆβ–˜     β–ˆβ–Ž β–•β–™β–…β–‰β–β–™β–†β–Ž    ▐▍  β–—β–‰β–ˆβ– β–Ÿβ–€  β–β–œβ–›     β–œβ–ˆβ–ˆβ–…β–œβ–™β–Ÿβ–˜β–Ÿβ–Ž β–Šβ–Ÿβ–‹β–Ÿβ–Ž β–œβ–Œβ–ˆβ–ˆβ–…β–ˆ     β–‰  β–Ÿβ–β–‹ β–œβ–β–‰ β–…β–™
 β–Ÿβ–‹  β–ˆβ–”β–œβ–Žβ–ˆβ–…β–…β––   β–•β–ˆβ–ˆβ–ˆ β–œβ–†β–…β–ˆβ–•β–ˆβ–β–™β–„β–„β––β–ˆβ–ˆβ–…     β–‰β–”  β–ˆβ–†β–›  β–Ÿβ–œβ–ˆβ–Ž    ▐▅▉ β–β–‡β–…β–Ÿβ–˜β–Ÿβ–›β–€β–˜β–œβ–•β–Šβ–” β–β–ˆβ–…β–…β–β–ˆβ–…β–†β–›    β–β–ˆβ–†β–› β–œβ–ˆ β–•β–ˆβ–…β–…β––β–Ÿβ–ˆβ–…      β–ˆβ–Ž β–β–Šβ–”β–‰β–β–ˆβ–…β–…    β–β–™β–†β–…β–Ÿβ–›β–œβ–Œβ–Ÿβ–™β–†β–†β– β–Ÿβ–˜     β–Ÿβ–™β–…β–˜β–β–ˆβ–™β––β–β–‡β–‡β–˜β–β–ˆβ–ˆβ–ˆβ–†β–ˆβ–β–‹β–β–œβ–ˆ    β–β–ˆβ–…β–‡β–›β–•β–ˆβ–†β–›β–•β–ˆβ–†β–ˆβ–ˆ
 β–”β–”  β–” β–β–˜β–”β–”β–”     β–”β–”β–”  β–”β–”β–” β–” β–”β–”β–” β–” β–”     β–”    β–”     β–”      β–”β–”  β–”β–”β–” β–”   β–” β–”   β–”β–”β–” β–”β–”β–”      β–”β–”   β–”  β–”β–”β–” β–”β–”β–”      β–”   β–” β–€ β–”β–”β–”     β–”β–”β–”β–”  β–”β–”β–”β–”β–”  β–”      β–”β–”   β–”β–”  β–”β–”  β–” β–”β–”  β–”  β–€     β–”β–”β–”  β–”β–”   β–”β–”β–Ÿ

Usage

Usage: title_creator

Create a title

optional arguments:
display:
    --text=Hello World!
        text to render (default Hello World!)
    --characters= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}
        text to render, ignored when loading a map (default  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|})
    --resolution=16
        text to render, ignored when loading a map (default 16)
    --aspect=0.5
        character height to width (default 0.5)
    --font=/System/Library/Fonts/Monaco.ttf
        filename of the ttf/otf font (default /System/Library/Fonts/Helvetica.ttc)
    --size=12
        font size in points (default 25)
    --max-width=None
        maximum width to render
    --mode=20
        render mode (default 20)
    --allow-inverted=false
        use inverted characters, ignored when writing to file
input/output:
    --load=None
        load saved character map
    --save=None
        save character map
    --output=None
        save output to file

Example

title_creator -font /Library/Fonts/CooperBlackStd.otf -resolution 64 -allow-inverted=false -text "Numbers" -characters="1234567890#%$^*.,-+<> "

  ,,,,,        ,,,,,
<%%%%%%0,     %%%%%%%>                                           ,,#%%%%>
  %%%%%%%%%     %%%0                                             %%%%%%%
   %%%%%%%%%%,  %%%>  ,,+4##%  ,,+##%%    ,,+#%  ,4#%%,  ,4#%%,    %%%%% ,+#%%,      ,+#%%%+,    ,,+##% ,4%%,   ,4%%%4#%,
   %%%%%%%%%%%%#%%%   70%%%%%  %%%%%%%  #%%%%%%0%%%%%%%%%%%%%%%%   %%%%%%%%%%%%%,  ,%%%0770%%%, %%%%%%%%%%%%%  0%%%%0%%%%,
   %%%%7%%%%%%%%%%%     %%%%%   4%%%%%   %%%%%%7 3%%%%%#  %%%%%%   %%%%%7 7%%%%%% 2%%%%%,,#%%%%  3%%%%%0%%%%#  %%%%%%, 77
   %%%1   %%%%%%%%%     %%%%%   4%%%%%   4%%%%%   %%%%%7  %%%%%%   %%%%%   3%%%%% %%%%%0%%%%%%#  4%%%%%        7%%%%%%%%,
   %%%8     %%%%%%%     %%%%%,  8%%%%%   4%%%%%   %%%%%1  %%%%%%   %%%%%,  ,%%%%# %%%%%0,   ,,,  4%%%%%       ,%,7%%%%%%%,
 <%%%%%%      7%%%%     %%%%%%%%%%%%%%% ,%%%%%%, #%%%%%% ,%%%%%%, ,%%%%%%,,%%%%7   %%%%%%%%%%%7 <%%%%%%%%     3%%%,#%%%%%
 7#%%%#7        7%#      7#%%#7  %%##7  7#%%%##7 9#%%%#7 79#%%##      7#%%%#7        79%%%#77   7#%%%%##7      7###%%%#7

Why?

I like starting my programs with a nice title. So why another? I wanted to see if go could improve the performance over python. Was it fast? Yes. Much

How?

  1. It takes the text and renders it to an image using the font and the size
  2. It scales the image to no bigger than max-width.
  3. It scales the image to the inverse of aspect so that when drawn to screen it matches the original image.
  4. It crops the image into chucks of resolution x resolution and puts it into a 4D array.
  5. It then takes the characters and maps each one to a 2D array of brightness values, and optionally saves or loads this
  6. It then goes through 2 dimensions of the 4D array and compares ,using the mode, to see which is the best match, and optionally allow-inverted versions of the character
  7. It draws each matching character to screen or outputs to file

What are the modes?

  • Mode 0 (default) : Mean Squared Error
  • Mode 1 : Sum of absolute differences in matrix
  • Mode 2-4 : Absolute differences in matrix with neighbouring values
  • Mode 10-23: Contrasted values

Improvements?

Add more font types

State

  • Some fonts it does not render some characters, for example, the letter 'n' might not appear when using myfont.ttf??
  • Unicode characters beyond 1byte (255 or \u00FF) do not render, this matters for title and for characters used in the character map, but will write to screen
    • Workaround: Use the python script to create json maps and use those in the go program. It will allow you to use those character to render but still not be in the title, for that stick the python version
  • Does not work with all fonts.

Notes/Troubleshooting:

β€œtitle_creator” cannot be opened because the developer cannot be verified.

xattr -d com.apple.quarantine /path/to/title_creator

zsh: permission denied: /path/to/title_creator

chmod a+x /path/to/title_creator

Block characters to not line up, or words are "wavey"

Windows only renders block characters aligned in the console and no where else
Make sure you are using a fixed width font

Empty squares appear

Choose a font that supports the character you choose the render with

New

1.0

Create a title and save/load the character map created

1.1

  • Fixed bad ascii code in default character set
  • Support multiline
  • Better cropping
  • Inverted mode
  • New render modes
  • Code cleanup

1.1.1

  • Printing first character only in json key, this allows for duplicate keys, example ascii-art.json
              /----\        /--------|                                                                                                                                 /-----\                      ---------|                                          /---------|
         ---- ------ -----|   -|     /                                                                                                                                       |                       \\     |                                             -\     |
      /--   -/      \-    |    |    |                                                                                                                                  \    -/                        |     |                                              |     /
    /-    -/          \  |    /     /                                                                                                                                   \---                          |    |                                               |    |
   /     |/           \| |    |    |   -----\            --------\     /----\    /----    -----\    ----\    -----        ------             -----\    ------       ------            --------       /     |     /----         /-------\          /------\/     |
  /      /             \-/   /     |--       \\      /--- ----    -\/--      -\/-     -/--      \/--     \/-      -\     /     |          /--      \/--      -\  /---     -\      /--  ----|  -\     |     /   /--    |     --- ---\    -\     /--   ----      |/
 /      |                    |     -----|     |    //    /   |     |\/  |     ---|     -  \|     --/     |-  \|    |     |     /          \  \|     --  \|     \     |     |    //    /   /     |   /     |  /- -     /   /-   //   |    |   //    -/    |     |
 |      |                   /     /     |     /   /-    /    /    -/    |     / \     /    |    |/ \     /   /     |    /|    |              /|    |     |     |     |     /   /-    |    |     /   |     //- // ----/   /    |/   /|    /  /-    |/     |     /
 |      |                   |     /    /     /    |     / ---   --/    /     |   \---/    /     |   \---/    /     /    |     |              |     /     |     |    /     /    |     |     ----/   /     |/   |\        /     | ----  --/   |     /     /     |
 |      |             /\   /     |     |    |/   /      -------        |     /            |    |/           /     /     |    |               |    |      |     /    |     /    |     |             |     -     \        |     -------/     |     |      |     /
 \|     |           // -   |     /    /     |    \      \        /\    |    |            /     |            |     /    /     |              /     |     /     -/   /     |     |     |        /\  /     | \     \       |     |        /\  |     |     /     |
  \-     -\       /---/   /     |     |     |     \     \\    /-- /   |     |            |     /                 |\ /--      /              |     /    /-    //    |     |     \      \     -- /  |     /  \     \      \      \     -- -/ \      \   //     |
    \-     ----------     |     /     \-     ---/  \-     ---- --/    |    |            /     |             \       --/     /              /      -----   --/      \     ----/  \-     ---- --/  /|    |    \     ----/  \-     -------/    \-     ------     ---/
       -----------        ------        ------/      \--------/       -----/            \-----/              \------  /    |/              |     /--------          \-------      \---------     \-----/     \-------      \---------         -------/   ------/
                                                                                                          /----\     /    -/              /     |
                                                                                                          |     \\ //   -/                /     |
                                                                                                          \---   -- ----              /---      ---\
                                                                                                               \--                    \------------