pub struct Logo {
pub lines: &'static [&'static str],
pub colors: &'static [&'static str],
}
pub fn get(selector: &str) -> Option<Logo> {
let sel = selector.to_ascii_lowercase();
if sel == "none" || sel == "off" {
return None;
}
let name = if sel == "auto" { detect_distro() } else { sel };
Some(
known(&name)
.or_else(|| known(&detect_distro()))
.unwrap_or(Logo {
lines: TUX,
colors: TUX_COLORS,
}),
)
}
#[cfg(target_os = "linux")]
fn detect_distro() -> String {
let id = std::fs::read_to_string("/etc/os-release")
.ok()
.and_then(|s| {
s.lines().find_map(|l| {
l.strip_prefix("ID=")
.map(|v| v.trim().trim_matches('"').to_ascii_lowercase())
})
})
.unwrap_or_default();
normalize(&id)
}
#[cfg(target_os = "macos")]
fn detect_distro() -> String {
"macos".to_string()
}
#[cfg(target_os = "linux")]
fn normalize(id: &str) -> String {
if id.starts_with("opensuse") {
return "opensuse".to_string();
}
match id {
"linuxmint" => "mint",
"raspbian" | "raspberry-pi-os" => "debian",
"popos" => "pop",
"" => "tux",
other => other,
}
.to_string()
}
fn known(name: &str) -> Option<Logo> {
Some(match name {
"debian" => Logo {
lines: DEBIAN,
colors: &["38;2;168;0;48"],
},
"arch" => Logo {
lines: ARCH,
colors: &["38;2;23;147;209"],
},
"ubuntu" => Logo {
lines: UBUNTU,
colors: &["38;2;255;255;255"],
},
"fedora" => Logo {
lines: FEDORA,
colors: &["38;2;81;162;218"],
},
"mint" => Logo {
lines: MINT,
colors: &[
"38;2;106;181;64",
"38;2;248;248;248",
"38;2;172;213;149",
"38;2;138;197;106",
"38;2;223;237;215",
"38;2;191;222;174",
"38;2;126;191;90",
"38;2;154;204;126",
],
},
"manjaro" => Logo {
lines: MANJARO,
colors: &["38;2;53;191;164"],
},
"pop" => Logo {
lines: POP,
colors: &[
"38;2;72;185;199",
"38;2;211;238;241",
"38;2;129;207;216",
"38;2;162;219;227",
"38;2;236;248;249",
"38;2;92;193;205",
"38;2;179;226;232",
"38;2;108;199;210",
],
},
"opensuse" => Logo {
lines: OPENSUSE,
colors: &["38;2;220;225;232"],
},
"alpine" => Logo {
lines: ALPINE,
colors: &["38;2;13;89;127"],
},
"void" => Logo {
lines: VOID,
colors: &["38;2;171;194;171", "38;2;71;128;97"],
},
"nixos" => Logo {
lines: NIXOS,
colors: &[
"38;2;76;110;181",
"38;2;119;181;223",
"38;2;100;150;200",
"38;2;69;100;164",
"38;2;113;166;205",
"38;2;72;104;171",
"38;2;87;129;185",
"38;2;116;174;214",
],
},
"nixos_small" => Logo {
lines: NIXOS_SMALL,
colors: &[
"38;2;76;110;181",
"38;2;119;181;223",
"38;2;100;150;200",
"38;2;69;100;164",
"38;2;113;166;205",
"38;2;72;104;171",
"38;2;87;129;185",
"38;2;116;174;214",
],
},
"gentoo" => Logo {
lines: GENTOO,
colors: &[
"38;2;253;253;254",
"38;2;100;94;137",
"38;2;185;182;215",
"38;2;145;139;187",
"38;2;208;206;228",
"38;2;124;118;162",
"38;2;232;231;242",
"38;2;167;163;201",
],
},
"endeavouros" | "endeavour" => Logo {
lines: ENDEAVOUROS,
colors: &[
"38;2;121;55;188",
"38;2;254;113;114",
"38;2;113;112;254",
"38;2;180;80;155",
"38;2;116;91;230",
"38;2;152;67;170",
"38;2;218;97;133",
"38;2;172;96;179",
],
},
"kali" => Logo {
lines: KALI,
colors: &["38;2;220;225;232"],
},
"elementary" => Logo {
lines: ELEMENTARY,
colors: &["38;2;220;225;232"],
},
"zorin" => Logo {
lines: ZORIN,
colors: &["38;2;21;166;240"],
},
"artix" => Logo {
lines: ARTIX,
colors: &[
"38;2;18;161;204",
"38;2;72;182;215",
"38;2;14;128;163",
"38;2;16;141;179",
"38;2;52;173;211",
"38;2;36;154;190",
"38;2;32;166;207",
"38;2;16;151;193",
],
},
"rocky" => Logo {
lines: ROCKY,
colors: &["38;2;16;185;129"],
},
"almalinux" | "alma" => Logo {
lines: ALMALINUX,
colors: &[
"38;2;255;203;18",
"38;2;0;105;218",
"38;2;255;70;73",
"38;2;134;218;47",
"38;2;36;194;255",
"38;2;131;217;54",
],
},
"centos" => Logo {
lines: CENTOS,
colors: &[
"38;2;161;79;140",
"38;2;239;167;37",
"38;2;204;160;193",
"38;2;246;208;138",
"38;2;187;108;106",
"38;2;177;109;160",
"38;2;239;180;77",
"38;2;216;141;66",
],
},
"devuan" => Logo {
lines: DEVUAN,
colors: &["38;2;220;225;232"],
},
"mx" => Logo {
lines: MX,
colors: &["38;2;220;225;232"],
},
"garuda" => Logo {
lines: GARUDA,
colors: &[
"38;2;122;128;244",
"38;2;186;69;198",
"38;2;164;107;222",
"38;2;140;134;241",
"38;2;96;117;248",
"38;2;177;85;208",
"38;2;153;125;232",
"38;2;108;122;246",
],
},
"macos" | "apple" | "osx" | "mac" => Logo {
lines: MACOS,
colors: &["38;2;220;225;232"],
},
"tux" | "linux" | "generic" => Logo {
lines: TUX,
colors: TUX_COLORS,
},
_ => return None,
})
}
const TUX_COLORS: &[&str] = &[
"38;2;200;205;215",
"38;2;237;186;16",
"38;2;75;55;8",
"38;2;166;141;69",
"38;2;136;96;9",
"38;2;202;184;145",
"38;2;204;150;13",
"38;2;235;214;169",
];
const DEBIAN: &[&str] = &[
" $1.-+##*++++=:",
" $1:+%@@@@@@@@@@@@@%%+-",
" $1=%@@@@#+:. ..-+#@@@%=",
" $1.#@@@#- :#@@@%:",
" $1.:%@%=. =@@%#.",
" $1-@@= .-==-: =@%-.",
" $1:%@* .+=: . .%@+",
" $1*@# :*. #@#",
" $1*@+ #- . #@=",
" $1*@- #+ . :%*.",
" $1*@- -%: .. :@+.",
" $1=@* :-*+: .-##-",
" $1.%@: .=#*+++***=.",
" $1=@@*. ....",
" $1+@@=",
" $1+@%:",
" $1:%@+",
" $1=%#=.",
" $1-*%=:",
" $1:=+-:..",
];
const ARCH: &[&str] = &[
" $1-=",
" $1:@@-",
" $1.%@@%:",
" $1#@@@@%.",
" $1*@@@@@@#.",
" $1=@@@@@@@@#.",
" $1=-=%@@@@@@@#",
" $1+@@%**%@@@@@@#",
" $1+@@@@@@@@@@@@@@#.",
" $1+@@@@@@@@@@@@@@@@#.",
" $1+@@@@@@@@@@@@@@@@@@#.",
" $1*@@@@@@@@%**%@@@@@@@@#.",
" $1*@@@@@@@%- :%@@@@@@@%.",
" $1.#@@@@@@@@: .%@@@@@@@%.",
" $1.#@@@@@@@@* +@@@@@%#%%:",
" $1.%@@@@@@@@@* -@@@@@@@#=-",
" $1:%@@@@@@@@%#= -#%@@@@@@@@+:",
" $1:%@@@@#+-: :-+#@@@@@-",
" $1-@@#=: :=#@@=",
"$1-+- :+-",
];
const UBUNTU: &[&str] = &[
" $1..::. .-==-:",
" $1.-+*%@@@@%: :*@@@@@@%=",
" $1.=#@@@@@@@@@- .%@@@@@@@@@+",
" $1.+@@@@@@#*=-:: -@@@@@@@@@@#",
" $1=@@@@@#=. .#@@@@@@@@@-",
" $1:++#%#: =#@@@@%*: :#+",
" $1.:--: ... .*@@@=",
" $1-#@@@@@%+. .#@@@@:",
"$1=@@@@@@@@@%. :@@@@*",
"$1#@@@@@@@@@@- %@@@%",
"$1=@@@@@@@@@%. .%@@@%",
" $1-#@@@@@%+. -@@@@+",
" $1.:::. .#@@@@:",
" $1-++*#* .. +@@@@=",
" $1*@@@@%- .=#@@@@#=. =@@=",
" $1=%@@@@#=. :%@@@@@@@@%. -:",
" $1.+@@@@@@%*=-: +@@@@@@@@@@+",
" $1.=#@@@@@@@@: =@@@@@@@@@@-",
" $1.-+*%@@@#. -%@@@@@@%-",
" $1..:. :====:",
];
const FEDORA: &[&str] = &[
" $1:-+*#%%%%%%#*+-:",
" $1.=*%@@@@@@@@@@@@@@@@@#=.",
" $1-*@@@@@@@@@@@@@@@@@@@@@@@@*-",
" $1:#@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:",
" $1+@@@@@@@@@@@@@@@@#=::::=*@@@@@@@@+",
" $1*@@@@@@@@@@@@@@@#: ... .+@@@@@@@*",
" $1+@@@@@@@@@@@@@@@%. =%@@@*. *@@@@@@@+",
"$1:@@@@@@@@@@@@@@@@# %@@@@@: +@@@@@@@@:",
"$1*@@@@@@@@@@@@@@@@# %@@@@@%+*@@@@@@@@@*",
"$1%@@@@@@@@@@%%###%# *###@@@@@@@@@@@@@@%",
"$1%@@@@@@@%=: *# =@@@@@@@@@@@@@%",
"$1%@@@@@@+ :=+++%# +++*%@@@@@@@@@@@@@*",
"$1%@@@@@* *@@@@@@# %@@@@@@@@@@@@@@@@@-",
"$1%@@@@@- -@@@@@@@# %@@@@@@@@@@@@@@@@*",
"$1%@@@@@* *@@@@@%: :@@@@@@@@@@@@@@@@*",
"$1%@@@@@@+ .===- -%@@@@@@@@@@@@@@@+",
"$1%@@@@@@@%+:. .-#@@@@@@@@@@@@@@@#:",
"$1%@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@#-",
"$1+@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=.",
" $1-*%@@@@@@@@@@@@@@@@@@%#*+=:",
];
const MINT: &[&str] = &[
" $5.$3:$8-=$4=$7++$4=$8=-$3:$5.",
" $5.$8=$4*$7%$1@@@@@@@@@@@@$7%$4*$8=$5.",
" $3-$4#$1@@@@@@@@@@@@@@@@@@@@$4#$3-",
" $6:$4#$1@@$7@@$1@@@@@@@@@@@@@@@@@@@@$4#$6:",
" $3+$1@@@$5=$2..$7@$1@@@@@$7@%%@$1@@$7@%#%$1@@@@@@$3+",
" $3+$1@@@@$5=$2..$7@$1@@@$8*$5-$2....$5-$6=$2:...$5:$8+$7@$1@@@@$3+",
" $6-$1@@@@@$5=$2..$7@$1@@$8#$2..$6=$7##$6=$2..$5-$4#$7%$3*$2..$6+$1@@@@@$6-",
" $8%$1@@@@@$5=$2..$7@$1@@$3+$2..$8%$1@@$8%$2..$3+$1@@$7@$2..$5=$1@@@@@$8%",
" $7@$1@@@@@$5=$2..$7@$1@@$3+$2..$8%$1@@$8%$2..$3+$1@@$7@$2..$5=$1@@@@@$7@",
" $7@$1@@@@@$5=$2..$7@$1@@$3+$2..$8%$1@@$8%$2..$3+$1@@$7@$2..$5=$1@@@@@$7@",
" $8%$1@@@@@$5=$2..$7@$1@@$3*$5--$8%$1@@$8%$5--$3*$1@@$7@$2..$5=$1@@@@@$8%",
" $6-$1@@@@@$6+$2..$8#$1@@@@@@@@@@@@@@$8#$2..$6+$1@@@@@$6-",
" $3+$1@@@@$7@$6-$2.:$6=$4************$6=$2:.$6-$7@$1@@@@$3+",
" $3+$1@@@@@$4#$3=$5-$2:..........:$5-$3=$4#$1@@@@@$3+",
" $6:$4#$1@@@@@@@$7@@@@@@@@@@$1@@@@@@@$4#$6:",
" $3-$4#$1@@@@@@@@@@@@@@@@@@@@$4#$3-",
" $5.$8=$4*$7%$1@@@@@@@@@@@@$7%$4*$8=$5.",
" $5.$3:$8-=$4=$7++$4=$8=-$3:$5.",
];
const MANJARO: &[&str] = &[
"$1.*%@@@@@@@@@@@@@@@@@@@@@@+ #@@@@@@@%*:",
"$1%@@@@@@@@@@@@@@@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@@@@@@@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@@@@@@@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@@@@@@@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@%==============: #@@@@@@@@@@",
"$1@@@@@@@@@@% #@@@@@@@@@@",
"$1@@@@@@@@@@% -**********- #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1@@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1%@@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@@@",
"$1:*@@@@@@@@% =@@@@@@@@@@+ #@@@@@@@@*:",
];
const POP: &[&str] = &[
" $1.:=*#%%@@@@%%#*=:.",
" $1:+#@@@@@@@@@@@@@@@@@@#+:",
" $1-#@@@@$6@#$8*+++#$6@$1@@@@@@@@@@@@#-",
" $1-%@@@$6@$8*$4- $3=$6%$1@@@@@@@@@@@@%-",
" $1*@@@@$3+$2. $4-$8#$3+$7. $2.$8#$1@@@@@@@@@@@@@*",
" $1.#@@@@$6@$7: $4=$1@@$6@$4- $2:$1@@@@@@@@@@@@@@#.",
" $1*@@@@@@$6@$7: $3#$1@@$6@$5. .$6@$1@@$3*$4:$2:$4:$3=$6%$1@@@@@@*",
"$1-@@@@@@@@$6@$7: $5.$3*$1@$6@$5. $4+$1@@$6@$5. $3%$1@@@@@@@-",
"$1#@@@@@@@@@$6@$7: $2.. $7.$3*$1@@@$3# *$1@@@@@@@@#",
"$1@@@@@@@@@@@$6@$4- $7.$3=$8*$6@$1@@@@$3+ *$1@@@@@@@@@@",
"$1@@@@@@@@@@@@$6@$4- $7:$6@$1@@@@@@$4= $5.$3#$1@@@@@@@@@@@",
"$1#@@@@@@@@@@@@$6@$4= =$1@@@@@@$4=$7:$8%$1@@@@@@@@@@@#",
"$1-@@@@@@@@@@@@@@$3+ *$1@@@@@$6@$1@@@@@@@@@@@@@-",
" $1*@@@@@@@@@@@@@@$3*$2. $5.$6@$1@@$6@$4-$2.$8%$1@@@@@@@@@@@*",
" $1.#@@@@@@@@@@@@@@$6@$8#%$1@@@@$8*+$6@$1@@@@@@@@@@#.",
" $1*@@@@@$6%$8=$3==================$8=$6%$1@@@@@*",
" $1-%@@@$8#$7:$2::::::::::::::::::$7:$8#$1@@@%-",
" $1-#@@@@@@@@@@@@@@@@@@@@@@@@#-",
" $1:+#@@@@@@@@@@@@@@@@@@#+:",
" $1.:=+#%%@@@@%%#*=:.",
];
const OPENSUSE: &[&str] = &[
" $1.-=*#%%@@@@%#*+-.",
" $1:+%@@@@@@@@@@@@@@@@@%*-",
" $1.=%@@@@@@@@@@@@@@@@@@@@@@@%+.",
" $1-%@@* ..:-=+*#%@@@@@@@@@@@@@@@+.",
" $1.:-- .:=+*%@@@@@@@@@%:",
" $1.:...-+%@@@@@@@-",
" $1:*%#**%%+. =@@@@@@@:",
" $1=@+. .-::#%. -@@@@@@#",
" $1%% .#%#::@* =@@@@@@:",
" $1#@: =@= #@@@@@=",
" $1-*=. .*@*-::=#%= :@@@@@=",
" $1=@@%+-. .=+**+-. .=%@@@@:",
" $1:=*%@%*=-:....:-+#@%@@@@#",
" $1.-=*#%@@@%#*=: =@@@@:",
" $1:+@@@@-",
" $1.-+#%@@@@%:",
" $1+####**++=====++**#%@@@@@@@@@*.",
" $1.=%@@@@@@@@@@@@@@@@@@@@@@@@+.",
" $1:+%@@@@@@@@@@@@@@@@@%*-.",
" $1.-+*#%@@@@@%#*+-:",
];
const ALPINE: &[&str] = &[
" $1-####################-",
" $1=@@@@@@@@@@@@@@@@@@@@@@=",
" $1+@@@@@@@@@@@@@@@@@@@@@@@@+",
" $1.*@@@@@@@@@@@@@@@@@@@@@@@@@@*",
" $1.#@@@@@@@@@@%@@@@@@@@@@@@@@@@@#.",
" $1:%@@@@@@@@@%- -#@@@@%+%@@@@@@@@@%:",
" $1-%@@@@@@@@#- -#%= .=%@@@@@@@@%-",
" $1=@@@@@@@@#- .=: :: .=%@@@@@@@@=",
"$1+@@@@@@@#- .+@@@*: :*= .=%@@@@@@@+",
"$1-@@@@@#- .=-+@@@@@*: -*= .=%@@@@%-",
" $1:%@@#:. :*%-.+@@@@@@@*: .:#%=. .-%@@%:",
" $1.#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.",
" $1.#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.",
" $1+@@@@@@@@@@@@@@@@@@@@@@@@@@@@+",
" $1=@@@@@@@@@@@@@@@@@@@@@@@@@@=",
" $1-@@@@@@@@@@@@@@@@@@@@@@@@-",
" $1:%@@@@@@@@@@@@@@@@@@@@%:",
" $1.====================.",
];
const VOID: &[&str] = &[
" $1:=+*#%@@@@%#*+=:.",
" $1.=#@@@@@@@@@@@@@@@@@@#=.",
" $1.=%@@@@@@@@@@@@@@@@@@@@@#-",
" $1.=%@#+=-::::-=+#@@@@@@@@#-",
" $2+=. $1-*@@@@@@@+",
" $2*@@%=. $1.*@@@@@@#.",
" $2*@@@@@%. $1.... -@@@@@@*",
"$2-@@@@@@- $1:*%@@@@%*: -@@@@@@-",
"$2*@@@@@* $1+@@@@@@@@@@+ *@@@@@#",
"$2%@@@@@= $1:@@@@@@@@@@@@: =@@@@@%",
"$2%@@@@@= $1:@@@@@@@@@@@@: =@@@@@%",
"$2#@@@@@* $1+@@@@@@@@@@+ *@@@@@*",
"$2-@@@@@@- $1:*%@@@@%*: -@@@@@@-",
" $2*@@@@@@- $1.... .%@@@@@*",
" $2.#@@@@@@*. $1.=%@@*",
" $2+@@@@@@@*- . $1.=+",
" $2-#@@@@@@@@#+=-::::-=+#@%=.",
" $2-#@@@@@@@@@@@@@@@@@@@@@%=.",
" $2.=#@@@@@@@@@@@@@@@@@@#=.",
" $2.:=+*#%@@@@%#*+=:",
];
const NIXOS: &[&str] = &[
" $1-##= $2=###+ =##-",
" $1*@@@* $2*@@@*.+@@@*",
" $1+@@@#$6. $2+@@@@@@@*",
" $1*%%%%@@@@$6%%%%%$4%#$3+$2@@@@$8@=",
" $1.#@@@@@@@@@$6@@@@@$4@@%$7+$8%@@@- $1.*.",
" $1.....$5=###*$7.$6....$4....$8:%@@@= $1:%@%:",
" $8+@@$5@#. $8.#@@$5@=$1-@@@%:",
" $2....$8...*@@@*. $5*@#$7*$1@@@%:...",
"$2+@@@@@@$8@@@@+ $5=$1*@@@@@@@@@+",
"$2-#%%%%@@@@$3+$4*. $6.#@@@$1%%%%%%#-",
" $2:%@@@$3+$4%@%$6. $4.$6%@@@=",
" $2-@@@%:$4-@$6@@%: $4:%@@$6@-",
" $2.*@#. $6:%@@@-$5:---$8----$5-$7*###$3+$2-----.",
" $2=. $6.%@@$1@*$5#@@$8@@@@@@$2@@@@@@@@*",
" $1*@@@@@*$5+*$8****#@$2@@@****=",
" $1.#@@@#@@@#. $8+$2@@@#.",
" $1#@@@= =@@@%. $2=@@@#",
" $1.==: -==== $2:==.",
];
const NIXOS_SMALL: &[&str] = &[
" $1.=: $2.== :=.",
" $1:%@$6- $8=$2@#%%.",
" $1:%%%%$6%%%$4%$7*$8@@: $1.:",
" $8:%$5%: $8:%%$3-$1%%.",
"$2=++$8*%%. $5.$3*$1%@#+=",
"$2:-*@$8%$6#$4- $6-@#-$1--:",
" $2.%*$7.$6#@=$5.:$8::$7-$1%#$5:$2:.",
" $2. $6:@$1@$7#$5#$8##%$2@%##.",
" $1:%%+@* $8.$2#@:",
" $1:. ::. $2.:",
];
const GENTOO: &[&str] = &[
" $4:$8=$3*#$5%@@@$3%%$8*$4+-.",
" $4-$8*$5%$7@$1@@@@@@@@$7@@$5@$3@$8@$4#=.",
" $4=$3%$7@$1@@@@@@@@@@@@$7@@@$5@@$3@$8@#$4=.",
" $4:$8%$7@$1@@@@@@@@@@@@@$7@@@@$5@@@$3@@@$8@*$4-",
" $4-$8@$1@@@@@@@@@@@@@$7@$5@@$3@$8@@$3@$5@@$3@@@@@@#$8-",
" $4.%$5@$1@@@@@@@@@@@$5@@$4@@@@@$6@$2@$8@$5@$3@@@@@$8@$3@@%-",
" $4:@$8@$5@$7@$1@@@@@@@@@$7@$3@$4@$6*++%$2@@$3@$5@$3@@@@@$8@@@$3@$7@$5#$8:",
" $4=@$8@@$3@$5@$7@$1@@@@@@@@@$5@$8@@@$5@@@@$3@@@@@$8@@@@@$1@$7@$8-",
" $4:+%@$8@$3@$5@$7@@$1@@@@@@@$7@@@$5@@@@$3@@@@$8@@@@@@$7@$1@$3%",
" $4:+#@$8@$5@$7@$1@@@@@@$7@@@$5@@@$3@@@@@$8@@@@$3@$7@$1@$5@$8@",
" $5.$7+@$1@@@@@@@$7@@@$5@@@$3@@@@@$8@@@$3@$7@$1@$7@$8@$4@-",
" $5.$7+$1@@@@@@@@@$7@@@$5@@@@$3@@@@@$8@$5@$7@$1@$7@$3@$4@#:",
" $5:$7*$1@@@@@@@@@$7@@@@$5@@@@$3@@@@@$5@$1@@$7@$8@$4@#-",
" $3.$7+$1@@@@@@@@@@$7@@@@$5@@@@$3@@@$5@$7@$1@@$5@$4@$6@*:",
" $8.$7%$1@@@@@@@@$7@@@@@$5@@@@$3@@$5@$7@$1@@$5@$8@$6@%+.",
" $8%$1@@@@@$7@@@@@@@$5@@@@@@$7@$1@$7@$5@$8@$6@@*-",
" $4@$7@$1@$7@@@@@@@$5@@@@$7@@$1@@$5@$3@$4@$2@@#=.",
" $6+$4@$7@$1@@$7@@@@@@$1@@$7@$5@$8@$4@$2@@@*=.",
" $2=%$6@$8@$3@@@$8@$4@@$6@$2@@@@#+:",
" $2.=*%@@@%%*+=:",
];
const ENDEAVOUROS: &[&str] = &[
" $2.$4+$1%=",
" $2.$7+$6%$1@@@%$5-",
" $2=$7%$1@@@@@@@$5#$3-",
" $2-#$4%$1@@@@@@@@@$5%$3*:",
" $2:*%$6%$1@@@@@@@@@@@%$3%+.",
" $2.+%$7%$1@@@@@@@@@@@@@@@$5%$3#-",
" $2=%%$4%$1@@@@@@@@@@@@@@@@@$5%$3%*.",
" $2-#%%$6%$1@@@@@@@@@@@@@@@@@@@$5%$3%#:",
" $2:*%%$7%$1@@@@@@@@@@@@@@@@@@@@@@$5%$3%%-",
" $2.+%%%$4%$1@@@@@@@@@@@@@@@@@@@@@@@@$3%%%=",
" $2=%%%%$6%$1@@@@@@@@@@@@@@@@@@@@@@@@@$5%$3%%%:",
" $2-#%%%$7%$6@$1@@@@@@@@@@@@@@@@@@@@@@@@@@$5%$3%%%#",
"$2.*%%%%$7%$1@@@@@@@@@@@@@@@@@@@@@@@@@@@@$3%%%%%",
"$2:-==+$8%$1%%@@@@@@@@@@@@@@@@@@@@@@@@@$5%$3%%%%%=",
" $3.*%%%%%%%%%%%$5%%%%%%%%%%%%%%%$3%%%%%%*:",
" $3:#%%%%%%%%%%%%%%%#####***+++===-:.",
];
const KALI: &[&str] = &[
" $1....:::--::..",
" $1.:--===-:",
" $1..:::-----------===*.",
" $1. .--======--= ..",
" $1.:---:. .*%*+++==::.",
" $1... +#: .-++*=.",
" $1:%. .*#:",
" $1-@. -:",
" $1+%-",
" $1.+**+++++==-:",
" $1.:-=**--:",
" $1.+::=.",
" $1=: -",
" $1=",
" $1..",
];
const ELEMENTARY: &[&str] = &[
" $1.:=+#%%@@@@%%#+=:.",
" $1:+#@@@@@@@@@@@@@@@@@@#+:",
" $1-#@@@@%*=----------=*%@@@@#-",
" $1-%@@@%+:-+#@@%#***%@@#+-:+%@@@%-",
" $1*@@@%=:+%@@#==+##%#+:=%@@%+:=%@@@*",
" $1.#@@@*.+@@@#--#@@@@@@@@-:@@@@@+.*@@@#.",
" $1*@@@*.#@@@+ +@@@@@@@@@@% #@@@@@#.*@@@*",
"$1-@@@#.#@@@+ +@@@@@@@@@@@* %@@@@@@#.#@@@-",
"$1#@@@--@@@%.:@@@@@@@@@@@%.+@@@@@@@+ -@@@#",
"$1@@@@.*@@@* =@@@@@@@@@@*.*@@@@@@@=:=.@@@@",
"$1@@@@.*@@@# =@@@@@@@@#--%@@@@@@#:-%*.@@@@",
"$1#@@@--@@@@:.#@@@@%*:-#@@@@@@#-:*@@--@@@#",
"$1-@@@#.#@@@%:.*#+-:+%@@@@@%*::*@@@#.#@@@-",
" $1*@@@*.*#*+- . .+#%%%#*=:.=#@@@@#.*@@@*",
" $1.#@@@*. =+#%@#+=-:::-=*%@@@@@@+.*@@@#.",
" $1*@@@%=:+%@@@@@@@@@@@@@@@@%+:=%@@@*",
" $1-%@@@%+:-+#@@@@@@@@@@#+-:+%@@@%-",
" $1-#@@@@%*=----------=*%@@@@#-",
" $1:+#@@@@@@@@@@@@@@@@@@#+:",
" $1.:=+#%%@@@@%%#+=:.",
];
const ZORIN: &[&str] = &[
" $1-####################-",
" $1=@@@@@@@@@@@@@@@@@@@@@@=",
" $1+@@@@@@@@@@@@@@@@@@@@@@@@+",
" $1..........................",
"",
"",
" $1-%@@@@@@@@@@@@@@@@@#+: :=*%-",
" $1=@@@@@@@@@@@@@@@%*-. .-*%@@@@@=",
"$1+@@@@@@@@@@@@@#=: :+#@@@@@@@@@@+",
"$1-%@@@@@@@@#+- :=*@@@@@@@@@@@@@%-",
" $1:%@@@%*-. .-*%@@@@@@@@@@@@@@@%:",
" $1.*=: .-+##################*.",
"",
"",
" $1--------------------------.",
" $1-@@@@@@@@@@@@@@@@@@@@@@@@-",
" $1:%@@@@@@@@@@@@@@@@@@@@%:",
" $1.====================.",
];
const ARTIX: &[&str] = &[
" $1==",
" $1=$7@@$1=",
" $1=@$7@@@$1=",
" $1=@@$5@@$7@@$1=",
" $1=@@$5@$2@$5@@$7@@$1=",
" $1-@@@$2@@@$5@@$7@@$1-",
" $1-@$8@@@$6@$2@@@$5@@$7@@$1-",
" $4.=*@@@@$6@$5@$2@$5@@$7@@$1-",
" $4:+%@$3@$4@$6@$5@@$7@@$1-",
" $1-*+-. $3.=*%@$6@$7@@$1@-",
" $1:@$7@@@@$1%*=:. $3:+#$4@$6@$1@:",
" $1:%$7@@@$5@@@@$7@$1@@%*=: $3.-*$8%$1:",
" $1:%$7@@@$5@@@@$2@@@$5@$7@$1@@@@#+-. $4.",
" $1:%@$7@@@$5@@@$2@@@@@@@$8@@@@@@@%+.",
" $1:%@$7@@@$5@@@$2@@@@$5@$6@$4@@@@@#*=: $1.-:",
" $1:%@$7@@@$5@@@$2@$5@$6@@$4@@@%*=:. $1:=#$7@@%$1:",
" $1.%@$7@@@$5@@$7@$6@$4@$3@%*$4=-. $1.-*%@@$2@@$5@$7@%$1.",
" $1.%@$7@@@$6@$4@$3%#+-. $8.+*%$4@@@$6@$5@$2@$5@$7@%$1.",
" $1.%@$8@$4@$3#+-. $4.:=+$3#%$4@$6@$7@$1%.",
"$8.*+$3=: .-=$4*$8*.",
];
const ROCKY: &[&str] = &[
" $1.:=*#%%@@@@%%#*=:.",
" $1:+#@@@@@@@@@@@@@@@@@@#+:",
" $1-#@@@@@@@@@@@@@@@@@@@@@@@@#-",
" $1-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-",
" $1*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*",
" $1.#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.",
" $1*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*",
"$1-@@@@@@@@@@@@@@@@@@@@@@@*..+@@@@@@@@@@@-",
"$1#@@@@@@@@@@@@@@@@@@@@@*. .+@@@@@@@@@#",
"$1@@@@@@@@@@@@@@@@@@@@*. .+@@@@@@@@",
"$1@@@@@@@@@@@@@@@@@@*. .+@@@@@@",
"$1#@@@@@@@@@@@@@@@*. .+@@@#",
"$1-@@@@@@@@@@@@@*. -%%- .+@-",
" $1*@@@@@@@@@@*. -%@@@@%- .",
" $1.#@@@@@@@*. -%@@@@@@@@%-",
" $1*@@@@*. -%@@@@@@@@@@@@%-",
" $1-%*. -%@@@@@@@@@@@@@@@@*",
" $1-%@@@@@@@@@@@@@@@@#-",
" $1-%@@@@@@@@@@@@@@@#+:",
" $1:=*#%%@@@@%%#*=:.",
];
const ALMALINUX: &[&str] = &[
" $3-*#*= $1..",
" $3:@@@@@+:*+-. $1.=+*= =%@@%-",
" $3.#@@@%+@@@%. $1.*@@@@@+%@@@@%",
" $3=+*#*#@@@#. $1:%@@##@@%+#%%*:",
" $3*@@@@%*+*#- $1#@#: .*@@%%##:",
" $3=@@@# $1:@@. .@@@@@@+",
" $3+@@%- $1.@* .. ..-.",
" $2:+.$3.*@@#=. $1*+ $4.-==++=-.",
" $2*@@%- $3.-+*##+-.$1.- $4.=*#####%@@@%*:",
" $2:==+#@@@%: $6. $4.#@@@@:",
"$2*@@@@%#@@+ .+. $5.+= $4.*@@@#:",
"$2#@@@@##@% -*%- $5.#%- $4.=*%@%+*#*+.",
" $2-==-#@@@*--=*%@#: $5.%@- $4#@@@=@@@@@#",
" $2*@@@@@@@%+: $5. +@%. $4-@@@+*@@@%=",
" $2.:---:. $5.:=#@+. #@@: $4:**+: .::",
" $5#@@@@@@@%#%@@%.",
" $5:*#+===+%@@@@-",
" $5+@@@@+=+=.",
" $5%@@@@#",
" $5.+**=.",
];
const CENTOS: &[&str] = &[
" $1.:=*#%%@@@@%%#*=:.",
" $1:+#@@@@@@@@@@@@@@@@@@#+:",
" $1-#@@@@@@@@@@@$6##$1@@@@@@@@@@@#-",
" $1-%@@@@@@@@@@@$6#$3- -$6#$1@@@@@@@@@@@%-",
" $1*@@@@@$6%#####*$3- :$6==$3: -$6#$5@@@@@@$1@@@@@*",
" $1.#@@@@@@$3= : +$1@@$3+ $4-$7@$2@@@$8@$1@@@@@@#.",
" $1*@@@@@@@$3= -$6%$1@$6#$3- +$1@@$3+ $4-$7%$2@@$7@$2@$8@$1@@@@@@@*",
"$1-@@@@@@@@$3= -$6#$1@@$6# $3.$6++$3. $7%$2@@$7%$4- -$7#$1@@@@@@@@-",
"$1#@@@@@@$6#$3- -$6=$3= $4---- =$7=$4- $3-$6#$1@@@@@@#",
"$1@@@@@$6#$3- *$6####+$3. $4+$7%$2@@$7%$4+ $3.$6*####$3+ -$6#$1@@@@@",
"$1@@@@@$6#$3- *$6####+$3. $4+$7%$2@@$7%$4+ $3.$6*####$3+ -$6#$1@@@@@",
"$1#@@@@@@$6#$3- -$6+= $4---- $6=+$3- -$6#$1@@@@@@#",
"$1-@@@@@@@@$3= -$6#$1@@$6# $3.$6**$3. $6#$1@@$6#$3- =$1@@@@@@@@-",
" $1*@@@@@@@$3= :$6%$1@$6#$3- +$1@@$3+ -$6#$1@$6%$3: =$1@@@@@@@*",
" $1.#@@@@@@$3= : +$1@@$3+ : =$1@@@@@@#.",
" $1*@@@@@$6%#####*$3- :==: -$6*#####%$1@@@@@*",
" $1-%@@@@@@@@@@@$6#$3- -$6#$1@@@@@@@@@@@%-",
" $1-#@@@@@@@@@@@$6##$1@@@@@@@@@@@#-",
" $1:+#@@@@@@@@@@@@@@@@@@#+:",
" $1.:=+#%%@@@@%%#+=:.",
];
const DEVUAN: &[&str] = &[
" $1...:::.",
" $1.:-==++=-:.",
" $1.:=+*#*+-:.",
" $1.-+#%%*=:.",
" $1:=#@@#+-",
" $1.-#@@@*-.",
" $1:#@@@@*.",
" $1#@@@@@+",
" $1+@@@@@@*",
" $1-@@@@@@@@",
" $1-#@@@@@@@@-",
" $1.-*%@@@@@@@@#:",
" $1.-+#@@@@@@@@@@*:",
" $1:-+#%@@@@@@@@@@@*-.",
" $1.-=+*%@@@@@@@@@@@@@%+-.",
" $1:=+*#%@@@@@@@@@@@@@@@@%*-.",
"$1:%@@@@@@@@@@@@@@@@@%#+-.",
"$1#@@@@@@@@@@@@@%*+-.",
"$1:%@@@@@@%#*=:.",
" $1:===:.",
];
const MX: &[&str] = &[
" $1:=+#%%#####**+=:",
" $1.=#@%*=:. .-=**=.",
" $1:*@@*: .=#*.",
" $1.*@@*. -%+.",
" $1:%@@- :#@@%:",
" $1:@@@- *%- .*@@@**%:",
" $1.%@@+ .*@#: =%@@#: .%%.",
" $1+@@@. -%@+. :#@@%= +@=",
" $1%@@% =%#: =@%- .*@@@*. -@#",
" $1%@@@. :#@@@@+. .*@#+%@@#: =@%",
" $1#@@@= .*@@@@@@@%= +@@@%= . #@#",
" $1=@@@%.=%@@@@@@@@@@#*@@@@%= .*@+ =@@=",
" $1.%@@@@@@@@@@@@@@@@@@@#:.*@#=%@@@%+@@#",
" $1:%@@@@@@@@@@@@@@@@@@@= =@@@@@@@@@%.",
" $1+@@@@@@@@@@@@@@@@@@@@@%*@@@@@@@@@@@+",
"$1-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-",
];
const GARUDA: &[&str] = &[
" $6:::::$3::::$7::::",
" $2=$6%@@@@$3@@@@$7@@@@$4@#:",
" $2=%$6@#- $4.+%@#$1:",
" $2.=%$6@#- $4.=$1%@#-",
" $2.=%@$6#- $7.+. $1.=%$8@#-",
" $2.=%@$6#- $7.+@$4@:...$1.....$8.:+@@$5#:",
" $2.=%@#$6- $7.+@@$4@@@@@@$1@@@@$8@@@@$5@@@+",
" $2.=%@#- $7...$4......$1....$8.....$5:%@=",
"$2.=%@#- $5+.",
"$2.+@@$6*: $3.$7....$4......$1....$8....$5....",
" $2.$6+@@*$3: .+$7@@@@$4@@@@@@$1@@@@$8@@@@@$5@@+.",
" $6.+$3@@*:.$7....$4......$1.....$8.-%$5@@+.",
" $3.+@$7@*: $8:*@$5@+.",
" $7.+@$4@*-:::$1:::::$8:-*@$5@+.",
" $4.+%@@@$1@@@@@$8@@@%$5+.",
];
const MACOS: &[&str] = &[
" $1:+#%*",
" $1-#@@@@-",
" $1+@@@@@+",
" $1:@@@@#:",
" $1... :++-. ....",
" $1-*%@@@@@#+=--=*#@@@@@@%*-",
" $1=%@@@@@@@@@@@@@@@@@@@@@@@@@%=",
" $1.#@@@@@@@@@@@@@@@@@@@@@@@@@@%-",
" $1#@@@@@@@@@@@@@@@@@@@@@@@@@@*.",
" $1:@@@@@@@@@@@@@@@@@@@@@@@@@@%.",
" $1=@@@@@@@@@@@@@@@@@@@@@@@@@@*",
" $1=@@@@@@@@@@@@@@@@@@@@@@@@@@#",
" $1:@@@@@@@@@@@@@@@@@@@@@@@@@@@=",
" $1#@@@@@@@@@@@@@@@@@@@@@@@@@@@*.",
" $1:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=",
" $1=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-",
" $1=@@@@@@@@@@@@@@@@@@@@@@@@@@@=",
" $1-%@@@@@@@@@@@@@@@@@@@@@@@%-",
" $1.*@@@@@@@@@@@@@@@@@@@@@*.",
" $1:+%@@%*=-:::-=*%@@%+:",
];
const TUX: &[&str] = &[
" $1:+#@@@%#=.",
" $1=@@@@@@@@@@-",
" $1%@@@@@@@@@@@.",
" $1%@%%@@*##@@@-",
" $1#@$3@$4@$5@$4@@$3@$1%%@@=",
" $1*$5@$2@@@@@@$7@$3@$1@@#",
" $1+@$4@$7@@@@$4%$6#$1%@@@+",
" $1+@++%%#+-.:#@@@*",
" $1:#@=..::....::%@@@#-",
" $1-@@%=:.-:..:=+**@@@@@+",
" $1.%@*............:=@@@@@=",
" $1.#@#....::.........*@@@@@:",
" $1.#@@=....-:.........+@@@@@*",
" $1-$3@@$1@-....-:........:*@@@@@+",
" $7:#$2@@$7@$5@$1*-..::.......$8+$2@$7@$1@@@@$5@$2*",
" $7+$2#%@@@@@@$5@$1@#=........-$6%$2@$7@@$5@@$7@$2@%-",
" $7#$2@@@@@@@@@$7@$1@%:.......=$4@$7@$2@@@@@@@@#=",
" $7#$2@@@@@@@@@@$7@$4*$1-:::-=*%@$3@$7@$2@@@@@@@@#=",
" $7+#%@@@$2@@@@@$7@$5@$1@@@@@@@@@$3@$7@$2@@@@$7@*-.",
" $5.:-=+#@@%$3=$1:. .$3+$5%@@%+.",
];