Greasy Fork is available in English.
Adds several useful features to the chat
// ==UserScript==
// @name OWOP Chat Utils
// @namespace https://greatest.deepsurf.us/en/users/1502179/
// @version 1.9
// @description Adds several useful features to the chat
// @author NothingHere7759
// @match https://ourworldofpixels.com/*
// @exclude https://ourworldofpixels.com/api*
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAIAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAA2XYBAOgDAADZdgEA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAAACMojeFEB6NgAAArJJREFUeF7t28uNE1EQQFGbCFgzgZDGiEARaRAIrCeDYd8CqawpfP05Z9kLd7d99RZV8vn0IH79+Px+vPbIXl7fzsdr9+jT8QJckwBJCZCUAEkJkJQASQmQlABJCZBUNk2vNhdfvn47Xropv39+P166imqz4gQkJUBSAiQlQFICJCVAUgIkJUBSAiS1Pv3e3nA82+Zi+323n297Y+IEJCVAUgIkJUBSAiQlQFICJCVAUgIkNZ5qVxuO7Un+9L5Tt/58U9vvMd2YOAFJCZCUAEkJkJQASQmQlABJCZCUAEmNptWnCzYh00n+9uR92/Q9KtPvb/s9pve1CeEuCJCUAEkJkJQASQmQlABJCZCUAEmdpxuOqenkfTpRr0zf49ls/25OQFICJCVAUgIkJUBSAiQlQFICJCVAUuNNSLUZ2J68b7/H9vNt237fqen34gQkJUBSAiQlQFICJCVAUgIkJUBSAiR185uQynSS/yi2f9/p9+cEJCVAUgIkJUBSAiQlQFICJCVAUgIktb4JmU7Ap6b3ndp+vmcz/T2m37MTkJQASQmQlABJCZCUAEkJkJQASQmQlABJCZCUAEkJkJQASQmQlABJCZCUAEkJkNT4PyFT0/8MVKb/VeA6nICkBEhKgKQESEqApARISoCkBEhKgKTOxwv/Mt2YbG9CppuL6X2nn8fHvLy+jdpyApISICkBkhIgKQGSEiApAZISICkBkhpNq08XbEKmppuLio3Jx9iEcBcESEqApARISoCkBEhKgKQESEqApEbT6kvYmDy26YZjyglISoCkBEhKgKQESEqApARISoCkBEhqdap9ie2NyZTNyt9tbzimnICkBEhKgKQESEqApARISoCkBEhKgKSS6ff/UG1WKtXmYpsTkJQASQmQlABJCZCUAEkJkJQASQmQ1B8g1YFmQv53bQAAAABJRU5ErkJggg==
// @grant none
// @license MIT
// ==/UserScript==
// CREDITS: Advice about the code - NekoNoka
// Beta testers - Atlan, SyntexPr
/* CHANGELOG
For previous changelog entries, look at version 1.8.2
1.9 - Added an options menu accessible via a new chat command, /cuoptions
Removed /left and /max as they were rendered useless
Added chat notifications, which can be configured in the options menu
Added timestamps to messages, which can be disabled in the options
Added glow, backwards and upside-down text and spoilers
Changed the markdown for highlighting text
Made it so multiple effects can be added through the use of a single pair of curly brackets (ex: {000000gFFFFFF something})
Made it so default coloring isn't applied to the nickname if it starts with #
Added colorings for navy, infrared, ultraviolet, chocolate, cocoa, magma, light, Trion Ball, Ukraine, Sweden, Finland, Ireland, Italy, Portugal, Vatican, Malta, Belgium, Estonia, Latvia, Lithuania, Netherlands, Luxembourg, Austria, Monaco, San Marino, Armenia, Slovenia, Croatia, Serbia, Bulgaria, Denmark, Iceland, Norway, Liechtenstein, USA, Moldova, Andorra, Canada, Turkey, Albania, Switzerland, Peru, Chad, Nigeria, Mongolia, Mexico, Kazakhstan, Morocco, Algeria, Tunisia, Kosovo, North Macedonia, El Salvador, Honduras, Nicaragua, Ecuador, Colombia, Venezuela, Bolivia, Paraguay, Argentina, Mali, Guinea, Ivory Coast, Somalia, Cyprus, Saudi Arabia, Qatar, Bahrain, Japan, Bangladesh, Palau, Togo, Liberia, Greece, Malaysia, Vietnam, Uruguay, Georgia, China, Botswana, Chile, Madagascar, Benin, Montenegro, Belarus, Indonesia, Singapore, Myanmar, Cambodia, India, Azerbaijan, Tajikistan, Uzbekistan, Yemen, Brazil, ħ, ĥ, Multital, Purper, Potassiumyntex, Wolonland, Nullscape, Aurenmochi, Caster, ALBaNOS, Sviqurkai, Matyas05, EEE, Meebodustria, Maeve, Promania, The 7 Tank Souls, Rïrel, Eurillooppia, Reaper, Operator, Nano, Space≠Time, Starland, Avarus, Saffron, Renïmia, Subsidency, Reverancy, Iterans, Tepun, Nupet, Ackermann, Cübe, Dïemönd, Puro, Zika, Mäcí, Lory, Jolavero, Redism, Orangism, Greenerism, Blurism, Indigoism, Alalia, Onest Land, Tvost Land, Ye Olde Rivers, Fivest Land, Sixest Land, Eightest Land, Ninest Land, Tenest Land, Norteasthia, Easthia, Souteasthia, Soutwesthia, Westhia, Nortwesthia, Centria, Soisia, Aesia, Oasia, Soutian Soisia, Easthian Aesia, Westhian Oasia, Psy, Poleria, Tasapluia, Unacnigd, Axian, Flashland, Bulgariaball, AnythingThere, Sagittarius, Ikdi, Sytist, Yggdrasil, Ascendancy, Untirelleoria, Kronweger, Noduard, Dehirah, Nestad-Rodo, Lenaiderr, Neafters, Osnia, Tin'g, Zius, Sefectal, Baffenor, Muion Nexus, Dwajl, Yudi, Утюг, Amalgam, Illogicalis, New Basaltia, Evilguy, Evertrialition, Forest Island, Kestrel, Kami, TDRR, Seurites, Cpl. Andersen, The Secret, Infinityland, Abosites, Susamogus2002, Nasri, Lafu, Bylka, Valor
Changed the coloring of Europe, Hungary, Germany, Russia, Prussia, Poland, Slovakia, SomethingThere, Amogusland, Nut Wujing and Trion Nexus
Discord emojis now show their name when you hover over them
Fixed Discord emojis not working when placed anywhere after the first new line in a message
Made Discord emojis work when used inside the nickname
Made it so when you type a nickname, the max length of the chat input changes
Made it so when you enter a new pass correctly, it gets saved in localStorage (as it normally should)
Fixed fz getting colored when used by the rpmap gateway
*/
'use strict';
(() => {
//Pre-installation
const waitUntil = (probe, cb, t = 200) => {
const id = setInterval(() => { try { if (probe()) { clearInterval(id); cb(); } } catch { } }, t);
};
waitUntil(
() => window.OWOP &&
OWOP.misc?.chatRecvModifier &&
OWOP.misc.world?.players &&
OWOP.misc.chatSendModifier &&
document.getElementById('chat'),
install
);
function install() {
//Utilities
const say = OWOP.chat.send;
function tell(id, msg) { say('/tell ' + id + ' ' + msg) };
const locSend = OWOP.chat.local;
function locErr(msg) {
OWOP.chat.receiveMessage(`{
"sender":"server",
"type":"error",
"data":{
"message":"${msg}"
}
}`);
}
let playerList = OWOP.misc.world.players;
let playerID = OWOP.player.id;
let lastAttemptedPass = null;
OWOP.on(OWOP.events.net.world.join, () => {
playerList = OWOP.misc.world.players;
playerID = OWOP.player.id;
lastAttemptedPass = null;
});
// Obfuscated text
function randStr(length) {
let str = "";
let charList = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "$", "¢", "€", "£", "¥", "+", "-", "*", "/", "÷", "=", "%", "\"", "'", "#", "@", "&", "_", "(", ")", ",", ".", ";", ":", "¿", "?", "¡", "!", "\\", "|", "{", "}", "<", ">", "[", "]", "¶", "µ", "`", "^", "~", "©", "¦", "¨", "«", "¬", "°", "±", "´", "·", "¸", "»", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Ÿ", "ˆ", "˜", "–", "—", "‘", "’", "‚", "“", "”", "„", "•", "…", "‹", "›"];
for (let i = 0; i < length; i++) {
str += charList[Math.floor(Math.random() * charList.length)];
}
return str;
}
setInterval(() => {
let obfuscatedElements = document.getElementsByClassName("obfuscated");
for (let i = 0; i < obfuscatedElements.length; i++) {
obfuscatedElements[i].textContent = randStr(obfuscatedElements[i].textContent.length);
}
}, 100);
function mdParse(str) {
str = str
.replace(/(?<!\\)\*\*([^*\\]|[^*].*?[^\\])\*\*/g, match => `<b>${match.slice(2).slice(0, -2)}</b>`) // ** --> Bold
.replace(/(?<!\\)\*.*?[^\\]\*/g, match => `<i>${match.slice(1).slice(0, -1)}</i>`) // * ---> Italic
.replace(/(?<!\\)__([^_\\]|[^_].*?[^\\])__/g, match => `<u>${match.slice(2).slice(0, -2)}</u>`) // __ --> Underline
.replace(/(?<!\\)_.*?[^\\]_/g, match => `<i>${match.slice(1).slice(0, -1)}</i>`) // _ ---> Italic
.replace(/(?<!\\)~~([^~\\]|[^~].*?[^\\])~~/g, match => `<s>${match.slice(2).slice(0, -2)}</s>`) // ~~ --> Strikethrough
.replace(/(?<!\\)~.*?[^\\]~/g, match => `<sub>${match.slice(1).slice(0, -1)}</sub>`) // ~ ---> Subscript
.replace(/(?<!\\)\^.*?[^\\]\^/g, match => `<sup>${match.slice(1).slice(0, -1)}</sup>`) // ^ ---> Superscript
.replace(/(?<!\\)`.*?[^\\]`/g, match => `<code>${match.slice(1).slice(0, -1)}</code>`) // ` ---> Code
.replace(/(?<!\\)\|\|([^|\\]|[^|].*?[^\\])\|\|/g, match => `<span class="spoiler" onclick="this.className='spoiler-shown'">${match.slice(2).slice(0, -2)}</span>`) // || --> Spoiler
.replace(/^##\s.+$/gm, match => `<span style="font-size:24px;">${match.slice(3).replace(/#+\s*$/, '')}</span>`) // ## --> Heading 2
.replace(/^#\s.+$/gm, match => `<span style="font-size:32px;">${match.slice(2).replace(/#+\s*$/, '')}</span>`) // # ---> Heading 1
.replace(/^-#\s.+$/gm, match => `<span style="font-size:12px;">${match.slice(3)}</span>`) // -# --> Subtext
.replace(/^\[ \]/gm, '<input type="checkbox">') // [ ] -> Unchecked item
.replace(/^\[X\]/gim, '<input type="checkbox" checked>') // [X] -> Checked item
while (str.match(/(?<!\\)\{.+? .+?(?<!\\)\}/s)) { // {c --> Color, {rb --> Rainbow, {k --> Obfuscated, {< --> Backwards, {V --> Upside down, {gc --> Glow, {hc, {=c --> Highlight
str = str.replace(/(?<!\\)\{.+? .+?(?<!\\)\}/s, match => {
let [clrstr, ...content] = match.slice(1, -1).split(' ');
content = content.join(" ");
if (content.length == 0 || !clrstr.match(/(g|h|=)?[\dA-F]{6}|k|<|V|rb/i)) return `{${clrstr} ${content}}`;
if (clrstr.match(/rb/i)) {
return `${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `<mark style="background-color: #${clrstr.match(/(?<=h|=)[\dA-F]{6}/i)[0]}">` : ''}<span class="rainbow${clrstr.match(/k/i) ? ` obfuscated` : ''}"${clrstr.match(/<|V/i) ? ` style="display: inline-block; transform: scale(${clrstr.match(/</) ? "-1" : "+1"}, ${clrstr.match(/V/i) ? "-1" : "+1"})"` : ''}>${content}</span>${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `</mark>` : ''}`;
} else {
return `${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `<mark style="background-color: #${clrstr.match(/(?<=h|=)[\dA-F]{6}/i)[0]}">` : ''}<span${clrstr.match(/<|V|g?[\dA-F]{6}/i) ? ` style="${clrstr.match(/<|V/i) ? `display: inline-block; transform: scale(${clrstr.match(/</) ? "-1" : "+1"}, ${clrstr.match(/V/i) ? "-1" : "+1"});` : ''}${clrstr.match(/g[\dA-F]{6}/i) ? `text-shadow: 0px 0px 5px #${clrstr.match(/(?<=g)[\dA-F]{6}/i)[0]}, 0px 0px 5px #${clrstr.match(/(?<=g)[\dA-F]{6}/i)[0]}, 0px 0px 5px #${clrstr.match(/(?<=g)[\dA-F]{6}/i)[0]};` : ''}${clrstr.match(/(?<![gh=][\dA-F]{0,5})[\dA-F]{6}/i) ? `color: #${clrstr.match(/(?<![gh=][\dA-F]{0,5})[\dA-F]{6}/i)[0]};` : ''}"` : ''}${clrstr.match(/k/i) ? ` class="obfuscated"` : ''}>${content}</span>${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `</mark>` : ''}`;
}
});
};
return str
.replace(/(?<!\\)\\/g, '') // Remove lone backslashes
.replace(/\\\\/g, '\\') // Halve each backslash pair
}
let helpBtn = document.getElementById('help-button');
let chat = document.getElementById('chat');
let chatInput = document.getElementById("chat-input");
// localStorage
if (localStorage.CU === undefined || (() => { try { JSON.parse(localStorage.CU); return false } catch (e) { return true } })()) {
localStorage.CU = `{"chatOnLeft":${localStorage.chatOnLeft ?? "false"},"chatUtilsUpdateNotice":${localStorage.chatUtilsUpdateNotice ?? '"1.7.1"'},"maxChatBuffer":256,"notifications":"none","notifNames":[],"timestamps":true}`;
delete localStorage.chatOnLeft;
delete localStorage.chatUtilsUpdateNotice;
};
let ls = JSON.parse(localStorage.CU);
function updateLs() {
localStorage.CU = JSON.stringify(ls);
}
if (typeof ls.chatOnLeft != "boolean") {
ls.chatOnLeft = false;
updateLs();
};
if (!ls.chatUtilsUpdateNotice) {
ls.chatUtilsUpdateNotice = "1.7.1";
updateLs();
};
if (!ls.maxChatBuffer || typeof ls.maxChatBuffer !== "number") {
ls.maxChatBuffer = 256;
updateLs();
};
if (!ls.notifications) {
ls.notifications = "none";
updateLs();
};
if (!ls.notifNames || !(ls.notifNames instanceof Array)) {
ls.notifNames = [];
updateLs();
};
if (typeof ls.timestamps != "boolean") {
ls.timestamps = true;
updateLs();
};
// Load maxChatBuffer
OWOP.options.maxChatBuffer = ls.maxChatBuffer;
// Notifications
let notifsAllowed;
if (window.Notification) {
Notification.requestPermission().then(result => {
if (result != "granted") return notifsAllowed = false;
notifsAllowed = true;
});
} else notifsAllowed = false;
// Timestamps
(() => {
let style = document.createElement("style");
style.id = "cu-timestamp-style";
style.innerHTML = `.msg-time {
display: ${ls.timestamps ? "initial" : "none"};
}`;
document.head.appendChild(style);
})();
// nhStyle
if (!document.getElementById('nhStyle') || +document.getElementById('nhStyle').getAttribute("version") < 2) {
document.getElementById('nhStyle')?.remove();
let nhStyle = document.createElement('style');
nhStyle.id = 'nhStyle';
nhStyle.setAttribute("version", "2");
nhStyle.innerHTML = `.nhCont {
& input {
background-color: rgba(0, 0, 0, 0.3);
color: white;
}
& input::placeholder {
color: #BFBFBF;
}
& > div > input[type="number"],
& > div > input[type="range"],
& > div > input[type="text"],
& > div > select {
flex-grow: 1;
flex-basis: 171px;
}
& select {
background-color: #ABA389;
border: 6px #ABA389 solid;
border-image: url(/img/small_border.png) 6 repeat;
border-image-outset: 1px;
}
& > div {
display: flex;
align-items: center;
}
& > div > label {
text-wrap: nowrap;
}
}`;
document.head.appendChild(nhStyle);
};
(() => {
let style = document.createElement("style");
style.innerHTML = `.chatImg {
height: 1em;
vertical-align: middle;
}
#chat-messages>li:not(:last-child):after {
content: "";
position: relative;
left: 50%;
transform: translate(-50%, 0);
display: block;
width: 95%;
height: 0.9px;
background-color: #80808080;
}
.obfuscated {
word-break: break-all;
word-wrap: anywhere;
}
.spoiler {
background-color: grey !important;
border-radius: 5px;
color: grey !important;
text-shadow: none !important;
user-select: none;
-webkit-user-select: none;
transition: all 0.25s;
* {
background: none !important;
color: grey !important;
text-shadow: none !important;
}
&:hover {
background-color: darkgrey !important;
color: darkgrey !important;
}
}
.spoiler-shown {
background-color: #80808080;
border-radius: 5px;
}
.rainbow-back {
user-select: none;
-webkit-user-select: none;
}
.msg-time {
user-select: none;
-webkit-user-select: none;
}`;
document.head.appendChild(style);
})();
const replacements = [ // Colorful chat replacements
// [regex, before, replacement, after]
/*** OTHER WORDS ***/
// Colors
[/(?<!\bDARKISH\s)\bRED\b|\bRED\b(?!\sREPUBLIC\b)/gi, "<span style='color: #E53B44'>", "`${match}`", "</span>"],
[/\bCRIMSON\b/gi, "<span style='color: #9E2835'>", "`${match}`", "</span>"],
[/\bINFRARED\b/gi, "<span style='color: #420000; text-shadow: -1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bORANGE\b/gi, "<span style='color: #FB922B'>", "`${match}`", "</span>"],
[/\bGOLD(EN)?\b/gi, "<span style='color: #FFB735'>", "`${match}`", "</span>"],
[/\bYELLOW\b/gi, "<span style='color: #FFE762'>", "`${match}`", "</span>"],
[/(?<!\bUNITED\s)\bGREEN\b|\bGREEN\b(?!\sSTATES\b)/gi, "<span style='color: #63C64D'>", "`${match}`", "</span>"],
[/\bLIME\b/gi, "<span style='color: #B1D657'>", "`${match}`", "</span>"],
[/(?<!\bNAVY\s)\bBLUE\b/gi, "<span style='color: #3AB2FF'>", "`${match}`", "</span>"],
[/\bINDIGO\b/gi, "<span style='color: #0484D1'>", "`${match}`", "</span>"],
[/\bNAVY(\sBLUE)?\b/gi, "<span style='color: #15599e'>", "`${match}`", "</span>"],
[/\bCYAN(\sREP(\.|UBLIC)?)?\b/gi, "<span style='color: #2CE8F4'>", "`${match}`", "</span>"],
[/\b(MAGENTA|PINK|FUCHSIA)\b/gi, "<span style='color: #FF41E4'>", "`${match}`", "</span>"],
[/\b(VIOLET|PURPLE|MAUVE)\b/gi, "<span style='color: #AB80F9'>", "`${match}`", "</span>"],
[/\bU(LTRA(VIOLET|IDIOT)|V)\b/gi, "<span style='color: #e8abdd'>", "`${match}`", "</span>"],
[/\bBROWN\b/gi, "<span style='color: #B86F50'>", "`${match}`", "</span>"],
[/\bGR(A|E)Y\b/gi, "<span style='color: #AFBFD2'>", "`${match}`", "</span>"],
[/\bWHITE\b/gi, "<span style='color: #FFFFFF'>", "`${match}`", "</span>"],
[/\bBLACK\b/gi, localStorage.nick === "SyntexPr" ? "<span style='color: #FFFFFF; text-shadow: 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF;'>" : "<span style='color: #000000; text-shadow: -1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\b(RAINBOW(BALL)?|REGENBOGEN)\b/gi, "<span class='rainbow'>", "`${match}`", "</span>"],
[/\bRGB\b/gi, "<span style='color: #00FF00'>", "`<span style='color: #FF0000'>${match[0]}</span>${match[1]}<span style='color: #0000FF'>${match[2]}</span>`", "</span>"],
[/\bCMYK?\b/gi, "<span style='color: #FF00FF'>", "`<span style='color: #00FFFF'>${match[0]}</span>${match[1]}<span style='color: #FFFF00'>${match[2]}</span>${match[3] ? `<span style='color: #000000'>${match[3]}</span>` : ''}`", "</span>"],
// Other words
[/\b(TREES?|WOOD(EN|ED|S)?|STICKS?|CHOCOLATES?|COCOAS?)\b/gi, "<span style='color: #B86F50'>", "`${match}`", "</span>"],
[/\b(GRASS|CLIFFS?|HILLS?)\b/gi, "<span style='color: #63C64D'>", "`${match}`", "</span>"],
[/\b(WATER|OCEAN|SEA|LAKE|LAGOON)S?\b/gi, "<span style='color: #3AB2FF'>", "`${match}`", "</span>"],
[/\b(IC(E|Y|ICLE)|FRO(STY?|ZEN?)|FREEZ(E(D|S)?|ING)|SNOW(Y|ING|ED|S|M(A|E)N)?|COLD)\b/gi, "<span style='color: #D0D0FF'>", "`${match}`", "</span>"],
[/\bRAIN(S|ING|ED)?\b/gi, "<span style='color: #0484D1'>", "`${match}`", "</span>"],
[/\b(LAVA|HOT)\b/gi, "<span style='color: #FB922B'>", "`${match}`", "</span>"],
[/\bMAGMA\b/gi, "<span style='color: #e07438'>", "`${match[0]}<span style='color: #96471d'>${match[1]}</span>${match[2]}<span style='color: #96471d'>${match[3]}</span>${match[4]}`", "</span>"],
[/\bWARM\b/gi, "<span style='color: #FFB735'>", "`${match}`", "</span>"],
[/\bFIRES?\b/gi, "<span style='color: #E53B44'>", "`${match}`", "</span>"],
[/\b(EARTH|GROUNDS?)\b/gi, "<span style='color: #B86F50'>", "`${match}`", "</span>"],
[/\b(AIR|WINDS?)\b/gi, "<span style='color: #AFBFD2'>", "`${match}`", "</span>"],
[/\bLIGHT\b/gi, "<span style='color: #FFF; text-shadow: 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF'>", "`${match}`", "</span>"],
[/\bCOAL\b/gi, "<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bCOPPER\b/gi, "<span style='color: #E77C56'>", "`${match}`", "</span>"],
[/\b(IRON|STEEL|MOUNTAINS?|STONES?|ROCKS?)\b/gi, "<span style='color: #AFBFD2'>", "`${match}`", "</span>"],
[/\bAMETHYST\b/gi, "<span style='color: #B38EF3'>", "`${match}`", "</span>"],
[/\bDIAMONDS?\b/gi, "<span style='color: #4AEDD9'>", "`${match}`", "</span>"],
[/\bREDSTONE\b/gi, "<span style='color: #F00'>", "`${match}`", "</span>"],
[/\bEME(RALDS?)?\b/gi, "<span style='color: #41F384'>", "`${match}`", "</span>"],
[/\bSAPPHIRES?\b/gi, "<span style='color: #412BEE'>", "`${match}`", "</span>"],
[/\bRUB(Y|IES)\b/gi, "<span style='color: #D41E37'>", "`${match}`", "</span>"],
[/\b67\b/gi, "<s>", "`${match}`", "</s>"],
[/\bMINDUSTRY\b/gi, "<span style='color: #6E7080'>", "`${match[0]}<span style='color: #989AA4'>${match[1]}<span style='color: #D4806B'>${match[2]}<span style='color: #EAB678'>${match[3]}<span style='color: #FFD27E'>${match[4]}</span>${match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}`", "</span>"],
[/\bTAUM(OTONS?)?\b/gi, "<span style='color: #EE00FF'>", "`${match}`", "</span>"],
[/\bCOCA\sPOLA\b/gi, "<span style='color: #E53B44'>", "`${match}`", "</span>"],
[/\b(?<!:)(NUT\s)?WUJING\b|沙僧坚果/gi, "<span style='color: #A98828'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/1450183287598350366.png?v=1'> ${match}`", "</span>"],
[/\b(FRIENDZONE|(?<!\[)FZ|FZ(?!\]))\b/gi, "<span style='color: #63C64C'>", "`${match.length == 2 ? match[0] : match.slice(0, -4)}<span style='color: #E53B44'>${match.length == 2 ? match[1] : match.slice(-4)}</span>`", "</span>"],
[/\bGOOGLE\b/gi, "<span style='color: #4285F4'>", "`${match[0]}<span style='color: #EA4335'>${match[1]}</span><span style='color: #FBBC05'>${match[2]}</span>${match[3]}<span style='color: #34A853'>${match[4]}</span><span style='color: #EA4335'>${match[5]}</span>`", "</span>"],
[/\bMULTITAL\b/gi, "<span style='color: #cc0000'>", "`<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[0]}</span><span style='color: #f00'>${match[1]}</span><span style='color: #0f0'>${match[2]}</span><span style='color: #e60000'>${match[3]}</span><span style='color: #00f'>${match[4]}</span><span style='color: #ff0'>${match[5]}</span><span style='color: #8000ff'>${match[6]}</span>${match[7]}`", "</span>"],
[/\bTRION\sBALLS?\b/gi, "<span style='color: #5a5958'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/1512204037678694421.png?v=1'> ${match.slice(0, 2)}<span style='color: #ee00ff'>${match[2]}</span>${match[3]}<span style='color: #ee00ff'>${match[4]}</span>${match.slice(5, 7)}<span style='color: #ee00ff'>${match[7]}</span>${match.slice(8)}`", "</span>"],
// Countries and regions
[/\bROM(ANIA(NS?)?|ÂNIA)\b/gi, "<span style='color: #003CB3'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FCD116'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #CE1126'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\b(HUNGAR(Y|IANS?)|MAGYAR(ORSZ(Á|A)G)?)\b/gi, "<span style='color:#477050'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjYwMCI+PHBhdGggZD0iTTAgMGgxMjAwdjYwMEgwIiBmaWxsPSIjNDc3MDUwIi8+PHBhdGggZD0iTTAgMGgxMjAwdjQwMEgwIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTAgMGgxMjAwdjIwMEgwIiBmaWxsPSIjY2UyOTM5Ii8+PC9zdmc+DQo=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(RUSSIA(NS?)?|РОССИЯ|POCCNR)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#0032A0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiPjxyZWN0IGZpbGw9IiNkNTJiMWUiIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIi8+PHJlY3QgZmlsbD0iIzAwMzlhNiIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI0MDAiLz48cmVjdCBmaWxsPSIjZmZmIiB3aWR0aD0iOTAwIiBoZWlnaHQ9IjIwMCIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(GERMAN(Y|S)?|DEUTSCHLAND)\b/gi, "<span style='color:#595959'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMDAiIGhlaWdodD0iNjAwIj48cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSI2MDAiIGZpbGw9IiNGRkNFMDAiLz48cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9IiNEMDAiLz48cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9IiMwMDAiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bFR((A|\*)NCE|(E|\*)NCH)\b/gi, "<span style='color:#0000B3'>", "`${match.slice(0, 2)}<span style='color:#FFFFFF'>${match.slice(2, 4)}</span><span style='color:#E1000F'>${match.slice(-2)}</span>`", "</span>"],
[/\b(PRUSSIA(NS?)?|PREU(ẞ|ß|SS|SZ)EN)\b/gi, "<span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`</span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI1NDAiPjxyZWN0IHdpZHRoPSI5MDAiIGhlaWdodD0iNTQwIiAvPjxyZWN0IHk9IjgyIiB3aWR0aD0iOTAwIiBoZWlnaHQ9IjM3NiIgZmlsbD0iI0ZGRiIgLz48L3N2Zz4=) text top 60% left 50% / 100% 50%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span><span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>`", "</span>"],
[/\bPOL(SKA|AND|ISH)\b/gi, "<span style='color: #DD0C39'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEwIj48cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTAiIGZpbGw9IiNkYzE0M2MiLz48cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iNSIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bSLOV(AK(IA(NS?)?|S)?|ENSKO)\b/gi, "<span style='color:#254AA5'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjYiPjxyZWN0IGZpbGw9IiNlZDFjMjQiIHdpZHRoPSI5IiBoZWlnaHQ9IjYiLz48cmVjdCBmaWxsPSIjMjU0YWE1IiB3aWR0aD0iOSIgaGVpZ2h0PSI0Ii8+PHJlY3QgZmlsbD0iI2ZmZiIgd2lkdGg9IjkiIGhlaWdodD0iMiIvPjwvc3ZnPgo=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CZECH(IA|S)?|(C|Č)ESKO)\b/gi, "<span style='color:#15579d'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIj4NCgk8cmVjdCB3aWR0aD0iOTAwIiBoZWlnaHQ9IjYwMCIgZmlsbD0iI2Q3MTQxYSIvPg0KCTxyZWN0IHdpZHRoPSI5MDAiIGhlaWdodD0iMzAwIiBmaWxsPSIjZmZmIi8+DQoJPHBhdGggZD0iTSA0NTAsMzAwIDAsMCBWIDYwMCB6IiBmaWxsPSIjMTE0NTdlIi8+DQo8L3N2Zz4=) text center / 100% 100%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bEUROP(E|A)\b/gi, "<span style='color: #003cb3'>", "`${match[0]}<span style='color: #ffcc00'>${match[1]}</span>${match[2] + match[3]}<span style='color: #ffcc00'>${match[4]}</span>${match[5]}`", "</span>"],
[/\bEUROPEAN\b/gi, "<span style='color: #003cb3'>", "`${match[0] + match[1]}<span style='color: #ffcc00'>${match[2]}</span>${match[3] + match[4]}<span style='color: #ffcc00'>${match[5]}</span>${match[6] + match[7]}`", "</span>"],
[/\bROMANS\b/gi, "<span style='color: #AA080B'>", "`${match[0] + match[1]}<span style='color: #ffa50a'>${match[2] + match[3]}</span>${match.slice(-2)}`", "</span>"],
[/\bROMAN(\sEMPIRE)?\b/gi, "<span style='color: #AA080B'>", "`${match[0]}<span style='color: #ffa50a'>${match[1]}</span>${match[2]}<span style='color: #ffa50a'>${match[3]}</span>${match.slice(4)}`", "</span>"],
[/\b(ROM(A|E)|SPQR)\b/gi, "<span style='color: #AA080B'>", "`${match[0]}<span style='color: #ffa50a'>${match[1] + match[2]}</span>${match[3]}`", "</span>"],
[/\bENGLAND\b/gi, "<span style='color: #FFFFFF'>", "`${match.slice(0, 2)}<span style='color: #CE1124'>${match.slice(2, -2)}</span>${match.slice(-2)}`", "</span>"],
[/\b(SPA(IN|NI(SH|ARDS?))|ESPA(N|Ñ)A)\b/gi, "<span style='color: #ffc400'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNTAwIiB3aWR0aD0iNzUwIiB2ZXJzaW9uPSIxLjEiPgogIDxyZWN0IHdpZHRoPSI3NTAiIGhlaWdodD0iNTAwIiBmaWxsPSIjYzYwYjFlIi8+CiAgPHJlY3Qgd2lkdGg9Ijc1MCIgaGVpZ2h0PSIyNTAiIHk9IjEyNSIgZmlsbD0iI2ZmYzQwMCIvPgo8L3N2Zz4=) text top 70% left 50% / 100% 60%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(UKRAIN(E|IANS?)|Україна)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #0057B7'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjIiPjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIGZpbGw9IiNGRkQ3MDAiLz48cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIxIiBmaWxsPSIjMDA1N0I3Ii8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(SWED(E(N|S)?|ISH)|SVERIGE)\b/gi, "<span style='color: #0062b3'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n)}<span style='color: #fecb00'>${match.slice(n, -n)}</span>${match.slice(-n)}`", "</span>"],
[/\b(FIN(N(S|ISH)?|LAND)|SUOMI)\b/gi, "<span style='color: #FFFFFF'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n)}<span style='color: #004db3'>${match.slice(n, -n)}</span>${match.slice(-n)}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(IR(ELAND|ISH)|(É|E)IRE)\b/gi, "<span style='color: #0E9C62'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFFFFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #FF893C'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\bITAL(Y|IA(NS?)?)\b/gi, "<span style='color: #009246'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFFFFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #ce2b37'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\bPORTUG(AL|UESE)\b/gi, "<span style='color: #00b362'>", "`${match.slice(0, Math.floor(match.length * 0.4))}<span style='color: #ed1c24'>${match.slice(Math.floor(match.length * 0.4))}</span>`", "</span>"],
[/\b(VATICANO?|HOLY\sSEE)\b/gi, "<span style='color: #FFF200'>", "`${match.slice(0, 4)}<span style='color: #FFFFFF'>${match.slice(4)}</span>`", "</span>"],
[/\bMALT(A|ESE)\b/gi, "<span style='color: #cf142b'>", "`<span style='color: #FFFFFF'>${match.slice(0, Math.floor(match.length / 2))}</span>${match.slice(Math.floor(match.length / 2))}`", "</span>"],
[/\bBELGI(UM|ANS?|EN?|QUE|Ë)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #fdda25'>", "`<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}</span>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}<span style='color: #ef3340'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\bE(STONIA(NS?)?|ESTI)\b/gi, "<span style='color: #0072ce'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjIxIiB3aWR0aD0iMzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMEgzM1YyMUgweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0wIDBIMzNWMTRIMHoiLz48cGF0aCBkPSJNMCAwSDMzVjdIMHoiIGZpbGw9IiMwMDcyY2UiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bLATVI(A(NS?)?|JA)\b/gi, "<span style='color: #9D2235'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSI1Ij48cGF0aCBmaWxsPSIjOUQyMjM1IiBkPSJNMCAwaDEwdjVIMCIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0wIDJoMTB2MUgwIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bLI(THUANIA(NS?)?|ETUVA)\b/gi, "<span style='color: #00b371'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiNjMTI3MmQiIGQ9Ik0wIDBoNXYzSDB6Ii8+PHBhdGggZmlsbD0iIzAwYjM3MSIgZD0iTTAgMGg1djJIMHoiLz48cGF0aCBmaWxsPSIjZmRiOTEzIiBkPSJNMCAwaDV2MUgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(NETHERLANDS|DUTCH((WO)?M(A|E)N)?|NEDERLAND)\b/gi, "<span style='color: #21468B'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjYiPjxwYXRoIGZpbGw9IiMyMTQ2OEIiIGQ9Ik0wIDBIOVY2SDB6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMEg5VjRIMHoiLz48cGF0aCBmaWxsPSIjQUUxQzI4IiBkPSJNMCAwSDlWMkgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bL(UXEMBO?URG(ISH|ERS?)?|(Ë|E)TZEBUERG)\b/gi, "<span style='color: #00a3e0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUiIGhlaWdodD0iMyI+PHBhdGggZmlsbD0iIzAwYTNlMCIgZD0iTTAgMEg1VjNIMFoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwSDVWMkgwWiIvPjxwYXRoIGZpbGw9IiNlZjMzNDAiIGQ9Ik0wIDBINVYxSDBaIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(AUSTRIA(NS?)?|(Ö|O)STERREICH)\b/gi, "<span style='color: #c8102e'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjkiIGhlaWdodD0iNiI+PHBhdGggZmlsbD0iI2M4MTAyZSIgZD0iTTAgMEg5VjZIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAySDlWNEgweiIvPjwvc3ZnPg0K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bMON(ACO|(É|E)GASQUES?)\b/gi, "<span style='color: #CE1126'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUiIGhlaWdodD0iNCI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMEg1VjRIMHoiLz48cGF0aCBmaWxsPSIjQ0UxMTI2IiBkPSJNMCAwSDVWMkgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bSA(N\sMARINO|MMARINESE)\b/gi, "<span style='color: #5eb6e4'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjgiIGhlaWdodD0iNiI+PHBhdGggZmlsbD0iIzVlYjZlNCIgZD0iTTAgMEg4VjZIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwSDhWM0gweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ARMENIA(NS?)?|Հայաստան)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #F2A800'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiNGMkE4MDAiIGQ9Ik0wIDBoNnYzSDB6Ii8+PHBhdGggZmlsbD0iIzAwMzNBMCIgZD0iTTAgMGg2djJIMHoiLz48cGF0aCBmaWxsPSIjRDkwMDEyIiBkPSJNMCAwaDZ2MUgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bSLOVEN(IA(NS?)?|ES?|IJA)\b/gi, "<span style='color: #00f'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0wIDBoNnYzSDBaIiBmaWxsPSJyZWQiLz48cGF0aCBkPSJNMCAwaDZ2MkgwWiIgZmlsbD0iIzAwZiIvPjxwYXRoIGQ9Ik0wIDBoNnYxSDBaIiBmaWxsPSIjZmZmIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(CROAT(IA(NS?)?|S)?|HRVATSKA)\b/gi, "<span style='color: #171796'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjYiIGhlaWdodD0iMyI+PHBhdGggZmlsbD0iIzE3MTc5NiIgZD0iTTAgMEg2VjNIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwSDZWMkgweiIvPjxwYXRoIGZpbGw9InJlZCIgZD0iTTAgMEg2VjFIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SERB(IA(NS?)?|S)?|SRBIJA|Србија)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #1057a2'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGhlaWdodD0iNiIgd2lkdGg9IjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMEg5VjZIMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMCAwSDlWNEgweiIgZmlsbD0iIzEwNTdhMiIvPjxwYXRoIGQ9Ik0wIDBIOVYySDB6IiBmaWxsPSIjYzYzNjNjIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BULGARIA(NS?)?|България)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00966E'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUiIGhlaWdodD0iMyI+PHBhdGggZmlsbD0iI0Q2MjYxMiIgZD0iTTAgMEg1VjNIMHoiLz48cGF0aCBmaWxsPSIjMDA5NjZFIiBkPSJNMCAwSDVWMkgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBINVYxSDB6Ii8+PC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(D(E|A)NMARK|DAN(ISH|ES?))\b/gi, "<span style='color: #c8102e'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n)}<span style='color: #FFF'>${match.slice(n, -n)}</span>${match.slice(-n)}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ICELAND(IC|ERS?)?|ÍSLAND)\b/gi, "<span style='color: #02529C'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n - 1)}<span style='color: #FFF'>${match.slice(n - 1, n)}<span style='color: #DC1E35'>${match.slice(n, -n)}</span>${match.slice(-n, 1 - n)}</span>${match.slice(1 - n)}`", "</span>"],
[/\bNOR(W(AY|EGIANS?)|GE|EG)\b/gi, "<span style='color: #ba0c2f'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n - 1)}<span style='color: #FFF'>${match.slice(n - 1, n)}<span style='color: #003eb3'>${match.slice(n, -n)}</span>${match.slice(-n, 1 - n)}</span>${match.slice(1 - n)}`", "</span>"],
[/\bLIECHTENSTEIN(ERS?)?\b/gi, "<span style='color: #003cb3'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjYiPjxwYXRoIGQ9Ik0wIDBIMTBWNkgweiIgZmlsbD0iI2NlMTEyNiIvPjxwYXRoIGQ9Ik0wIDBIMTBWM0gweiIgZmlsbD0iIzAwM2NiMyIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(USA|UNITED\sSTATES(\sOF\sAMERICA)?|MURICA|(?<!\b((SOU|NOR)TH|CENTRAL)\s)AMERICA(NS?)?)\b/gi, "<span style='color: #003eb3'>", "`${match.slice(0, Math.ceil(match.length / 3))}<span style='color: #bf0a30'>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}</span>`", "</span>"],
[/\bMOLDOVA(NS?)?\b/gi, "<span style='color: #0046ae'>", "`${match.slice(0, match.length % 3 == 1 || match.length < 9 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #ffd200'>${match.length % 3 == 1 || match.length < 9 ? match.slice(Math.floor(match.length / 3), Math.floor(match.length / 2 - 0.5)) : match.slice(Math.ceil(match.length / 3), Math.floor(match.length / 2 - 0.5))}<span style='color: #b07e5b'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.length % 3 == 1 || match.length < 9 ? match.slice(-Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 3)) : match.slice(-Math.floor(match.length / 2 - 0.5), -Math.ceil(match.length / 3))}</span><span style='color: #cc092f'>${match.slice(match.length % 3 == 1 || match.length < 9 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\bANDORRA(NS?)?\b/gi, "<span style='color: #1106ac'>", "`${match.slice(0, match.length % 3 == 1 || match.length < 9 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #fedd00'>${match.length % 3 == 1 || match.length < 9 ? match.slice(Math.floor(match.length / 3), Math.floor(match.length / 2 - 0.5)) : match.slice(Math.ceil(match.length / 3), Math.floor(match.length / 2 - 0.5))}<span style='color: #c6aa76'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.length % 3 == 1 || match.length < 9 ? match.slice(-Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 3)) : match.slice(-Math.floor(match.length / 2 - 0.5), -Math.ceil(match.length / 3))}</span><span style='color: #d50032'>${match.slice(match.length % 3 == 1 || match.length < 9 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\bCANAD(A|IANS?)\b/gi, "<span style='color: #d52b1e'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
[/\b(TURK(EY|ISH|S)?|T(Ü|U)RKIYE)\b/gi, "<span style='color: #e30a17'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/\b(ALBANIA(NS?)?|SHQIP(Ë|E)RIA)\b/gi, "<span style='color: #F00'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/\bS(WI(TZERLAND|SS)|CHWEIZ|UISSE|VIZ(ZE)?RA)\b/gi, "<span style='color: #da291c'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/\bPER(U(VIANS?)?|Ú)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #D91023'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CHAD(IANS?)?|TCHAD|تشاد)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #0044b3'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #fecb00'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #c60c30'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\bNIGERIA(NS?)?\b/gi, "<span style='color: #008751'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MONGOL(IA(NS?)?|S)?|Монгол|Моңһл|ᠮᠤᠩᠭᠤᠯ|ᡏᡆᡊᡎᡆᠯ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #da2031'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #0066b2'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
[/\bGUATEMALA(NS?)?\b/gi, "<span style='color: #4997d0'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
[/\b(MEXIC(O|ANS?)|MÉXICO)\b/gi, "<span style='color: #00b37a'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #CE1126'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(KAZAKH(S(TAN(IS?)?)?)?|QAZAQSTAN|Қазақстан|Казахстан)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00abc2'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #ffec2d'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MOROCC(O|ANS?)|لمغريب|المغرب|ⵍⵎⵖⵔⵉⴱ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #c1272d'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #00b35c'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ALGERIA(NS?)?|الجزائر|ⴷⵣⴰⵢⵔ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00b359'>", "`${match.slice(0, Math.floor(match.length / 2))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2))}</span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(TUNISIA(NS?)?|تونس)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #e70013'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(KOSOV(O|A((R|N)S?)?)|Косово)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #244aa5'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #d0a650'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((NORTH\s)?MACEDONIA(NS?)?|FYROM|Македонија|MAQEDONIA(\sE\sVERIUT)?)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #d82126'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #f8e92e'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/\b(EL\sSALVADOR|SALVADOR(E|I)?ANS?)\b/gi, "<span style='color: #0047ab'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMzUiIGhlaWdodD0iMTg5Ij48cGF0aCBmaWxsPSIjMDA0N2FiIiBkPSJNMCAwaDMzNXYxODlIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCA2M2gzMzV2NjNIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bHONDURA(NS?|S)\b/gi, "<span style='color: #0d3b99'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiMwZDNiOTkiIGQ9Ik0wIDBoNnYzSDB6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMWg2djFIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bNICARAGUA(NS?)?\b/gi, "<span style='color: #0067c6'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiMwMDY3YzYiIGQ9Ik0wIDBoNXYzSDB6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMWg1djFIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bECUADOR(IANS?)?\b/gi, "<span style='color: #fd0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjQiPjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjQiIGZpbGw9IiNlZDFjMjQiLz48cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIzIiBmaWxsPSIjMDM0ZWEyIi8+PHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMiIgZmlsbD0iI2ZkMCIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bCOLOMBIA(NS?)?\b/gi, "<span style='color: #ffcd00'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjQiPjxwYXRoIGZpbGw9IiNmZmNkMDAiIGQ9Ik0wIDBoNnY0SDB6Ii8+PHBhdGggZmlsbD0iIzAwM2ViMyIgZD0iTTAgMmg2djJIMHoiLz48cGF0aCBmaWxsPSIjYzgxMDJlIiBkPSJNMCAzaDZ2MUgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bVENEZUELA(NS?)?\b/gi, "<span style='color: #fc0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjYiPjxwYXRoIGQ9Ik0wIDBIOVY2SDBaIiBmaWxsPSIjY2YxNDJiIi8+PHBhdGggZD0iTTAgMEg5VjRIMFoiIGZpbGw9IiMwMDMzYjMiLz48cGF0aCBkPSJNMCAwSDlWMkgwWiIgZmlsbD0iI2ZjMCIvPjwvc3ZnPgo=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(BOLIVIA(NS?)?|PULI(PI|(P|W)Y)A|WULIWYA|(V|MB)O(L|R)(Í|I)VIA)\b/gi, "<span style='color: #00b34d'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIxNSI+PHBhdGggZmlsbD0iIzAwYjM0ZCIgZD0iTTAgMEgyMlYxNUgwWiIvPjxwYXRoIGZpbGw9IiNGOUUzMDAiIGQ9Ik0wIDBIMjJWMTBIMFoiLz48cGF0aCBmaWxsPSIjRDUyQjFFIiBkPSJNMCAwSDIyVjVIMFoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bPARAGU(AY|ÁI|AI)\b/gi, "<span style='color: #0038a8'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMyI+PHBhdGggZD0iTTAgMGg2MHYzM0gweiIgZmlsbD0iIzAwMzhhOCIvPjxwYXRoIGQ9Ik0wIDBoNjB2MjJIMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMCAwaDYwdjExSDB6IiBmaWxsPSIjZDUyYjFlIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(ARGENTIN(A|(I|E)ANS?|ES?))\b/gi, "<span style='color: #74acdf'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIxNSI+PHBhdGggZmlsbD0iIzc0YWNkZiIgZD0iTTAgMEgyNFYxNUgwWiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDVIMjRWMTBIMFoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MALI(ANS?)?|MAALI|ߡߊ߬ߟߌ|𞤃𞤢𞥄𞤤𞤭|مَالِي|ⵎⴰⵍⵉ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #14b53a'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #fcd116'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #ce1126'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\bGUIN(E(A(NS?)?)|ÉE)\b/gi, "<span style='color: #009460'>", "`<span style='color: #ce1126'>${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}</span><span style='color: #fcd116'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
[/\b(IVORY\sCOAST(ERS?)?|IVORIANS?|C(O|Ô)TE\sD'?\s?IVOIRE)\b/gi, "<span style='color: #FF8200'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFFFFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #009A44'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
[/\b(SOMALI(S|A)?|SOOMAALIYA)\b/gi, "<span style='color: #418fde'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CYPRUS|Κύπρος|Kıbrıs|KIBRIS)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #d67900'>", "`<span style='color: #FFF'>${match.slice(0, Math.floor(match.length / 2 - 0.5))}</span>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(-Math.floor(match.length / 2 - 0.5))}</span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SAUDI(\sARABIA(NS?)?|S)?|السعودية)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00b365'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(QATAR(IS?)?|قطر)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #8a1538'>", "`<span style='color: #FFFFFF'>${match.slice(0, 4)}</span>${match.slice(4)}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BAHRAIN(IS?)?|البحرين)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #da291c'>", "`<span style='color: #FFFFFF'>${match.slice(0, 4)}</span>${match.slice(4)}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(JAPAN(ESE)?|日本)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FFF'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #bc002d'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BANGLADESH(IS?)?|BENGAL(IS?)?|বাংলাদেশ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00b37a'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #da291c'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/\b(PA|BE)LAU(ANS?)?\b/gi, "<span style='color: #09F'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FF0'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/\b(TOGO(LESE)?)\b/gi, "<span style='color: #00b383'>", "`<span style='color: #D21034'>${match.slice(0, Math.ceil(match.length / 3))}</span>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFCE00'>${elem}</span>`).join('')}`", "</span>"],
[/\bLIBERIA(NS?)?\b/gi, "<span style='color: #004db3'>", "`${match.slice(0, Math.ceil(match.length / 3))}<span style='color: #c13'>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}</span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(GREE(CE|KS?)|HELLEN(ES?|IC)|Ελληνικ(ή|η))(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #0D5EAF'>", "`${match.split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}`", "</span>"],
[/\bMALAY(SIA(NS?)?|S)?\b/gi, "<span style='color: #c00'>", "`<span style='color: #0000b3'>${match.slice(0, Math.ceil(match.length / 3))}</span>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}`", "</span>"],
[/\b(VIET(NAM(ESE)?|S)?|Vi(ệ|Ệ)t\sNam)\b/gi, "<span style='color: #da251d'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FF0'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
[/\bURUGUAY(ANS?)?\b/gi, "<span style='color: #0038a8'>", "`${match.split('').map((elem, index) => index % 2 == 1 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(GEORGIA(NS?)?|KARTVELIANS?|საქართველო)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FFF'>", "`<span style='color: #F00'>${match[0]}</span>${match.slice(1, Math.floor(match.length / 2 - 0.5))}<span style='color: #F00'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5), -1)}<span style='color: #F00'>${match.slice(-1)}</span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CHIN(A|ESE)|中国)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #EE1C25'>", "`${match[0]}<span style='color: #FF0'>${match[1]}</span>${match.slice(2)}`", "</span>"],
[/\b(BO|BA|MO)?TSWANA\b/gi, "<span style='color: #6da9d2'>", "match.length == 8 ? `${match.slice(0, 2)}<span style='color: #FFF'>${match[2]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(3, 5)}</span>${match[5]}</span>${match.slice(6, 8)}` : `${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(2, 4)}</span>${match[4]}</span>${match[5]}`", "</span>"],
[/\bCHILE(ANS?)?\b/gi, "<span style='color: #0032A0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNEQTI5MUMiIGQ9Ik0wIDBoMnYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iIzAwMzJBMCIgZD0iTTAgMGgydjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match[0]}</span><span class='rainbow-back' style='text-shadow: inherit'>${match[0]}</span></span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNEQTI5MUMiIGQ9Ik0wIDBoMnYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMGgydjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(1)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(1)}</span></span>`", "</span>"],
[/\bMA(DAGAS(CAR|IKARA)|LAGASY)\b/gi, "<span style='color: #00b353'>", "let n = match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3); `<span style='color: #FFF'>${match.slice(0, n)}</span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiMwMGIzNTMiIGQ9Ik0wIDBIMlYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2Y5NDIzYSIgZD0iTTAgMEgyVjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(n)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(n)}</span></span>`", "</span>"],
[/\b(B(E|É)NIN(ESE|OIS(ES?)?)?|DAHOMEY)\b/gi, "<span style='color: #00b36b'>", "let n = match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3); `${match.slice(0, n)}<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNlODExMmQiIGQ9Ik0wIDBoMnYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2ZjZDExNiIgZD0iTTAgMGgydjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(n)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(n)}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MONTENEGR(O|INS?)|Црна\sГора|CRNA\sGORA)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #E30000; text-shadow:-1px 0px 0 #FFC000, 1px 0px 0 #FFC000, 0px 1px 0 #FFC000, 0px -1px 0 #FFC000'>", "`${match}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BELARUS(IANS?)?|Беларусь)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FFF'>", "let n = match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3); `${match.slice(0, n)}<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGZpbGw9IiMwMGIzNDQiIGQ9Im0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2NlMTcyMCIgZD0ibTAgMGgzdjJIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(n)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(n)}</span></span>`", "</span>"],
[/\bINDONESIA(NS?)?\b/gi, "<span style='color: #F00'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBIMlYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0icmVkIiBkPSJNMCAwSDJWMUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SINGAP(ORE(ANS?)?|URA)|சிங்கப்பூர்|新加坡)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #ED2939'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGQ9Ik0wIDBoMnYySDB6IiBmaWxsPSIjZmZmIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgydjFIMHoiIGZpbGw9IiNlZDI5MzkiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MYANMA(R(ESE)?)?|BURM(A|ESE)|မြန်မာ|မြန်မာနိုင်ငံ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FECB00'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6IiBmaWxsPSIjRUEyODM5Ij48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgzdjJIMHoiIGZpbGw9IiMzNEIyMzMiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwaDN2MUgweiIgZmlsbD0iI0ZFQ0IwMCI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(CAMBODIA(NS?)?|KHMERS?)\b|កម្ពុជា/gi, "<span style='color: #032ea1'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDBaIiBmaWxsPSIjMDMyZWExIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMWgzdjFIMFoiIGZpbGw9IiNlMDAwMjUiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(INDIA(NS?)?|HIND(I|USTANI?)?|BH(A|Ā)RAT|भारत)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FF6820'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGZpbGw9IiMwNmFjNWMiIGQ9Ik0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMGgzdjJIMHoiPjwvcGF0aD4KICA8cGF0aCBmaWxsPSIjRkY2ODIwIiBkPSJNMCAwaDN2MUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(AZER(BAIJAN)?(IS?)?|AZƏRBAYCAN)\b/gi, "<span style='color: #00B5E2'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBIM1YzSDBaIiBmaWxsPSIjNTA5ZTJmIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMEgzVjJIMFoiIGZpbGw9IiNlZjMzNDAiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwSDNWMUgwWiIgZmlsbD0iIzAwYjVlMiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(TAJIK(I(STAN(IS?)?)?|S)?|ТОҶИКИСТОН|ТАДЖИКИСТАН)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #1e943a'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBIM1YzSDBaIiBmaWxsPSIjMWU5NDNhIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMEgzVjJIMFoiIGZpbGw9IiNGRkYiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwSDNWMUgwWiIgZmlsbD0iI0RDMTYxRCI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(UZBEK(ISTAN(IS?)?|S)?|OʻZBEKISTON|Ўзбекистон)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #3081f7'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGZpbGw9IiMzMDg3MzgiIGQ9Ik0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgzdjJIMHoiPjwvcGF0aD4KICA8cGF0aCBmaWxsPSIjMzA4MWY3IiBkPSJNMCAwaDN2MUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(YEMEN(I(TE)?S?)?|اليمن)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #ce1126'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgzdjJIMHoiPjwvcGF0aD4KICA8cGF0aCBmaWxsPSIjY2UxMTI2IiBkPSJNMCAwaDN2MUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bBRA(Z|S)IL(IANS?)?\b/gi, "<span style='color: #00b34d'>", "let n = (match.length - 2) % 3 == 1 ? Math.floor((match.length - 2) / 3) : Math.ceil((match.length - 2) / 3); `${match.slice(0, n)}<span style='color: #ffcb00'>${match.slice(n, n + 1)}<span style='color: #302681'>${match.slice(n + 1, -n - 1)}</span>${match.slice(-n - 1, -n)}</span>${match.slice(-n)}`", "</span>"],
//[/\bCOUNTRY\b/gi, "<span style='color:#ffc400'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url() text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
// Border names
[/\bLIMBO\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAMUExURQo5VBVwqArQlSzy7vDaOZYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAASZJREFUOMttkgGSBREMRFtcQLgAcQHk/nfbZv7Wbo2vahjzppPoAN4jVHQ+rTui1wvDn0U+yL0MlDjVu07X5W8OnenvQyiqfUDjyl6OQN+cIc342hcnMz8ZWpzNi3sHM7w4l6kVMiInLdzucuKAl1kouHnARIalYGgoSP8FRdfNkTJK7bktmWiBGbz5dkl8HJfeHFKgo7e8omJ+sfHiQmeGp+CRjjwCxlEF0kfw4hIbP9DhqHk8guqr5e7yCF48CKZ1Hn8uK6gJCsEIuaWIys3FwbOZaRU14yl3fP4aWk6U7RwXnzTNWgqZDWqMlIS9Zr2cVg03Z19StJ7CshF2ZwQtYZl1hMyiLg7m5/3Yg7aMXZL0c+N8VfnGT8JjZj63Zpv6O9LNfwDPsDQ6wZvBIgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bOBLIVION\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAPUExURQAAAKysrICAgJ4oNeU7RDSL0DwAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAARtJREFUOMuV0lGShiAIAGBGT6BeAOkCGtwA73+mBaym3X3Y/akMiU9rJoBPo+yo5R31HvpV6Hde4fW0MU9mblzIkkmN/fC08HmhC/QY2lpTljbtJFOY2NKozS4Oei2doNQAVAs19b4APEVJ1HbwmoNaDfQNrN1Af4Pa2QCXdHjtDJA6BaAA+A0gz6Ys82ADp+gDCA2guYJ0gaWHEsjZFq95aIB1yiAyQAmhOkgdbRLbsy2aDBy21w1EDWBKSAmA0HsJkGCvphugAcob8JKBDtIG1m4gbcAvkLJmrw1ZBiBBAPgLDBn5BrBBshEekJWtB+3lHgB2QrQDIPhGkee1/Bvs5j282MGeBPgVmXnYvxS3YTO/rgmPf//NP+MLZABWizJ0KUoAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bARCADIA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAwUExURQAAAP8AAP9VAP+SAP/AAP/+AKT/AFVVVQD/SgD/zQC+/wCA/yEA/6wA/9oA//8A0CK0ZI4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAJVJREFUOMuVksENwjAQBPcDFyf50AIt0AIt0ALv/NwCLdBCWqCFtEALtAAXbO8Ffjv26UbW6ixLBlQOIjiK4CSCswguxB+0+yuebVJXYjnvf2uiRwo3YrCuFLrmsOKRwp34pORTk6Xqq63bPVKYiU/qS6Fv7jd8e6TwIDbUlXPtEz1SWAjGusC+NN+kniJ4ieAtIv/uD0cKCqWhgX+MAAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bPURGATORY\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAMUExURQAAAOLi4rm5uZCQkEjWg78AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAKVJREFUOMu9UEEOAyEIBP0A/mDDfqCR//+tMGDWJu3BSwcMyu44I0SnGIf4A0GBi6gh6MfyyD9LQcZgIOq3hU9QSIlLuCHoWcT0nD1SgCQJYyQhqluIatwn9+yRSBJ4EYRKQZqL41ZFZu/FNIuwLNnc7cTNINT55l5vXlNyIdgpC/AcWT2tJzhjjTXI22hjjJHb/oNwm6qZTURVjdz2RbBDnBNO8QYr6TfVIF/BsgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bDAMNATION\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURfuSK+U7RP/nYvW7CgAAAJ4oNT8oMigaILh8MN4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAANNJREFUOMu1j8kVwjAMRAUVQHgUQKgARAPEyx3zoACW0AG0j2ZkliM58GMrGmmkvIj8nclAZATGbbsY8S4QTLtq7e0ZSkSmoFHV17WwarSrqquZleicyhx4K7KJsKcKqhsfYCnRKjtQYK7NGkylmcbms2hLqxxAgXm9tEYIdcBUKjjvRYlWuYITzVie0A3+mVxw6iIboFWOoNCM5XBodpVOOMEX2Tyt0oOz/V5QPPnMsKm5ZZk9JLT6QB9jxM0x9x6oemYX9JB8D/yO3Acit4HIYyBPxTW3XqdtH+cAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bPARADISE\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAQBAMAAABzZ+XyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAACzo9P/nYvuSK////6+/0gSE0XqUtCCWJngAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAR1JREFUKM+NkjtuwzAMhn+93NUGcgDCvoAQXUAD3dkFombVUHjOEMDXLyknbdPJhB+fpU8kZRs4GsPBULEHjBD+gR4wgjq4i+NIejGvYNtNzvFHJCRjycUX8NbbCAj+ZqTBGVkf8xN6OjkVTZvce2zMVuYzZa0nIsmIii5Cy5m2D1mQCVOwACkYhYe4pGT6KaloEQfOU4qzTWdSGBR2MTBauyo6mBNLIs+SKC5tMwI9XVScP7Td1mKPTxaRmW1YRNREXY2VimzFl7VSpVXiq+D6R8yP1rTeJBkBG/fXwzPKxjmK6FSMIirUlOLFBZdSJ5g6mUcpW4ZCWHADwytkIBS83YC1yif0u3jdWGMugnd+xly27c7v2l97PPyXfQOBOkQnJXD4WQAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bNIRVANA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAN2D8/OL/P/nYkAAgP///6hR/4AA/4F+am4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAUJJREFUOMuVkjmWgzAMhrmCDI/UyDy7Hps3fYhyA3KAuJBrKPD1R5gMeJYmcuH196etqt41gG746ABA4Wnee1dsEU6rQNV0U7KqtT+NbsXG6x+CbriSIGrl9lv5UA/TlOf9xLkaGiK6ZoEAmiYjSo+EUPgkHtNDRhZsgIwAgxgYDQefY9COw3aAHDpo7hPdpw1RCeBKGWGCCRE5sSPyA42fiQ1zMIlF8BDBQwSqEkDTZETLJqzIMvrRO0LrmHkNFplPQVcQWvlOnnNER7ofnSzXaIJM6VkQzhjamAWJtetvhN5E3rzkyDAfgiJLzzasQbxGluhpRC1vRSBOMZRBf9cBVp4v4kPENSL2kkzL0Sw2XjhCmdaj0pcEkOyyoF2kZFv602KxmyHNcnsW7uil3V4dpf820dEaglC/T9V/T1+Cd+0LG618W9f1xygAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bRAGNAROK\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAP8AAP9VALAAAP+DAP+5AP/2AP/8tvJ2gkQAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAUxJREFUOMuVkl2uhCAMhZuwAt0BjAtAq8474gqU2YCxLOAmsv17qhkzyb0v0x8oh6+kJhJ9a5VaXf01+48Gjqy1Ve1Qwt+hmoYCWmM/F93JWVc5Z5m7irl9MPOjdY5bh5O9lI5b7uq6thYwOdCueRCZO41zvvtQOt/73rnmDAohuDU+DJt3LtQ3vptuRXE0hBhC4wLFGJtmnsyEq8ksyIlM9L0qlwMf/ABuDXOMtK5rnJO+d6W20OD75VaAQ4nrfAbNKc1zWoh4wsRAeDEeEBSj6qINZFJaz0iU0o5YCLPr/AYYQD9s59eo4kc8ML4UfKWdkkja981suNJVEfE0Xuflahi1AaDsO4nILnI3YJDNyKYNm/m5lNE//SgXKCQ5Y9v47YyUws8PZYQ/RbIcCJKjHEc+ci5S8lFyOeujQNVD0TprjUKQVL60r//uX/VJkTvjyKq5AAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bOLYMPUS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAGPGTeSmcv///2yr0bhvUD8oMnQ/OWdRQb54c88AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAR5JREFUOMuV0kFOwzAQBdBcwRB5X4PcdRiJvdtRbsABQqPB6xzC8rH54wk0EWHRqapft/PkuJ6ue7TcU0C9OMtXTod5cvRm2Tn3gSJn+UxDS+a0S+eINAcFFAKhz4nIJDfyEsWLVhQhhP6gQPsMnJcGcq1TBiix+IoqsdZbFl2UBtDXwFVBApD8C4rgFUs2gB16vgPGB2aALwM1A7wX/wOwdVGAvmv6A2Yacv1cgT2Si6KA0YcuA7wByZfFl7HtIKTgvOTpf8BbQEegN5D00HMW2QJmPbRIPQa1zjgf70G1v5XvgDmEBnA/M97sJXgZRS+QeZRJb7EB9DVgI8DrKHBb4wlSWycbGbd+D9BfbMh4HTa+7DLZUJ7WNYbv0foGpWOxkn/yUekAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bEDEN\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAJza///////wm//nYjJzRT2OVWPGTR4+ICMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAARNJREFUOMuVkrFuxCAMhqFNwkoiZU95AqT4ASodD5AbyJzlyMp0fv3aECLS3tD7h9g/+LONFCHeVU8yxqTvV19rOG19k4CBAJ15maOsfW8mOvgDzEkyR1t7aab5CvBIDUdHcCyp7entMMEVYGn4MDlSWcOAOby7EfUKSB3bBaQx+jLB2ddA2rnb+I6B8gZo3E3UgPccxyXvriLdeQbKW0DQCJD+TkVUKsYQOF23vBIDPiyuPVaiFRWNcG143Mc1+F6siJzuETp87oiRwU/XLTYERHxuoCJNosvHumPwgmpSGs8JtDk4tdniFTa0KqZ2GAQiHp3TI6mAV//GOBevMCYgS5QkiqNjDpWnWj74DfxXb//dP1QmeY3eT1cEAAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bUTOPIA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAAAoU7m5uX5+fv/nYoiivgAADt7JfLMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAQZJREFUOMuVktFxwyAQRGkBUYFBDYgTDQg6uNF/+q8iuwdCjseeJDc+n9FoebsY5/5b/k0tEfXwbwuC5fodxMsmYi0VM2B69ieBxrKV82RrRYfeZzZah7rlhgc9yiZFchHRpKJBVIJK2R90uTa+6mJbbTkIGZ9WcjIBnngKQFjaAQEkFCBhO2CNhLxSs1ezZAJY2uMoSJzNw5ZpEihQyZPAN0mIJHQpli1NglnCNtiCu3SCWWpmiQQT/MiAZ1X7LkYwS3cGs/ScYRKOmxCfMhhBBgHHWkFIONaOHRnaSwb+R0bACTFDsnlluE5pZGDhFuArN16NJCTYlJkhzgx/r5e7+/Xr7f4G6ZJzfWnCnfcAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bEKA(-|\s)LANIAKEA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAA8THCcXPlEdcP///5csnthWuP+Xv5gokeAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPFJREFUOMuVksEKwjAMhvcKWdt5Hj6Bog9QFvFclN0HE8+C7PnNn5bNjF2WHhqSfv2bpFW112inCVCbwMnm3QYgMWb25D1zpBQJeySKsi0J8ZQWIEiOCHE4gwA4DF9W43OCEA4ZaAoQJd71U/cP3N7jRRMUW4+TAA4ZYH2KKuAFer++lXEDvOv7daLq2H+nB3NRyDXILhKKBI8E8LRSuOQaUK4CPmu4uYZhVcOzFE0FcFmBZuDjbZfGFRAMUF/v9/G8zCG6/vuwQLOhsExaWjArYFQCHHRwBYA3zEC2ZD6A9q41oUQWWP0h9M5aObD7d/8AJ7dTcuHcbqEAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bLANIAKEA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAMUExURQAAAAAADv/th////yFmTPkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAONJREFUOMuVkoERwyAIRbFZAJigOgF37L9b4aNeml6vKYmJRJ4/IERna/Tb5E9bAMck+XhzPGIjjFai+aFFlG6gs4kc7sbW2Dgn7t6OvJbTRUafgA4ARLGUABmxUQRjEJzH+FQAEKuCG8EWGlJOXzlgEiG9xA3RWr/klNuUs5LWUYAOKJhTAuO5FXw6tfWbQv6+RQAUTHYO5dTWu6yZAwCmmYMcVSXkIKWgE+gnQPgrkHWlqmrWoRWgq6wLQFkncFLAMSUQGeLgNrCca2tkG2RXaLUGz8aYrSF0Ae43Xxnf6OuyF+/mL3AHNsf6AAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bELYSIUM\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAP///+VwRPvUOR6QVZDx+K7+XZpKS//l76hNuvgAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAS1JREFUOMuVkjFuwzAMRX0FGeYJeAJLtds1hXIAGiayCyjjC7TonCHn7qfkBCnQoaEAi/zk49fgrns2wpPxG+DU7sM/gX7sx8B/AA91J4FwAtEQhIlCH0cZskshCOrB00OdCYIDYICM1iDCSsT9JGsmkmUUlORdrwkUAOlEIJGo5oMyT+pAzkcSFgc0H1XugDgAibQB7xMrLxNnPjIkiA3wBTpkrAWgLiHWnJvDEhFO6k12QB1Q7Oiq1DorIwMwcVpiMwP94j0MVOoBgFEDfGxm4/Y6BHqfN0D1/iQ9YRhZHU9zSanMXCph9mW7TQVOamZXO5uVyR24xDcYlAQgxlcuM/pbs3EAk1dzyezMCbsxDXa2K8d0ifCqbbNv2z4AbLXYtf16TLf7pyVP/90/dyiXyQCDav0AAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bCAMELOT\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAhUExURQAAAFKk3P///5zExIt/c1VNS2B+iR6QVZpKSzNjr0LMOc8JdYAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPVJREFUOMu9kbFKxTAUhiuBi6NHAtc1wQcIFO5e+DO4p3tBuLtTwcn7Di46u9in9D9NkyCo0MVvaJLT/zs5pV23F9lJFW5dXtZidyVy83OzWvTeqeQdH8aoEAJPIq509N8ET1izwD0GY3TYECw8tpwGXBG86ioAKY4ADo+mP02nidsIDLl/E7jPDSxijGNMMP1hMqEPjKc0pnJDHUnV4yxiR8Yje5qzuX4J5yxEiMxP7aM1yYIuHIhp6A0q6A2MV2FNVkEuYqHzk4fyj17zeZA7aQKTooWLYGP5fNt4X8hHEdZkEY4zWX6D75owN57/ECr/IOzlC/PRsYQzn6TUAAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bLEMURIA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAPUExURQAAAASE0WPGTXQ/ObhvULu6x28AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAOJJREFUOMuVktEVwyAIRbOCcQJhAsENZP+ZCi8aTXP6Uc4LJS23gHIc/1padlJY2eJld9IAVGs4VfEIEkiFWJUIv+9AsxrOTDyCBLJOjMf6Dpwpx3vu2oS7f5KLQ2pCzeVB9TYnQDQAYmH/45EdajIVQLkADzwXFSQ6sAXMCgASrRkcoJR9BE+yfgMxA7JVW30MzQBQoTd9V/DjeABnADQc83uG7woB+LzTQXkHampSni3hROGu7rUtoLyBcWc27gtdh1PrDOV5c/dqXJswNgILcVJ8oQxl1QeA2/tt24b+vd0f8NhkG/eRgwIAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bMIDAS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAN21M8ShLeVwRP/qaPvUOdewFYg7kxkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPlJREFUOMudku1xwyAMhr0CvS5QsAcIWBnAhwaIkTxAarL/CBWf4V+TiBMnuPdBCDRN75r60tV+1CvxB4DuppRLZqtrbZzVEqhRU4B5LwCwmIXqGjgkV6OmAIQVcDLSZGUKhp2QLUPVZGD2dC+AhRXWO8jhFxNM8LJhtRo1GVgi7Q0AWPcOONkIJUPTZACPiE8AsAFSULqaGjUJWBD9YyuAlLA+hgzXzWSgaxIwU2SuwExD0SHKwmWgaxLAkZjPArBo2rOGQGmRga4RYInoD/Rb+jiI6K7145Zf5yVZftanRlrjZKbDM6UW+D+e1Pfp8STGeFOvxG939x+0GoGFY5R8XgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bARMAGEDDON\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAnUExURQAAADNjr1Kk3JyKkOVwRKw5QIovQ2glRpDx+B6QVULMOXeDPa7+XXzHMaAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAWtJREFUOMuV0rFugzAUBVD/AmyRumBkqcqIwUtHLNhBJlIymnhhJcreqc2WtWOlSKmbrYIhTF2rfFQfThyI1A65o/2ujvADoXvjQFzHxRj72KeUhjTk18Q0hqMAB3DtOV4/awow3zfySFBGGQ9LnvJ0XSvJlaQ0oxnOsIfNvDMSCCE0Z6UKk4TXdcp5mcQyoVEUiCAbBO8qEBL5EZOKswSAvhCXkso8yMUguOh1OxaiswDTfYFLGcucZpCLMHlDm60VMiuUtmCFvnAWJnukP6yQG4GxsPxfmL6gzftYyKHwh0Cs8LhHG88KQhB4VhCUSnmdrkdCZAVXo2fvIhBsBMqSMEnTm1ca9uBOzbMagfjmG57aVhQzMZsJsRRV9WWEYQ/usOmd3jVd03ZtIQqxWvWFQlRt1zTdXM9vN/1w+tEaCjtTAEEAsV6p5UJVXbc4QkHrw+nbFE59YB7y2fVpxCgLc3Q01wczevff/Qs4hrpiREO30gAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bVALHALLA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAJpKS2glRmB+ieVwRJzExPvUOUoZLHGFz4QAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAKpJREFUOMu9ksENwzAIRbMCbhfgRxkg8Q7tPZEn6f5S+Ti2bFc95BKwEF/mSYCYpqsmbioSROAJs0FZ1FwoJwC+AGXin70yjZuBFRog2QvQKgtlCAOe8ji2OcYIc5qLQZ3mwOv9OfYlpQRz2g60aknVjgFAB+AXWLuWNiuZaxO9qh2VobkFGytoHbpTeYvtWm8A/J8lgDYAlYU/AI+Q3358VQkpLUcol6/7C0kjUx54RfAVAAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bATLANTIS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAABi24izo9A5giJXnq////5Xz+QSE0UzQFeYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAATFJREFUOMuVUsuOgzAM9C+YVHAmrLibqOy5VbR8Bw9xR6qU39+xk7LVXnY7AZNgz/gBRO+Cmf0/0SKWlcCVnWG7MBRnN/wO5wyKnCmtmqGDB6HBX9cn00KrLM8cKd74hKsGI3RexpWdleH4FZdI+/xzFCzvhR2LEx7FRHDlzQFT7zRvZwqnlCDiQMhHdgH764rdkUC43Gb62l8SsEA+KONECDwqoUmcuK43qhetKakHkSyWBzekndYipaTGZrMv1Pc6p3RYHOQKQakiViQXA9HY93RfKj5QoEm70ol2r+mMoKnwaNBDtWzUY86p+ZSTIKX7TLCXttMh+b4lzDpOKdlITc8yOCzTh1DQWsU+AoLJf8T4mKbDBZssPGhE45/qgXWhfsXdkz0fceI/EAve/ru/AW6VWHJ6+rA2AAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bAVALON\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAhUExURQAAAP///9ff6Czo9JXz+fuSK//nYmPGTa+/0k9ngQSE0U+FMvcAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAATlJREFUOMuVkkFugzAQRbmCkXIAjLgAJicAqd2CNV6wn1l0XdU5QnoQuvAp+8eYlC4Zycr3n/88kyhVdbVMqaZ81sa0btIamnLfu3ugqbJT03wjqjsiQ7N1o+bHscfdNgYdPRowNQCQdR3mTri9C9uwtG4Y8gSHu+ttEFluwggYa/vK6jRNB+9c8Jo5gMGpdxcKeMe7sNjWuQpPWNsxu8Do+TuU5mPETjvAfYfnOF8U0AqsUfSyGsfpLcZPzNiB7Iv/B3hdxudn4E/Te3zoiBMQ+AT8ZbPCSo/nEyPOAMkZeG2T1TDFx/cT3+K8ksdSGUiowGmTdWMuSiTGLxFJYU20wUJjha/ZHVhTdrio9IO0fEAS8aY/q5rhBWhyTx+q1AYMtog2ip8BonxoPdQBEBUDp/hVuliX/92/5ujtgKiDYxEAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bHEAVEN\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAJXz+Szo9P28Rv/nYtff6PuSK////9bLqqAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAV9JREFUOMuVkkGLwyAQhQcxerZh7yaQHxBCydVD6DnbILl6KJ4DRebv7xvbLr3tdtDkjc43zwSJPg3nTqe+x/grOozOOXKj6x71nnpS0gNKQXrySJSIJ3FyraPJjbAQwodeK70seMlUPvhlWZQmbNT6rmvdRG5yrtYPa4gG20R+oawAJB/goINPMVbCoZhc21aHYT8CA7Ac19CbJ4A6nSgxx+owjo5aPMRh5yOQFgeIq67AGkgN+iYAX/t4RfORMKsDgEteGp3Tk2zWhJVm16YCZeDyje4vhyHiSGSa6lBJeySsWNYUBOAd0JsD0iMUY/EN4gAhDqEwgFsqkYtAmzicz/H6FVnq9hcAYYIGwAKYtEt/OGwbgG3mUlP5S3IkEmGP28XCitDC4EhiUPb7fKZtemQAEupMzqkKRtmRc25MQ6k2lJhmur80H8Rk5WpUwQcGEksW+W/Mb/p/8fHt/gHL2Zifr8iNpQAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bSHANGRI(-|\s)LA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAtUExURQAAAJXz+eU7RJ4oNf///6+/0sExPOSmcnQ/OUdHWdff6D8oMk9ngWPGTcmyolMFqZMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAVJJREFUOMuVkj1Ow0AQhX0FokDPjBKCUJpZ0VCvJQqamCxKEZogfIMoVUpQiigFR0DQRNBwBA6QIv1wBJ+BN5vYcQqQMpbmx37fvl3bSXJoHFXRINoNsa/fKKMOOKkEDUYf038AsZyWvaCPCUPT7wO+mokrwKGPCYNPfR1opv00+N6JneHP6PtelB/7JE1DjDus6pidiBUkx8KWYgeByVGSsI38MYOCmMQKMSMJWeccGTCZjMMOuMwf8pFABAeUVgaXTgb2/IVsEUg6nVYNuHVXThxBxlZa0AKA28WX2zrM5081ICyXy1c8xy5wwQHrno3NR0qH2WwP+PA375m9jwwXYUv4itM1cfubHQDVn6IoVNWAe1R9u/afGraD6hoLy1RJ2vFkBqwWK3uSbAQbYDgYloC9G1Wm55HYGcxhUdSBGGFQOig210Xu6jp+uJ3m4L/7F6ffvbi5cw9BAAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bEL\s?DORADO\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAkUExURQAAAEqcSWPGTf/zsP28RnQ/OfuSK//nYsExPDJzRZ4oNT8oMjEAaJ4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAVtJREFUOMuVkjFuwkAQRfcKa2GklN5ITm8k90QWgRIpadIBzjjmAF4OgCKntyy5jwgniDhe/h+DQ0p+8T0zO887AzbmVlkbTKDEOasKrJtc5KJIKwEMUcAeAO6e/TxSximQZQScZTlkc2J7yrzYQKCVCN9lx4g3E1iewtaOR1pLGAEy4dIW3vtVUdkQeYxY0oI2RGNGMSOrIynwVlRRiAHGXooqpc1o8WB60ANhgdsAJOHywcd+LQDy/8BKAKAFW5pMb6iWReXC53k985v0ApznQm/ZIiUQZGb0GPEG7mBfj6eD31zfkPbTlIK0RMtoauxUd0Amsj3tfq52ANoSbZl+0LoGO0zvegC2/faH4bepOEg7DHdgrWs60y06/g8lLccOjFnJZ1K20kouwtr7UQ8IQPt6/8lnXR9rDTK802eMmgzqH51KgbnfLRTYf/XAn5qnM3mR6W7UzV/3Lxx0+QYhcAfUAAAAAElFTkSuQmCC" class="chatImg">`', ""],
[/\bSOLARIS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAPXMAA6l2Nff6PXgAP///wRC0v/nYgSE0dLMZGkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPxJREFUOMudUjtuwzAMfZai3UAu4KW7AAFGRx+BGXSG9gK1vWeIj12S+gb5DCEkmqL4TD5SwAsZHl3m3eUTeNneF+8SIzleYrPSU4zyrUBrEYItJ4kkOAUQiYmkmviAn6sfO8AFX05N9wiYOMOBffXJHvoMF81xB5Dy7fyHba8c+LYAqAFk5a7Y8xFxu1YOcFq4G4RwJCVL6i0ybxvW0HFyfYaoSQ1qUaP93leExTdOWkctiZKBhTKFMN8OlPDUqgoY2czIrIRD+A2wNTgBTEc6ccBIU5kC1+/bE+G58iYZbe6STFq8qa2G/15bOr18QuaJr0nDne7DTvhU/gFIfC2SnkfnfgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bAETHER\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAPuSKxk9P//nYgSE0Szo9JXz+bkvnOsAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAMlJREFUOMuVkkESgyAMRXOFCLpvpxfIcAI67QGYUfcu5P5H6E+0GFetH4EneWFcSHQ13f1SbiSPSwkkT5fMeJi3mfedO2cEii8XlphTEps6NmZnZPJ+DoGz6K3C1qAsLN6ht4sWMXtAY23zDsXxSIFUUoqAEbuxnnmFZDpiEm6dikzWDMYZOyWcG0wywFOM9ezU0K+8frOIDmZAY12bgArNJQ3zHrsVnwVorHurQ6W6pKHuWVgHM6Cxrq0OlWpt778Dlf63t1z+uz+CSKxdfCwzEgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bHYPERION\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAJXz+fuSKxi24gSE0Q5giCzo9P28Rv/nYgvspVMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAf9JREFUOMuVUsGOm0AM5RfckDTXZbtarqyBcmUxEddox+lcEWBxbVQJrmxmqD+7s5/QuVgjvef37Oco+t/37ZmSmk0dUy0wAkBOKCKIwyDM3OTI1ALEiMgLvD9Fn/j2ozZcE2an03jkK2I50kUGGcoPLAgLc2mPfCj4A3/+hjS6JwmAobopKziTl+2sO6m6WR+i6o162id/PDAw43JPo1Wfvi/cQiNzNtd+2ue+Gj2bWeaheBQdVsZN2/FQXEEf1V0jTV4XLFrTDAESCH4eKnFkLFtEz11esU4bA0IPqkHhM+DLggwO1dj1bvIVWthiY42lxpmOOlTxtx5O0sOyLNF9SUop2GQyq4qdJ6vbQdV06mpy3LFlt+9hayVJv+rf6P6aliWiySg0I+Nklh4fMXfeQOxaS2fwzmF+kUvfr6tGy5JiKQNmcXDdsqNu7LNH3FpLcfygrj5ffeVyEqIvS2ukmqqASEYWLZFnO/bwgKC2xfEuM535i2DGSxPWnKzRsj5XmsEpO9oPK6MjSzJsAGfoiPZA745eXM6jNOrt6xpySELqmSAEAss+duEbggtemlBY3dHfXN7K2BBrkkYLvr1wUBgCTiZmaQrm6wGRqBEx7WWEm+TYssHWekqjX38waTMKU4iMItOt4XBmAIGCExsmqm+YN0Qmb5XfX/77uv8BkxTQHgK/b+IAAAAASUVORK5CYII=" class="chatImg">`', ""],
[/\bANTEPROXIMA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAABmOAevCTf/WoT/kf///yrTaOw+uowAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAASZJREFUOMt1UluOwyAMnALqN2ovQNXVfqOw4jsKucFeALUS9z/CjnFe2s1aGA22xx4SALHLA2oG+INWC4fUbfCKP8JpiUAzaRcJXp7fD0VmqTvyJOZ3+iTbNuHMOHWTTHaY5xHzPIuPTkHZAyPcsAAbmQZcSpmeauEmIBY9iDODsmSgUbivz+yitxVcLnJ6IVJHBklgbygBb9akRgKeSuAA37vntynPmINNEV4IMVmJVpUUYTcCSmvoJBszSLg8NkKXFJHdsBIGfojCL1ZwV0msgb8LAfZVFtl9wosHCpDOQoLVS2eTauoigtxKlEc0+rXKQmutJhIST1cebF3BMF1r6jW/3kNYNrP+T2b9IXb+zjSkL8ac5o4gbENlQvin5Sl5f0K74h8hY0SZdVIsfwAAAABJRU5ErkJggg==" class="chatImg">`', ""],
[/\bPROXIMA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAQBAMAAABzZ+XyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAAAuZgp4/jfc/4Ty/////zOz/+0H8sQAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPxJREFUKM9tUkGOwzAInIK152jVB1BtHuAWyeeq9g/2A5Yq+f9PWByctNkUKdaEgQGDgdMFbgQc0Gpi3/dt8p9Z/lMbpAdw+vm9uJsGLx+Ud4pH29ewHkMpGaWUu4GCAskOCNrdL9mgqjWrJgcxLCDmyO4ZTUwIkbhmIIUIrrxQSlgCr3jWtVdxodRiiMoVakGis2SO6aztWbc2Q2oNS+keKKpwRQucvfSYgZUGMo3Sph8t0DzWzPk28ZuiEZJnGZepnHgBPfVqqdtoOXqthtZaTRhAQc2or9oXc5h/P2jdg018eu1zP/+R6JulA0Fvmp7YFeXjU6I92F7fsD/aWi+37K8etAAAAABJRU5ErkJggg==" class="chatImg">`', ""],
// Rank names
[/\bADMINS?\b/gi, "<span style='color:#FF4F4F'>", '`${match}`', "</span>"],
[/\bMODERATORS?\b/gi, "<span style='color:#86FF41'>", '`${match}`', "</span>"],
/*** PLAYER NAMES (and fictional countries) ***/
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(((FL?|L|V|G|WH)OR|4|PHOR(RH?)?)E(ST|Z)(\s?(L|P?F)ANDT?O?|(?!\sISL(AND|E)\b))|ФОРЕСТ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#63C64D'>", "`${match}`", "</span>"],
[/\bMR\.?\sSMILES\b/gi, "<span style='color:#FFFFFF'>", "`${match}`", "</span>"],
[/\bRIVER(\s?(LAND|L'ANT|DUCK))?\b/gi, "<span style='color:#0484D1'>", "`${match}`", "</span>"],
[/\bMONOCHROME\b/gi, "<span style='color: #000'>", "`${match[0]}<span style='color:#404040'>${match[1]}<span style='color:#808080'>${match[2]}<span style='color:#C0C0C0'>${match[3]}<span style='color:#FFFFFF'>${match[4]}${match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
[/\bROMANIABALL\b/gi, "<span style='color:#003CB3'>", "`<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAASUExURf///wAAAPzQAAArf84AAAAAAL+aKrIAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAE9JREFUKFN10EkKACAMA8DE5f9flqQuiDWHogNVK7oDZS5jTyVMBWRRSO8EtVpaE8GwRBTiNjLEALCoiD5yurbsk3P53H7L++ZkrmT2+38GpP8CyRiq0RgAAAAASUVORK5CYII=' class='chatImg'> ${match[0] + match[1] + match[2] + match[3]}<span style='color:#FCD116'>${match[4] + match[5] + match[6]}</span><span style='color:#CE1126'>${match[7] + match[8] + match[9] + match[10]}</span>`", "</span>"],
[/\bNOTHINGHERE(7759)?\b/gi, "<span style='color:#63C64D'>", "`<span style='color:#FFE762'>${match.slice(0, 7)}</span>${match.slice(7, 11)}<span style='color:#FFE762'>${match[11] ? '7759' : ''}</span>`", "</span>"],
[/\bSOMETHINGTHERE(3351)?\b/gi, "<span style='color:#9C39B2'>", "`<span style='color:#001bb3'>${match.slice(0, 9)}</span>${match.slice(9, 14)}<span style='color:#001bb3'>${match[14] ? '3351' : ''}</span>`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(DIERMANIA|Дерьмания|дирмания)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#DD0000'>", "`${match.slice(0, -6)}<span style='color:#FFCE00'>${match.slice(-6, -5)}<span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(-5, -4)}</span>${match.slice(-4, -3)}</span>${match.slice(-3)}`", "</span>"],
[/\bDIER\b/gi, "<span style='color: #DD0000'>", "`${match[0]}<span style='color: #FFCE00'>${match[1]}</span><span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SL?YNT(EX(PR)?|AXIS)|СИНТ((Е|Э)КС(ПР)?|АКСИС)|СЛЮНТ(Е|Э)КС)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#417171'>", "`${match}`", "</span>"],
[/\bTRION(\sNEX(\b\.|US(ORIATE)?)?)?(?=\s|$|"|'|\b)/gi, "<span style='color: #21D714'>", "`${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}</span>${match.slice(4)}`", "</span>"],
[/\b(COALI(TION)?|CLN)\b/gi, "<span style='color:#608C5E'>", "`${match}`", "</span>"],
[/\b(CRC|UNBIDDEN|unbidюn)\b/gi, "<span style='color:#90F1F8'>", "`${match}`", "</span>"],
[/\bCOALCRCITION\b/gi, "<span style='color:#6D80A5'>", "`${match}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((SOUTH\s)?NORTH?I(AN?|S\s?LAND)(\s(EMPIRE|REPUBLIC))?|USRNSNN|URNNSN|Ņüŧüŗí(ß|ẞ)flőd|NUTURI(SS?|B)FLOD|IKD1|IDK1|нортия|ĥ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#32E27E'>", "`${match}`", "</span>"],
[/\bNORISIA\b/gi, "<span style='color:#F75B18'>", "`${match}`", "</span>"],
[/\bV(I|2)NLAND\b/gi, "<span style='color:#DEB129'>", "`${match}`", "</span>"],
[/(\[|\b)SERVER(\]|\b)/gi, "<span style='color:#FF41E4'>", "`${match}`", "</span>"],
[/\bR(SS|55)R\b/gi, "<span style='color:#FF0000'>", "`${match}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MOTH(ERSHIP|METHMYTH|YLAMINE)?|МОЛЬ|MO(L|N)B|MO(TH)?RBIUS)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#D7C39F'>", "`${match}`", "</span>"],
[/\bSAR\b/gi, "<span style='color:#D50B0B'>", "`${match}`", "</span>"],
[/\b(POTASS(IUM(_(L|K))?)?|EVERMORE)\b/gi, "<span style='color:#FFA200'>", "`${match}`", "</span>"],
[/\bATLAN\b/gi, "<span style='color:#FFFFFF'>", "`${match[0]}<span style='color:#808080'>${match[1]}<span style='color:#FF0000'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
[/\bATLAN?DOS\b/gi, "<span style='color:#FFFFFF'>", "`${match[0]}<span style='color:#AAAAAA'>${match[1]}<span style='color:#555555'>${match[2]}<span style='color:#FF0000'>${match[3] + (match.length == 7 ? '' : match[4])}</span>${match[match.length - 3]}</span>${match[match.length - 2]}</span>${match[match.length - 1]}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b):\bD(\s|-)ANON\b/gi, "<span style='color:#0080FF'>", "`${match}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_)ST\.?(?=\s|$|"|'|\b)/gi, "<span style='color:#A1409D'>", "`${match}`", "</span>"],
[/\bSHADOW\sTAI?LE\b/gi, "<span style='color:#4394A0'>", "`${match.slice(0, 6)}</span>${match[6]}<span style='color:#F430B2'>${match.slice(7)}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ORANG|PETRYSKA229|ОРАНГ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#FF8800'>", "`${match}`", "</span>"],
[/\b(HUNGARYBALL|MAGYARLABDA)\b/gi, "<span style='color:#477050'>", "`<span style='color:#CE2939'>${match.slice(0, 4)}</span><span style='color:#FFFFFF'>${match.slice(4, -4)}</span>${match.slice(-4)}`", "</span>"],
[/\bGABRIEL\b/gi, "<span style='color:#F0F0F0'>", "`${match[0]}<span style='color:#F4E5BC'>${match[1]}<span style='color:#F9DB88'>${match[2]}<span style='color:#FED154'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
[/\bWEST\sVLANDIA\b/gi, "<span style='color:#950000'>", "`${match}`", "</span>"],
[/\bEAST\sVLANDIA\b/gi, "<span style='color:#FF7A33'>", "`${match}`", "</span>"],
[/\b(?<!\b(EA|WE)ST\s)VLANDIA\b/gi, "<span style='color:#950000'>", "`${match}`", "</span>"],
[/\bSANGSA\b/gi, "<span style='color:#F29153'>", "`<span style='color:#FF0000'>${match.slice(0, 1)}</span><span style='color:#0000FF'>${match.slice(1, -1)}</span><span style='color:#FF00F7'>${match.slice(-1)}</span>`", "</span>"],
[/\b(KWAPT(ISH|IA)?|62143)\b/gi, "<span style='color:#A45195'>", "`${match}`", "</span>"],
[/\bSIREMIA\b/gi, "<span style='color:#FFFFFF'>", "`${match}`", "</span>"],
[/\bXAHH\b/gi, "<span style='color:#00FA9A'>", "`${match}`", "</span>"],
[/\bLLG\b/gi, "<span style='color:#FF00FF'>", "`${match}`", "</span>"],
[/\bNONA(EM|MEZ_?)\b/gi, "<span style='color:#9E9EFF'>", "`${match}`", "</span>"],
[/\b16777216\b/gi, "<span style='color:#FFFFFF'>", "`<span style='color:#0000FF'>16</span><span style='color:#00FF00'>77</span><span style='color:#FF0000'>72</span>16`", "</span>"],
[/\bNEKONOKA\b/gi, "<span style='color:#8F3CD7'>", "`${match}`", "</span>"],
[/\bTOASTER\b/gi, "<span style='color:#FFC839'>", "`${match.slice(0, 2)}<span style='color:#FFFFFF'>${match.slice(2, 5)}</span>${match.slice(-2)}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((C(3|E))?PHEI|C(3|E)PH(I|Y)?|Ц(е|3)ф(ей)?|C3|SEFEI)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#FF0000'>", "`${match}`", "</span>"],
[/\bENDERMENT\b/gi, "<span style='color:#952BFF'>", "`${match}`", "</span>"],
[/\b(TAHA(\sÖZDEMIR)?|SYBERLONG)\b/gi, "<span style='color:#224E7C'>", "`${match}`", "</span>"],
[/\bS(Ü|U)DENLAND\b/gi, "<span style='color:#224E7C'>", "`${match[0]}<span style='color:#4C8FD6'>${match[1]}<span style='color:#1DCDA1'>${match[2]}</span>${match[3]}</span>${match.slice(-5)}`", "</span>"],
[/\bRELOOPGD\b/gi, "<span style='color:#FD1C27'>", "`${match}`", "</span>"],
[/(\bBLAKE\b|._BLAKE_.)/gi, "<span style='color:#FCC8D9'>", "`${match}`", "</span>"],
[/\bCAPA\b/gi, "<span style='color:#A44F15'>", "`${match}`", "</span>"],
[/\bLEG(3ND)?\b/gi, "<span style='color:#DD80A5'>", "`${match}`", "</span>"],
[/\b5UP\b/gi, "<span style='color:#0484D1'>", "`${match}`", "</span>"],
[/\b(VVICTOR(__)?|OFO(\sGANG)?)\b/gi, "<span style='color:#00FF66'>", "`${match}`", "</span>"],
[/\bM(OUNTAI|T)N\sDEW\b/gi, "<span style='color:#00FF00'>", "`${match.slice(0, -3)}<span style='color:#FF0000'>${match.slice(-3)}</span>`", "</span>"],
[/\b(MART|ARTM)AN\b/gi, "<span style='color:#0083D5'>", "`${match}`", "</span>"],
[/\bSTEVESTA\b/gi, "<span style='color:#7F7F7F'>", "`${match}`", "</span>"],
[/\bLAPIS(\sLAZULI)?\b/gi, "<span style='color:#0066FF'>", "`${match}`", "</span>"],
[/(?<!:)\bJP(DLD|LAND)?\b/gi, "<span style='color:#FFFFFF'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/409708038589775872.png?v=1'> ${match}`", "</span>"],
[/\bAMOGUSLAND\b/gi, "<span style='color: #F11'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFEF8A'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
[/\bDOITSHL(Æ|AE?)ND\b/gi, "<span style='color:#58585A'>", "`${match.slice(0, -7)}</span><span style='color:#C72931'>${match.slice(-7, 7)}</span><span style='color:#F9DD3E'>${match.slice(7)}`", "</span>"],
[/\bDEUCHLAND\b/gi, "<span style='color:#58585A'>", "`${match.slice(0, 3)}<span style='color:#C72931'>${match.slice(3, 6)}</span><span style='color:#F9DD3E'>${match.slice(-3)}</span>`", "</span>"],
[/\bLEMONWIRES\b/gi, "<span style='color:#FFF700'>", "`<span style='color:#FFF700'>${match[0]}</span><span style='color:#00FF1E'>${match[1]}</span><span style='color:#FFF700'>${match[2]}</span><span style='color:#00FF1E'>${match[3]}</span><span style='color:#FFF700'>${match[4]}</span><span style='color:#00FF1E'>${match[5]}</span><span style='color:#FFF700'>${match[6]}</span><span style='color:#00FF1E'>${match[7]}</span><span style='color:#FFF700'>${match[8]}</span><span style='color:#00FF1E'>${match[9]}</span>`", "</span>"],
[/\bLEMONS?\b/gi, "<span style='color:#FFFF00'>", "`🍋 ${match}`", "</span>"],
[/\bTESS\b/gi, "<span style='color:#9CDED3'>", "`${match}`", "</span>"],
[/\bHELPER\b/gi, "<span style='color:#00FF00'>", "`${match}`", "</span>"],
[/\b(CYGNUS|CEUTHYN)\b/gi, "<span style='color:#00EEFF'>", "`${match}`", "</span>"],
[/\bSHAY\b/gi, "<span style='color:#2CE8F4'>", "`${match}`", "</span>"],
[/\bNEOMOTH(\.DEV)?\b/gi, "<span style='color:#9669ff'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/1388314585781637200.png?v=1'> ${match}`", "</span>"],
[/\bELDIT\b/gi, "<span style='color:#A92444'>", "`${match}`", "</span>"],
[/\bJI+GG\b/gi, "<span style='color:#00FFFF'>", "`${match}`", "</span>"],
[/\bC(-|\s)?YARD\b/gi, "<span style='color:#00FF00'>", "`${match}`", "</span>"],
[/\bVGS\b/gi, "<span style='color:#FF0000'>", "`${match}`", "</span>"],
[/(?<!:)\b(JJB|JAR\s?JAR(\s?BOINKS)?)\b/gi, "<span style='color:#750F00'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/411450961949753345.png?v=1'> ${match}`", "</span>"],
[/\bNORDDEX\b/gi, "<span style='color:#E53B44'>", "`${match}`", "</span>"],
[/\b(999|AZSRIEL)\b/gi, "<span class='rainbow'>", "`${match}`", "</span>"],
[/\bNURUTOMO\b/gi, "<span style='color:#0484D1'>", "`${match}`", "</span>"],
[/\bMEMELORD\b/gi, "<span style='color:#9E6AFF'>", "`<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAMAAABlXnzoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJUExURZ5q/0X/DwAAAJ+7yioAAAADdFJOU///ANfKDUEAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAADhJREFUGFdtzkEKADEMQtGv9z/0YIUySLNI8lyEYAPYkmQzBClB+tmGRWvZUw3u5R8TFG/mic7hBzLcALENn7j/AAAAAElFTkSuQmCC' class='chatImg'> ${match.slice(0, 4)}<span style='color:#45FF0F'>${match.slice(4)}</span>`", "</span>"],
[/\bF(RI|U)CK\sVERIZON\b/gi, "<span style='color:#FFFFFF'>", "`<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJUExURf///wAAAAAAAH5RqV0AAAADdFJOU///ANfKDUEAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAIAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAA2XYBAOgDAADZdgEA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAAACMojeFEB6NgAAAEZJREFUKFONkIsKACAIA+f+/6NjEr6o6EBhR0UKkkTgSWWBx2bcoRs5wPIloehltluo0S7qdDEZusb41PNU4Vsdxq4LFOQCftcAm2osOS0AAAAASUVORK5CYII=' class='chatImg'> ${match}`", "</span>"],
[/\bRANDOOF\b/gi, '<span style="color:#B31919">', '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJUExURXUAALMZGQAAAOXo42cAAAADdFJOU///ANfKDUEAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAnZMAAOgDAACdkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAAAJFj+K2cP21wAAACBJREFUGFdjYAADJhiAcAnySQKMjIxwkhg+SQDdZQT4ADwAAH+enAY0AAAAAElFTkSuQmCC" class="chatImg"> ${match}`', "</span>"],
[/\bSISYPHUS(\sPRIME)?\b/gi, '<span style="color:#FF2B00">', '`${match[0]}<span style="color:#FF6100">${match[1]}<span style="color:#FFA500">${match[2]}<span style="color:#FFB200">${match[3]}</span><span style="color:#FFCD00">${match[4]}<span style="color:#FFFF00">${match[5]}</span><span style="color:#FFFFBA">${match[6]}<span style="color:#FFFFFF">${match[7]}</span>${(match[8] ?? "") + (match[9] ?? "")}</span>${(match[10] ?? "")}</span>${(match[11] ?? "")}</span>${(match[12] ?? "")}</span>${(match[13] ?? "")}`', "</span>"],
[/\bMINOS(\sPRIME)?\b/gi, "<span style='color:#D3D5FF'>", "`${match[0]}<span style='color:#9395D7'>${match[1]}<span style='color:#6E70AB'>${match[2]}<span style='color:#77526D'>${match[3]}<span style='color:#934463'>${match[4] + (match[5] ?? '') + (match[6] ?? '')}</span>${(match[7] ?? '')}</span>${(match[8] ?? '')}</span>${(match[9] ?? '')}</span>${(match[10] ?? '')}`", "</span>"],
[/\b(GREENY(\s?LAND|ALT)?|GREEN\sREP|UGS|UNITED\sGREEN\sSTATES)\b/gi, "<span style='color:#4ED97C'>", "`${match}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((NEW\s)?PHY(REXIA|I?HH?)?|ɸ|ჶ|ф(и(кус)?|i(k|c)us)|пфи|ħ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#F4F1A4'>", "`${match}`", "</span>"],
[/\bPURPER(I(S|Z)M)?\b/gi, "<span style='color:#972C9E'>", "`${match}`", "</span>"],
[/\b(RODIMUS(\s?PRIME)?|PACI(CIDAL)?|UNALIGNED|WILDSTRIKE)\b/gi, "<span style='color:#58A699'>", "`${match}`", "</span>"],
[/\bDUCK12\b/gi, "<span style='color:#FFFFFF'>", "`${match}`", "</span>"],
[/\b((BO(Ö|O)TES|VOID)\s(IMPERIUM|EMPIRE)|VOID)\b/gi, "<span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bRALIOVI\b/gi, "<span style='color:#AEE797'>", "`${match}`", "</span>"],
[/\b(ERIC|HOLY\sELVEN\sHORDE|E(_|\s)LXIV|LMAO\.ERICC_6464)\b/gi, "<span style='color:#00B315'>", "`${match}`", "</span>"],
[/\bNORIST\b/gi, "<span style='color:#39cd79'>", "`${match[0]}<span style='color:#1e8f73'>${match[1]}</span><span style='color:#2b5758'>${match[2]}</span><span style='color:#fb922b'>${match[3]}</span><span style='color:#aefe5d'>${match[4]}</span><span style='color:#3b9b90'>${match[5]}</span>`", "</span>"],
[/\bEXPUNGED\b/gi, "<span style='color:#B80000'>", "`${match}`", "</span>"],
[/\bNOUR\b/gi, "<span style='color:#9CC4C4'>", "`${match}`", "</span>"],
[/\bEMPIRE\sFRAN(C|Ç)AIS\b/gi, "<span style='color:#0D67F8'>", "`${match.slice(0, 10)}<span style='color:#FFFFFF'>${match.slice(10, 12)}</span><span style='color:#E00000'>${match.slice(-3)}</span>`", "</span>"],
[/\bFILANA\b/gi, "<span style='color:#FFBFD1'>", "`${match}`", "</span>"],
[/\bPINKISTAN\b/gi, "<span style='color:#FF97BF'>", "`${match}`", "</span>"],
[/\bLILI?AC(\sREP(UBLIC)?)?\b/gi, "<span style='color:#A8ABF5'>", "`${match}`", "</span>"],
[/\bTIZENAMI\b/gi, "<span style='color:#FE6C6C'>", "`${match}`", "</span>"],
[/\b(UNION|ONION)\sOF\sUNKNOWN\b/gi, "<span style='color:#D4D4D4'>", "`${match}`", "</span>"],
[/\bBREZTEC\b/gi, "<span style='color:#CFAE12'>", "`${match}`", "</span>"],
[/\bTHISISKS\b/gi, "<span style='color:#00CEFF'>", "`${match}`", "</span>"],
[/\bSOLANIAN\sTRIBE\b/gi, "<span style='color:#B34400'>", "`${match[0]}<span style='color:#C45C00'>${match[1]}<span style='color:#FB8B03'>${match[2]}<span style='color:#FEC625'>${match[3] + match[4]}<span style='color:#FEAE10'>${match[5]}<span style='color:#E6E631'>${match[6]}</span>${match[7]}</span>${match.slice(8, 11)}</span>${match[11]}</span>${match[12]}</span>${match[13]}`", "</span>"],
[/\bSOLANIA\b/gi, "<span style='color:#B34400'>", "`${match[0]}<span style='color:#C45C00'>${match[1]}<span style='color:#FB8B03'>${match[2]}<span style='color:#FEC625'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
[/\b((NORTH\s)?((C|S)YTIA|SOUTH?IA(N?\sEMPIRE)?)|IK2)\b/gi, "<span style='color:#FBD439'>", "`${match}`", "</span>"],
[/\bSTABLE\sLAND\b/gi, "<span style='color:#C2A42E'>", "`${match}`", "</span>"],
[/\bSTABILIA\b/gi, "<span style='color:#AEFE5D'>", "`${match}`", "</span>"],
[/\bMAURICE\b/gi, "<span style='color:#79665F'>", "`${match[0]}<span style='color:#9D897A'>${match[1]}<span style='color:#BAA490'>${match[2]}<span style='color:#D3B8A1'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
[/\bECIRUAM\b/gi, "<span style='color:#8699A0'>", "`${match[0]}<span style='color:#627685'>${match[1]}<span style='color:#455B6F'>${match[2]}<span style='color:#2C475E'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
[/\bAVIA(N\sREPUBLIC)?\b/gi, "<span style='color:#9c0aeb'>", "`${match}`", "</span>"],
[/\bSYNTHESIA\b/gi, "<span style='color:#63C64D'>", "`${match[0]}<span style='color:#4A9C49'>${match[1]}<span style='color:#327345'>${match.slice(2, 4)}<span style='color:#AF9C2C'>${match[4]}</span>${match.slice(5, 7)}</span>${match[7]}</span>${match[8]}`", "</span>"],
[/\b(DARKSTALKER|\.JUSTDARK)\b/gi, "<span style='color:#570034; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bCYNTEX\b/gi, "<span style='color:#417171'>", "`${match[0]}</span><span style='color:#348A8D'>${match[1]}</span><span style='color:#27A3A9'>${match[2]}</span><span style='color:#1ABCC6'>${match[3]}</span><span style='color:#0DD5E2'>${match[4]}</span><span style='color:#00EEFF'>${match[5]}`", "</span>"],
[/\bCYGNTEX\b/gi, "<span style='color:#417171'>", "`${match[0]}</span><span style='color:#3E7576'>${match[1]}</span><span style='color:#318F93'>${match[2]}</span><span style='color:#23A9b1'>${match[3]}</span><span style='color:#16C3CE'>${match[4]}</span><span style='color:#08DDEC'>${match[5]}</span><span style='color:#00EEFF'>${match[6]}`", "</span>"],
[/\bINFRA(RAVEN)?\b/gi, "<span style='color:#CA0000'>", "`${match}`", "</span>"],
[/\bDIMDEN\b/gi, "<span style='color:#B4FFD6'>", "`${match}`", "</span>"],
[/\bKIT(0057)?\b/gi, "<span style='color:#F36709'>", "`${match}`", "</span>"],
[/\bDAYDUN\b/gi, "<span style='color:#7D579A'>", "`${match}`", "</span>"],
[/\b(LMN|ELEMEN)TAL\sX\b/gi, "<span style='color:#afd643'>", "`${match}`", "</span>"],
[/\bMINDUSTRIA\b/gi, "<span style='color:#6E7080'>", "`${match[0]}<span style='color:#989AA4'>${match[1]}<span style='color:#9D7F7F'>${match[2]}<span style='color:#DCC6C6'>${match[3]}<span style='color:#FFFFFF'>${match[4] + match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
[/\bATEN(ESIA)?\b/gi, "<span style='color:#65a0b3'>", "`${match}`", "</span>"],
[/\bMITIA\b/gi, "<span style='color:#FF0000'>", "`${match[0]}<span style='color:#CC0000'>${match[1]}<span style='color:#980000'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(7RAUM?|ILLIA(N\sREPUBLIC)?|иллия)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#4e5579'>", "`${match}`", "</span>"],
[/\bHADRON\b/gi, "<span style='color:#FF902A'>", "`${match[0]}<span style='color:#A4A9B4'>${match[1]}<span style='color:#8F9B89'>${match[2] + match[3]}</span>${match[4]}</span>${match[5]}`", "</span>"],
[/\bBIBLIA\b/gi, "<span style='color:#FFFFFF'>", "`${match[0]}<span style='color:#fef8bc'>${match[1]}</span><span style='color:#fef6a6'>${match[2]}</span><span style='color:#84ceff'>${match[3]}</span><span style='color:#addeff'>${match[4]}</span>${match[5]}`", "</span>"],
[/\bFLORIA\b/gi, "<span style='color:#63C64D'>", "`${match[0]}<span style='color:#4a9c49'>${match[1]}<span style='color:#e53b44'>${match[2]}</span><span style='color:#fb922b'>${match[3]}</span>${match[4]}</span>${match[5]}`", "</span>"],
[/\b(S(ISY|YSI)D(EA|ON))\b/gi, "<span style='color:#FFFF00'>", "`${match[0]}<span style='color:#CCCC00'>${match[1]}<span style='color:#989800'>${match[2]}</span>${match[3]}</span>${match[4]}<span style='color:#CCCC00'>${match[5]}</span><span style='color:#989800'>${match[6]}</span>`", "</span>"],
[/\bAVARITIA\b/gi, "<span style='color:#50B4C8'>", "`${match[0]}</span><span style='color:#AADC6E'>${match[1]}</span><span style='color:#D2BE46'>${match[2]}</span><span style='color:#D26E28'>${match[3]}</span><span style='color:#C8283C'>${match[4]}</span><span style='color:#D23C96'>${match[5]}</span><span style='color:#A046DC'>${match[6]}</span><span style='color:#6E5AE6'>${match[7]}`", "</span>"],
[/\bYELLORISM\b/gi, "<span style='color:#d3a80d'>", "`${match}`", "</span>"],
[/\b(STAVORIA|CHENGED)\b/gi, "<span style='color:#3b9b90'>", "`${match}`", "</span>"],
[/𓁹|\bMITO\b/gi, '<span style="color:#B30000;text-shadow: 0px 0px 5px #FFFF00, 0px 0px 5px #FFFF00, 0px 0px 5px #FFFF00, -1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888;">', "`${match}`", "</span>"],
[/\bVALORIA\b/gi, "<span style='color:#6cb86b'>", "`${match}`", "</span>"],
[/\bZOTOVARIA\b/gi, "<span style='color:#e8b84f'>", "`${match}`", "</span>"],
[/\bMOLOVARASHIA\b/gi, "<span style='color:#425728'>", "`${match}`", "</span>"],
[/\bVARASHIA\b/gi, "<span style='color:#8c8936'>", "`${match}`", "</span>"],
[/\bDINIA\b/gi, "<span style='color:#2b53b1'>", "`${match[0]}<span style='color:#214087'>${match[1]}<span style='color:#1a3574'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
[/\bDINIAN\sEMPIRE\b/gi, "<span style='color:#2b53b1'>", "`${match[0]}<span style='color:#26499c'>${match[1] + match[2]}<span style='color:#214087'>${match[3]}<span style='color:#1c397d'>${match[4]}<span style='color:#1a3574'>${match.slice(5, 8)}</span>${match[8]}</span>${match[9]}</span>${match[10] + match[11]}</span>${match[12]}`", "</span>"],
[/\bORSSU(\sPCCC)?\b/gi, "<span style='color:#EE3A5B'>", "`${match}`", "</span>"],
[/\b(S(EV|CHEVV)EN|7)EST(\s?LANDT?)?\b/gi, "<span style='color:#43a894'>", "`${match}`", "</span>"],
[/\bGEARLAND\b/gi, "<span style='color:#3f1599; text-shadow:-2px 0px 0 #000, -1px 1px 0 #000, 0px 2px 0 #000, 1px 1px 0 #000, 2px 0px 0 #000, 1px -1px 0 #000, 0px -2px 0 #000, -1px -1px 0 #000'>", "`<span style='color:#038ae4'>${match.slice(0, 2)}</span><span style='color:#FFFFFF'>${match.slice(2, -2)}</span>${match.slice(-2)}`", "</span>"],
[/\bPotassiumyntex\b/gi, "<span style='color:#a08938'>", '`<span style="color:#ffa200">${match[0]}</span><span style="color:#f09e08">${match[1]}</span><span style="color:#e19a11">${match[2]}</span><span style="color:#d3961a">${match[3]}</span><span style="color:#c49222">${match[4]}</span><span style="color:#b58f2b">${match[5]}</span><span style="color:#a78b34">${match[6]}</span><span style="color:#98873c">${match[7]}</span><span style="color:#8a8345">${match[8]}</span><span style="color:#7b804e">${match[9]}</span><span style="color:#6c7c56">${match[10]}</span><span style="color:#5e785f">${match[11]}</span><span style="color:#4f7468">${match[12]}</span><span style="color:#417170">${match[13]}</span>`', "</span>"],
[/\bWOLONLAND\b/gi, "<span style='color: #82d671'>", "`${match}`", "</span>"],
[/\bNULLSCAPE\b/gi, "<span style='color: #40518a'>", "`${match}`", "</span>"],
[/\b(AUREN(MOCHI)?|MOCHI)\b/gi, "<span style='color: #fb922b'>", "`${match}`", "</span>"],
[/\b(CASTER|RIFTER)\b/gi, "<span style='color: #ac42d6'>", "`${match}`", "</span>"],
[/\bALBAN\b/gi, "<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match[0]}</span><span style='color: #c40000'>${match[1]}<span style='color: #F00'>${match[2]}</span>${match[3]}</span><span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[4]}`", "</span>"],
[/\bALBANOS\b/gi, "<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match.slice(0, 2)}</span><span style='color: #c40000'>${match[2]}<span style='color: #F00'>${match[3]}</span>${match[4]}</span><span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(-2)}`", "</span>"],
[/\bSVIQURKAI\b/gi, "<span style='color: #24242e; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bMATYAS05\b/gi, "<span style='color: #e6b919'>", "`${match}`", "</span>"],
[/\bEEE(\.0864_06064)?\b/gi, "<span style='color: #23eba0'>", "`${match}`", "</span>"],
[/\bMeebodustria\b/gi, "<span style='color: #5BCEFA'>", "`${match.slice(0, 2)}<span style='color: #F5A9B8'>${match.slice(2, 5)}<span style='color: #FFF'>${match.slice(5, -5)}</span>${match.slice(-5, -2)}</span>${match.slice(-2)}`", "</span>"],
[/\bMAEVE\b/gi, "<span style='color: #C3B1E1'>", "`${match}`", "</span>"],
[/\bPROMANIA\b/gi, "<span style='color: #fb922b'>", "`${match}`", "</span>"],
[/\b(THE\s)?((SEVEN|7)\s)?TANK\sSOULS?\b/gi, "<span style='color: #595959'>", "`${match.split('').map((elem, index) => '<span style=\\'color: #' + ['ff3f39', 'ff7f39', 'ffff39', '74ff39', '74ffff', '743fff', 'ff3fff'][Math.floor(index % 14 / 2)] + '\\'>' + elem + '</span>').join('')}`", "</span>"],
[/\bR(I|Ï)REL\b/gi, "<span style='color: #a38533'>", "`${match}`", "</span>"],
[/\bEURILOOPIA\b/gi, "<span style='color: #56c688'>", "`<span style='color: #5ebeed'>${match.slice(0, 2)}</span><span style='color: #169c91'>${match.slice(2, 4)}</span><span style='color: #1bbb9b'>${match.slice(4, 6)}</span>${match.slice(6, 8)}<span style='color: #0c143b; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(8)}</span>`", "</span>"],
[/\bEURILLOOPPIA\b/gi, "<span style='color: #56c688'>", "`<span style='color: #5ebeed'>${match.slice(0, 3)}</span><span style='color: #169c91'>${match.slice(3, 5)}</span><span style='color: #1bbb9b'>${match.slice(5, 7)}</span>${match.slice(7, 9)}<span style='color: #0c143b; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(9)}</span>`", "</span>"],
[/\bREAPER\b/gi, "<span style='color: #a8141d'>", "`${match[0]}<span style='color: #d3181c'>${match[1]}<span style='color: #ff252b'>${match.slice(2, 4)}</span>${match[4]}</span>${match[5]}`", "</span>"],
[/\bOPERATOR\b/gi, "<span style='color: #2a6e93'>", "`${match[0]}<span style='color: #328eb7'>${match[1]}<span style='color: #3aafdb'>${match[2]}<span style='color: #42d0ff'>${match.slice(3, 5)}</span>${match[5]}</span>${match[6]}</span>${match[7]}`", "</span>"],
[/\bNANO\b/gi, "<span style='color: #3eb300'>", "`${match}`", "</span>"],
[/\b(SPACE(≠|\s≠\s)?TIME|OBLIVIOUS\sMAXIMUS)\b/gi, "<span style='color: #D8F6F3'>", "`${match}`", "</span>"],
[/\bSTARLAND\b/gi, "<span style='color: #220dbf'>", "match.split('').map(e => Math.floor(Math.random() * 8 / 3) == 0 ? `<span style='color: #d5d0fb'>${e}</span>` : e).join('')", "</span>"],
[/\bAVAR(US|I)\b/gi, "<span style='color: #002de8'>", "`${match[0]}<span style='color: #1356ed'>${match[1]}<span style='color: #267ff2'>${match.slice(2, -2)}</span>${match.slice(-2, -1)}</span>${match.slice(-1)}`", "</span>"],
[/\bSAFFRON\b/gi, "<span style='color: #FFF'>", "`${match}`", "</span>"],
[/\bREN(Ï|I)MIA\b/gi, "<span style='color: #1da538'>", "`<span style='color: #db000b'>${match.slice(0, 2)}</span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjYwMCI+CiAgPHBhdGggZD0iTTAgMGgxMjAwdjYwMEgwIiBmaWxsPSIjMGQ4ZWRlIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgxMjAwdjQwMEgwIiBmaWxsPSIjZmZkYTBhIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgxMjAwdjIwMEgwIiBmaWxsPSIjMWRhNTM4Ij48L3BhdGg+Cjwvc3ZnPgo=) text top 80% left 50% / 100% 70%'>${match.slice(2)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(2)}</span></span>`", "</span>"],
[/\bSUBSIDENCY\b/gi, "<span style='color: #006d9a'>", "`${match[0]}<span style='color: #257fa4'>${match[1]}<span style='color: #4b92ae'>${match[2]}<span style='color: #71a5b8'>${match[3]}<span style='color: #97b8c3'>${match.slice(4, 6)}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
[/\bREVERANCY\b/gi, "<span style='color: #7d0f1f'>", "`${match[0]}<span style='color: #a8141d'>${match[1]}<span style='color: #d3181c'>${match[2]}<span style='color: #ff252b'>${match.slice(3, 6)}</span>${match[6]}</span>${match[7]}</span>${match[8]}`", "</span>"],
[/\bITERAN?\b/gi, "<span style='color: #797871'>", "`${match[0]}<span style='color: #84837b'>${match[1]}<span style='color: #f75667'>${match.slice(2, -2)}</span>${match.slice(-2, -1)}</span>${match.slice(-1)}`", "</span>"],
[/\bITERANS\b/gi, "<span style='color: #6e6d68'>", "`${match[0]}<span style='color: #797871'>${match[1]}<span style='color: #84837b'>${match[2]}<span style='color: #f75667'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
[/\bTEPUN\b/gi, "<span style='color: #e2aa34'>", "`<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[0]}</span><span style='color: #382a0d; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[1]}</span><span style='color: #71551a; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span><span style='color: #a97f27'>${match[3]}</span>${match[4]}`", "</span>"],
[/\bNUPET\b/gi, "<span style='color: #fef6a6'>", "`<span style='color: #FFF'>${match[0]}</span><span style='color: #fefce8'>${match[1]}</span><span style='color: #fefad2'>${match[2]}</span><span style='color: #fef8bc'>${match[3]}</span>${match[4]}`", "</span>"],
[/\bACKERMANN\b/gi, "<span style='color: #e3a72b'>", "`${match.slice(0, 2)}<span style='color: #f1c452'>${match[2]}<span style='color: #ffe17a'>${match.slice(3, 6)}</span>${match[6]}</span>${match.slice(7)}`", "</span>"],
[/\bC(Ü|U)BE\b/gi, "<span style='color: #9cc4c4'>", "`${match}`", "</span>"],
[/\bD(Ï|I)EM(Ö|O)ND\b/gi, "<span style='color: #90f1f8'>", "`${match}`", "</span>"],
[/\bPURO\b/gi, "<span style='color: #D856B8'>", "`${match}`", "</span>"],
[/\bZIKA\b/gi, "<span style='color: #52A4DC'>", "`${match}`", "</span>"],
//[/\bDA\b/gi, "<span style='color: #DE8E75'>", "`${match}`", "</span>"], // too small, can also mean Russian "yes", causes other issues
[/\bM(Ä|A)C(Í|I)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #39CD79'>", "`${match}`", "</span>"],
[/\bLORY\b/gi, "<span style='color: #FB786F'>", "`${match}`", "</span>"],
[/\bJOLAVERO\b/gi, "<span style='color: #9BA5D7'>", "`${match}`", "</span>"],
[/\bREDISM\b/gi, "<span style='color: #c93131'>", "`${match}`", "</span>"],
[/\bORANGISM\b/gi, "<span style='color: #e66700'>", "`${match}`", "</span>"],
[/\bGREENERISM\b/gi, "<span style='color: #63C64D'>", "`${match}`", "</span>"],
[/\bBLURISM\b/gi, "<span style='color: #0e53c4'>", "`${match}`", "</span>"],
[/\bINDIGOISM\b/gi, "<span style='color: #2600bd'>", "`${match}`", "</span>"],
[/\bALALIA\b/gi, "<span style='color: #b30000'>", "`${match.slice(0, 2)}<span style='color: #84b027'>${match.slice(2, -2)}</span>${match.slice(-2)}`", "</span>"],
[/\b(ON|1)EST(\s?LAND)?\b/gi, "<span style='color: #2d93e1'>", "`${match}`", "</span>"],
[/\b(TVO|2)ST(\s?LAND)?\b/gi, "<span style='color: #ccbba8'>", "`${match}`", "</span>"],
[/\bYE\sOLDE\sRIVERS\b/gi, "<span style='color: #bac79e'>", "`${match}`", "</span>"],
[/\b(FIV|5)EST(\s?LAND)?\b/gi, "<span style='color: #657665'>", "`${match}`", "</span>"],
[/\b(SIX|6)EST(\s?LAND)?\b/gi, "<span style='color: #6d56a4'>", "`${match}`", "</span>"],
[/\b(EIGHT|8)EST(\s?LAND)?\b/gi, "<span style='color: #4755bd'>", "`${match}`", "</span>"],
[/\b(NIN|9)EST(\s?LAND)?\b/gi, "<span style='color: #b54b12'>", "`${match}`", "</span>"],
[/\b(TEN|10)EST(\s?LAND)?\b/gi, "<span style='color: #363636; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bNORTEASTHIA\b/gi, "<span style='color: #67d3a1'>", "`${match}`", "</span>"],
[/\b(WEST\s)?EASTHIA\b/gi, "<span style='color: #9cc4c4'>", "`${match}`", "</span>"],
[/\bSOUTEASTHIA\b/gi, "<span style='color: #cbcc7e'>", "`${match}`", "</span>"],
[/\bSOUTWESTHIA\b/gi, "<span style='color: #e99578'>", "`${match}`", "</span>"],
[/\b(EAST\s)?WESTHIA\b/gi, "<span style='color: #d856b8'>", "`${match}`", "</span>"],
[/\bNORTWESTHIA\b/gi, "<span style='color: #859c9b'>", "`${match}`", "</span>"],
[/\bCENTRIA\b/gi, "<span style='color: #b4a700'>", "`${match}`", "</span>"],
[/(?<!\bSOUTIAN\s)\bSOISIA(N?\sREPUBLIC)?\b/gi, "<span style='color: #3A6264'>", "`${match}`", "</span>"],
[/(?<!\bEASTHIAN\s)\bAESIA\b/gi, "<span style='color: #8B51D2'>", "`${match}`", "</span>"],
[/(?<!\bWESTHIAN\s)\bOASIA\b/gi, "<span style='color: #7C99EE'>", "`${match}`", "</span>"],
[/\bSOUTIAN\sSOISIA\b/gi, "<span style='color: #9A4A4B'>", "`${match}`", "</span>"],
[/\bEASTHIAN\sAESIA\b/gi, "<span style='color: #1A8E8E'>", "`${match}`", "</span>"],
[/\bWESTHIAN\sOASIA\b/gi, "<span style='color: #AF1868'>", "`${match}`", "</span>"],
[/𐩢|\bPSY\b/gi, "<span style='color: #B784B8'>", "`${match}`", "</span>"],
[/\bPOLERIA\b/gi, "<span style='color: #DC143C'>", "`${match.slice(0, 2)}<span style='color: #FFF'>${match[2]}<span style='color: #FFE762'>${match[3]}</span>${match[4]}</span>${match.slice(-2)}`", "</span>"],
[/\bTASAPLUIA\b/gi, "<span style='color: #8F9F00'>", "`${match}`", "</span>"],
[/\bUNACNIGD\b/gi, "<span style='color: #B78400'>", "`${match}`", "</span>"],
[/\bAXIAN\b/gi, "<span style='color: #4F6781'>", "`${match[0]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[1]}<span style='color: #2CE8F4'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
[/\bFLASHLAND\b/gi, "<span style='color: #A2D77E'>", "`${match}`", "</span>"],
[/\bBULGARIABALL\b/gi, "<span style='color: #00966E'>", "`<span style='color: #FFF'>${match.slice(0, 4)}</span>${match.slice(4, -4)}<span style='color: #D62612'>${match.slice(-4)}</span>`", "</span>"],
[/\bANYTHINGTHERE\b/gi, "<span style='color: #2CE8F4'>", "`<span style='color: #0484D1'>${match.slice(0, 8)}</span>${match.slice(-5)}`", "</span>"],
[/\bSAGITTARIUS\b/gi, "<span style='color: #FF1100'>", "`${match}`", "</span>"],
[/\bIKDI\b/gi, "<span style='color: #D0E1DC'>", "`${match}`", "</span>"],
[/\bSYTIST\b/gi, "<span style='color: #FBD439'>", "`${match[0]}<span style='color: #9A4A4B'>${match[1]}</span><span style='color: #3F2832; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span><span style='color: #3A6264; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[3]}</span><span style='color: #8F9F00'>${match[4]}</span><span style='color: #B78400'>${match[5]}</span>`", "</span>"],
[/\bAMETHIA\b/gi, "<span style='color: #b921e4'>", "`${match}`", "</span>"],
[/\bYGGDRASIL\b/gi, "<span style='color: #565a5d'>", "`${match[0]}<span style='color: #d32929'>${match[1]}<span style='color: #62676a'>${match[2]}<span style='color: #d32929'>${match[3]}<span style='color: #fd4949'>${match[4]}</span>${match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}`", "</span>"],
[/\bASCENDANCY\b/gi, "<span style='color: #7524c0'>", "`${match[0]}<span style='color: #8431d0'>${match[1]}<span style='color: #a341ff'>${match[2]}<span style='color: #cc7efc'>${match[3]}<span style='color: #dfb2fd'>${match.slice(4, 6)}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
[/\bUNTIRELLEORIA\b/gi, "<span style='color: #d8dcb4'>", "`<span style='color: #e21c61'>${match[0]}</span><span style='color: #e26159'>${match[1]}</span><span style='color: #fea85f'>${match[2]}</span>${match.slice(3, 6)}<span style='color: #381631; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[6]}</span>${match.slice(7, 10)}<span style='color: #5eb6ad'>${match[10]}</span><span style='color: #1b958d'>${match[11]}</span><span style='color: #105390'>${match[12]}</span>`", "</span>"],
[/\bKRONWEGER(\sDYNASTY|S)?\b/gi, "<span style='color: #288a59'>", "`${match}`", "</span>"],
[/\bNODUARD(\sEXCELSIE|S)?\b/gi, "<span style='color: #0000b5'>", "`${match}`", "</span>"],
[/\bDEHIRAH(\sSPACES)?\b/gi, "<span style='color: #b30909'>", "`${match}`", "</span>"],
[/\bNESTAD((\s|-)RODO)?\b/gi, "<span style='color: #313175'>", "`${match}`", "</span>"],
[/\bLENAIDERR(\sFEDERATION)?\b/gi, "<span style='color: #05053d; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bNEAFTERS\b/gi, "<span style='color: #ad3d26'>", "`${match}`", "</span>"],
[/\bOSNIA\b/gi, "<span style='color: #67258e'>", "`${match}`", "</span>"],
[/\bTIN'G\b/gi, "<span style='color: #a6846c'>", "`${match}`", "</span>"],
[/\b(ZIUS\sALLIANCE|(LESSER\s)?ZIUS(ES)?|SEFECTALS?)\b/gi, "<span style='color: #FFF; text-shadow: 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF'>", "`${match}`", "</span>"],
[/\bBAFFENOR(\sLEGION)?\b/gi, "<span style='color: #a600ff'>", "`${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}</span>${match.slice(4)}`", "</span>"],
[/\bMUION(\sNEX(\b\.|US(ORIATE)?)?)?(?=\s|$|"|'|\b)/gi, "<span style='color: #e0f'>", "`${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}</span>${match.slice(4)}`", "</span>"],
[/\bDWAJL\b/gi, "<span style='color: #F00; text-shadow:-1px 0px 0 #850000, 1px 0px 0 #850000, 0px 1px 0 #850000, 0px -1px 0 #850000'>", "`${match}`", "</span>"],
[/\bYUDI(MATSU)?\b/gi, "<span style='color: #F00'>", "`${match}`", "</span>"],
[/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(УТЮГ|UTYUG)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #A0A0A0'>", "`${match}`", "</span>"],
[/\bAMALGA(M(ESE)?|M?(-|\s)?NATION)\b/gi, "<span style='color: #b7e2e6'>", "match.split('').map(e => `<span style='color: #${['b7e2e6', 'e5c3b0', 'a48674', '665046', '848fa3', 'a800e6'][Math.floor(Math.random() * 6)]}'>${e}</span>`).join('')", "</span>"],
[/\bILLOGICALIS\b/gi, "<span style='color: #745f8a'>", "`${match}`", "</span>"],
[/\b(NEW\s)?BASALTIA\b/gi, "<span style='color: #4f6781'>", "`${match}`", "</span>"],
[/\b(EVILGUY|GGPETRY)\b/gi, "<span style='color: #b30000'>", "`${match}`", "</span>"],
[/\bEVERTRIALITION\b/gi, "<span style='color: #4C4D4B'>", "`<span style='color: #FF7300'>E</span><span style='color: #F97202'>v</span><span style='color: #D86F11'>e</span><span style='color: #A56728'>r</span><span style='color: #69563F'>t</span>rial<span style='color: #4F594F'>i</span><span style='color: #577256'>t</span><span style='color: #5D845B'>i</span><span style='color: #5F8B5D'>o</span><span style='color: #608C5E'>n</span>`", "</span>"],
[/\bFOREST\sISL(AND|E)\b/gi, "<span style='color: #FFE762'>", "`${match}`", "</span>"],
[/\b(KESTREL|NORTHWIND)\b/gi, "<span style='color: #2ce8f4'>", "`${match}`", "</span>"],
[/\bKAMI\b/gi, "<span style='color: #b388ff'>", "`${match[0]}<span style='color: #7c4dff'>${match[1]}</span><span style='color: #651fff'>${match[2]}</span><span style='color: #6200ea'>${match[3]}</span>`", "</span>"],
[/\b(TDRR|(THE\s)?DARKISH\sRED\sREPUBLIC)\b/gi, "<span style='color: #c50003'>", "`${match}`", "</span>"],
[/\bSEURITES(\sQUASIMONARCHY)?\b/gi, "<span style='color: #FFF'>", "`<span style='color: #a4a4a4'>${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #ffbf00'>${match[2]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(3, 5)}</span>${match[5]}</span>${match[6]}</span>${match[7]}</span>${match.slice(8)}`", "</span>"],
[/\b((CPL\.?|CORPORAL)\s)?ANDERSEN\b/gi, "<span style='color: #8ba2ff'>", "`${match}`", "</span>"],
[/\bTHE\sSECRET\b/gi, "<span style='color: #36393a; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bINFINITY\s?LAND\b/gi, "<span style='color: #111111; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
[/\bABOSITES?\b/gi, "<span style='color: #787878'>", "`${match}`", "</span>"],
[/\bSUSAMOGUS2002\b/gi, "<span style='color: #F11'>", "`${match.slice(0, 3)}<span style='color: #FFEF8A'>${match.slice(3, -3)}</span>${match.slice(-3)}`", "</span>"],
[/\bNASRI\b/gi, "<span style='color: #6D76F3'>", "`${match[0]}<span style='color: #222991'>${match[1]}</span><span style='color: #7A103E; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span><span style='color: #500755; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[3]}</span><span style='color: #E000F0'>${match[4]}</span>`", "</span>"],
[/\bLAFU\b/gi, "<span style='color: #46189a'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6IiBmaWxsPSIjRkZFN0EzIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgzdjJIMHoiIGZpbGw9IiNFODdEMjYiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwaDN2MUgweiIgZmlsbD0iIzQ2MTg5YSI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\bBYLKA\b/gi, "<span style='color: #b30000'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6IiBmaWxsPSIjRUUwMEZGIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgzdjJIMHoiIGZpbGw9IiMwMEZGRTEiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwaDN2MUgweiIgZmlsbD0iI2IzMDAwMCI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
[/\b(VALOR|UVF)\b/gi, "<span style='color: #9fb6be'>", "`${match}`", "</span>"],
]; //9fb6be
window.chatUtilsReplacements = replacements;
//Variables
let quickID;
let responseID;
let nearbyThresh = 500;
// Chat on the left
if (chat.style.position != 'absolute') {
chat.style.position = 'absolute';
};
if (ls.chatOnLeft) {
helpBtn.style.left = 'initial';
helpBtn.style.right = '55px';
chat.style.right = 'initial';
chat.style.left = '0';
};
// Change the max length of the chat input when you type a nickname, change it back when not
chatInput.addEventListener("input", () => {
chatInput.maxLength = (!chatInput.value.match(/^\/n(ick)? /i) ? [128, 128, 512, 16384] : chatInput.value.match(/^\/nick /i) ? [22, 22, 46, 16384] : [19, 19, 43, 16384])[OWOP.player.rank]
});
//Help command
function helpHandle(args) {
if (args.length != 1) {
locSend("Chat Utils commands: block, clear, cuoptions, group, local, lset, nearby, q, qset, respond, show, unblock, yell")
return;
};
switch (args[0]) {
case "group":
case "g":
locSend("group - Opens the group chat menu.\nUsage: /group\nAliases: g");
break;
case "qset":
case "qid":
locSend("qset - Set an id to quickly message with /q.\nUsage: /qset <id>\nAliases: qid")
break;
case "q":
locSend("q - Message the id set with /qset.\nUsage: /q <message>\nAliases: [None]")
break;
case "respond":
case "r":
locSend("respond - Respond to the latest /tell message from another player.\nUsage: /respond <message>\nAliases: r")
break;
case "local":
case "l":
locSend("local - Message people within the distance set with /lset (default: 500 pixels).\nUsage: /local <message>\nAliases: l")
break;
case "lset":
locSend("lset - Set the distance within which people receive messages sent with /local (default: 500 pixels).\nUsage: /lset <distance>\nAliases: [None]")
break;
case "c":
case "clear":
locSend("clear - Clears the chat.\nUsage: /clear\nAliases: c");
break;
case "yell":
locSend("yell - Tell another user a message privately or send it globally in all caps.\nUsage: /yell <id*> <message> (* = optional)\nAliases: [None]");
break;
case "block":
locSend("block - Blocks a user.\nUsage: /block <id>\nAliases: [None]");
break;
case "unblock":
locSend("unblock - Unblocks a user.\nUsage: /unblock <id>\nAliases: [None]");
break;
case "nearby":
locSend("nearby - Lists the players within the distance set with /lset or the specified one.\nUsage: /nearby <distance*> (* = optional)\nAliases: [None]");
break;
case "show":
locSend("show - Shows or hides the chat.\nUsage: /show\nAliases: [None]");
break;
case "cuoptions":
case "cuopts":
case "cuo":
locSend("cuoptions - Opens the chat utils options. Hover over each option for more info.\nUsage: /cuoptions\nAliases: cuopts, cuo");
};
return '';
};
//Message processing
const prevR = OWOP.misc.chatRecvModifier || (m => m);
OWOP.misc.chatRecvModifier = (msg) => {
msg = prevR(msg);
const msgParsed = JSON.parse(msg);
//Response
if (msgParsed.type == "whisperSent") {
responseID = msgParsed.data.targetID;
};
if (msgParsed.type == "whisperReceived") {
responseID = msgParsed.data.senderID;
};
//Fix "Unknown command:" messages from /help
if (msgParsed.type == "error" && msgParsed.data.message.startsWith("Unknown command: ")) {
if (!['group', 'g', 'qset', 'qid', 'q', 'respond', 'r', 'local', 'l', 'lset', 'c', 'clear', 'yell', 'block', 'unblock', 'nearby', 'show', 'cuoptions', 'cuopts', 'cuo'].every(cmd => cmd != msgParsed.data.message.slice(17, -1))) {
return ''
}
};
// Pass saver
switch (msgParsed.data.action) {
case "invalidatePassword":
if (!lastAttemptedPass) {
let a = JSON.parse(localStorage.worldPasswords);
delete a[OWOP.misc.world.name];
localStorage.worldPasswords = JSON.stringify(a)
} else lastAttemptedPass = null;
break;
case "savePassword":
if (lastAttemptedPass) {
let a = JSON.parse(localStorage.worldPasswords);
a[OWOP.misc.world.name] = lastAttemptedPass;
localStorage.worldPasswords = JSON.stringify(a)
} else lastAttemptedPass = null
};
// Muting system
if (OWOP.muted.includes(msgParsed.data.senderID)) return;
// Notifications
if (!document.hasFocus() && notifsAllowed && ls.notifications != "none" && msgParsed.data?.message) {
if (ls.notifications == "all" || msgParsed.data.message.match(new RegExp(`(${ls.notifNames.map(elem => RegExp.escape(elem)).join("|")})`, "i")) || msgParsed.type == "whisperReceived" || msgParsed.data.message.match(new RegExp(`(?<![\\/+=\\-.])\\b${playerID}\\b(?![\\/+=\\-.])`, "g"))) { // Either the player chose to receive notifs for all messages, or the message is /tell or contains the player id or one of the mention names
let notification = new Notification(msgParsed.data?.nick || "OWOP", { icon: 'https://ourworldofpixels.com/favicon.ico', body: msgParsed.data.message });
notification.onclick = () => { window.focus() };
setTimeout(notification.close.bind(notification), 3000);
let focusFunc = e => {
notification.close.bind(notification)();
};
window.addEventListener("focus", focusFunc);
notification.onclose = () => {
window.removeEventListener("focus", focusFunc)
};
}
};
if (msgParsed.data?.message && msgParsed.data.message.match(/^!ph (.|\n)+/i)) { // Joke feature, changes the placeholder text of the chat input
chatInput.placeholder = `Press [${msgParsed.data.message.match(/(?<=^!ph )(.|\n)+/i)[0]}] to chat!`;
delete msgParsed.data; // Make the message not show up ;)
return JSON.stringify(msgParsed)
};
// Colorful Chat
/*** FIRST TECHNICAL AREA ***/
let rank = msgParsed.data.rank;
// Add ids to mods and admins
if (rank > 1 && rank < 4 && msgParsed.data.nick.slice(4) != msgParsed.data.senderID) {
if (msgParsed.data.nick.startsWith("(")) {
msgParsed.data.nick = msgParsed.data.nick.slice(0, 4) + `[${msgParsed.data.senderID}]` + msgParsed.data.nick.slice(3);
} else {
msgParsed.data.nick = `[${msgParsed.data.senderID}] ` + msgParsed.data.nick;
}
};
// Gateway compatibility
if (msgParsed.sender == "server" && msgParsed.data.message.startsWith('[D] ')) {
msgParsed.sender = 'player';
msgParsed.type = 'message';
[msgParsed.data.nick, ...msgParsed.data.message] = msgParsed.data.message.split(/: /);
msgParsed.data.message = msgParsed.data.message.join(": ");
msgParsed.data.rank = 1;
rank = 4;
};
if (msgParsed.sender == "player" && msgParsed.data.nick.match(/^(\[\d+\]|\(M\)) \[D\]/)) {
msgParsed.data.rank = 1;
rank = 4;
};
if (msgParsed.sender == "player" && msgParsed.data.nick.match(/^(\(M\) )?\d+$/gi) && msgParsed.data.message.match(/^\[D\]/) && OWOP.misc.world.name == "countrysim") {
[msgParsed.data.nick, ...msgParsed.data.message] = msgParsed.data.message.split(/: /);
msgParsed.data.message = msgParsed.data.message.join(": ");
msgParsed.data.rank = 1;
rank = 4;
};
if (msgParsed.sender == "player" && msgParsed.data.nick.match(/\u00AD\n\u00AD/gi)) {
[msgParsed.data.nick, ...msgParsed.data.message] = msgParsed.data.message.split(/: /);
msgParsed.data.message = msgParsed.data.message.join(": ");
if (msgParsed.data.nick.match(/^\[.+?\] \(M\)/)) {
msgParsed.data.rank = 2;
rank = 2;
} else if (msgParsed.data.nick.match(/^\[.+?\] \(A\)/) || msgParsed.data.nick.match(/^(InfraRaven|Cygnus)/i)) {
msgParsed.data.rank = 3;
rank = 3;
} else if (msgParsed.data.nick.match(/^\[D\]/)) {
msgParsed.data.rank = 1;
rank = 4;
} else {
msgParsed.data.rank = 1;
rank = 1;
};
};
if (msgParsed.sender == "server" || msgParsed.type == "whisperReceived") return msg;
//console.log("Message before: " + msg); // Debug
msgParsed.data.allowHTML = true;
function replaceInMessage(rx, replace) {
msgParsed.data.message = msgParsed.data.message.replace(rx, replace);
};
// Prevent people from executing their own code but leave dc emojis alone
if (rank < 3) {
//msgParsed.data.message = OWOP.util.escapeHTML(msgParsed.data.message);
replaceInMessage(/<(?!a?:(.+?):(\d{8,32}))/g, `<`);
replaceInMessage(/(?<!a?:(.+?):(\d{8,32}))>/g, `>`);
};
const emojiQueue = []; // Queue for setting tooltips for emojis
// Fix Discord emojis not working after new line and make them work in the nickname again
msgParsed.data.nick = msgParsed.data.nick.replace(/(<|<)a:(.+?):([0-9]{8,32})(>|>)/g, match => { match = match.slice(3, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.gif?v=1">` });
replaceInMessage(/(<|<)a:(.+?):([0-9]{8,32})(>|>)/g, match => { match = match.slice(3, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.gif?v=1">` });
msgParsed.data.nick = msgParsed.data.nick.replace(/(<|<):(.+?):([0-9]{8,32})(>|>)/g, match => { match = match.slice(2, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.png?v=1">` });
replaceInMessage(/(<|<):(.+?):([0-9]{8,32})(>|>)/g, match => { match = match.slice(2, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.png?v=1">` });
// Add the time when the message was received
(() => {
let currTime = new Date();
msgParsed.data.nick = `<span class="msg-time" title="${currTime.toString().slice(0, 24)}">${("0" + currTime.getHours()).slice(-2)}:${("0" + currTime.getMinutes()).slice(-2)} </span>${msgParsed.data.nick}`;
})();
// Coloring the message and the nick
if (!msgParsed.data.message.match(/^\$/) && !anchorme(msgParsed.data.message).includes("<a")) {
replaceInMessage(/#\b(\d|[a-f]){6}\b/gi, match => `<span style='color:${match}'>${match}</span>`);
for (let i = 0; i < replacements.length; i++) {
replaceInMessage(replacements[i][0], match => replacements[i][1] + eval(replacements[i][2]) + replacements[i][3]);
}
};
if (!msgParsed.data.nick.slice(69).match(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] )?)#/)) {
for (let i = 0; i < replacements.length; i++) {
if (msgParsed.data.nick.match(replacements[i][0])) {
msgParsed.data.nick = replacements[i][1] + msgParsed.data.nick.replace(replacements[i][0], match => eval(replacements[i][2])) + replacements[i][3];
}
}
};
replaceInMessage(/^\$\s?/g, '');
/*** SECOND TECHNICAL AREA ***/
// Markdown
if (!anchorme(msgParsed.data.message).includes("<a") && !msgParsed.data.message.match(/^\$/)) {
msgParsed.data.message = mdParse(msgParsed.data.message);
} else {
replaceInMessage(/^\$\s?/g, '');
};
if (msgParsed.data.nick.slice(69).match(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] )?)#/)) { // Nickname markdown
let nameColor = msgParsed.data.nick.slice(69).match(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] ))#([\dA-F]{6}|RB)/gi)?.[0];
msgParsed.data.nick = (nameColor?.match(/#rb/i) ? `<span class="rainbow">` : `<span style='color:${nameColor}'>`) + msgParsed.data.nick.slice(0, 69) + mdParse(msgParsed.data.nick.slice(69)).replace(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] ))#(([\dA-F]{6}|RB)\s?)?/gi, '') + "</span>";
};
// Unnamed players
if (msgParsed.data.nick.slice(69) == msgParsed.data.senderID || msgParsed.data.nick.slice(73) == msgParsed.data.senderID) {
msgParsed.data.nick = `<span style='color:${playerList[msgParsed.data.senderID]?.clr}'>` + msgParsed.data.nick + "</span>";
};
// Chat mention
let findPlayer = new RegExp(`(?<![\\/+=\\-.])\\b${playerID}\\b(?![\\/+=\\-.])`, "g");
replaceInMessage(findPlayer, match => `<span style='color:#FF0000'>${match}</span>`);
// Restore normal message color
if (rank == 4) msgParsed.data.nick = "<span style='color:#6CFFE7'>" + msgParsed.data.nick + "</span><span style='color:#FFFFFF'>"; // Discord messages
// Set tooltips for emojis after the message is displayed
setTimeout(() => {
const emoteList = document.querySelectorAll(`#chat-messages>li:last-child .emote`);
for (let i = 0; i < emojiQueue.length; i++) OWOP.util.setTooltip(emoteList[i], emojiQueue[i])
});
//console.log("Message after: " + JSON.stringify(msgParsed)); // Debug
return JSON.stringify(msgParsed);
};
//Command processing
const prevS = OWOP.misc.chatSendModifier || (m => m);
OWOP.misc.chatSendModifier = msg => {
msg = prevS(msg);
if (!msg.startsWith('/')) return msg;
const [cmd, ...args] = msg.slice(1).trim().split(/\s+/);
switch (cmd.toLowerCase()) {
case "pass":
lastAttemptedPass = args.join(" ");
return msg;
case "local":
case "l": {
if (args.length < 1) {
locErr('Usage: /local <message>');
return '';
};
let px = OWOP.mouse.tileX
let py = OWOP.mouse.tileY
let nearbyPlayers = []
for (let x in playerList) {
if (Math.abs(playerList[x].x / 16 - px) <= nearbyThresh && Math.abs(playerList[x].y / 16 - py) <= nearbyThresh) {
nearbyPlayers.push(x);
};
};
if (nearbyPlayers.length == 0) {
locErr('No players nearby');
return '';
};
let localMsg = args.join(' ') + "\nLocal chat: " + playerID + ", " + nearbyPlayers.join(', ');
for (let i = 0; i < nearbyPlayers.length; i++) {
tell(nearbyPlayers[i], localMsg);
};
return '';
}
case "lset":
if (args.length != 1 || isNaN(args[0]) || args[0] < 0) {
locErr("Usage: /lset <distance>");
return '';
};
nearbyThresh = args;
return '';
case "clear":
case "c":
if (args.length != 0) {
locErr("Usage: /clear");
return '';
};
OWOP.chat.clear();
return '';
case "respond":
case "r":
if (!responseID) {
locErr('Nobody messaged you yet');
return '';
}
if (!playerList[responseID]) {
locErr(`ID ${responseID} disconnected`);
responseID = undefined;
return '';
};
tell(responseID, args.join(" "));
return '';
case "qid":
case "qset":
if (args.length != 1) {
locErr('Usage: /qset <id>');
return '';
};
if (!isNaN(args)) {
if (!playerList[args]) {
locErr("ID " + args + " doesn't exist.")
return '';
};
quickID = args;
return '';
};
locErr('Usage: /qset <id>');
return '';
case "q":
if (quickID === undefined) {
locErr('Use "/qset <id>" to set a quick id first');
return '';
};
if (args.length == 0) {
locErr('Usage: /q <message>');
return '';
};
if (!playerList[quickID]) {
locErr("ID " + quickID + " disconnected");
quickID = undefined;
return '';
};
tell(quickID, args.join(' '));
return '';
case "block":
if (args.length != 1) {
locErr('Usage: /block <id>');
return '';
};
if (!playerList[args]) {
locErr(`ID ${args} does not exist`);
return '';
};
if (OWOP.muted.includes(Number(args))) {
locErr(`ID ${args} is already blocked`);
return '';
};
OWOP.muted.push(Number(args));
return '';
case "unblock":
if (args.length != 1) {
locErr('Usage: /unblock <id>');
return '';
};
if (!playerList[args]) {
locErr(`ID ${args} does not exist`);
return '';
};
if (!OWOP.muted.includes(Number(args))) {
locErr(`ID ${args} is not blocked`);
return '';
};
OWOP.muted.splice(OWOP.muted.indexOf(Number(args)), 1);
return '';
case "nearby": {
if (args.length > 1 || (args.length == 1 && isNaN(args[0]))) {
locErr('Usage: /nearby <distance*> (* = optional)');
return '';
};
let px = OWOP.mouse.tileX;
let py = OWOP.mouse.tileY;
let thresh = (args.length == 1 ? args[0] : nearbyThresh);
let nearbyPlayers = [];
for (let x in playerList) {
if (Math.abs(playerList[x].x / 16 - px) <= thresh && Math.abs(playerList[x].y / 16 - py) <= thresh) {
nearbyPlayers.push(x);
};
};
if (nearbyPlayers.length == 0) {
locErr('No players nearby');
return '';
} else {
locSend(`Nearby player ids: ${nearbyPlayers.join(', ')}`);
return '';
}
};
case "show":
if (args.length != 0) {
locErr('Usage: /show');
return '';
};
document.getElementById('chat-messages').style.display = (document.getElementById('chat-messages').style.display == 'none' ? '' : 'none');
return '';
case "g":
case "group":
if (args.length != 0) {
locErr('Usage: /group');
return '';
};
OWOP.windowSys.addWindow(new OWOP.windowSys.class.window('Group Chat', { closeable: true }, (gcWin) => {
gcWin.container.className = "wincontainer nhCont";
let memLabel = document.createElement('label');
memLabel.for = "gcMembers";
memLabel.innerHTML = "Members: ";
gcWin.addObj(memLabel);
let memIn = document.createElement('input');
memIn.type = 'text';
memIn.name = 'gcMembers';
memIn.className = 'nhIn';
memIn.placeholder = "IDs must be comma separated";
memIn.addEventListener("blur", (e) => {
let members = memIn.value.split(',').map((elem) => { return elem.trim() });
for (let x = 0; x < members.length; x++) {
if (!playerList[members[x]] || members.indexOf(members[x]) != x) {
members.splice(x, 1);
x -= 1;
};
};
memIn.value = members.join(', ');
});
gcWin.addObj(memIn);
gcWin.addObj(document.createElement('br'));
let msgLabel = document.createElement('label');
msgLabel.for = "gcMessage";
msgLabel.innerHTML = "Message: ";
gcWin.addObj(msgLabel);
let msgIn = document.createElement('input');
msgIn.type = 'text';
msgIn.name = 'gcMessage';
let maxMsgLength = OWOP.definedProtos.old.maxMessageLength[OWOP.player.rank];
msgIn.maxLength = maxMsgLength;
msgIn.className = "nhIn";
msgIn.placeholder = "Press [Enter] to send";
function sendMsg() {
let members = memIn.value.split(',').map((elem) => { return elem.trim() });
for (let x = 0; x < members.length; x++) {
if (!playerList[members[x]] || members.indexOf(members[x]) != x) {
members.splice(x, 1);
x -= 1;
};
};
memIn.value = members.join(', ');
if (members.length == 0) return;
let msg = msgIn.value;
for (let x = 0; x < members.length; x++) {
let extra = members.join().length + 11 + `${members[x]}`.length;
tell(members[x], `${msg.length + extra > maxMsgLength ? msg.slice(0, maxMsgLength - extra) : msg}\nGC:${members.join()}`);
};
msgIn.value = '';
}
msgIn.addEventListener("keydown", ((e) => {
if (e.key == "Enter") {
sendMsg();
};
}));
gcWin.addObj(msgIn);
gcWin.addObj(document.createElement('br'));
let sendBtn = document.createElement('button');
sendBtn.addEventListener("click", (e) => {
sendMsg();
});
sendBtn.innerHTML = 'Send';
gcWin.addObj(sendBtn);
}).move(innerWidth - 343, 60));
return '';
case "yell":
if (args.length == 0) {
locErr('Usage: /yell <id*> <message> (* = optional)');
return '';
};
if (!isNaN(args[0])) {
tell(args[0], args.slice(1).join(' ').toUpperCase());
return '';
};
say(args.join(' ').toUpperCase());
return '';
case "cuoptions":
case "cuopts":
case "cuo":
if (args.length != 0) {
locErr('Usage: /cuo');
return '';
};
OWOP.windowSys.addWindow(new OWOP.windowSys.class.window("Chat Utils Options", { closeable: true }, win => {
win.container.className = "wincontainer nhCont";
win.container.innerHTML = `<div title="Toggles the chat position between left and right">
<input type="checkbox" name="cu-left" id="cu-left"${ls.chatOnLeft == true ? " checked" : ""}>
<label for="cu-left">Chat on left</label>
</div>
<div title="Display the time when each message has been received">
<input type="checkbox" name="cu-timestamps" id="cu-timestamps"${ls.timestamps == true ? " checked" : ""}>
<label for="cu-timestamps">Message timestamps</label>
</div>
<div title="Sets the max number of messages kept in the chat">
<label for="cu-max">Max chat messages: </label>
<input type="number" name="cu-max" id="cu-max" min="0" value="${ls.maxChatBuffer}">
</div>
<div title="Receive notifications for all messages, only ones that mention your name, or none">
<label for="cu-notifs">Notifications: </label>
<select name="cu-notifs" id="cu-notifs">
<option value="all"${ls.notifications == "all" ? " selected" : ""}>All</option>
<option value="mentions"${ls.notifications == "mentions" ? " selected" : ""}>Mentions</option>
<option value="none"${ls.notifications == "none" ? " selected" : ""}>None</option>
</select>
</div>
<div style="${ls.notifications == "mentions" ? "" : "display: none"}" title="When a message contains one of these names, you will get a notification">
<label for="cu-notifnames">Mention names: </label>
<input type="text" name="cu-notifnames" id="cu-notifnames" value="${ls.notifNames}" placeholder="Names must be comma separated">
</div>`;
win.container.querySelector("#cu-left").addEventListener("input", e => {
ls.chatOnLeft = win.container.querySelector("#cu-left").checked;
updateLs();
if (ls.chatOnLeft) {
helpBtn.style.left = 'initial';
helpBtn.style.right = '55px';
chat.style.right = 'initial';
chat.style.left = '0';
} else {
helpBtn.style.left = '0';
helpBtn.style.right = 'initial';
chat.style.right = '55px';
chat.style.left = 'initial';
};
});
win.container.querySelector("#cu-timestamps").addEventListener("input", e => {
ls.timestamps = win.container.querySelector("#cu-timestamps").checked;
updateLs();
document.querySelector("#cu-timestamp-style").innerHTML = `.msg-time {
display: ${ls.timestamps ? "initial" : "none"};
}`;
});
win.container.querySelector("#cu-max").addEventListener("input", e => {
win.container.querySelector("#cu-max").value = Math.floor(+win.container.querySelector("#cu-max").value);
ls.maxChatBuffer = OWOP.options.maxChatBuffer = +win.container.querySelector("#cu-max").value;
updateLs();
});
win.container.querySelector("#cu-notifs").addEventListener("input", e => {
ls.notifications = win.container.querySelector("#cu-notifs").value;
updateLs();
win.container.querySelector("#cu-notifnames").parentElement.style.display = ls.notifications == "mentions" ? "" : "none"
});
win.container.querySelector("#cu-notifnames").addEventListener("input", e => {
ls.notifNames = win.container.querySelector("#cu-notifnames").value.split(", ").join(",").split(",");
updateLs()
});
}).move(innerWidth - 415, 60));
return '';
case "help":
case "h":
case "?":
helpHandle(args);
};
return msg;
};
// Update Notice
if (ls.chatUtilsUpdateNotice != '1.9') {
locSend(`<span style="color:#FFFF00">Chat Utils update 1.9:
- Added /cuoptions for opening the new options menu
- Removed /max and /left
- Added chat notifications, which can be configured in the options menu
- Added message timestamps, which can be disabled in the options
- Added glow ({gFFFFFF test} - <span style="text-shadow: 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF;">test</span>), backwards text ({< test} - <span style="display: inline-block; transform: scale(-1, 1);">test</span>), upside-down text ({V test} - <span style="display: inline-block; transform: scale(1, -1);">test</span>), spoilers (||test|| - <span class="spoiler" onclick="this.className='spoiler-shown'">test</span>)
- Changed the way to highlight text to {=FFFFFF ...} and {hFFFFFF ...}, meaning you can now use different colors
- Made it so you can add multiple effects to text at the same time using one pair of curly brackets. For example, {000000gFFFFFF Hello} becomes <span style="text-shadow: 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF;color: #000000;">Hello</span>, {0000FFg00FF00hFF0000<V Hi} becomes <mark style="background-color: #FF0000"><span style="display: inline-block; transform: scale(-1, -1);text-shadow: 0px 0px 5px #00FF00, 0px 0px 5px #00FF00, 0px 0px 5px #00FF00;color: #0000FF;">Hi</span></mark> etc
- Made it so # stops default coloring in the nickname (and fixed the bug which made your messages invisible)
- Added tooltips for Discord emojis
- Discord emojis now work inside the nickname again
- Made it so when you type your nickname, the max length of the chat input changes, so you cannot accidentally type one that is too long and wouldn't work
- Additions and changes to colored words
<button onclick="let a = JSON.parse(localStorage.CU); a.chatUtilsUpdateNotice = '1.9'; localStorage['CU'] = JSON.stringify(a); this.parentElement.parentElement.parentElement.remove()">Click to dismiss</button></span>`)
};
console.log('Chat Utils installed');
};
})();