waves/public/assets/g/territorialio/maps/index.html
2025-04-09 17:11:14 -05:00

1425 lines
158 KiB
HTML

<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<title>Territorial Custom Maps</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" rel="stylesheet">
<style>
@media (max-width: 767px) {
.mapDisplay {
height: 100vw;
}
.importButton {
margin-top: 0.5rem;
margin-bottom: 1rem;
}
}
@media (min-width: 768px) {
.optionMenu {
width: 350px;
max-height: 100vh;
overflow-y: auto;
direction: rtl;
}
.optionMenuChild {
direction: ltr;
}
.mapDisplay {
width: calc(100% - 350px);
}
.importButton {
margin-top: 0.5rem;
margin-bottom: 1rem;
}
}
@media (min-width: 1400px) {
.optionMenu {
width: 650px;
}
.mapDisplay {
width: calc(100% - 650px);
}
.importButton {
position: absolute;
top: 0;
right: 0;
margin-top: 0.5rem;
}
}
</style>
</head>
<body>
<div class="container mw-100">
<div class="row mh-100">
<div class="optionMenu">
<div class="optionMenuChild position-relative">
<h2>Custom Map Options</h2>
<button class="btn btn-secondary importButton" id="import">Import settings from JSON</button>
</div>
<div class="row optionMenuChild">
<div class="col-sm-12 col-xxl-6 mb-3">
<label for="mapSelect">Choose a preset map:</label>
<select id="mapSelect" class="form-select mt-3 mb-3"></select>
or upload a custom one:
<div class="w-100 mt-3 mb-3 ratio ratio-1x1" id="drop">
<input type="file" id="file" accept="image/*" class="d-none">
<label for="file" class="border rounded-2 d-flex justify-content-center align-items-center" style="border-style: dashed !important;">
<img class="d-none m-3 text-center" style="max-height: 90%; max-width: 90%" id="preview" src="" alt="Preview Image">
<p id="file_desc">Upload or Drop an Image here</p>
</label>
</div>
<label for="url" class="d-none"></label>
<input type="text" id="url" class="w-100" style="all: inherit" placeholder="Paste or Drop an Image URL here">
</div>
<div class="col-sm-12 col-xxl-6 mb-3">
Options:
<label class="d-none" for="seedInput">Seed</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Seed</div>
<input type="text" id="seedInput" class="form-control" placeholder="Insert Seed">
<div class="input-group-text input-group-append" id="random" type="button"><i class="fas fa-dice"></i></div>
</div>
<label class="d-none" for="sizeXInput">SizeX</label>
<label class="d-none" for="sizeYInput">SizeY</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Size</div>
<input type="text" id="sizeXInput" class="form-control" placeholder="X Size">
<div class="input-group-text">x</div>
<input type="text" id="sizeYInput" class="form-control" placeholder="Y Size">
<div class="input-group-text input-group-append" id="link" type="button"><i class="fas fa-link"></i></div>
</div>
<div id="normalize">
Normalize Map:
<label class="d-none" for="landTargetColor">Land Search Color</label>
<label class="d-none" for="landColor">Land Color</label>
<div class="input-group mt-3">
<div class="input-group-text input-group-prepend" style="width: 40%"><i class="fas fa-globe me-1"></i>Land</div>
<div class="input-group-text ratio-1x1" id="landTargetColor"><i class="fas fa-eye-dropper"></i></div>
<div class="input-group-text" style="width: 42px">-></div>
<div class="input-group-text" id="landColor"><i class="fas fa-palette"></i></div>
<div class="input-group-text input-group-append d-flex justify-content-center align-items-center" id="normalizeLand" type="button" style="width: 42px"><i class="fa fa-xmark"></i></div>
</div>
<label class="d-none" for="waterTargetColor">Water Search Color</label>
<label class="d-none" for="waterColor">Water Color</label>
<div class="input-group mt-3">
<div class="input-group-text input-group-prepend" style="width: 40%"><i class="fas fa-water me-1"></i>Water</div>
<div class="input-group-text" id="waterTargetColor"><i class="fas fa-eye-dropper"></i></div>
<div class="input-group-text" style="width: 42px">-></div>
<div class="input-group-text" id="waterColor"><i class="fas fa-palette"></i></div>
<div class="input-group-text input-group-append d-flex justify-content-center align-items-center" id="normalizeWater" type="button" style="width: 42px"><i class="fa fa-xmark"></i></div>
</div>
<label class="d-none" for="mountainTargetColor">Mountain Search Color</label>
<label class="d-none" for="mountainColor">Mountain Color</label>
<div class="input-group mt-3">
<div class="input-group-text input-group-prepend" style="width: 40%"><i class="fas fa-mountain me-1"></i>Mountains</div>
<div class="input-group-text" id="mountainTargetColor"><i class="fas fa-eye-dropper"></i></div>
<div class="input-group-text" style="width: 42px">-></div>
<div class="input-group-text" id="mountainColor"><i class="fas fa-palette"></i></div>
<div class="input-group-text input-group-append d-flex justify-content-center align-items-center" id="normalizeMountains" type="button" style="width: 42px"><i class="fa fa-xmark"></i></div>
</div>
</div>
</div>
<div class="col-sm-12 col-xxl-6 mb-3">
<label for="gameMode">Game mode:</label>
<select id="gameMode" class="form-select mt-3 mb-3">
<option value="0">Battle Royale</option>
<option value="1">Teams</option>
<option value="2">Zombies</option>
</select>
<label class="d-none" for="spawnSeed">Seed</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Spawn</div>
<input type="text" id="spawnSeed" class="form-control" placeholder="Insert Seed">
<div class="input-group-text input-group-append" id="spawnLink" type="button"><i class="fas fa-link"></i></div>
<div class="input-group-text input-group-append" id="spawnRandom" type="button" style="opacity: 0.5"><i class="fas fa-dice"></i></div>
</div>
<label for="mapName">Map data:</label>
<input type="text" id="mapName" class="form-control mt-3 mb-3" placeholder="Map name">
<label class="d-none" for="mapDescription">Description</label>
<textarea id="mapDescription" class="form-control mt-3 mb-3" placeholder="Description"></textarea>
</div>
<div class="col-sm-12 col-xxl-6 mb-3">
Player:
<label class="d-none" for="selectableName">Player name</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Name</div>
<input type="text" id="selectableName" class="form-control" placeholder="Insert forced Name">
</div>
<label class="d-none" for="selectableColor">Player color</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Color</div>
<div class="input-group-text" id="selectableColor"><i class="fas fa-palette"></i></div>
<div class="input-group-text input-group-append d-flex justify-content-center align-items-center" id="clearColor" type="button" style="width: 42px"><i class="fa fa-xmark"></i></div>
</div>
<label class="d-none" for="playerTeam">Player Team</label>
<select id="playerTeam" class="form-select">
<option value="0">Team 1 (White)</option>
<option value="1">Team 2 (Red)</option>
<option value="2">Team 3 (Green)</option>
<option value="3">Team 4 (Blue)</option>
<option value="4">Team 5 (Yellow)</option>
<option value="5">Team 6 (Magenta)</option>
<option value="6">Team 7 (Cyan)</option>
<option value="7">Team 8 (White)</option>
<option value="8">Team 9 (Black)</option>
</select>
<label class="d-none" for="selectableSpawn">Player spawn</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Spawn</div>
<div class="input-group-text" id="selectableSpawn"><i class="fas fa-user"></i></div>
<div class="input-group-text input-group-append d-flex justify-content-center align-items-center" id="clearSpawn" type="button" style="width: 40px"><i class="fa fa-xmark"></i></div>
</div>
<button id="addBot" class="btn btn-primary mt-3 mb-3">Add Bot</button>
</div>
</div>
</div>
<div class="mapDisplay d-flex flex-column">
<div class="flex-grow-1 d-flex justify-content-center align-items-center">
<canvas id="canvas" class="object-fit-contain d-none" style="image-rendering: pixelated"></canvas>
<canvas id="overlay" class="position-absolute d-none" style="image-rendering: pixelated"></canvas>
<div id="loading" class="position-absolute bg-dark p-3 rounded rounded-3 bg-opacity-75 d-flex">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
<span class="text-center ms-3 my-auto" id="loadingText">Loading...</span>
</div>
</div>
<div class="d-none my-3" id="edits">
<div class="d-flex justify-content-center">
<input class="form-check-input ms-4" type="checkbox" id="credit" checked title="Adds a link to this page to generated json (thx for leaving this on ❤)">
<label class="form-check-label ms-2" for="credit" title="Adds a link to this page to generated json (thx for leaving this on ❤)">Include credit to this tool</label>
</div>
<div class="d-flex justify-content-center">
<button class="btn btn-success me-2" id="save" title="Save as a JSON file to import in Territorial.io">Save to JSON</button>
<button class="btn btn-secondary" id="copy" title="Copy as JSON data to share with your friends">Copy as JSON</button>
<button class="btn btn-primary ms-2" id="image" title="Only save image (only contains parts of the data)">Save as Image</button>
</div>
</div>
<div class="text-center text-secondary">Created by platz1de (sdsd) - Map generation by David Tschacher (<a href="https://territorial.io/" class="text-decoration-none">Territorial.io</a>)</div>
</div>
</div>
<div class="position-fixed top-0 bottom-0 start-0 end-0 d-flex justify-content-center d-none" id="botSettings">
<div class="bg-black bg-opacity-75 m-auto p-3">
<h3>Bot settings</h3>
<label class="d-none" for="botName">Bot name</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Name</div>
<input type="text" id="botName" class="form-control" placeholder="Insert Name">
</div>
<label class="d-none" for="botColor">Bot color</label>
<div class="input-group mt-3 mb-3">
<div class="input-group-text input-group-prepend">Color</div>
<div class="input-group-text" id="botColor" style="width: 15%"><i class="fas fa-palette"></i></div>
<div class="input-group-text input-group-append" id="botColorRandom" type="button"><i class="fas fa-dice"></i></div>
</div>
<label class="d-none" for="botTeam">Bot Team</label>
<select id="botTeam" class="form-select mb-3">
<option value="0">Team 1 (White)</option>
<option value="1">Team 2 (Red)</option>
<option value="2">Team 3 (Green)</option>
<option value="3">Team 4 (Blue)</option>
<option value="4">Team 5 (Yellow)</option>
<option value="5">Team 6 (Magenta)</option>
<option value="6">Team 7 (Cyan)</option>
<option value="7">Team 8 (White)</option>
<option value="8">Team 9 (Black)</option>
</select>
<label class="d-none" for="botStrength">Bot strength</label>
<select id="botStrength" class="form-select">
<option value="0">Very Easy</option>
<option value="1">Easy</option>
<option value="2">Normal</option>
<option value="3">Hard</option>
<option value="4">Harder</option>
<option value="5">Very Hard</option>
</select>
<button id="botDone" class="btn btn-success mt-3">Save</button>
<button id="botDelete" class="btn btn-danger mt-3">Delete</button>
</div>
</div>
</div>
<script>
//@platz1de - 2023
const mapSelector = document.getElementById("mapSelect");
const fileInput = document.getElementById("file");
const fileDesc = document.getElementById("file_desc");
const fileDrop = document.getElementById("drop");
const urlInput = document.getElementById("url");
const preview = document.getElementById("preview");
const canvas = document.querySelector("canvas");
const overlay = document.getElementById("overlay");
let mapInput = null;
function setLoad(text) {
document.getElementById("loading").classList.remove("d-none");
document.getElementById("loadingText").innerText = text;
}
function unsetLoad() {
document.getElementById("loading").classList.add("d-none");
}
let currentProcess = null;
function checkProcessStart(start) {
return currentProcess === start;
}
fileInput.onchange = function () {
const file = fileInput.files[0];
const img = new Image();
const url = URL.createObjectURL(file);
img.onload = function () {
fileDesc.innerText = "Loading file...";
preview.onload = function () {
preview.classList.remove("d-none");
fileDesc.classList.add("d-none");
}
preview.onerror = function () {
preview.classList.add("d-none");
fileDesc.classList.remove("d-none");
fileDesc.innerText = "Invalid Image";
fileDesc.classList.add("text-danger");
}
setMap(img);
URL.revokeObjectURL(url);
}
img.src = url;
preview.src = url;
}
fileDrop.ondrop = urlInput.ondrop = function (e) {
e.preventDefault();
this.classList.remove("bg-secondary");
if (e.dataTransfer.files.length > 0) {
fileInput.files = e.dataTransfer.files;
fileInput.onchange(undefined);
} else {
urlInput.value = e.dataTransfer.getData("text");
urlInput.onchange(undefined);
}
}
fileDrop.ondragover = urlInput.ondragover = function (e) {
e.preventDefault();
this.classList.add("bg-secondary");
}
fileDrop.ondragleave = urlInput.ondragleave = function (e) {
e.preventDefault();
this.classList.remove("bg-secondary");
}
urlInput.onchange = function () {
preview.src = urlInput.value;
fileDesc.innerText = "Loading file...";
preview.onload = function () {
preview.classList.remove("d-none");
fileDesc.classList.add("d-none");
}
preview.onerror = function () {
preview.classList.add("d-none");
fileDesc.classList.remove("d-none");
fileDesc.innerText = "Invalid URL";
fileDesc.classList.add("text-danger");
}
const img = new Image();
img.onload = function () {
setMap(img);
}
img.src = urlInput.value;
urlInput.value = "";
}
function setMap(image) {
canvas.width = image.width;
canvas.height = image.height;
const ctx = canvas.getContext("2d");
ctx.drawImage(image, 0, 0);
mapInput = {type: "image", data: ctx.getImageData(0, 0, image.width, image.height)};
finishMapLoad();
preview.classList.remove("d-none");
fileDesc.classList.add("d-none");
const eu = defaultData[10], halo = defaultData[9];
sizeXInput.original = image.width;
sizeYInput.original = image.height;
landTargetColor.value = landColor.value = "#" + (eu.landColor[0] << 16 | eu.landColor[1] << 8 | eu.landColor[2]).toString(16).padStart(6, "0");
waterTargetColor.value = waterColor.value = "#" + (eu.waterColor[0] << 16 | eu.waterColor[1] << 8 | eu.waterColor[2]).toString(16).padStart(6, "0");
mountainTargetColor.value = mountainColor.value = "#" + (halo.ez[8] << 16 | halo.mm[8] << 8 | halo.ce[8]).toString(16).padStart(6, "0");
updateNormalizer();
if (normalizeLand || normalizeWater || normalizeMountains) {
normalizeMap();
}
}
//The following parts are modified bits from Territorial.io by David Tschacher
const defaultData = [
{name: "White Arena", width: 230, height: 230, g7: 1E3, g4: 2E3, seed: 173, bt: [0, 5E3, 8E3, 1E4], ez: [220, 250, 255, 220], mm: [190, 220, 0, 0], ce: [170, 200, 0, 0]},
{name: "Black Arena", width: 800, height: 800, g7: 100, g4: 50, seed: 43, bt: [0, 4E3, 5E3, 6E3, 1E4], ez: [25, 0, 100, 0, 25], mm: [25, 0, 0, 0, 25], ce: [25, 0, 0, 0, 25]},
{name: "Island", width: 512, height: 512, g7: 128, g4: 32, seed: 0, bt: [0, 500, 2500, 2999, 3E3, 3200, 4200, 5200, 5700, 8800, 1E4], ez: [15, 15, 70, 40, 40, 40, 252, 40, 40, 20, 30], mm: [80, 80, 190, 90, 40, 40, 248, 180, 180, 90, 140], ce: [120, 120, 220, 110, 40, 40, 217, 10, 10, 10, 10], h1: [0, 205, 256], h2: [500, 500, 0]},
{name: "Mountains", width: 960, height: 960, g7: 60, g4: 8, seed: 0, bt: [0, 400, 1800, 2E3, 3200, 4500, 6E3, 7700, 8500, 9500, 1E4], ez: [10, 10, 20, 10, 30, 10, 16, 40, 55, 230, 230], mm: [10, 10, 40, 50, 100, 40, 80, 120, 55, 230, 230], ce: [80, 80, 200, 10, 60, 10, 16, 40, 55, 230, 230]},
{name: "Desert", width: 900, height: 900, g7: 100, g4: 5, seed: 0, bt: [0, 300, 1400, 1700, 3E3, 4E3, 1E4], ez: [10, 10, 20, 10, 10, 170, 212], mm: [20, 20, 60, 100, 100, 110, 170], ce: [70, 70, 160, 30, 30, 60, 120]},
{name: "Swamp", width: 1E3, height: 1E3, g7: 100, g4: 40, seed: 0, bt: [0, 1E3, 3E3, 3500, 4E3, 4500, 7E3, 7500, 8E3, 1E4], ez: [10, 10, 20, 10, 5, 10, 20, 5, 20, 25], mm: [30, 30, 50, 100, 30, 100, 140, 60, 140, 200], ce: [80, 80, 200, 10, 5, 10, 20, 5, 20, 25]},
{name: "Snow", width: 1E3, height: 1E3, g7: 100, g4: 20, seed: 0, bt: [0, 700, 2650, 3200, 5E3, 8E3, 1E4], ez: [10, 10, 60, 255, 255, 200, 200], mm: [10, 10, 60, 255, 255, 200, 200], ce: [80, 80, 255, 255, 255, 200, 200]},
{name: "Cliffs", width: 1024, height: 1024, g7: 128, g4: 32, seed: 0, bt: [0, 400, 1999, 2E3, 3200, 4E3, 4700, 5500, 6500, 9500, 1E4], ez: [10, 10, 80, 255, 255, 55, 6, 70, 20, 155, 255], mm: [10, 10, 90, 245, 245, 170, 80, 190, 20, 155, 255], ce: [80, 80, 255, 235, 235, 55, 26, 10, 20, 155, 255], h1: [0, 380, 512], h2: [500, 500, 0]},
{name: "Pond", width: 820, height: 820, g7: 200, g4: 100, seed: 0, bt: [0, 700, 1300, 1900, 1901, 2500, 3400, 6E3, 1E4], ez: [25, 30, 30, 30, 255, 255, 30, 40, 20], mm: [25, 30, 150, 150, 245, 245, 80, 150, 70], ce: [60, 170, 170, 170, 235, 235, 30, 40, 40], h1: [0, 120, 210], h2: [0, 80, 640]},
{name: "Halo", width: 1024, height: 1024, g7: 128, g4: 32, seed: 0, bt: [0, 400, 2009, 2010, 3300, 4E3, 5200, 6500, 8E3, 9500, 1E4], ez: [10, 10, 80, 255, 255, 55, 23, 36, 20, 155, 255], mm: [10, 10, 90, 245, 245, 170, 60, 160, 20, 155, 255], ce: [80, 80, 255, 235, 235, 55, 9, 72, 20, 155, 255], h1: [0, 70, 180, 200, 290, 420, 512], h2: [500, 500, 0, 0, 500, 500, 0]},
{name: "Europe", landColor: [140, 130, 120], waterColor: [12, 12, 76], glow: [240, 120, 4672, 30, 26, 30, 90, 8, 32, 3, 9], data: "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86fRU8Av6gRK76AeCE66hQ9IAw6iQ7IUu6kQ6IUu6lQy87EQmQofAK6Ak6nQUdA7F9D56nQAKAUQAKBA9F8D56nP9A9BKIBe57DaqQAGBeIBoSAKBAKjDGsQAFB6AySA7BUiDQrSKFCKCA6AyEDUcAKD6rV6AyFAoBCUc6yV6AyOB6C865WkBAEAKZ655X7Aod66M6a69Z967W5967W5967W5967W5867g5867g5867g5767q56675Z6675Z5676Z5676Z5676Z5676Zu77U6AKu678UyFEk78UyID9679UyID768L9yBA8A8DABAu8qEA8C769WEA8Cu95UoICG99T7AKGA9B9699UoKB77AUoLB56dAe69UyMBucAe69QUCBUCC7B6BGbAe7B58BABAeEAyYCAI6ZAe7B57B6AeHCUXAabAe7L57B7AKJCQ5UEHB57C7CQ5UEHB56C8CQ5eDHB57AUBCoV65eEG9QAZB965oEG9QAZB965yDG9QKZAUBAKCBa5yDG9QKZAKGAKEA665yDG9QUmAk5yDHB56AUED8AkxAUEAe7B565oAeCALyA7HV575oA8AyBOKGHf585qA8AKEN9Ay7p585sBVmAy7p595sBVkAo76P95uBLjAo76P9AKCAUB5rA8N6AK78Q55sA6V6Q65tAKQAMCQ756AGT8RF58AKBAz96RP6AFTz7P6oBTz7b59Rl58Rv57R675z7975V7975V7875f8HzSlwSbxSbxSbxSbxSlwSvvS56ZApRSuYA6L7S66WA6L7S656yBFeJL7S656yBFeIL8S656yDE8A9MB8556yEEoNMB8t6yFEAPMV8t6KJD7B8MV8t56BokB6Mz8t5UQD7B6M6S65yAyIAUlB7M6S65yAyuB7M7S75xAovB7M7S65yAeuCLZS75xAUuB6AoBM6S75xAKvB6NL87596BzhS759oPNz8959UPNz89589B8Nz9FsAKrB9Np9PqAUpCLiTV6oClyCD9C9M8Tf6oCloCD8DVaTz6UCloCDomMp9p6oCleBDUqMf9p6yClUBDUrMV9p67AN97AKFEABAfWTj66AKFD8M8TACAZ6yDAUnM8TACAZ66ELeT556ypNB9j67ELeTZ67EVeTP6ytNB9F67EffTF66EpfTZMAyDAUpEzfTZHByoE6NL9jDBKFAUpEfhTjCA9FKqNp9s97BeDAeeAUEAUEEziTADAY9ySDKJAouNf9AEAO96B7C7AKCAoCAyEEzhTAEAO96B7C6AULFLhS9MKEl6CKUAKCAUQE6Nf89MAIleWBoLB6EzhS9MeFleZA6B7B6EBlH8A7Ks9oBA6C9AKSB9DKCALoH6BLCxoEAevCUSAUCAeEOe7oPJ9xyEAUvCoQA8AzqGeFAoRJ9x7E9C6ByIA7OK6AJAUTJ8x8E6C8BeKApsGAeJ8x9EodBULAeGAVlF9DU96yArDKKBUEAyCN7F8De96x9EehA6ByMN6F7D7JZAEKnAUQBVjF7EA88yAoF8BpiF8EK86x9EK57B7NU58Eo8s98EAvAKHCBgF9E6IO96EKuAyECVfF9Fe7i9yrEyhAeBM6F9Fy7E9yrA8AKlEBXF9Fy7E9euAeFD6EfVF9F7G7xo5yiEzUF9F8G6xo56DexAUCAeBK8GA58G5xo6KbF9K7GK6A6Y9e6oYGpDGK6e58xoBAK6UYGpDGA6y56x8GKTHLBGA6y56x8GATHfAGA69FO99GKRH6J8F8Howx9GKPIA96F8H7E5XoBao6KPIK9y57IymXeIZ8GKOIo9e57I8DqhA9Z8GKOI6JK57I9DgeBg57GKOI6JK56JKfW8B7Z6GAOI8JA56JUdWyRAKCZ7GANJA89F6JecWUUaA6UKJe87FzCCCVCM6A6eIJ6AKDIK5zDB9WAWZABA9GyFKU8A5zEB7WKWY9AUJG6AfEAeBAoCG9FzGBqXCKMAMjAoGS7G7FzGBgZCAMAWiAoFS9G6FzJAeCAWbCKMAghT8G6F5ieWBKDXz98Go55ieWBAFXz98Ge5rtCUJAqjUo58FrvCAIA5XgGF8FrvCAHA6AeCW8U6F8F5i6CKGAoBAUBAqaU8F7F5ieYA6AoCA6W6U8F7FrrCyFAyCA6W7U7F7FrqC7AUHAUGW7U9Fy5rqD6AUGW6VA5y5q8yCF6DyBA7W6VK5o5q8oEFyjAKHW5VU5o5q8eJFKjAKHWqNFo5q8KMFAjAKHWqPFU5q8APE8EqYVo5U5q8AQE7EqYVyzFg8ATE6EUCAMWV6FA5g79CKtEgYV6FA5WFAeBAK68CosEeCAMVV7E9FWCBK6obEUrWqRE9FMDBy59C9EUrWgRE9FMCB6F6DynEoDAMSV7E9FB99CKwEenEoDAWQV6FAxT8CosE6D9EqWVyyE9T7C9D9E8D9EgWVozE9T6DyfFUnEgVVozE9TylC8FooEgUVe5UvT7D7C7FypEWTVyzE6T8D8Ce57EooV9Vo5UuT7EKUF8EypV7Vo5UuT7EKTGAuD9V7Ve5euT7EeRGKuD9V6VU5otT8EoQGKvD9VqNFosT9FACG8E9D9U8V7FyrUBUFKmU6V7F6Ef99MK5UoUgQF7Ef99MU5emUWPF9EMCMU5elUWPF9EMDMU5elUCOGKoUfXFelUCOGKoUfXFemT9VU6emUzXFesTgMGemUzXFowS8VK6omUpYFo5V8qJG6DoCAMFKyBB7FyuAeESfSAK9A66DqIKoCB7F6EyEAp8fQAo8y69DgKKeCB8Fy5p8VPAy77AKEHUhVBDAUVFU5z8LHAKEA9BeBFo8ygVLDAUVFU56SBCCALAexI9DWLJ7AeCAeNAeFFeuA6Ap78J8CyBAKHAyxI9DMMJoKBoDAy5oxAUFR6JomAKGE7JAfVK9oLByBA8FU57Ry9KxEe9eeVK9oMCyzFKGAL7K9ezBABDA9odVK9oOCyyFAEAL7e9U5oGA8Co96C9U8J6ByZFKxAUERK9e56AeJBAEA7J9C8UzAByZFK57Q9JK7eDAKCAyDKecUpBByaFA6B7K8z9KcUBEB6C7E9GL7A8B96C8AoBTVHB6C8E8Gp67IB96C8AeCGKDM6K8B7C9E8G6Qo78T8C8AUCGeBM6LAQC9E8G7Qe77T9DL77AUCMKPDAwG7Qe75UAeRfeByfE8G8QU7qADB7LgBokEo69Qe7MBDB7BiBelEo69Qe69UUeQ8N6BelEy69QU67UofAKDQfkBUmE6G9QK67UokQVjBUoE6HL58G5U6D6QfhBeoE7HV57GgHD6QACALhBerEy7V56GMJD6P9N7BerE6HV5y6CKDz59OAKEovHV5y57VUjP7OeIE6E8HL5o57UeCA7Dz57OeIE7E8HL5o55UUEA7Dz5zsA9E8E8HV5e5qCAeIDp56OyHFAwHL56FMBAoIDp56OyHFA66Ff57E9UKDBAiPpwA6FK66Ff59C8AUPUKEBAiPfyAo5e6y5p59CoKA6UeGBAhPWKGo56P9BKDA7V7A9BAhPCMGe59QAEXAJBKhO9Ve6U6B6KDXALA9DVxVy6A6L6KBXKOA7DVxP7Ae56F8GV6ACXKOA7DVvP8A6Fy56Gf6ABXKPA7DVvP7A8F9FU6V6ABXKOA8DLvP7BA59FK6LvA7AUGXAHAyDA8DLuP7BK59FU6BuCCcAKUDLuPyNGA5e58OAdAoFX7DBtP6B6GyvF7N8EClC9O6O8AKGB6G7AeBEo5zmD9X8C8O7O7Co7KuFflDgtC7O8O7Co7UvFLkC9ZAaO9OybHUwE9J6AKnC6ZeaO8F8AK87C7HewE8JyDAUBDyYZyaO8FeGBeFG9C7He5UsI7AUFA8AeCC8CyOAMoC6O8FAJBUGHAaHo5eqI6AoDB6AKDCKHAKUBAFX8DVrE7BUNAo7UYHo5opIoeB9A7AUXA8AWoDppE6BoNAo7UYHo56D8IefB9BKEB8Y9D7N8E6BoPAU7UYHy56D7IUgB6BeGB5ZKmN7E8By86Co76F6Dy8KKAKdA9BoFBC57D8N8E8Bo86Co79FohHyPAeiAePA6A5aKoN7E7Be87Ce8A56DK76ByCEeCBC69EAFAUBAfaE8BK87Ce8U56DA77E7B6A8a9EKCBLXE8BK88CK8o58C7H8DACBKUAq7U57MKvBA9AUI7F7Cy6ADByeAULd6F7MKvA9JKUJK5oYF9AeQEW97F8MAXAUZAy9UTJU56CU57AyQEM98GBTCKDCyEJUUJe5yXF6AyREM97GBTCADMUUJe56Ce5yFCUld6GLSOoVJoiAyRCU5yFByDAybAUIdy6LQO6CK9ohA6B8CK5yIBeFAeldo6VNO9CA9ehA8B8CA5yKBUFAekdo6VHAKCPUUJUhBKRB8FyNAUEAyFAUid6GfFP6CA9egBURB7FyNAUFAond8GfDP8CA9ydCALB8FeNAUGAeVAoOd8GpBP9CA96C7CUKCAzBoCA6AUVAoOMyBRU6pBP8CA98CyYA9CKyBoDC7AyOMyDRA6o99P9CLDB9C6A8CUyBoDC6A6BfZAf7A6o99P9CLEB8C6A8CeyEeEBpZAf7A6fAP9CLGB6C6A7CyyGBZAf7A6fAP9CLHByaA6C7FA59MoGQ8GfAP8CVIBoaA6C8FA58MoGQ8Go98P9CVIBobAycFK57BAELKFQ8Go96QKWK8BofAKcFU56AoKLUDQ9Go9z6UWK8Be56AoBFUjAKTAoKLoCIyDIK6o9z6UWK9BU5yFAK5UjAKgUUDAUBH8Gy9p6UWK9BU5yEAU5e66UeGH8Gy8UEA7QoVK9Be5yEAozF8AKEUyHH7G6IB76BAFA6K9By5oDAo5U5eGAqFAKBAo77Gy79R9A8A8AfKB8FUCAo5ezA8Aq87G6C8AotSKIMATF9FUwBAFc6G8BeBAKEA6A8EB88AVXB8F8FewAUBA7A7ce69BKKAKND6fySF7FoyA8A6ce7AKC9DNPB9F6E7AeEFAHA8cU7AIDUcf7B9F7EyFAoGAUqAyJcU7KHDyEAKUf7B9F8EoFAoHAK57cK7KFEoGAKLf7B9F9EoFAU66cK7UBE8AeGA8f8B8GAtHC8VfA5gKSGAtAoBGg8fgAXXB8GKsAeCGM8y66AN9ATGUBAelAKFGM8y66A9mUTG6Ey59cy6yLmKTGyjAKKB7AUocy6oMmURGyhA9AyRAUiAUFHKCVK6eNmUKHKhA6AUDAKBA7BeBDoDAy7ACVK6eNmUJHKrAyJD6AeGAeFHACBABUA6eNmKJHeqA6A8AKDDUDA6AoBHoBA9AWAGKQl9A9H7D9A7BUfAeIH7AKKAMAGKQl7BK78EAFBefAUHI9AV99GKQlyNH8EeCBefAUGJAET7GARlyNH8F8DADAo9UFT6GASlyMH9F7DADAe9eFT6F9B9loNH9F8DACA7JKBH9AVRF8CX7UNIAxA6AenAeDQeDL7F7Ch7UNIKZAKYAoDEABAp6UFL6F6C5lKMIUKB7CoEAUyP6A7Ly56C5geCEyKIyJAyBBoXAeCFf5eHLy56C7f8A6D7AeCBU96AyQB9AoHE9PKILy5ydf6A8DoFAKLH6AUUA8BoBAUPAyGE9NUEByHL6FoefyLCARAKKH7AUTBUOB6AyEFBfA6BeHL7FeiJ6AeBA6T8CASB6AeKH8AUMB9BURBKCE6NALA8A8D6AeBAK76FUkJURToVAUDBKRAeKH9AKLCyHB7FeBAzdBeEBAlA9HUyD9AeBIyXA6AKIA6BKEPo5oDA8JeaAyJAeHBeCDUGAzdCyoA7HeyE6AUDHoeAKGAUNAeMO9FeEA8JegBUGBeDDKEA7M8C6EUDHywFoKAK59HzsFeFA7JefBoFBoCELcC6EyBHywFyJAK57H9OU5VFDeOAokAKUM8C7MAvF8AoBAKCFy8VpFLFDoPAeSAeOAUUM7C8MAtG8EeBBA87CyCLKyJ7AUFD6BoDCABBeCCLaDBTEo69DoFAeGAo9AXAzJFA98AUED6CUBFLaDLSEo69DeHAUGAo9KWA6K8E8K8Dy7fZDVSEU7KfB8AU9eMAKFBKMAKmA7E9E7K8D6H7L9DpREU7ebLyJAKBB9A9A6DANFynLKjH6GUHAKDE6DpRD8AUBH7CpQA7C7AeIC6B7FylLyjHe58B9EUhL8D6IUCAUTMACEUWCA56DzQCUBBA7eCAK5yXD7DzSB9AKHAKEJePQyVCe5yhL8CUFAoXAKxF9CoiD6L9BeBAKHALDA7AUBQ9AeDA8AKFCo56DVTCKFAK7y59C7DUkL9BLQAV89AKBAoZF7DVSCKFAK76BAEEybC8EBSA9iA59DBTCK8KBBetC8C7EBSA9iA6AdL9CUoAUDAoNAKfEyeCKsL8A8iKNAUuC8L8CepAKDAotA8AygDKSE6L8A6ieLAexC7L6CotAetAyLDAhB6E6L8ArtA8A6FAbLyYH7AeHBARCyiAKDAy5fRAXvA7A7F6CLPC6HyCAyHAoBB8Co96u9AoIF7CBPC6JeBB8Co97u9AUJF9B8L6A9AKPLUYJ8v9B6AKrB7L7A7AePC8AUYAKJAUtCLCv8GKOL9AyFBybAU8UQK7v6GoNMAEA6BzMBo77AKdv6GoNMKDA6A7AUGEKBE9AKVBA79AUdv6GoNMKBA8A6AoFF7AKgAeVAKDAy78AUevo7AJMKBBADAyFCyBDACDKEK6Aoeve7UINUDA6AoYAU6UFKyDDi68V6AeHAe87A6KUFDs68V6AUJAUuAKoA6KKFD5u8V6AUJAomAUtA6KAGD5j6ALKV7AUKAe8oGJ6BAkjyHKqfAK8oGJUPD6jyKKNQAy9ASD7j6A7KXRAe9KUD5kKBKhRAe9AWDq9ADRWeAL78Cekc6A6RMeAV76CUmc6A6RMeAL76B8Eg8yHRYBCeqcyGR5n9CoqcyGR6eUBJyYEM86AL8NBAU96CUpu9eKCJ7CAqvg97AU97B9EY7y6UCXUCJ7B7Ei77d6AK97BUwv7nyKE9v7deBKKBAoCFY77ts77ts77t5v6X7A5Vi76XULA6A7A9A7A8AL7i78XKMAyYA7AL7Y78XKqAoERO78XUrAUGRD87AK9ChAKCE6RN87AU89X7AyGDV7h87Ao87ZyYRh88Ay85Z6B9R8m8A7Ig56BB87m7A9IM59Az89m8BK78aKBTX8yCAKMH5t6myDAUKH5Y9AMFm6AoBA8H7t5m6AyGAK76t7m6Ao8i58m7Ae8Y59m7AK8O6O67us67us65u6ui68r6AKau8q6AyEAUau9qUUCE69p9B8AeFB7u8qASAyEB6u6qUSA7AUQu6qyPC5u6qyQC5u5q8BoZuscByZuifBAcA8A5s9rKHDKIA5s8r6AUmAUCtO78ti78AeCs9v7AUDs9wiwwsvwiwwsuw6s5w5s6wsuw6s5w7AyBr8xslx5r5x9rY99rZCq8ysay6q6y6qtJqPMBeGoFgP6BWe5lPKQW65pO7B8W55rOoXV95zN7C7V655VbEMK55pZEWI557MKtU8557MKuUj66LowP6AeFA7DF69LKyPySCZ8VDFL5oWB858pBFVyC8B5588J7FpqAeEC9Bt89Jy68M6EAJ59e9o7BYEUD598Je7pU6sJU76AoOKQsJU96J96sJU96J66vJU96JkyJK97Ja5U89J9B6AK7k5o88J9BKHAeFA9AK5k5y88KAKC6AeDEu58I7KKBEAs658I6OeGAoh659Iz5yf66K86PeFA7B666y8z68Bk6y8z7KH668Iz7eF669IwwI58vIwyISzIS6K7S66G587U59X9AQhF8X8AeqAZ9U5qlAopAj9e5gkAypAj96E9X7A6EAD6BEgmA7D9AkBEWoA6D8AuED8YKHD7AkID5YKHD7AkJDqrA6D6AkKDWsA6D6AkLDCtA7DyD6MC8Y8A6DoD6OC5ZAHDUE6NCqzA8DAE6QCM5eJC8AkTB8ZoKC7AkUB6ZyKC6AuYA9Z8BAZA56ZA7Z9BAaA589KJC6A589UIC6Aw9eJCoE6bAM67A8CoE6bAW67A7CoE6bAg66A9CUF897A8CKE899A9B9AeDAUGAS9AJB7A9AKH889A9B6B8888BKOCI87BKOCI88BKMCI89BKKCS9KLA7Cc9ULA6Cw9Un89Uo89Kq889Em88E5887E688yu886E5887E6887Ew87E5887E5887Ew88E5886E6886E788ov88ow88ov88yv88ow88ew88ey88K5m8Az88Az88AzH"},
{name: "World", landColor: [165, 145, 125], waterColor: [15, 15, 69], glow: [250, 100, 8, 25, 15, 25, 90, 8, 32, 3, 9], data: "AR56AKA999AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99ADoET99AGCAUDAe8yNAUCA6Ed99AF7eVAKYAeCAUBGAEAU68AeB999AF57GerAUJI6999AFmBADHUUAoDAUGBAEIT99AFhAoCIyKB8AKFAy9yGAT99AFPJUKA8AKbAU9yQBqsAd99ACvI7BpgAyCAUCAoUX8AT99ACkAyII7BfgAedYAFLeBByC999AA99AUBA9A6H9A9AeBQ7X9A7AyBA7AoIAy86AeJBJ99AA9yOA7HeJRMVAKDAyNAUEAoDAKEA9AUHFACEyR999AA86CAPF8A8RqRAeFA8CoCAyIK8B5999AA8yXAeDAo56BB77M7AoGAUEAK8UDBeDA9AeBApUB5999AA68AoIDUEFoORfZBeCB6HeBC7AoIALPA7AUKAoB999AA59AeJDUDFeWQzKAUHA6AeeW6A8AeT999AA68DoDEedQBIA7AoEAUHA7CWmCd99AA67D6AUjDp6LIB7AUJA6B9YeTBAB999AARBAgDAEC7AeEDL6zJB7AUKBoDZKSA6A6999AAQBeaCoOC6Cz7zMDg7ULAoGAKG999AAMBeGAyNB9AoNAebB6R7LoBAUjceS97oLB6B9AyIBKSAUtA9SpQAKDA8AeQAeGcAT97ABAUKB7AyCBKGBKJBABAeEEoJSzTAKCA6A6BUGA5cKQ978AehA6A7A8DejBf8zeB6A9A7b6A5979BAeAeEAyHAydAeGC6Cf8UCA6MASBKIAKC999AC5yLByDBUCB9BKTA7AoaC8R6AUDAUDMoNBAM999ACoAoLBAQAehAyBAUJAyIA7AyXDV8BZBoMAUDAq88BnfBemAezAeKC9D8SzTBg6eBEyN9cBo7UECyjC9T6MKJc9AUSB69WB6A6AeRAKtBULAUCEeaAUBSKHAfaAp8UKL8CnLBACA6CyEByCBAFAeCA8CACDABByiRUNALdAV8eLL9CKEB5886BoDAeEA6ByHByFAoCAUMA7CUDAKCAeBAUCAyEAKCAUFA7D6R7BACfAOL7E688AMAKBBULBKGByGAeEAeJB8BUhAKrB6AUBA7P7AoBd7CpFAUNE8877AeBAUCAoEAeDB8A9A6AoEA7A6AeFAKJB9A7EKCEoCCzyd9CpDA8A7F8JKIAyD777A6AySA8ByJCALAKJBAUAUDAy8pwdoXK7H7I9BKBA6AeE766AeGCKIBoKCAHAoJBKBAUDAUFCK8VudUUKK88IeCAoTAUJ766EyEAUNBAHA8AyxIBvc9AKBB6H6AKaJe8UBA6C9AyCAUE7zBKCDKEAoMBAFBKFE7IVqAeCAUEcABAKRKe9y89DAFB6756ByDA8D9BAFE8IpqdAQJ9AKDJ6JoPAUGBoN7wBo57A8A6DUBBU88OW89B6KU9y99A6DoF7xBK8KDAeNAKFAeJJLrc6BfGJc5yPC8AqOOg86BVGAKCI7A7A68sB8AoGJABOfmdANK9I7A8Ay87AKQAvjDA67AyKBKBAziN5dKNLe8oEAUCALKAljDKkAyRA6AKHA9B7BeILflc7BzII7AyDAUCA6ALHA77YDehA9BeBAUOAyTBAMA6A8AUNIzkdAMJLCBUMAeRB9A6GAK7SDelA8BUPA7B7BALAyNAUOIpRAKFAUHdoLFKED6KUJB7AKSB9B9FAK7NDKFAyYA6AUEB7BAJB6A9BUFB6AUOIfPe8BU5eGDy99A8EAUCR68C8AyJBeBA8A9AKCBADA6BACAUEB6A9BKEB9AUPIfQAoHdyLHKCB7AKFJ8AK5yMCb6obAyUAyEAyLBAFAoNA6ByJBKECADAoEA6IpRAUJdUNFUMBKBBeDAz8876UXA6CyEAyDBKLCoEA7ByNAeUA9A8IpSAUHd6BA5eOA9AeIAKLS8E8Bu96CoDD9AeKBeWAoHByOAeTA8Be78MKDA7doLFePA9AUGAyKTApCKCAk8yXA7D8AeLB6B7A6AyQBeECyCBo78MoEAW9yMFUQA9AUIA9A9S6D9CACAeCAUCA867KWAypAeLB8ByGAoQBoDEy7zbd6By5UQA8AeLBAHSKtCeEBk69B8AosAeLB8BoGAUSByDEo7pfdeRFKQAyGAeGAKNA6SUQAKbCKFBUBAQ7AOA6F8B9AyBAeHA7ByRAerHeHAfWdoRFAPAyIAgKBeDC7D667UMBA5yUAyKA9BeTAUtAKHGoGA9L6d6AKCAUBBAvB6A6A8A7U8BKGA6A7AUCAKEAUsL6A9o6AVfAyVFAgBeQB6AK5o7eBAVHAeLd7AUCBAsCAGA8BCFBAWAe5pJBr98A6AUBO7FygByOAKGG7G8AKHKoGBA5oBNoCA8ALCBKqCeEB6AgHA7IAQAo87Br9yMAoDN9F7DAPBo7y77KoFBB87AKJApCBomCoFW7Ao8UIB9IADneeOA56DAPBo8K58A8A7KUFBB78AUGAoCAUDAUDAfBBUoCUGii7KfJ6AK6emC6B6BonAKqF8BADJ8BUEAKDSACAKBAKDAeDAUEAUIO8CUGi5uUEAKuIeCFKBBKnCUTB6AeCDKCD9GfIAUDTeBAeGAUWLUDDKWA6i7te67A7AezAKCAKGAyoGoTB7CKBAeeAokAUDFUHAVRAoBRoBAyCAobLyGC9CKGi8s9IUuAyGA6D9G6CAPD9AoBAUDA6AyqFKIA9Lf68AeKDLSA7C6CeFi9DoEA6A8no86EALAUIA6AeFA6B8GADAoKAeIBUdA8BeBAKBBKnFKLAeCAVKRAEAUBAUmAUBAoEK9AeCAoUCoEjKgA6AyYly9yUAUFC7AoEAoLB6F8B7AyCAKCAKFA9C8BALAKNDy5yLAfMRUHAUvLoPByUA5loHAoKC7k8J8ByFAoeAUEAeOB6D8AUSBoJAeBA8BKBAKUBUVAUDD7FUHA7K7RA6y6oFEeRBySA5myLDX57KoJHAUC8AeSBKNA8BeHAKQByLAUEAUFDACAy66Kp67AKEG7AKJFKIEeTBKSA6AyFl7BAji8K9A8HUSC6A9BeGAKDByHAKBBUFAyOBoJAUJDy7BFQ8AUHH7E8A7EyVBARB9l8A6D7h7MeCH7AUEA6CAJAoIAoJAUFBoEAUCBUEA6BeOCKDAobHBEQ8AKBAUBAKFIAuAyOAeTAoGC6A8ByKA6A5l6A6ENdVeEB6A7A9ByBB6A8BANAUIA9B8CyBAUZHVARU9o6KFA9AKEA8AefA6B8AyKAibggPAyBB7BeDAKbAUDAKLBeDA8A9BodAUEC6GVASADAy87CoHCoCAUFA6B6AehAoTAoMAicf8VoZAeGA6C7A6BUQAKHBAOCoGA8C6F9IyBA8AKCR8AKCAKIJKXA8B8BKHFyCB9AyMAYgf5VAgBUDAKVA9A6C7A6AUCByWA8AUBA6C7Fy87AUETeBAU9oUBAOJ6A7BACr7fWFCKCA9CATA9AeeA6CAUA9AUFAUhE9I7T8KeQBALJ9A8A9AYpe9U8BKJA7D6AUKAefA7CASA9BAjEo87UVEBoGBy99A8BADshFW9AywAofA6CKRBAKDysI5UpGBUFBVCA8uDBXUDE7AohAeXB7A8BUjEe85ULKBUEBVDA7uq97XoCE9AUgAUYD8D9D9IqCLKLA7A9KUIu5ef7oDE7Ao9oCBKmEAEAKkIWBH7AejBeFA8KKJu7AeDdACAL7AKE6AU97AKJD9A8AKmD7H9UU79AUhBoIAU9yCA7A8vADBC8p66A9FKBJ8AUGD9A9AykDo79Ue8KGC7B6KoFAoFvoDBW6yEBL6AOA8AfeA6A6AKDD8BeHA8AeVDo8AyAKaAVXIyICUHAUHK8BO9W57A7Bf5UgNUGAUBAKpC8AyRD8HyBAK5UECeEAKCMU8eOBeIA7AfQAY59AKBAKhY9BoBAUFPyCA6AKGB6NoHAKqDAGBymGyBA8FUCAUEA6AKEAUBAUCBLTJAPAoKBKB577AojYp89B9L9AUNAyCAUCEKaAKCA8BeoGeCAo5yKAoDAKUL7Jea59KFD6X8TeLAeFL9AoJAeGAoBEKZBAJAKCEU6UCAU57BKEC6LypBArCj96AyhX6TKIAUDNAEA6AoEE9C7A9A7E7Fo67BKCDLNEANEAW6AAoFAeWYL87A7AoDNANAyBAUdAoGAKBDUKA6E7Fe76D6LKoB6D9CaBByQYf8oIO7AoLC6EyKAKBAovFe7ylLemB6EAX6AB6BqoS9ApxAeNCUwBeCE8E8H7EBMD9B6EAJAoL598B9BqmCUBf7AoPCAzGKxHUrLAoB6EeIA6BF97CoIX8B8A6fyFB8B7ByBD8F8AeEEe78DpMEUOEoIBKE59AjA8Y9AKFf7A6CAQBACAeCAKCDy57AUCAKCEe79DVKAUBEeME6A96ED8AKCAW5rPA7CASA6BeiF8AKDEo8UbAUBK9E7BUzA96CdrHAKGA9CAmDe6AuIKaLevBU5oH6Ic7e7BoOAoJDoiF9E6H8C7LyuBU57A56KcrHBeOA6A9DyiF7E7I7BpSE6BQ76E8AMfeUTAUEA7BAFByCCeMAURF6E6I9BLPAUEEoL678EeIWNLCoFC6AeEAKVBoFBABAe58EU96ApSAKCEeN68UpAeCAp86AobfoWAocAeaByGA8GKrV8EyO68ovAWHgU8yPA6A7GemWArBu89E6AWDX7Ae8UlAeyByHAUBAK6okVyEAUrBk9UuAWAXoLHUnA6FABAoLA8AK6yiAKBV8EyPF9AkVAUJEyCT8XeIH6D8A7CKBC9AKFBU7KjV6E9By6AF559A7FeFA6YCUAoLA7H7D9A6BKCA8A6BKBCKLHUiVywB7GeD559Ay5gxWUGA8Ao8ApAKBAUMAeGBABAeBA7CUJHegPyCF6FKQGABAeC56AEFMxWoGAoGIK57AoFCoZAo7ofP6AK5y5URF9A756AFE9Y9WyOIA59AeHCzCDMLFeSF9A65rAeCAUMAouY9WeQIK6ACA8C6C9AU7KcVU5eUEUBByH5kBoKA6EWyWePIU7UaC9Ae7AcVe5UUEKEByG5iByJA7EWxWUMI6HUbKeaVo5UUD9A7B7AthB6A7BAnZABAK6eFO7By87HUdKeYVo5eUD9BAPAjhB6A7BAnZU6AJAoGAKBNeOI7HeiKAGAeNVy5eTEKKBeD5iB9AoLD8ZK58AoKBLkAy9K7olJ6AKJBWRFeTEKLBUB5jCACBUlY9F9AeNBWeHyjK8BWRFoSDACA9BPwDUmY9F7AyOA7AKDW9H6D6A6AVDA6S9AKeF6B8CUIBKJ5wDKZA8A5YKFAyJAKsA6BeQWy77DyGAVDA8S8AUcF9A7AKLAKBBKPBKI5vDURAUDBoDX6A8A6A8AUqAyPB8We78DyVAU88AeBAp88AKfF8B8AKBA8CUHAeCAZwDUQAoDBoCX7A6A6A7AeqAoKAeBAoCC7VA79DeWAU9eCWe58E7A9AZ5egBAFAKFAW7ooA6A9EAEAWCH9DyUA5f6F9Ej68DALc7D7A9AyxUe77D6B9A6f6CKBD7EZvA6B7DALc6DyKAozUe77D6CKFf8B9AKjC9BAE5wBeLAKDCyMcUkBADF5UK77D8B8A8f8B8AUiC65nBoBC7BeXBq8KiHUNAL8o76EARA9boBEUSAygCtnEUIDAOA6AW7UEAeGAKYHAEAUGAL8o7opB6BW7eCEKPA8C9CKDAjnEeCD6BoEAq7ACA8AeCCe7KFAeDAV8oCAU69E6A9AKBBrMB7A9C8CeBAtnIKOAyCcKCA6B6HyFAUDAV9A68E6A8AUBBg7AEEAPBAZC6AUD5nIKOAyBc8B6A6AK7KEAUDAV9A69E6AoRaABAyJEUNBUXCyFAjkIeOdoOA6Ao8V89HAtAUVZ7AUFA8EyJB6CUYAoI5gIUQdKOA7AK7yFAUDAL88HU68ZoDAyIE8AoSCoi5hIUQc9AoEAo8yHAKDAV88HU67ZyCA6A6HeWD55iH8CC87A7AKCA8A6HyFAUDAV88He68Z9A8HeWA8AeY5hH8C8b9A8A6AeBA7HyFAKDAf88He68ZKBAoBAUSFoDA6CUHAeOAoI5gH8C9byHA8BA78AeDAUDS8Ho66Z7AUBB9FeEA7CKHAeNA6A75fIAcbUJA8A8H9AKBAeBAUES9He68ZUBAoCAKRFeFA8CAHAUNA8A65eIUbbAJBABAUEIABAKCA9S6AoHGo7C58B6FAIA9CABAKUA9AtfIUca8A7ByBIyDAoDAWAGK69Z8B7E9A8BKUCFsIedaeIKoCAKIAMDF7GyCAKBAM58B6FAIBUTCFsIUgZ8A7K8AKCA7AWEFy67aARFeGBePAKCCFsIeiZUHLABAeBAoBAgFEKBBU67aACAKNFANA9B6AKBCPsIefAUCY9A8L6AUCAeBU6D7AeBAKKG8aeNFANA9ByY5sIofAKDY6A8L7AeCAUBU6D7AeMHKBAM58BK5oJA9AUBA9DFsIydYoDAeGMKDAqJDeBBe7g6ABAKBAKMFAIA6AKCAUCA6DZrI7C9YAIM6AyBAKBVerH6ZyBAUBAeOE7A8AyEAKCAUGDiOALaI8C9X7AeCApcAoDV6D9H9Z7AeBByuA7A6A6AeHDYNAfYJAdXoENyDAgSD6IM56AKEBywAyBAoCAyEAUCAKipUDMo9KdXUDAyBNKDAUBAWSAUDC7IWxAUKB6E8AyBAoCAyrpUDMe9edB9AWHAVpAeCAKDW7CA87YULAyQE8AoDAUGAUMAKepeDMKJAe8edCABT7A6OeBAUCA6W8B7JqmBUDA7AUJE7AyHAKCAKnp8AfVA9Ao8eeCABTeIOeBAUBA9W6BfBXoNBKKE8AyGAoaAoIp9ApVBACIoeC6AV8oDQMaBfEXeNA9BUvAyQAKPA9A8p8ApcJAZAKDVUBQKBAMZBpDXeNBAPEoGBoDBeKA7p9ApeI9Ch79W6By99XADAeOAyBAyOEoKA6AyNr8AzdAeBA6AKDAKMAe6AVU9AL5yCBqZBy96AyDWyRB6BerA9AoKA7sUGM9A9A7BKDGKTUeCP9A7A6AKBW7BzEW6B6B6BetCKBAKCsyGM9AeCAyHBUBGUTUKDP9AyIAyCOKFH6BzDW6B7ByPEAEAKWAYsAoCALiAoKBKBGUST9Ap59AyHAKBAoCOKHHoPKeCAgVB8ByPDoEAY7eFN6AeNA9AU6USTKCQ9AeIAKBAUDOKIHoPK9WASByPDACAO79A8PUFA6GKTS8AL7ADA9AKEOUJHePLMVB6A8AUBCAawoIP6AUGGURkADBVtA7HeBAyKLCXByICeZwyHP8AUGGUPkKCBftA7HUDAoKK9WoPA7CeCAeVwyHP7AoGGUMG8AW9eBBftA8HeEAUKK8WoQBAbByDAO8yGQADA7GKMG8AM9eBBUBALtA7HePK9WoPBKcBeEAY8eEQoDA7GKLkUBBzsA6HyPK8WURBKcBeEAY8UFQoDA7GeKkKCB6OUGHoPK9WUQBKcBeFAO8UDQ8AUHGoKNKBYzrA6HyNLCVBUNDKNw8Af7ABA7GoKNABYUCALrAKCAe76BLKWKLBefBs88Ap7ACA7GoJlpwAe77A9K9WUCAKGB6DAPwoIRADA7GoILyCAUBAKCZByAK78A8K8W8AoWCoRwKIRUEA7GoHlpxAK78AoDALDAUBAeEZKVByBAO8yCRyGA7GeFlzwAU77ApFA7Aq56CKJAoB66eGA7GeElfxAe8ABKUJA5ZAbA767AHA7GoBloEALrAf8UKA5ZAaA567yHA7reDA8OKDSUKA5ZARAKHA6676A7A8rKGA6AKBN9Af8AKA6ZAIAeDAeBBk77A8A8F9AX7AIAyBALlAL8KKA6ZAICu78A8A8F8AX7ALA5f6BKGZAEAUCC5679A8A8F6Ah7AMAg8osA5Y9Aeg68AIA8F6AX7UJAg8UuA8cQ8UHA9q9A9AeCAM78BoEC8BM75686A8BEbA9A6b8ByGCoKA8AM66689A8BEbA8AyCAM7yRA7CKLAyBZ9AeH689A8BKzAN76A7A7beUA7B9ByCA5Z6AyE69AIBObA9Aq7ALAyKA6B8Cg55699A8A6rUJAq68A9BKeCg577AA8A5roHAz7ADJUIBycCg587AA8A5roHAz67BK86AySC8CqwAeI7AA8A5roGAp67Be8oECAaC6AUCX97QA9AslAUFQoPIeECKdC7YHQBADrUDA8QoQIUDCAeC7YlPBKDrKIAf6eRIADBoEAedC7Y57OBeCrAKAL6KZHyCB7DecAUBYbOBeDq9A8Af58C7HyCB9AUCC8CyBAKCAMw7JBoCq9A8AV57C9KAcAUIAoDAUCAeCAoBAMx7GBoEq7A8AL56BoCB6J8E9AUEA6ZHFByEqz6oOAUSJ7E8AeEA7ZbDB6AsYQUOAKBAKSJ7E7AoEA7ZgBA5x6B7A5qf6AOAeUJ8CKBCeDA6A6Zp97A8F9AyDAYcB8A5qL6AEAUFBKQJ8AUCB6AehAg5z9yIF9BfJAUDAeMAW97B7A6qB67AKPAyHAU99AeBByDdf66AoTBA6AQDyEG8BeCAUDAq96B7AoBAsQS6AKJAo97AoDAyBAyDdz6UHB7BU57B9DyHGoFBKId7B8AiVT9AU96AyGA6Aq97QAHByQFoVD8Ae6eFf7B9AYUUALJAFAUGA7dz59BAHAoBB8FeVKeGf7CABEABl8TAGAURI6A7AKFA8dz59B6AoTFeWD6AU6yEf9GACl8S7B9A6Ay87A9A8d7P6B8AyRFUXC9AeDAKCAK6yEf9GACl7SyLAeKAeHI9AUDAUFd9HKDIARBAOE9C7C9AU7eEf8GKBl8SoLA6B8H6AeRey66A7IAQBUNE9C7C9AUDAK69ArSr8SyLA8B7HKBAUKBXDG8A6IKQBUCAyCAKDE9CKFAebAKEAK7KCf7CoCDUBmB8oLBAJAKHG9A9AKBBhFG8A7AeBH6B9B6AK5oUD6AUDAK7UBf7CoEC7AX8L8oBAKJBAKAKHGyKB5e7G9A7AUCAKBHyUA9A8FKUD6AeCAh89CyECyDmB8eJAUBBKKAKHGoIB6e9HAMHKBAUVA8BKxCAlAKDAX9AaAyXAX8L8yGByKAUEGyJBXOG8Be7KYAoQE7CUkAUCAN9AcAyWAN8L8yGByKAyCGUKA8AUBf6G9Bo7AXAoUEeTAeDDoCnecA7B9AX8B8yHByJGoBAKNA8gAzAKRBy68E9EeSEKBnUeA8BoBmf86A6BoKCyCD7ByIgKxA6BoPG8FUqB8rUeBKHAKDAN8f8yGBoKCeFD6ByIgUxA8BeOG8FeqB8rKfBeEAN86SyGBeEAUGByNDUTA6gowBAOBe67FoqB8rAfB8AUBmV8yHBeCAoFBUQDKWArYEyPBoOGy56EATq9DKTmf86A6CAFBKRDAXAW9UFC9EoQB6Be6o57D9B9q9DKUmL86A7CAEBKQDNRB8AoDA9C7A7A9B8B7B6GA59D8B9q7DeUl9S6A9B9AeLAoGAohfy6ULA6CARBoBAU5y6elB9pKBBodAUDCN77S7A8CABF9fo6ePAUVB7B8Fo6okCYIAoKDKZl6S7A9H9fy6enB6CA5U67DeWo8AoIDoWl8S7A9DKGENRGKhAKHB6CAyHAgC5ooIAejB8mL88A8DAHEXSGKeAeIByVE9HKgC5oKvB9mL87A8CoMEhTGKcAyIB6CUuHUhCsBE6AeCAeEA7mL88A8CeLErUGUbAyKByXEy7UhCiAE8AeKA5mL88A7CKME7f9GKcAyLByXEy7KiCUDAr9UyAeLAr8B88A6B6Byzf8GKcAyNByWEokAKiDyVAKGnU5UEBACl9S9AyQBe5rSGKdAoOCAREoYBeiDoVAKHnK5UFnB89AeSBK57f6GKeAeQB8B9EeWB9C9D7CABA6nA5eDnWMA7FXXF9DeCB7B7B8EyTCUcD8C7nA5eCnM7NZF6FyRB7E7ByZCypC8m8F8AX85arhFe6UPB6E8AUBA9DAUEecm8F7Ah8q6XjFKoAeXB6BUsAeCAKrAKBA7AUFEycm9FoGmW69g9E9EAFCeRBKaAKBAoJA9Kyai6AKrFyFmM66hexD8A8CoRA9CeEAKHAyNKeRAoCi7A6D8FyHl9aDnE9D9A8C7B6A7CeaK8B6jeHD6F6A8l8aDnE8EKHC7BACAyGB7AUEBeBAeBA9LANjUJDo57A9l6aNnE7EUHC7A9A6AeGB6AeDBfVB6jUJDo58BD7q6NmE7EeHC8A8A7AUHByTMKQjKJDo6AKlq59h9E6CKBCUHDKEA8AUIBoNAKEMKViyLDU6KMlg58iAtByDC8A6DUDB8ByRMKWieLBAFB7GoKlg57iAuBoFC6A7DUEB6AKCBoQMKWieLA8BAOGyKlMwAUHiKuByEC6A7DUGB7ByTL7CDtBKGByLGyKlMuAeHiKvB7AKbA7DeFB7BoTL8CXrBeDB6BK6yLk9Y7AKFAUBiKwEyGDoGB8BKQAoBL7ChjAUDByDB7BK6yKk9Y6AUFiowA8AKlAUlAyVBABAKPAUBL6C5hoTAeRBo6eKk9Y6AUFioxIyCCUKAUCB8LyaheTAKUBy6KJlCuAKGZABJywIeDCULAeDBpQC6hepBy6AKlCsAUGYoBKAvIoECeMAKEA9AKBAKCLyahonB7F9BD7CsAUFi8Eo8yDC6ByJAKBAUBLyahymB8F8BD7CsAeDi9Ee8eBAKDCUBA6AUDA7BABALSC6h6D7B9F7A9lKCAMoAoCjAqHAFAyFAKCC8A6AeFAUBBVPC6iABAKhB8FACAoJlqpAeCjAqG9B6DAJAoCB7LoaiUgAeBByyAKDBD7qpAUCaUCI7EU69BygA9B9AKCLoaiUIAedBU5UMlWpAeBjKqHKODeJCBQC5ieGAydBUzBX7CrAUBjUnH7BAjAyCAUUL9CNrA6BKXBopAKHBh69YX56D7GABCAJDoGCzTCDqAyOCUOD9AUGB5k8YX56AKCAoEC6F7A6CAHDoGCzUB9ioCByXBenAKGB6k9YD69CosAUDAUGA8AeBB7AyiAKBAybL8B9j8AKBCoND9AKDB8lCqk7CeeA7AoYAKDB8AolAobAKBBKEB7AKFAU78BKEAN57CyRD8AUBB9k9YX68BAmBeBC9J6A8A6BoFAKDIKFkedBymCX68Yh69A7DexJ7A8A8BKJs9DAPD8CX68Yh69AyfFU9UCAyGBAJBExDKPD6Ch68YN7UDDA5o9KCCeFBixDKPD6Cr68X7l6AKeFy9KCEYuDoPDyYk8YABAOBF6N5s6DyPDoZk7YN7KDCo6VhsykByeAKEC5k7X9lKFCK6y67AK6ssD7ByZA6AeVAKDk9XoCAN7UGCA6y66AoCAUvAUJsolBySD7AKDk8X5lyHA8AUHG7G7BKmA6BEsD7ByRD6AKBAKDk9Xr7oVAK7A7UJDeIBErD8BKVD6AeDk9X5le9LOA7BYrD8A7CoYAKIAUClqilo9VPAyNsonAoYCyDA6AeBlqel8JLSAKQsylAeYBeHA7A7AN8Mal8JBks8DyBCyMA9A8nMVmA89N7tA57A8AKCAyCAUBAUJnCUmA9BktU56A8A7A6AUHn5V6mA9Lkte56A7AeCAKHAUGn6Vh8U9UDAVfte5oDA9BADA5n8U9mU96Ni5y5eEA8BAFAh99U7mK99AKBNE56DUBB8A9AeKA7AYAU5mBDNE56DKDByKAoGAeBo9Ur79K7M7t8DABB7BUDAsOUh79LBZt9E8BUDAiOUX79LezAe69uAwBKEAYOUDlAKqMomA9G5uKqAKFAKBAKBA7qB98mLbDeNGs6U5UGqB96mfeC9By6i6ovAKCA6qB95mpgC6B6Gi6yxA6qB9r8phCyVF9t7AUHE7A7qB9h8zhCybFY59AyFEyHqKJAL8N8ziCycFO6oCAeuA6qAKAV79mzkCocFE67AKCE6A7p9A9A7Rr86N7CekCeDB6u8E8A7p9A9A7Rh87N8CenB6A8Bi7KvAsWA8A9RN86OyREULBKKvoxAOWA8A9RD87O8BotA6x8vKIA9RD87PAME7Ai98vUIA8RN87PUJ5wveHA9NyBAoBDD88PUH5vvyHBBdAKCAeCA7C6m8PeFP9AN88FUBqUHBBVAeCCKXm8f7AN87AeBvUHBBVC6A7AUOm8f7A7m6AeBu7A7BBBAKCAKTAKBCUEAyNm7W9AK8yKm8u9A8A9KKBAUBA6AUMCeCA7Bh87W9AK8yLm8u9A8A8JyCAUJAUEBAiBX86XACBKBHAOm6vKHAUBAy9yUA6AUBDoMm5XKCBKBG9B6m6vKHAKBA6JoUA6AeCDeLmqhAUKAK7KOm5veGA6AKBJefAKiBD66AKRXeCBABHKPmi7yFA6AKBJK69BD6oCB5XyDA8AU7UOm5veGAyBAK89HKKmClAeHAU7UPms7oFA8IeCAK7eKiKCD6X9AUHAK7oPmO76A6A7Ie7yLjABBKCBqoAUHAK7oPmi7oGA8IA77BNvAeMAKOYUCAyCHyPmUrAOXAKGA6A9H8H7BXvAeLAKNYyCAoCHyPmAtAOdA7A9H7H8BXwAKEAURY9AUDAy7ePl8v7A6BU7U8AMjeCBg5eDAUGHePl7vKEAUHBK7U8KLk8ZoKHeTli7UEAKHBK7U8KMk6ZyLHeTlY7eMBA7K8KNk5Z6BK7oTlO7eMBA7A8UNk5Z7BK7oTlE7oMBK68IUNk5Z7BU7oUB6Arvv7BALG8IoLkq59BU7oVByEi5v8AUBA7BK68IoLkg6AMH6CAKAKCA6is8KJBK66IyKA7Ah5W6KNHyYAeMiKuAYlA8BU6y8yKkM6eMH6D8iUtAOnA7BU6o86A9B6ANsayMHymii8yGBK66IyJkC66Be7ohAKFiO87AyKG7IyJByBig68Be7eCAKCAUaAKFiE88AyKG7I6A7kC68Be7eFAeYAUGiO86AyLGy88A6j9bANHeEAeXAUKh8w6AyNGe88A5kC7AOHeCAoWAoOEACdO86A6BU6K9KEj9bUNHeCAoVA6B9AeBB8AKIA6c8w7A7Bo58JeBkM7UOHeBAyUA6CyICg87BeCveHBy57K7AXubeNHeBAyTA7F7c6BUEvUHBy57K7AXubeNH8B9A8F7c6BKFvUHBy57K7AXtbyMH8B8A9F9ceMA5veGB6FzHAhtbyNH6B9BA59cKMA6voFB7FpIAXsb7BU77B7BU58b8ByGvyEB8Fi5g79BU76B6Be58b9BeHv7AyPFfJAXpcKOHyEAeEAKBBy58b8BeHv7A6ByzLACiC8UPHoCC8F7byPA7v8AyQFEzceQKy59bAPA8v9AyQE9tM8eRK8F5a9B6A8wAEB6E9tM8eRLK5g67B7A8wAEB7E8tC8oSLK5g6ySA8wAEB7E7I7AX6M8ySLK5q6oSA8wKBCAuIUOjq8yTLK5qtAKQCAHyetH9CDzc6B8LU5yEAWlAUKAKCCeFyotH6Crxc9B6Le6BPALWAUEAKBAUBC6A5yyrH6A7A7BXwdAQLe58LoEMKCAKjAjGEe7yGA7B6i5dUPLo5zLAKFApVAUBDyCy6Ee7oGA8B9iM9oOLozB8AU9yBAyFL8AKBD9APGEe7oDB6B6h8d6BfOFURAU88AKEAKBAUBAKBA6L7EUBy6Ee7eDCKOh6d7BVNFoPAe8yBAUBAoBAKML65xEe8KDBoOh5d7BVNFyOAe8oCAUBAUQJKBB8AKB55orIADB7BXhd8BVMF7BoEIKYJAFAUBBP57EewBKVAUXA9hM99BVLF8BeDH9C8I7A7AKDA756ArEoPE6BDed9BVKGAMAe78C9I6BUE56erEKSE6BeOAhKd9BVJGKLAo78DA8oNAj6etD8CAuB6BKCfW98BVIGoHA7H7DA8UPAj6etD8B9E8Brad9BVHGyFA8H8DA8AQAj6etD8B8FKCAKNgg98BfFIA77DA79B8Aj6KvD6B8F6BrWd7BfCAKCIA77DU77B8At59E8D6B7AUBFoPgW96BzAAoBH7H7Dy7yTAZ6AxDyQF6B8gM96B7J7Ie77D6Hj8UxDyQFyRgg96B8J6Ie7ynHKZAP57FAhB7FoFA7AUMANOd6B9Jy8e7oqG8B9A9557E9DURH9A8AKHeM96CA9o8e7AuG8B8BF58E8DURIKRd7d7CK9e8e69E8G7B7BP58E8DKSIUQd7d7CK9e8o68E8G7B6BP6AwDASIURd6d8CK9U8o67E8AUBGyQBP6UuC9B9IUSd6d7CK9e8o6yyAKBGoRBF6ouC6CA8eWdW97CK9K86GyyAKBGoRBF66EoaCA8KBAUWdM98CK87I9Go5o6oQBF67E7ByDAoRAKBI6CW9DAB9I6JA6o5o6yPA9568E9BUEAeRAUBFyCB7A6AoYA7Aq79eKTIy9A6e56GoQA7F9AtHE9AyeF6A8BoTAUDA7AKHA9b5eUSIo9K6U57GyRAo6AGAUCyewAKiFyKBeCBAFCKJb6eUSIe9U6A59G6H9A9y6IA58A9CyDCUIb7eeSIK9e59GA66H9A9zK7y59AoCAKaAhHeoSH6J7F8GK67H7BFLHy9eBe8eoTHo99F6Ge66H7BFMHsBe6B9HVAFy6o67H7BFMHYCe6B9HVAFo6y68H6BPNHECe6B9HVAFU67BeBFy7yLzy68O7AMDAKxe8B9HBCFA68BeCFy7oMz6G6oNICA6fIFA68BeCFy7oMz8GsBe8CK6BKFA67BoDF6HUM5VGEBfAUF7LeyG7BeEF7HKL5ZF7oNKCK5fRE8G8AUBA8A8F6HAL5aB9AUiPACZDKCA5fSEo7UCAKHA9F7G6AKDBFcB6A6C9PKBV6AKjfAUFfSEe7eCAUEBK59GoCAUJ5eBeJC8orLB9FfTEU79AULF9GyK5kA6BebAyCA8A9l9fUTFfTD9IUCBU59GoK556Fh76fUEAKOFfUD7J7GA6oJ557FLaAMxfoSFLXDy98GK6eJ558FBbAMwfyBAKPE9MyjJ8GU6UJ559FXiAKlf6AKBBywM6Dy98Ge6UI56A5XhAKlf9ByrNKiJ9GU6UI56A5XdAKngeNELhDo99GU6UJAKB558FLYAMsgoND6N8DfAGU6eBAKF56KyMoBY5g6BAiOKgKA6U6eBAeD56UxlNZBAiOKhJ9GU66At6ewlNaA9DfrDVAGU6oGAoC557E7lNbA8DLtDVAGU6oHAUE558EpZAMwg6A8C6O9DVAGe6eOAKBAoB556D7M6AMwg7A7Cp5UfKK6U6yDAeDAKCAKDAKC557D6l5g8A7CV5eeKe6K66AKFAUCAoDAP6KIAKXl5g9AyUP6DLCBKDE7GUEAoCAKCAUDL8AOwA6AUWlhfA6Bf6efHABDKIAyvGUFAeCAUBAeD57oWlrfAyMQofHABDKIAyvGoEBKD57oVlrgAoKQ6DK7ABDKJAowGeFA8AKCAj7KWlriAoIQ7DK7ABDUHAywGeFBeC57KVl5hyEAU5UBAUBL6DA7ABDUHA6E6GyEBeC57UTl6hy57A6LydHKBDABAKHBUoG6AeKAKFAKBAZ68B8G8ANHh6F7ApRC8HKBDUIBUnG7AUGAKDAUEA5568B7G6AoMAM95hp78C7HUBDUIBemGABB8AeDA6567AyBBK6yFA6AXAhp79C6HKBDeHB6D6GKBB9AUDA6567AoCBA6oFA7AXDAKDg6EUCN7Cy7KBDoGB7Dy8UCAeF568AeEA8GeFA8AXFg6EeEN6Cy7KBDoGB7Dy7UCByD569AUEA8GKFf8gorAzlCpDAKCAyTDo7eCBKBAUD57ABAyGGAHBABAKEeNdD6A8N7CpGAyUDU7oGBAE569AUEA6FyMA8BM98hAcAUCBLmCfGAyUDK7yGA7A757KBAoFFoNAyPd8hAVAUBB8N8CfGAoVDA6KBBoGA7AoCAP7ALE9AeBByCB7CUDb5g8B9CfnCVGAoVAKCCy6eBBoEAUBAeBAUE57eME7AoBByBB8D9AW6DcBKCAeZN9CVFAyYCo6oBBeFAKDAUBAoC57eME6CKBB8C8A6AoDaDdA8DVoCK7KBDeFCoXGyCBeCAKBAKDAUBAoD57UNEoWAKTAoHBeFA8Ag6NdA6DfoCLFAocBoDAK66AeNAKCAKBAeBAUFAZ7KOEoVAUfA9A8A8Ag6N67OUUKyEC6AKDBU69AeTAeBAUFAZ7KPEeVAegAyLA6Aq6X66OURK8AofBK68AeUAyGAKDAP69BorCAEE9bh6pqB7K9AehA9G8AUUA6AUCA6AP7ADAKKEKUA6E9AKBbN6frB6K9AehA8G8AKVA6AUEA8AP68AUCBAoCAGFq69kVsBoFAVDAegBA66AUVA6AUD58ULB7AUUCKFF6a7kVsBoHALBAyfA8G8AUVA6BKC576BAPA7ByXAo57a7kBsByGAo99AyfA8G7AUXAoMAj77A8BoKBUYAe58a8j9OyNA7Ao99AyCAKcA6G8AUaAUMAt77A8BAOBAZAU58a9j8O6BKJAy98A9C7Ao69AUbAKNAt77BKFA7AeHA8I6a9j8O7A9A9A7J7A9C7Ao68AUnA8576BeBA8A6A6A6I7a9j7O8A9A9A7J6BAcAU68AUnA9576AKBB9A8A6Ae88AyBa5j6O9A7BAIJyKC8AK68AUgAUGA858ASBAFAU87AUGar56PAGBAIJyLJ6AKgAoDBP79AUCBKNA6AK95ah56PUEBKJJyBAKJM7A6AUM58yIBVHaD5z5eCBUJJ8A8M7CF86A7BLJaD5V69BA9oBAeHMoX586A8BBJaD5V68BK98A7MeY587AKCAoLK9aNyQ9BK98A6MeDAKEAUP589AyKLC58AUBi9Q9BK99AzXAUCAKBAKEBt89AeNLC6DwRAMJ8AzXAKLBkGK9aNvRAMKAEMKCBKIAKE6HK8ahsRKMG6AKhA6L9AUKA9AUD6HK8a5iL7UMKAIJABD8A8AeC6JK9ahpReLKKKIoBAKCD8A8AoB6JLM6hnReKKeKIeFCyCBAIAoB6KLM6e76AKDAg5p7oKKoJIeHDyJ6NLg6e69B7ZB7yHK6BA8KID6A96MLq6o6oVY9RyGK8BK78A8D8A86NLeCAKFAUDAWyGeWY8R6AfKBU77A8AUBB6AUTAUBAkNMABA9Y9F9AKBCqudANHyLEKC6NNqvFydY5dKOHoPD7AaNN7Yy5UhYg6UECyPHKS6zN8YyfAKSDqqaeFCoQG9CawN9YyWAUBA7AKCBKlYW6eOB6By7AUAyB6rOCtB8B8A6ECpayOByQG9B96yOMuBoWAepByBWq67BoOB6GoCAKR65prYyKG9A7AKHAWXa7BoPB6GUV65psY6A6HUGAyCA5WC69BoOB6F9AKBCu5VtgyBAKBBqTbAOBeQF9C6E6AQFO5iWSbUNBeQF9CKzAQFO7iCRboMBoPC6AKfCa58O6iqMb6BeMByaAUeCa58O6igNb8BUMBobAKdCu57O7h6AUFVM8ANBAOF6CQ6Bwh6AUFVC8UNBANFyY657O9h6AKHU8coNBAMFyY657O9iqHcyOA9BU5oZ656PNrU6c7BoIBU5Uc65zzigFb9AKJBoIBUuDk5zzigEcACA8BoJBKtD565V5rpUq8eBA8ByIBKrD7F9AP88P7iWCdePA9BKqD8F7Aj86P8iMCd6BoCAKHA9EUlF8AZ88P7AKBh9UM98B7AKCAoJEAmF6AP9L58iB99eUSAyIDACA8D8FyB59B6hlT8eoQA8A7C8AoHD9FoC589QhkT7e6B8A7A6C8A8AeoD7AUNAj9B6XjT7d8AUHCKFAKBAKdBKCEAjAeNAeBAj8z6hjT6d9AeGCKlFoNAUSAeOAeBAj8f65hz95eKDA6CKKAKZFyLAyPAoOA758L66h7ThDAUGCeIAKZFABAyKBAJAoPA658B67h8TXFAKGCehFKNCyRAt8B67h9TNGAKHCUhFANC6B6A6579Q7AKBh6TNPCUBAKfE9BoCAeDAUDAeJB8A6578Q8gKBB6NeCFrQC6DAwBeCB7AyUAUCAZ78RNSAKSNAFFXSCoeE8BeCEUCz8AK6f7hgM9BAygAYDAvBeBEeCz8AK6V7oBANeM7BUDAKtgUVAyCCyvBUCEeCBeFx9AeCAK57SNaM7B6ErXCUfE6BoBEABAeBBoEyKCF9SNZM8Botf6AKICAEAUaE7BeBEADAKCCeExKCAUCFz8DZM8Bevg6B8DouBeBB6AeXAKCAKVA7w9AoHAKySADA5f7M8Beug7B9DeuBUDBUGCeCCKNA9AO7yDF8SKCA8fpdBetg9B9DoqBeFA6AUBAyCAKpAUBB65sSKDBNMM8BesgACA8CUdAUBEAOA6AoIEyCAKQ5sSKCBrKM9BKtgADA7CefD8ByHAoHAUCEeT5rSUBB6fBaBUsgUCA8CUgD7BySAUDCeCB8B85rUABANIMyLE5gUDA8CKIAKXD6B6B6DADCUNB9AZWUhFM7BKsgoCA8CUEAoWD6B7ByOAUPAKBAKMAKJBUJA6AeH5UUrEM6BAsh6CKEAyVD6B7BoOAyCAeVAeJBUMAeDA8z9UrEM6A9EhmCUCA6CUjB7BUwAUKBKSBArAi7CEe6MoNEDfAKGCUFAeWDyQBoYAKjA7AUBB6BtOAyBT9ezZBKoh9CUBAKEAUWD6ByPG8AUMB9zoCAV99AKBAeEd8MeCAoBAUBEDpC6AKECAkBoRGUCAeCBUYFeCt8T8AUBAKId6MeBE7h7AKGCyBAyFAeLDyOB8GKKA9C8FKBtyCAL98AKNAKBdf7DlAKGCyCAeGAoKDyOA9AoGEKBBoOA8DU5UBtp98AKSAKIcV69h8AKGCyCAeEAoOAeDCyPA8AyHDULBeOA6Do5eBtMccV67i6C6A9AeUA7AKRByIAoICKFAyPBKNAylFUBtCecL66i7CygA6AyOByJAeICAHAoBAKNBUFAKHAeoFKCs7XW8BEAK6DxCehAUJAKEBAOA9AeHCUGB6AoMAoBFywAOsX5cBDAK6DzCKxA7AKCB8AyDA7CUGAyBBKEBKEAK56xMmb9KUBF9jUVE9AyDAUSAyEA7CeDCACBAEAe56w9YC79KKCF8jeUE9AeFAKTAyFA7F8AeFF8EyBr8YW79KACF7joUE9AUaAoHA7AKBFyBA9F7EoCr7YW8A99AU57jyTH7AoHA8G7F7D7AKFAijYq8A98Ae56j6B8H7AoHA7G9F7D6AyBAijY6b8J8Ae55j8B7H7AyGAeEAU7U5oiAyBAijY7b8J7Ae5r6KPH7AoHAeCAo7o5ehAyCAOkY8b7J7Ae5r6UOH6AyIAKCAo78FAhAspY9b6J6Ao5X6oMH7AyLAo8AwDKFsW56a9J6Ao5UEAN6ALH7AyLAo8UuDAFsg58a8J6Ae5X66BA76A6BKFIUtA7AKWA6sg57a8J6Ae5X67A9H7AyNAU8ysCUCAKBAUHsq57a7J6Aezk8AUBAeBAU78AKQAK6yCB9E7A7AUBB8B8AYcZ7a7J6Aoyk9AKGALzAKIAeUE8A6AKCB7B8AiZZ9a8JoEFADAPiAeUE9BAOCADqq59a8JyDFKCAN7oJPKDCA5UIAKBA8CeDq6Z7a8JyDFKCAX7eMO7AoUFeKAyaAsaZ6a7J6AUzl7BptAeWFUqAibZ5a7J6AyxloRBUCNACCe5UqAsbZ5a7JyFFD7eSBKGM6AUYE7AKCEeEAeBqq5q68JyFFD7yXAUJAyFN9E7FoDqg5g68J6Aoyl7EVoE6FyCqq5W69J6Aeyl7EBBAKpE6FyCqg5W69J7AUxl8D6KoCEAvF6AYXZM69J7AUxmefKeDD6FY8CzbA96AewmyeHoDCyCD6DeBAUDByzAKKAORZC7A96AexnybGoEB7AKIAKkDoHByyAKLAYQY9bA97Aewn7Cy8yBA8AKkDUBAKLBUzAKJAiPY9bK97AUwoAXAUCBeCLKHAKCAUUByLFKDA8AiOY7bU97AUvo6B6AKGAeDA6AeBAKKAUMAUCAKCAKBAo7AHA7B7B7BK5UCA9AYPY6bU97Aeup8AoCAyDAeCAeCA6A6A7A7AUCAUCAUBAKLAo7ePB9BA5eCBABAoCo8Y6bU98AetqADAeCAoDAKFAUGAoQBoLHyPB8BK5oBBoCo9Y5bVvqKBA8AeCA8AKCA6BURBA78BySBK68AU6eBi5Yq7VwroHB7AUVA7IKPB8BK69AYIYq7LxryCEUHIyLCKLAKCB9AKtAYJYW7fxv6A6JyDCeNG6AOJYW7fxs8AoWA6MeNAyBFUCA6AYJYC7pRAKfsyICAGM6BKGAexAyEAOJX9b6L6AUes6A8B8A7M6By5yFpqmb6L6AedtAFB7A6M8BU6ACpqlb7L6AeetAFB6AzeBUGAY68X5b9L6AUftADB6AfnA8vqjb9L6AUhu7ALtAy6KCpMhcLPAUht7AL57Ae6UDo9XM8fPAUiueCPABGoDo9W9czOAehuUBK8ALJAUUAN88W8c6LoDDj7AD5UW6c7LoDDZ7KD5UW6c7LoDDZJAKDAe5oE5VWq88LoEDPDA8AeDAKBFKEF9AO6WXc8LoFDAQAO86A7A7AeyAo59AY6WWc8LoEDKQAO86A6A8AywAtXWM89LoEDPHAKJA8EoG5WWM88LoFDPRBUEAKDAUdA85WWC88LoEDUWAKaAO58AUFCACAecA75YV8c8LyEDUwAi56C9AKDC7A95XV8c7L7AegE7As5ojC7A95YVUBAg87L8AehE6As5ejC9A85ZVKCAM87L9AegE7A5tKjC9A95ZVM9BUAUgE7A5tAkC8BPZVC89MADDetA7s9DydBPZU9c9MKDDUuA7s9DUgBPaU8c9MUDDKsA9s8DegBPaU8c8MoCDUoAUBBEuDofBZaU8c8MoDDKoBitDyfBPbU8c8MoEDApBYdAUODyfBZaU9c7MoDDAqBYaAKBAoMDygBZbU8c6M7AUeEANqoJBAkDUM5bU7c7P9D9BsYBAJDyhBUCAjXU6c7P9EANqAPA9DeiB75YU5c7P9D9BsTB6A9DUiB95YUq87P9D8B5p9B6AUDAogDoVL9AODUq8z6AkB8p8F8DeVL9AOEUg8z59D6B9p6GKgCLTAiDC9AV7M8z59DoVpy6efCLTAeDAOAC8Af7C8z59DeSAKDpe66C9CVTAYHC6Ap69cp59DeTAKDpe67C8CZeCoGQ8cf58DAXAKCpo68C7CZfCyEQ8cV59C9CsRHAYCfVAOLCoEQ6cp57C7C7p7HUWCfVAYMCyCQ5cp56CyepUBAe7oVCVXAUBAYKCeBQ6cp5yaDEMH9B9CfXAYPS8cf5ybDEHAKDIKSCtpS6cf5edDEGAUEIUPCzaAOQSg8p5UdDEGAoDIyLC75rSW8pyDKdo6AyCI6BKb5tSC8pwDUeoyGAU87A9C85uR9cpuDefoy96A8C95uR9cfsDyfoo98A6DFuR9cfqD7DOEKABDfXAOXR7cppD8DOENjyRq8zoD9DOFNZzRg86N9D9DEGNP5p7C87N8EAeopi55f7C88N6EUdofj55f7C89NorC8ofl55V7C9BgEocoVlM6AYZRC9BeE6C7oflM7AOaQ9dLcE7C7oVn55f69dLbE9C6oLq5zQ9dVZFAZoLu5xQ8dVZFAZoBv5xQ7dfXFUZn8O95xQ7dpUFoYn6PtvQ6dzVFeYE9ANnQZuQ6d6L9FeZE8AXmQ55sQ6d6L9FeYE9AXjQ9IyCt7Q5d7L8FUZE9ANiRK8yDt6Qq98L9FAal7AeCRU86As5z6g99MAxC5l6SA86AoLAOqQXBL9E8C6D8AXiSe86AoJAYqQXBL9E8C6D8AhgSo86As5p6NCL8E7C6D9AhfSy87As5f6DDL8E6C7lL87I8AoLAOoQDEL8Eybk9TA88AyJAOoQNDL8Eobk8TU89A5s9QNEL7EobkeBAf9e9KDs9QDGL6EobkeBAV9o9KFs7P8e8L6EoakeCAV9o9UEs7P6fLPEoakeCAL9yCAPoP6fLQEeZkgF5lP6fLQEeZkgF5lO9AKGfLQEeZkgE5lOeFANTL6EoYkgE5lOXaL6EoXkqE5kOhaL6EoXkqE5lODcLyuCX6gF5mN8g9LyuCN6gI5kNoCANeLytCX6gI5jNriL6EoWkWJ5kNNkL6EoVkgL5iNDlLytCN6gM5hM9h9LevB9kqM5hM8iBME8B9kqM5hM6iVLFASkqN5gM5ipHFeRk5VtgMhtKy56B5k6VtgMhtKU6AKlMN5gMDwKK6eGlgO5eMNwJ9G7Ah7qO5eMXvJ8sUBAgN5eMNwJ8sUCAWN5fMDwJ7seBAgN5fMDxJ7s6VjfMNwJ8r9AKCAKBVjgMDxJ8sABAMP5gMDxJ8sCR5gMNwJ8sMQ5gMNxJ6sWQ5gMNxJ6sgO5hMNxJ6sgN5iMXxJssVthMhwJssVthMXyJisVtgMhyJYtVtgMhzJOtVthMX5U9EtVthMX5e89s5VtgMX5y87s7VjgMX56I6s7VZhMN57IsxVZhMD59IOzVPiL9kA8E5WK5jL8kU79tgJ5kL7kU78tqI5mL6kU77tqJ5mL5ko76tqI5nL5ko75t5U75oL5ko75t5U75nL5k6Hi56U65oLAEAN66HY56U75oLADAX66HY56U65pLADAX67HE57U55qLADAN68G9t9UtqK9AeCk9G8t9UtrK8AeBlA67uCD5sK7l6G5uMC5uK5l8Gi6WC5uK5l8GO6o7oML55vKr8A59uy7KQLjxKeCAN77F9uy68CBL5yKr79F8u6GycK55zKr79F7u7GUjKP5VDl9F6u7FosKF5fCmA55u8FUvJ855pCl9Fs69FKxJ6556KX78Fs7AxFATAK75558KX78Fi7KuFeSAU7t59KN8AzvKuFyQAU7t6BBmAxvetF7BoDHj6U99mUvvetF8BeEHZ6e98metvUvF9BUEHZ6e98monv7E7GKJAy7Z6o7UBC5mocAKGAUCv7C7IKHA6Hj6o7UCCr86B8BUCwKZIoGA6HZ66HUDCX88B6x7Ce8yFA6AeBG8567HUHB8nAHy6CA8yFA7AUCG8L6AOyHeIB5nUEy9B6I8AeJAUCG7L7AOyHyJBJIBe9ADA8AUDG6L8AOyH79aBK9UCA7AUEGzTAYxH99eAVBAyDG6L9AsvIJ99AAhAKHGpUA5s7IJ99AAoGpVA6sy8T99AAmAoCF9MUGsy8T99AAfAoJF8MeGsy8T99AAdA8A7F7MoFs6Id99AAcAyKF7MyEs6Id99AArF6M6AsuIx99AApFzdAYuI6999AAnFzcAYvI6999AAnFpcAeDAOrI6999AAmFpdAUEAOrI6999AAmFpdAoBAYrI6999AAlFpeAoBAYpI8999AAlFpeA6sU87999AAmFfeA7sU86999AAoFBgA7BACrK85999AAoE9NUJA7AsgIx99AAoEBpBKDA5re8x99AAqCACBpqB9ro8n99AAtB7AeMOeTr6IT99AAuAKDBKDAUBA9OoTr7H9999AA5yGA8A8OoUr8H5999AA59AoKAzuB7sU69999AA78AVwB7se58999AA9ABOyUso57999AChB8s9F8999ACgB6tK58999ACgB6tK59999ACgBs5U59999AA7eCP8Bi5U58999AA7eCB9AVnBO5U59999AA9oCN9BE5e59999AA9oBOAIt6F9999AA9eBOAHt7F9999AChA6t9GJ99AA7eBOUCBeGuAuAeK999AA7eFBKDMoEBAHuKuA6A6999AA7oGAyIMeFAUCAKBAeGuot999AA8yTMeKAeHuyu999AA8oSMeKAoFu8AoBEJ99AA8oSMULA6AO7KDAen999AA8eRMAOv8AKEEJ99AA8eRL8B5v8AeFD8999AA8eQL8Bs8AEAymAyB999AA76BpTBs8KEAeqAeC999AA7oOL9Bs8UDAyqAKE999AA7UOL9Bi8yCAypAeD999AA7UOL8BY87AeEEKDAn99AA7UNL7Bi88AeFET99AA77A9AUBL6Bs89AoEEd99AA76A9AUBLoNxeDAeq999AA77A6L8BtAET99AA79AzQB5yUo999AA8KBL6B6yon999AB9yUyen999AB9USy7ET99AB89B7zKo999AB87B7zon999AB8yRzyo999AB8oRzKCAKBAKn999AB8eSz8D9999AB8ATzyCAUk999AB8KUz6AUCDx99AB8KU5XDd99AB8UT5WDn99AB8KU5UAKCAKBDT99AB8AU5WAKDDT99AB78CFWAoCDT99AB78B85YAoDDJ99AB77B85ZAyCDJ99AB8KM5ZA8AKf999AB8UI5bAKCD8999AB8eD5eAKDD9999AB7yC5tD6999AB7eC5vEJ99AB67AjuEn99AHOEn99AHQET99AHQET99AHUD7999AHRAKDD6999AHLAeDD9999AHMAyCD7999AHNAyBD7999AHSAKCD5999AHTAUBD567UB999AAuD767UC999AAsAKBAyBDQ7UDAUD999AAoAyBDQ7UI999AAoAoDDQ7AF999AAtAKBAUBDa7ABAoC999AArAKCAKCDT99AHXAKDDJ99AHVAUDC8999AHZAKDC8999AHfC5999AHaAKDAKBC5999ABvAP8KCAoW999ABuAP8UDAKY999AHiCx99AHeAKECeyAT99AG76AKHCUsAoBA5999AG8KWEeEAUG999AG8eBAUSEUDAKG999AG76AKGAKEB8EADAUE999AG89CKlAUEAn99AG8oBAUU999AHmB9999AHkAKDBoDAd99AHmBUFA5999AHjBUDA9999AHkA9AeJ999AHhAKCA9AeJ999AHkBAIA6999AHgBKHA7999AHhAyCAoBAKCBT99AHfAUBAUHAUBBn99AHgAKCAUBAKDAKDBVoAn99AF96AKHBVpAn99AF9yBAeROAE999AF9KYOAD999AF9oZN6Ad99AF98CT99AHgAUCBn99AHtBn99AHuAKCAn99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AGIAd99AJ99AJ99AJ99AJ99ACdAd99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AH7oE999AH5eB999AJ99AJ99AFGAKBAT99AJ99AJ99AJ99AJ99AC9KB999AH5UBAoF999AHtAyCAd99AHtAyCAd99AHvAx99AHxA7AUC999AHlAUFA9AUF668Ad99AA6ABAeCAyJAeE668Ax99AA57AeCAKEA7AeBA7AQ67Ax99AA56AyFA6999AHrAKBAKDA7999AHwA88mAdFBHDAVgAxFA97FALfA5898AKHA969KEOAF899AKGA98kAxGBE89A8YeII7AnGBoCAs76B7TUOC8Bo8yF9EA9AKDAeCAKBvyUN6AUyCUVB6G7CxDA9AeCv7C7NUDE8DABAULB7AeED9AyNDw9yJAyCvydNADA7BoDAoEAyBAyDD7A8C7CKFAeEAeHBKr88ACA6BE8KbNAwAKoAKhB7CyKFABAc7UDAUCAKIAUBveCAycM6M9AKoA7F6AKE86yEAKLvoHAUhKoIAguAKE858AeCBO6yDA7Ee9yEAM6m58AoDA9u6AoGFo8g6686UCAoCAUGueGAU7o65bS69A6t7KoubyDAm6UGtVJD9c786yHszND7c886yHA6AOkL6DrABKC8sA7AoCoKFC6L9DhCBKD8cAUNB5n8A6CfUD5eAFAKGAcbA7BUPn7A7CBWDrP8aA9BUOAyCm8BUQMUggABAKCAwRBAFAUCB8AeCm6ByEAUIMUch58MAUCBADCyBAN8eSAUDA8MAZAKBiIMAKDBADCr8UbAKCAVWCXv799AoMBADCr7V58AKDB7jl99AyMBADC5c7AUOAUKAeEA6D7QUTj68RBKDCg8KDAeEBeKAKTCf69CD6ABAcIByDCWaAKLAKYAUOBoIEAHR8AUCBr6wAAeGByDCqjAecC6A5W6AKDBX76AKB78eIBUKAeZWAEA9AoUa7BD85777A8BeMAeaUeDBAFDC69BD8779UTAeZUeGA6AyOAKMbAMm9787AKCCKDCp96AUEA7AyHAKPAKDAq7AOnKDAR78AUBCyDCz9oDAUJA5d9Br9568yCA6AK8yLAUQAoXT7foNn667yIAeDAUBAKEIyGBALAySUXMBX9u79Cy96BeGCp95fUIn669oNG8AoTB6A8Cf9rQAN9969UCAKCByCBeCHAOA9Cf9bR68oDA7A6DACA6Ao8UbSvT68ABAyEBeEC6AUDA6FKGCUiR87S68oBA6CAeA7AUCA6AKUAeQA6AUBB6D7R87P6CA7GAFCU68B9A7AUCA8A6AKBA8D9R77W6DA9BABE6A8De5yRA9AoEA7AUEE9RbL6UA9AoKEAJB9A8Ae6yIB7Ao58RHI6cA8AoPA8AUHAUPBKSQB7KGAk9ulAeGBUJAUHAyRA7CL56R869QRAeLAoRAyZAyHA6A7AUXPp5yDB969aHAeZAKhCKGA6D7O8P6AUR69kEBAFAoKGUEAymOUBAf58AUL6896LKKnOKCAV7Q886FK8AyDBKOA9N8Ru8aMc9RQ8kEd8RQ8aBd8Q9AoD68F97Z6AKrQu9j9KHAM5yHDf587B59eKAM5eJCp6HF6IZeKCB5vJ6OZV777M6AAoMZp7RN577AKEBKQAyFZ6Q57QBKC56yRAeGA9az577VA9BF6KcAq77OvWA9AeDAj6q8AHCVp7Y585cKQA7JeND57YA8AZ6yEC5bzCB9DRa57oHCM5oGB7DeEGeVC97bAUB57UJB6Z9A8BUdA7GeWC87R588BASZ7EeJGoYC77I6AA9Cq5UmA8G7CoeCUF6696MAyiY7AeOB6A7G8CokA8A967a6C58B6Ao7AaE767k7MxFeFDAdE966668MpFyGC8C8F666D68"},
{name: "Caucasia", landColor: [140, 130, 120], waterColor: [20, 20, 84], glow: [240, 120, 100, 30, 25, 30, 90, 8, 32, 3, 9], data: "ANAAHvAE6ADs8AmvAYvA68uAOtAwyAYsAm5UDAyEreC85oEAKIrAC85yNq9Am57A6AUFq6Am6ADAoEq6Ac68A5qyC868AsZAm68AsZAc69AsYAm7ADqoD869AsYAc7KCqoD87ADqoD87KCqoD87KCqoD87UBqyC87UBqyC87UCqeD87eCqUD87oDqAC87yFp7AiZAOzA5pyDqoDtUFpUEqoDteGCUDmyEqeDt6A6B9Ar8oFqUDt8A6B8Ar8oEqeCuAHB6Ah8yDqeCuUIBoDmoDqoCueIBeDmoC89KJBKDmeC89eKA9Ah8eC89oLA6A5mKD89yLA6A5mAD896BAGA6l9Ac99BADA7l8Am99B9l9AnBB7l8AocAc7URl7AedAm7URlyEC9Am7eRloEC9Am7yQleEC9Am76B6lUD9KB6lKD9MB5lADFAD86APk9AewA6E6AcNBr68AewA7EKG8NB6k6AUwA8EUD8QB5k6AUxA7EeC8QB6koDFAC867AKBAUCBD6KE9bBN58AnlAh57A57rAp9ACj6A57rAf9UCjyE7pAp9yDjUF9qAhyAxsArvAnvArtA59vA7iAF95UDh9A5WAE7fAoDANgAgWAvgA7hUDWUFf8AONA5heCWoDf8AYOA5hUCF8As8UCpoIhACF9As8KBpyBAUFhABA8AowAnCA5g7AeIAoyATEAhaAeJAn57AhZAd7KDgeCu9APDAhWAO68AtCArUAY66A6yyCf9AO6yHy7AW98AeQAi6KJy9AW9UGAUCBoDt7A8zoDcyBAeDA8AeMAKEAOtAKGA9z7AW8eGBUDBABAeDr9B85UAq8KEB6AeIAUDAOpA95eAq78AoTAKJA7r9A75jAUNAW6UDCKCA6AUFAd8KIA6AW6KDCeCAoCA7AoFA8A6AUCAT5yCAeDAoCaUCCyFBUHA6AeDA896ADAUBaUCF8A7AeD96KEaKCGAEA7An6KCZUDAUFHeE96ABZUJH6An59AW5UIH8Ax57AM5UJH9AobAnZAM5eHIUCC7AnZAW5UHIeCC6AxZAMzA7I6AUYA59YAMzA6I8AeCAKUAxXAM5UGI9AeBAKUAKCATXAWzAe9oD9vAWyAozAUqAdvAWyAozAUqAdvAWvA7J6ATuAguA8JyC9sA5YeKJ6AKCAToA7YeKJ6AKDATnAWxA8J7AKDAdmAWxA8J7AKEATmAgwA7J8AKEATmAUBAMvA7J8AdqAeBAMvA9J6AdqAWxA9J7AdpAWwA7BUCI6A59mAWwA6BAGI8AnmAWvA6K6AdkAWhAUNA7JKBBoC9kAMhAUNA7JKBByC9jAMhAUNA8JACByC9iAMhAUNA8K9AThAMhAUMBBHAngAWgAUKBVIAxfAMgAeIA9AKDLAD9eAMgAoEBKDAU5oCF6AdcAWfA6AKMAoCFyBF8AdaAMgBeBAKBAKGAU5oDF8AdZAMeBo67Ae59AdYAgbBo68AU6KC9WA5WyOHABGUB9AA6ByGWoPNoB887AUEAUEA8BeHWeONyC88UHAeEAUOA6A8WUMAKCN6Ac8KfAKMWKMOKCRyDBeE68ouV7BLuAVrAKgAeFAKDA668oVAoVVKHAeFO9AzhA9AKCC7B968eRA9CCIAoLAV5oCNAPC7B968eQBKRU6Af7UBM6CAaCG8UNAKCBUPUoERyBMoVC6Ca8ADAoDB9Bf98A7R9AVUCAdCu79AebAz99A7S6ALTCUcCu79AecAV9ALNKCGABL9CoHAoPC5678AgRAfqAe6ABL6AKBCyGAyCAeIC6677AqOApuAU59ALODKIA8A6C6677AgMApzAK58AVNDUJA8Aoa677AgJAgPAfJDyCB6AKc67yDU9AWSAfID6AKv67eDU7AgVAVCAeCIuHAK6eEU8AMYAVAJQFAU6KGU6AWaAVAJGFAU6KFU7AMcAU97AKBJQEAK6UDRAEDoBXADJo9uEAU6ADQ6BAgAMgAe9e9uFAK6ADQ6C7BoBXoFI9J56FAU57Az66BAQBKCAWoAU87J56FAU56A6QoMC6AqpAU87J66FAU5oFQyNC9A8XyBIo996GAU5eDPeBA9B7D6BgXAK8pA557AKUAKaAU5eCPAgE8A6V7AU8VB556AUUAUYAe5eBOeBAojFKGVoDIBC556AUUAUYAU5eCM6B9AUkF6AqMA6H6Kj5yCCACCeCFeCM6CABD6F8AgPAo7zDAUB55eBCACCUCFoCMy58GKCVyCHpEAUB55eBCABCeCFoCMo56AUCGUEVUCHABALI55eCB9AKXAU5eDMe5e7eBVoBG8K9AKB55eDB7AUXAUwA8MezH6AWMAU67LF56AURAKXAUnAUFAoCAVSAKFFK78AWMAK67K9557AoOAUXAUjBfWAoDFK79AqKAU66LF57A6BKCA8AKNAogAfgA7AKyIUFU9AK66LF6KEAoJAoEAoBA7AocAzfGA87AWIAUJAK5zK56UYAUHAUFCyDNy57JUBU9AKJAU5pJ56eqCAEN6FK99AMJAUKAK5fJ56UsB6ApmFLAAMKAUKAK5VJ56UsBoDOA5VAAMLAU6LK56UdAeRA8AVgA6Ae5VBAMMAe59LF6UbA7ByGAVfBACFVBAgMAo5zM5pAKSC9A8BoEAVdG7KeDVeDFfM5oAeRC9BKQJoCDU7fBAgOAeyLZnAyQDACAoLAy98AUUHoDA9KUBV6AedAoQLPnAyQD8BUBJ9AUQH6AyJKeBV7AUbAyDAeKLPnAyOEVKAUNG6AKLA7A9KeCV7AKbAyDA8AzK5oAyMEpJAUMG7AUIBUDK8AMQAUaAyFA7ApK5pA6A9E7K6AeLG8NoBV6AUaA7AeGAfLC8AtKA6A8E6K7AeKHBiAWBAKNAUVAUCA8AVUCyJy9AyHEpKAeJHLkAf97AUPAKUAeCMydBFJAoHEVNAeHHfmAp9eBB6AUUAUCMydBZJAUGD9L7AeFHznB6SABB7AUYMybBjJAeEEVQIVzAz78AKTAUYMyaB5y8AeDEzNIf5eBR9AKUAKXM7CKTy8AoBE9KyCAe8f5oCR6AKWAKVM8CKTy8F6KeCAe8f5eET9AKUNATB9y9FzCAeDIzzA9ToBBeCAzfBUEAKVy8F8J8JpyBB9eBBUDAzgA9DFEGA6oBDK98O7Bp9ABBKEAfjA8DPBGK6oBDBBO6Bf9KBBKEAVkA9DE99GUxA6A9AUcKftAKDA9TUBA9OoKC8x8GyvA9A6AUWLB5eETeBA7O7A9C8x6G8BeCA6AoVA8AyECBMPoCPKDEACAzyA6DE9o7KEBKCA9B7A9AoEAoBBpOAeBPACToDAV5oDDO9U99BACAyBAUFAoCAUBAUDAeBAoBApPAKDO9AV96T5w7KUHAeJAyDAUCAKCAoCAKCAoCMLxAL97Ts86I6AePA6AeKA8AeHAUBAUFAKJAfJPACTz95v6AKEAKCI8AeOAoFBoEAeHAyNApJPUDS9AUCT5v6AUCL7B7BUFA6AKFAfLPyDS6UO6eBBBWB8A9AyEApUP7A6R6AKES8AeMt9AUKMUTA8AyEApNAUHP8Af76AUDM8AK6ADBO59AUFM7CKBAKDAyGAfNAeHP8Af7yDAVcAK7s59AeEM8CeDAoIALMAyHP7Af7yDAWCq7AKSAKMAoFM9CUCAfWA6A7P7Af7oDAWAq9AKSAKMAyFM7CpZA8Az6ACR8T9q9AUSAKMAyDM8C6AeCLeDAeJAUEAL59Ap7f99rACB7AKNA6ALaAKCC6AUEA7ALDAeEByCQKDNUBD8T9rACB6AKNNekA6AVCAoDB7AV6UCNeBD6K9AUxAoirKCBABAyBBfcD8A9AVCAyBB8AV6oCNKCDzBBeqAUCAyhrADA9AUEAUOM6D9A9AVBA6AL8yDN8AeJAeCAUCAeFJ8B7AeJAKCCeLDYWAeGAeJAUVMeoAeBA6AVBC8AL6yDNyEAeBAeFAeIAK99DeWBUfqeEAyDA9AUVMArAUCA6ALCC8AV66AVjAeCAUDA6AfGDyTByeqoDAyDA9AUUL8FABAVGA7AeSAf66AVhAoBAeDLeoBUUC8qyCA6AUKAUVLy56KoJAV88ALkAKBAeDLKzAUUByDA9q8AKGAUlK9F7KyJAf88ALcAeEAKCAeCK9HoQAoFr8AUlK6F9K6BADS7AfZAoDAUCLU7yQs8AejKy67J9BKDS9AfXAoEAKDLA7yQs9AoiKo68J9BKDTUCMKCAKCAeCAVJHoSs8AyiKU7A99BUBToCMAGAUCALKHoQteBDzBHo95VACL7AoBAeBLe7oOxLAHy9gOALQMU7eIAoBxe99H7JCRAVOMK7oIx7J7IA88WKBLfWHUIx8Jo8o86WUDLBXHUHx9Je8y86WoDKzaHUHxyBAe9U87I5W6AVEM6HUHZ9AWbAoDJy88I5W7BA9pbHKHaACXACAe9y87I5XUFJpbHKHaABX6JyIAy7e85XyDJpbHKGx8JyHBK68I5hVYHeHx7J9AUNG6I7hVXHoHx7Le67C7AUIA9ENgMe7oIx6Le68CyDA7BykhU96AUYHyIvKBAKCCBOG9CeFAySA7AeYhU9oECe76A8vAGB9Ly69CKHAeTA6A6CKEANbJ6AUYHyIvAIB7L7G9CAdA6A7CAEAXaJ6AUYHyIvAGB9L8HKQDAGA9B7he96AUYHyHvKGB9L8A9Ay58BobAUCA6BKNhpbHAIvKFCBTA7A6GAIDUKBKGAeChzbHAHveECBVAeJGADDoRAyDipcG9A7veGB8M9KATAoEA7AXhNA67A8veHB7NA99B7A6AoHAhgK9AUUG6A8vUIB6NU98BKMAeJAheNU66A8vKIB6Ne97BN58Ne6yIu9A9AfvJ8A6kLiGyHu9A7AfyJ8A7A8A7izjGeIu9A7AL5e67AUcA7A7BDrN6GUHvB6K6yHCyIA6AeBA8iBlGKHvKDAf5y6eKCoJA8A9iBsE9AeCA7vV6A6UMCeaiBuE6A8AKBvp6K6UNCKaiLUAyXEoJvp6e6APA8AeFDDpKyHAKNCUsA9vf6o59B7AKqAKBiLECeKAUBAKDE6BY7V6e58GoBAU7KEafECoJFeMvKDAL6A57G6HAHafECyHFoLvUDAL6A5y7A6yKafEC7Ao56BE7UBAV59F6HK6eLaABAfDI8BE7z6A5o7U6oIaUCAVEI8A9vf6U5e7o6eHaeDALEI9A7vf6U5o7y6eCa7K8JAFvf6eoA9Ao76g9AKCK8JUCvp6elJXaLt67QojJ5gpP56z6yiJ7gpQ56p6eiJ9gpS56L6ohKNXL9559QohKXYMoCAPyQohKhYNZtQUhK5gfh5sQUhK6BACfBi5rQefLAHAhIN6TABjL6odLoDA5ezmTACjB6yaM5eyBAVjS9AXyQ8CVae9Np89AhxRASM9e9Nf89ArvRKRNNJNV89ArvRUPNhJNV88A5i6RUNN7e8NL88A5i6R8Appe7NV87A6irYe7NV87A7irYe7Np8oIiXae6Np8oIiXbe8AKCM9SeJiDdfBdSeJh9hXJM7SoKh8h6ezbSoKh8iDBM8SeNhrsd9M8SUNhrud7M8SUOhhwd6M8SKQhDyd6M8SARg9jM96BKELf79B7g9jg9yKAzNR8B7g9jq9oKApPR7B8g8jq9oLAfPR7B8g8j5doJAVTRyTg7j8dKIAfVReUg6j9dKFApYRKVA9ANPj9dKEApaRAVA7A9e8kM9UBAzaRAWA6A9e9kW96M6RAXA6A7fD6W9zbRAXA7A6e9kq9pbRAYA6A6e8k5dpbRAYA6A6e7k8dVcQ9CyGA6doBAUCA7k9dBdQ9CyGA6dKKAr7W88M9Q9CyIAq9KMAN7g88M9Q9CyJAg9D88c6NB69CyKAUXAg6h9C8zeQ9CyjAq6X9M8peQ9CylAg6D9g8feQ9C6d9ng79AUCNB69C6d7n6b8AUCNB69C7d5n8b7AUCNAKAf56C8diAb6AUCNAHA6P6C9dYBbyCAVeAKMP6DC9OCb8Of56DC9EFbzuPogc8o5bzvPejcsGbzwPUkciJbVxPKlcYKbVxPAlcYKbVyO9D7cYLbVxO9D7cOMbVyA8ApkD7cONbLyA6A7AyGMolcOPa9PKEA8AoJMUkcYQa8PUBBUBBLVD6cYRa7SBSD6cYRa6SLSD6cYSaz8VRD6cYUap8LRDg8sWaf8VQDg8sYaB8fQDg8saZ8SfQDg79AKCrC56SABALRDg78r6Zp8LSDg78r7Zp8BSC9cEoZf8BSC9b9sM5p79L8C8cEpZz78L8C8b7sqgAUWR7L8C8bsvXKECf7zSC8bswAeCW7AUZRfSC8bi57WyBC6RVSC9bY58ZL7LTC9b7tqyRLTC9b8t6Y8RBTC9b9ugoRBTC9b9uqnQ9MAccE6qnQ9D7Ae8AbcY66X6Q8DyMHoaci67X6Q7DASHeaci68Xz67C9B9Heaci68X6QycCK7eZcs69X6QoXC7HUZcs69X8QKXC8HUZc5u9X8QAWC9HUYc6u9X9P9CKeHUYc7u9X8P9CAeHeXc9vClP8CAfHUXdE7giP7B9De7KXEUCY6v6XL57B8Do7KWEeDY5v7XL57B6D6HAWEUFY5v7XV5yQD7G9CUqA5Y6v7XV5yOD9G8CUqA5Y7v6XV56BeoG7CKrA5Y7v6XV57BKpG7CKrAqwv7Xf5yLEK67CKqA5Y8v7Xp5oLEK67CArA5Y9v7Xp5ULEU67B9EoEAyDYY77XzzBKrG6B9FeEYO77XzzBAsG6B8FoFYE76X7PAKEo66B8FyEYE77X7O9A9Ey66B9FoEG9AV67v9X7O8BAuGyTFoEG8Af66wMkO9BAtGyTFeFG8Ap65wMlPAIE7GeUFKGG9AV67v9X9PKHE6GeUFAFYE8CnPAGAoBEo6KUFABYs8MnO9A6AeCE6F9CC95wWmO9A7AKDE8F7CC95wWmO9BAzFyUd6wMnO9A9Fe5eUd6wWnO7BA56FAQAKDd6wWoO6BA59E7B6AUBd8wMrOyIGKtB6AUBd8wMsOyHGUsB6eO8MuOyGGUrB6eV8KGdgvOyFGeqB7eL79BW9CwOoDGypB7eV76B9EyDX7Y9OoCG7D9B8eV7eiDUEX6Y9OoCG8D8B8ef68EKbBCgZLrAU68D7B9ef6owCKLXqzOUCG9D6B9ep5o6eFA6AUMX5ZLrAU68D6CNDPA9CkZVqAU67D7CXEO8JClZVqAK67D7CXFOU95X8ZVpAU67D6Cf6eGN6OA96X8ZfoAU68DyYQKIB6ALTN8J8X8ZfoAU67DyZP9BAMA6L9Ny99X8ZfoAU66D6C6P7BKKA8MBeK5X6ZzmAe6olC6K6AUeAeQBUIA9MVbK6X6Z6N8AU6olC7KoEC7A7BUPAoQL9MzIX5Z6N8AU6emC9KAGC7A8A9EBRMfJX5Z8N6Ae6UmC9J6BAbBAEEpSL9LWiZ8N7Ae6AnC9JoMC7F9L8LzQXg59N7AewAUJD9C9JoIDKeAebL9LBVXC6L87AeGEKeJeIDUbA6C8L9K6M5W8aVlAKwAyBAKCEKeJeIDUaA8DBWJ8M8B7AqGaVlAUxAeFEAeJeIDeZA8DfTJpiBeHUq6pjAe56EKfJUJDUZA8D7LyCAK89N8A8BMDapjAo5oqDK9KKDUZA8EVIAeIIV59UM66NoECKBDKrDU9AKDUZA8EfHAULH9QMAa7NeECKCDArCKCA8JKLDKcAotF8AKMA7C8AKPHp6f99a8NeFCACCywCAIAe9ANC9DKBEy5ULA7BUZAKSG9Qz98bBgAyUAePAKFFKUA9AU9APC7H7FUMAyOCeCCK6f68T7bLgAyTAoOF8B9BABJAQC8H6FKOAeRCACCySAKoQ9T7bLfAySA6BU6AUA8AU9ASC7H6FAkB8AUcBeFD7RB95bffAyMBeIGeUA7Ao88CAaHyyEKNAUkA6A7Dp7L95bpeAyLBoHGoUA6Ao89CKXAKDHeyEULAUzDf7L95bpeA6A9ByGGyVAyEI9CeQA7A7G9E8E8AeFFycRf9g7zeA7AK9eWAyEI8CoEAUJA9A6G8E7F8F9Cf7f9W77NBACeEA6I6CoDAyHBAGG7E6GA59CB76TC78NBACeEA7IyZAKHA6BKGG7Eo6U6UOR8TC79M9KAYAeIIoZAKJAoMAy7AoGo69AL8z87cLdJ9CeEA9IeZAUKAeOAesAogAUBAUFB8G6ZyNAL7M8fbKAXAoJIeZAULAUPAerA6EKPG9ZyLAz66c6M6KAYAeIIyXAoKAeOAesAyoBo7W5oLA9QC88M6KAYAeII6CUEBAEBeEEeFD9Be75ZoJBV56dLYKKZAUII6CUEBKFBUEIoKIM5oHBp5q9pWKKaAKII6CeEBAHBKDIUJCUFF7Z6AoRPM96MLBC6AeGI6CeFBAGBKDH9A9CyEF9b7O9d8L9KUbAeGI6CUFBAHBKCH6A9C8Ae6M7zwT9AVAL8KUcAUHI6CKFBKGI6BA96bpuT8AzCLzCC9AKHI6CKHA9A6IoLK5a6Oz98A7KLPKUkI7CUHA9Ay8UMK9azoR7AKBAKWA8J9LzCD6I7C6AyHAy8ANAUHI5cphSUFB9BA97LzCD6I8C7AeIAo79BeCA9AyHB6AesA6AM89M7S6A7B6BU9zPKUlI8C8AUHAe8ALAeMAUJByID6epWS8A8BeOJpOKUlI8D8AU66AUMBADCoPA9DXIBADK7JADJ8A6B7BU9VOKUlI8KUHBKIAeaByKC8fUIAo58AosI9AzbA8JUPAK96KUmI7KKIBKHAecByJC9fUGAyxAeEA7EK9UEM9A8JKMA6JfCEA8zAA9BKGAeeByFDXQAKHEySD8JyDNKIJACAKCAKCBA9fBEK8pAA9BAFAeiBeEDrXD9A9AeNC9KoCNoGJUBBy9VBEU8fCAeBAKLAyCD9BUCD5gejDAaj6JVAEU8e77AemAyCEoGA6AKIC8BUBfAdD8B8j9JBAEU8o76AyjAyCE8AKYCeJA7fKQAeCEUPkK9A99Ee8e7yIAUDC7A6AU78B8A9BDOA9FyHke89J9Ee8e7yIAKEC6AyDIKCAoKA9BNSAK59Ar66I8J9Eo8e7oMC7AeDJKGBUL7wI7C8Ao67Eo8o7eLDfLBHxI6CeMGotIo7UKDe58Ao5eE75U86CUQGKtIo7yHDABAK57A7798A7Ae87BoCAoRGKuIe76AKCAUeGAH79KCAeLAK88A9B9AoFGAvIe78AUeGAH79BGAyVHKvIo78AKdG6Ab89K9AUVHUvAUFH8K7IoC77BLAUUHUvAUHH6K6I6Al67LUCCA7UvAUHH7Ky87At9eBQ9Ny7e6A7fBAKEI7AWJAh8eCQ6N6He6A6oCA7K6d6Ah8yFQLlHo6K6eDA7Kq96AX86A7P9N8Ho6K6eFA6Kk86A7P6OA7exA7Ay59BAFKk87A7PpqHUvBAEBABE7BUFKa89A7PLrHUrAUCBAEBKBE6BUFKa89BLvOe7UqAoBCyDEyMAo6ABEQ9AKO7Oo7KqAoBCyDEyMAy59AKp69UJO6Oo7KpAyBCyDE6BKFKG9eKOpuHApAyBAUCCUCE7BAEKQ9oLOVuHAoAyGHUJAo99696BpoOy7AnA6A6HUJAoWAK76696BzoOy69D9A6A7HUIAKHAUPAU75697BzoN9AoCG9D9A6A7HeVAUIAU76697BznN9H6D9AKBAeHHoWAKHAK77699Bo88AUwN6IAqAKLHKWAe8k99Bo8KFAeDAeCELjIK5o7LKBUQ67ALIAHAyIEBjIK5o7KFAzd67AGI9AK5piIU5o69AoJM7756AU6phIU5o5oDA8A7BLa756AU6phIU5o5yFAeHBfY758AU6phAyGHKlAKQF7A8B8KABCb6ABGfjAoKG7D7AKCAKNF9AyEAKPJ7A7B776KBGfjAeNGykAUCAUOF9AoDAUOJ6A8B68aN6AKOGykAeBAUOGKIBe88B6B58bPK6ykAUDAKOGULA9I7B8BcePK6okAUDAUNGyIA9I6B9BSfPKCAe59DKCAUDAeCBe68A6A8I6CAJ8fP7F9DAIAeCBe68A7A9IoUA98eP8F9DABAUFB7G9A8A8DoBE9BKCA8A88dP9F9C9AUCAyRG9BAHDeCE9A9AeJA88cP9F9C9AUCA7ByGAU6UKA7DUDE9A7AoJA88cP9F9C9AeBA8B6AeEGKKA8DKDFAFAyJA98bQA58DABAUIB7AKGGKKA9C9Ae5eBAoMA98ZQ7FUhA8C6GKIBAcAe56BoJ8ZQ7FUiA8Cy6oGBAeAK5oPBIYQ7FUhA9C6AKEAoHE8A6BKbAe5oOBSXRKwDyHD6AyDE6A6BeZAe5yNBSYRAwD8AohA9AetA7BeZAK58BKL8YRAwD9AofBKDBUCDAHBo8oLBSZQ8E8HeNAeKAedA8B9IKHBmaQ6E9GeDA7BoIAoEC9A8B9IeDBcdQyxGeEA6BoQDAIB8J78eQ6E8GUaByCAecAySJ78ZAeDQoxGKbByBAyeAKUJ68ZRAxGKcB9DKCB9J78YRAxGAfB8DKBCK9yDASUQ9FA59DoRDACCBB8SQ9FA58D7B7C9AUTKSIAUIQ9FAlAUSD9ByfAURKSKAKIQ9FAjAyNEyODADB6J98LAeHQ9FAjA6BKxBybAoCAKLJ98JAeBAKHQ8FKjA7BAyBycA6AKDAy998JAeCAUFRAyD6A7A9FKQC6BKEJ98KAKCAoDRAzD6A7A8FeRCyKAo978PR7FKlA7A9FUQC7A8Ao9mSR8FKlA8A9FUQC8A6Ay6eBBoDBSSR8FKmA7BA5UQC9AoFF8A8BUEBISR9FAnAeOFUQC9AeFF8A9BAGA88TR9FAoAKPFUGAeHDADAo59A9A9A6A88TR9FA56FUEA9AUfAoDGAJA8A6A8Y7AZ7B8AxF6FeEEKEAe6AJA8A7A8YoF569SAxF6FeFD9A6AU6AIA9A7A9YeG568SAxF6FyED7A7Ae6AHBAHA8YeHC7AOAAVlSAxF7F7AKkA8Ao59A6BUGA9YUIC6Ar97A6Nf8AxF9FyCB8AUPA8Ay58A6BUGBCvAeZA5oAENL8KwGA5yBBoGByIA8FyGBeFBAoAgFAeYA6oAEM9SUwGK5oCAoLAKDByIBA5oFBeEBKnAp9eBBeBrAEM9SUwGK5oPAoCByKBAzA6BUFBUoAL9oCBUCrUBM8SewGU5ePAeEBoLA9FAIBKFBeBAKCAMdAUNA5556SowGe5oNAUGBeLA9E9A9AyBAoHAUBBqeAUNA5556SewGo5yVBKMA8E9A8AyNAUNAMfAUPAj56SewGo56CALBeHE9A7A6aAC57p8ewGo56CAKBoBAKFE9A6A7Z9At7f8ovGy5yVBAQAezAoIZ8A557p8evGy5yVBA7UBBg5UH57p8evGy5yVBA86ZKH57z8UwGy5yKAKMA8CoEF9ZAH57z8UwG6FoKAeLA7CoEGKIAL6ADHyIHACyf8UwG6FeMAUMA6CoEGKEA6P9Ao7oIHAEdyHUB8KwG6D7AeNC6A6CoEGUDA7P7Ay7eKG9ApdAV6eMT6SKwG6D7AeNC6A6CoGGADA7P7Ay7eLUKCQKPTz8KwG6D7AoNC6AyaAy6ACA7P7Ay7eLT7AKCAV56B8T8SKwGymAyNAoCB9AybAy69XoMAUBTUDAKCP6B6UB8KwGooA6BUDAKWAebAy69XoMAUCTKEAKBAKCPePUL8KwGepA8BKBAUWAUdAo7B69AK6oLAeBTALPUPUL8KwGUqBAMFeDHL67AU6yLTUXOeMUf8UvGKrBKMFeDHp6KEG6BB9UYOUIU8SKvGAsBULFoDHp59Ao59AKHBB97AyCAUEA6OUIU8SKvGAsBUMDKDB9AU76P9Ae58AeGBB98AeKA6NeCAoJU9SKvGAsBUNC9Ae99P9AK59AoGA9VUBAUDMyUVL8KvGAtBAOC8ApDV6AeIAqTAVUCoNAf96SUuGAtBAGAyCC9AfFVyDjKaBeETz8UuGAtBAED8AKZAK8WPAhwC8BeETz8UuGAuBACG6Ao78J6AY68C7BoDT6SUuGKtH9Ay76JyDu9C6BoBT8SetGUsCUBF7Ay7y96AX57ALLC6Vp8UtGUsCADF7A6Hs5oEK9C7Vf8UtGUsFyBCyEFUFB7NKDgADLKcVV8esGerFyBC7AUyA9BzdA5f9AfKDWLSUsGUKAydFoDH8BKNM9AsgDqKSerGUKA7C7FoDB6AK6KNAKBA9M8A5rKjVB8erGUKA7C8FeCB6AUpAKFAoLAKCBKJM8Aq8KBO9D7U9SerGUKA7C9FKCB7AUoA8B8A8BBeAg8KBO8AoBAeBC8VB8oqGUKA7C9FKBB8AUnA8CAEBVhAg8ACD8ALHAULCqLSeqGUJA9C8I6AUWAoBAegAKCNyEb8AyiApTAoDBqOSopGoHBAbLKCDzpAq79AKBAeeApWAUHBCPSopG7AoKC7O9OAEQACMeBC7AfhA9V6SopG7AoLC7PBlAp6KDMeFP8A9V6SopG8AeLC6PVkAz59AfaAf58A9V6SopG8AUNCz5phA6P9AW9AEAKBV7SopIeaPfgA7P8Ah7eGAKBNV8opIeaFeBJ9NUGP8Ar7AMNL8opIoZFeBJ9NUFByBOoClKNNL8epIoKAUNPfgAyOA6zeNNL8ooIoJA6BB5eHALaAeOA7zyKNL8ynIoJA7A9PUIAfYAUQA7zyKNL8onIoHA9BBzLAFD8A7zyJNf8omIyGBAJPLJAyoA7zoINp8omIoHBAJH6AeJAU6LIAoqA8zeINz8emIyFBKIF8AUPAyGAy6KFAVAAosA7zKKNz8olIyEBUHF9AUOA6AyGGUCAo99AeuA7zKKN6SelIyDBoGF9AeNA6AoHG8KABE8A6y9BVkSokIyDByFGACBeGAoHG8O9A6y9BVlSekIoEByFGABByCA7A7G8O9A8y7BVmSejIeFB6Ao8yHHLvA8yyNN9SUjIoEB6Ao8yGHfuA8y8BLnSKjIyDB6Ao86Ay7fuA9y7BLsR7Do8yCB8Ao8yFHzrBFJA9O6RyiKyFIoEE7AKcOeJzAIO9ReiK7Af6fsAyCAPNA6PeBAz6ohK7AorALROyBAKBz9Az76OeBAehK8AoqAeDALCAKI669Ap79NyDAyhK8AeqA8KAEA667AFA6AL7VgAeHDfKAKqAKCAU56AUhAKLA6Aa7UFAUFRfaAUNDgLAyhAUK68ANRVoDp88AKVAUlAeJ68ANRfUAUPD6KUCIoBB9AUmAoIr8AgoBp7VRAUQD8KKCH8AUFAUQAenAeJr7AqoBp7fMAyMEfBAe8yBHKCA6q7A5YAPRVKA8A6E8KKDQ6q7AqoB6RVHGpBAz7eCA8AeCooDYAQRVFG6KKGTX78AKFAKNAgpB7RVCG8KKGO9AykmABAoCA9A6YURRe99HBBAzwA8Dh8UCAUDA9A6YeRRo9y7VCAfvA9Dr8UCAKCBKGYeSRy9K7pCAfsA7D8meEAyJY7B8R7I7H6Y8A7Dh89AeFA8ZARR8Io78Y7AUCAUkmyFA6A5ZeRSA78IW89CKDkAGAyFZoRSe7e8q7eGA9CKEkKFAoGZoOAKCSo69I7WoDEARAoVAh6UFAeHZyMAUCS6Go9CYAemDUCBKBkoEAUIZyLTo59JV9KCDKBD8BeJAKCA8BD7ANZyKT7Fy9p9KCHUKByGBX69BM56A9UAzJ6TACIADBoHBh7UEaKHUUvJ8TABJ8A6Br7oDaKGUyqKCDAK8oGB5lyDaKEVKCAeDAUaKMEAK8eFB66pAMaB8K5b8AUIAyQ87KMAUBK5b8AeIAeTA8Ac7ABK8b9AUJAKYAeF977f6AUFGKB9Pgy58A79Kgy58BxDaACGo56CI97g6F7Cm9haF7C6888hA56C988hhFye88NjFof878d6A6Dy5oh87q9yJDy5oi87W9eMDo5yk87C9UNDo5om87C89BoiA8AUtEI8C76ByiA8AKuEL66ARMb6BojFyqQoD7LMABPoOD7FetQKG7JMABAoCO7BynFKuP9A87IMACAUEO6BooFAwLAGEKJ7IMAKOeOEUwFfCBAnBbHL9BeFAViBesE7Fy99BekBvGL9CVhBUtEy57J6B7DKRYUEAKDt6L9CVhBUuEy57DeCF9CAYCWsAUBAs5zSCLiBexEU59DUDFyYCeVZADtfRCfhA8FypF9DUDFyZCeUZAEtVRCfhA7F7C7A7A6GAgAK5obAyCB7B8ZUEtLRCzfA6GUSAKDBADGU8yfAeCByTHUBR9A8s7L7CzfAy66BATAU6e8yhAUCBeUHUBSoEs6L8CpfAo68A7CKBGy8KlAUCBKWHKCSeFszRC6NACHUDJA79EABAKDAKGCU7eFR8A6szSC7BKDcU77EeCAyCCU7oESUCs6MAqI9AL9A7y7vJMyoI6AL9A7o757JM9EK8KBTK7K767KNApbU7A757MNemH9AL9e68HvONylH8AL9e68HbQN8D9HUBTy67HRROKnG8AV96Gy7RSOylGyCT8F7AUEHRTO8Dy6oCT9FoFAU7RUO9Dy6eDT8Fo777VPAtFUDUAyH87WPKtFKEUAvIHWPeqFUEUUpI57VPopFUEUoUAeFA8AK87jKDk7P7D8FKFUyLAyBK7i7A6k7P8D7EoBA7AgIA6L6i6A6k8P9D6EeDWABL9i6A6k7P9D6EeBiU8yCaAFk7P9D6BUCAoCk7IoCaKEk7P8D7A8A7AUDk7IeDaUDk7P8F6k9IUDaeDk6NeBCy55k9IKEaoCk6QK5h7A8AE6gQ6AUCEr7A8AE6gSeflA59AyQAkhTKXlA58BAMAugT7AUEBD7K59A9BUF6fU7A5lU6AIBeG6d58e6UGByG6c58U6oFB6A66b58U6oFB7A76Z58A67AeTA76Y579G8AeUBQT578G9AUWBQS578G9AKYBQR579JyJ6R579J7A76R579J6A66T5bAUyJyE6W5YAoy7W5UA8E97Xz9A7FHYzyJFbYzoJFbZzeJFlZzUIF57Zy9BA567Zu6AejBU597Zu6A9CoPGbYu6BoPB8GuUAo99u6CADCU676TAy98u6Ey686RA7J7u6Eo7GHAUHA8J6u6D9H56IAeFA9J5uynH76JAeCBK9szA7A6EA776KBy9sxBKDEK776LBy9ixFo786NBo9YxFo786NBy9OqAKFFy786MB9I8sKDAK59H76LCA88sK6e776KCK88sK6o766JCU88sK6o766JCU88sK6y7uJCe88sK66HaJCU9EpG7HQJCA9YqG7G96LB8JiqG7G96MBy95seyAyGAeCG96OA7KOrE9I67WsowI67WsowI67WsewI77WsotI97Ws7EK9HWs8D7JlWs9De967WtAeJ87WtKWAeBKbVuUGLRVueELlUueELlUuoDLlUDeF5q7UDKJ5o7UC9BZo7TBUFBAQ5m7TA7BoDC85d7T"},
{name: "USA 48", landColor: [120, 105, 92], waterColor: [12, 12, 60], glow: [300, 300, 9827, 26, 18, 36, 36, 8, 32, 3, 9], data: "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C9AKsV957oMAolA6Ce7ABDABEqS57oPAenAKaG8AKfAKtV7568AUDI6GyCDUBE5V7568CAEG8GeBDyBEqQ568CAIG6GKBD6AKrV6568CKLGo59AKlAUqV656yBAKWBonAUVF8AKmAKpV656oCAUWB7DoFCA58AKmAKpV656oaCAgAoVF6AKnAKpV656ebCeeAoVFyBEABECP56KfCodAoSF6AU8MP56AhCocAyQFyEIMP559DoZC8AyPFUGIWO56AhC6C9AyPFAHIWO56AfC9C9A7BeJAUmA6IgO56AfC7DUGAeBA9A9AekBA8CO56AdDAfA6AUCA9A9AyiBA8CN56AeDKeBUHA9AyhBK8CN56AFAKYDKeC7AekBA8MN559AyBCygC9GyMICL56KEAUZDecFyBA9BU8WJ56AFAUUAUDDUdFoFA6BU8qG56KFAUUAUDDUdFUaIgG56KEAUTAoCDedE9C9IMI56KEAUSAyCDecE8DK8MF56oDAeREKbE7De8CF56UFAeSEKbEyhIWF56KHAeREUaEejIWF56KFAyQEUbEUjIgF56AFAyQEeaEeiIqE56KEA6B6EebEKiJB9956KDA7B6EebD9Dy9L9856UDA7B6EebD6D7JUHAf8756eCA8B6EUcDymJeIAV8657USEKdDemJyIAV8t7eTEAJAUSDejJ9A8AL8t7eTEAHAyRDUTL6A8AV8t7eSD9A8A6B6DUPMUGAV8t7eRD9A8A9ByfBpeS557USD7A8BKPDAOM9S657eSD7A7BeODALMyBAz8757eRD8A6ByNC9A7AoBMyBAp8857eRD9AyPBedA7AoBMoDAV8857eSEADB6BonAVXAeBS957eREUBB7BooALWTt7eRGKNEKBLoCAoMAV8F7oRGKMEUBLoDAeGAV8657oSGAMEeBLoKAV8757eTGAMEeBLz9857eTGKKEoBLp9957eTGKKEKFLgA57USGUJD7A9LWC57eRGoGDeOLWC57USGoFDeOLCF57UTGeEDeOK9U657eUGeBDyNK9U757eUGeBDeOK8U957UVGeBDUPK5VZ7UWGUBDAQKgQ57KXGKBDAQKgP57UXGABCKCAySKWR57UZF8AKRC7KKNAWF57KaF8AKRC7KAJAUBAgG57KaF8AKQC7KAJA5U957AbF7AKQC6KAJA6U857UaFyDB6CzAA9A6U957UaFoEByZKKHA7VF7UaFoHBUXKUEBCK57eaFeIBKYKKCBWK57oaFeIBKXKKDBWK576Co5eIA8AKBCVDAUKVZ77Co5eFA9C6KeBBMM578Co5UBBUaL5Vj78CozAKMC6LWR579CeyAKMCzNV7579CoyAKLCzFAKHV8578CyyAKKCfIAKEV958AZFABBAXK8Wt8KZE8AeJCBKWj8oYE7BACCBLWj8eZE7DVLWj8eYE8DLOWF86CUwDLQV7587CUwDBRV6588CKxC9L9V5589B9E9C9MCP59ARFAaMWQ59ARFUXMgQ59AQF6B6M7V659AQGKKM8V659AQGyCNWQ59KPT9V759APT9V759KOT9V859ANUMS59AJUqS59KHU5V8R7AiMA5U5WB7yE6WWB7yE6VWV7eG6UWV7eH6TWV7oG6TWV7yG6SWV7oI6SWL7oJ6QWL76A86QWL76A96PWL76BP96AUNWV78A9598AeLWV8KG599A7A6WV8KG6AA9AgVSUG588AKMA8AWWSUF589AKNA6AqVSUF588AUOA6AWWSeD588AePW9SeC588AoPXH7UEB6W877oDB7W777yBB8W777yBCCa77oCB9W677yBB9W777oBCCa77eCA6AKNW777UDAyCBWb77UFAeBBgc77KJBqb77UGB6W877KDB9W877KEB8W877UDB7W976eBA8AeRXH6UBA8AoPXR6KCA8AoQXR59AUKAoOXb59AeKAoNXb58A6A9A6BCg758AeBAoIA6A9XR6yIAUGA8Xb7UKAeBAgh77UKAKCAWjA6Ab6yLAgjAyG76UJAqkAoC768A7AqlAUC769A7AqmAKC769A7Aqp768A7A5X8AUB768A7A5X8AUB769A6A5X8AUCPAB6QA7AqnAKEO8AaPA8AqnAKEO7AkQA7AgnAUEO7AkRA6AgnAeDO7AaSA6AWoAoDO6AQTA7AMoAoDO6AQTA7AMoAyDOyB6TY877gw76KCAeBA7Y776KKAeGAMo769AoBA6AWn77AKAWo77KIAWo77UDA6YR8Cp78Ms777Y5776Y5777Yv78Yv77Yl78Yl79YR8Co78Mn78ql78qk78eBAMk78Wn78Cp778Yl77A8AMk77oFAUDAgi77KEA6AeDX577ADA8AKEX577KBA9AKFX578ABA5X5786X6785X6785X778Mp78Cp779Yb79Yb79Yl78Yl75Y7765Z7769Zb7C5Z69AL98Zj69AV97Zt69AV95Z5569AV95Z5569AV9yDAgx57ABTKFA5ZF69AV9KDA6Y957KBUCy57ACT8Zj68AV97Zt68AV97Z5567AV95Z7568Af9C6F68Af87aZ69Af87aZ7ACS5at7KCSg6557KCSW6657KBSW6675q6775g6875W6975W697zbHyb57ub87qcvkc57jc77ic77ic87hdHgdHedbddlXcKBB77Uc6AeCAeI7Sc8AUP7Pe77NfHKf57Ef97Cf97BgHCgHAgRAga98gk97g769rc69rc69hd69Xd69Xe69Dg689ha88h5686f9AUP68hHAKf68Dp679ik77iu77iyYAaxi6CoD6wi6CyE6ti8CyE6ri9CyE6ri9CyF6pjAaAupjAaAkohUBB9668heBB9667ju6r5766X5966r57658AKFj8657AeCj9657k5657ku57ku56k6655k765r6765r67CKB6gk7CAD6fk7CAD6fk6CKD6dk9CKC6dlAVAablKVAaaleVAQaloVAQZloVAQXl6CUB6Xl56vluvluvluvlkwluvluul6DUB6Ml7DAF6Jl7DAF6Jl7DAI6Fl8DAI6Fl9C9A96El9C9BAEAZ98l8C8BeCAj97l8C8BeBA6595l8C8CP9r79C7CZ9h79C6Cj9X8KYCt9X8UXC559N8eXCt9N8eXC559D8oXC9586meYC9586mUYC9586mKZDF85mKaC9586mAaC9586mAaC8587mKYC9588mAYC9589mAXC9589mKWC9589mKWC959D8KVC959N8AVC959N8AVC959N8AUDF9N79CKf59N78CKgx6Ae9N78CKgxyCEKBFX77CKgu6AKPAeGA6EAGE9l6CUguyBBoFAKND6A8E8l7CKhuoCBeFAKSC9BUul7CefueDBedCoNE6l6CeguUEA7DyWBovlyYDO6KxB9B6E6l6Coes6A8Ao5ePCUsl6Codsy67BeYEr77CUdse7KJC6Er78CUcsU7UIC8Er78CUasU7eFDerl8CKaqeEBU78AUjEh79CAZqUJA7L7EX8AUC5qBjEX8KTC5p9NyEAUlg9AKzB8C6p8A7ApeD7mKTC5p8A7AoFAVXD8mAUCscA6AVYD8mAUAyCB6rADAfYD9mATAyDB6r6MeomATAoDB6r6MonmAUAeDB6rzaD8mKUAUDB6m6AeuM6D8mKUAeEBr86AosM7D9mAUAoEB6mUGEBeD9mKTAoEB8mAJD6NKnmeRAyDB8mAJD7NAnmoQA6AKTj7AUVBAbAUINAmmoPCeCAN57AoUBKbAeIM8D8myOCAFANfAKWBUQAKDA6C7AoDAeEMymm6BySAyBhACBoZBADAUHC8BKFMKnmyTBoFANcAoNFKZN6EN8oUBeEAXcAeKF6B7AKGN6EN8yUBKFAhbAeJF7BoFAzkEX8oUBKFAraAUJF7BoIAfkEX8yTBoCA6goCA7GAGAKEO9Eh8ySChXAUGGoCAUDPAsmyQBABBrXAUDHKBPKsmyQA6AKSggcEr8yRCrXW8AoBD9kUBCUUCXVXADAKpj9AUVCUVgCfAUDED8KXCNTXUCAoomAXCXRXeCAoomAYCXQX8EX79CoWf6X7Ee5yCgKZChOX8EoeAeDAyNAXVCyYfWmE6C7BKBAULAhVCyZfCmE7C7A8AyBBKDe7AeLCyae8YKtCUCAeFCAEeyIA7Cyae5YogAULCeCAUECKDe6A9A7CobegtDKEBKXA6CUDe7BKGCUceWtDKFBAyAhJBKECedd6ZKdA6BAyAhJBUCCodc7AKHZecA6BAyAXLD7DC8UFAg58C8AyKFACfekDC8AHAM59C9AeLE9ArND6Dg77a7C8AeLFADfojDq77a7EX67Dyjb5a7EX67D7D7bW68ED66D9D6a9AKCa9D9k6EAja6AeCbekk7D9Dq66AoBbokk9D7Dg66cAklAlDW65cAlleiDW6M8yklohDW6M86D6loOAURDM6M88Dr76BUCB8DC6M89Dh77BKDB7DM59dKgl8BADB8DM57defl8A9AeUDM5q96DD79A8AUWDMyd9C9mUBAUDAUXDC5W97C9nAXDMzd8C7nUWDWyd9C5neXDqvd9C6nUXD7YrECKnAXzCelYrFCAnAoLAXkCUDAUhYrGB8D9AyKArlCKCAUiYhGB8EAFA9ArmCKBAeiYXHB7EAGjKYDqqe7B7EAGjUXDqqe9ByoA7jUXDgqfABAKLEAJjKYDWpfoKEAJjeWD9XrOA9EKJj6B9EChfeHEoJj7B9ECgfUFE6A9j8B9ECgfeDE7A9j9B8ECgfeBE9A9kARECgkoHkKRECgkyFAKFj6B8ECflKFj7B7EMek8A9j6B7EMelAIjyRECflKHj6B6D9XX7UGC9AhZBylXr7UGC9ANbBylXrDAK69A5j7BylXr7oEj7B6D5X5loEj6B7DqkloEj6B8Dgkt9AM7oTDWkseCBoEbKUDMlsKDByCbUUDgksACdAUDqjv7A5ZAVD6Xi76A5ZAWD6XY77AWzCemXHdConMUDKsmAM9AYEBUAzD7dCopL8A7KbdCyqMKBKldCyrWvcC6EqX7bC8EqW7bC9EoCAMSxo"},
{name: "Middle East", landColor: [140, 130, 120], waterColor: [12, 12, 76], glow: [240, 120, 4672, 30, 26, 30, 90, 8, 32, 3, 9], data: "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okA8BoDWK57x8D8A7FeCC7AoCAKDAUZDeMBAGWK56x8D8A8IeBDogBoIA7WU55x8D8A8L9DAQA6A8We55x7D7BKCAzLC8DCaFi97D8B7LKbDCdD9AUKx7EoPK9CoeXUiA6APFE8B6K6B8DMkC8z7E8B9KoODqoB95WFUPK9AonYoO5XFUQPMyA55aFUPAeEO578K5UWO678A5UWO678A6oJO778A7ADO778CTC6Ab5gSC8AUEAltV8DyE7rV7D7AvqV7D7A67oTUCCemAbrS9AoY78f7UEA9A7C578f7KSC878f7ASDH8V6UFAKTDR8V6UZDR8V6UZDR8V6eYDR8V6eZC978f6eTAeDC978f6eTD578f6UTD678f6eRD778f66AeEA6D878gR78gQ78qQ78qQ78qQ78qR787Vl9CK79MI79qG79qE798UM58APpUC57AjpT8Z7A55pT6Z8A65rTg58A75qTfCAp5UH5pTfDAzyA75qTfDAyMAQ86TLWAQ86TBXAa8z9BXAk8z88MoE68z86MyE686SzZA5686SfaA6688R9M6A869B76M6A769V7pbA669p7fcA569z7VdAvAQ68mQSrP78rP78sP68rP78rP68sP68sPmvPmwPcxPS5yDApm86Vl866Nm68NZ8ABdLc58ABdpZ58ABdzY58ACd9L958ADd8L858UCd8L758eCd9L658eCezK58eDezI58oDeymAe66586AXFDyHAyBAUFFZ86AXIDKKAUKAoCEt88ANNCegEZ89AXNCKhEP9KBfyQD7EJIBonD89KBAqD7B7AS9oIE6DUSAc9yEFAeB9AdyC9B8AnzC6CAD9zBUEA7CeC95eJA6An99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99AJ99ACeAT99AT99AT98Ad97Ax96Ax97AT99AABAT99AJ99AJ99AH6AC997Ax9yF99yE996A55lAO57A55lAY56A55lAY56A5bUBaoCt7Aq7UCaUEt7Aq7KDBUBY8A5t6Aq7KKAyFYyEt6Aq7KKAoHYoCt8A5a9BUBA97EAyhAMiClEA6DKCWoBAKf7EA7C9AgYDo5yF6sA6C7AqaDo5eH6qA8C6AqaDy5UH6qA9CyEW6D6FKC6wA8CyEW6D7FAG6sA8CyEWynFAG6rA8CyCW6EKzA56qA7CyDWKv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"},
{name: "Scandinavia", landColor: [140, 130, 120], waterColor: [12, 12, 76], glow: [240, 120, 1024, 30, 19, 30, 70, 8, 20, 3, 9], data: "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"},
];
const colors = ["#acacac", "#900000", "#008000", "#000090", "#808000", "#800080", "#008080", "#c4c4c4", "#000000"];
function loadStaticMap(map) {
let data = map.data;
var length = data.length, charData = [];
for (i = 0; i < length; i++) {
var char = data.charCodeAt(i);
58 > char ? charData.push(data[i]) : (char = 91 > char ? char - 65 : char - 71, charData.push(String(Math.floor(char / 10))), charData.push(String(char - 10 * Math.floor(char / 10))))
}
length = charData.length - 2;
char = 0;
data = [];
for (i = 0; i < length; i += 3) data[char++] = parseInt(charData[i] + charData[i + 1] + charData[i + 2]);
const land = map.landColor;
const water = map.waterColor;
const width = 1E3 * data[0] + data[1];
const height = 1E3 * data[2] + data[3];
canvas.width = width;
canvas.height = height;
const ctx = canvas.getContext("2d", {alpha: false});
const imgData = ctx.getImageData(0, 0, width, height);
let pixels = imgData.data;
for (var max = data.length, f = true, i = 0, j = 4; j < max; j++) if (f) {
for (; 0 < data[j]--;) pixels[i] = water[0], pixels[i + 1] = water[1], pixels[i + 2] = water[2], pixels[i + 3] = 255, i += 4;
f = false
} else {
for (; 0 < data[j]--;) pixels[i] = land[0], pixels[i + 1] = land[1], pixels[i + 2] = land[2], pixels[i + 3] = 255, i += 4;
f = true
}
ctx.putImageData(imgData, 0, 0);
if (sizeXInput.original === -1) {
sizeXInput.original = width;
sizeYInput.original = height;
sizeXInput.value = width;
sizeYInput.value = height;
landTargetColor.value = landColor.value = "#" + (land[0] << 16 | land[1] << 8 | land[2]).toString(16).padStart(6, "0");
waterTargetColor.value = waterColor.value = "#" + (water[0] << 16 | water[1] << 8 | water[2]).toString(16).padStart(6, "0");
mountainTargetColor.value = mountainColor.value = "#000000";
updateNormalizer();
}
polishMap(map, ctx, width, height).then(imgData => {
scaleMap(imgData);
finishMapLoad();
});
}
async function polishMap(map, ctx, mapWidth, mapHeight) {
return new Promise(async (resolve, reject) => {
const data = map.glow;
const imgData = ctx.getImageData(0, 0, mapWidth, mapHeight);
const pixels = imgData.data;
this.a0q = true
this.aB = 0
this.a0o = [map.landColor[0], map.waterColor[0]]
this.pw = [data[3], data[4], data[5], data[6]]
this.a0k = data[7]
this.a0l = data[8]
this.a0m = data[9]
this.a0n = data[10]
const rand = new Random();
rand.init(data[2]);
const noise = await (new NoiseGenerator()).generate(mapWidth, mapHeight, data[0], data[1], rand);
await new Promise(resolve => setTimeout(resolve, 0));
this.aB++;
let startTick = currentProcess = Date.now();
for (var pixelIndex, index, y = 1; y < mapHeight - 2; y++) {
for (var x = 1; x < mapWidth - 1; x++) {
if (Date.now() - startTick > 200) {
setLoad("Polishing (1/2)... " + Math.floor(((y * mapWidth + x) / (mapWidth * mapHeight)) * 100) + "%");
await new Promise(resolve => setTimeout(resolve, 0));
if (!checkProcessStart(startTick)) {
reject();
return;
}
startTick = currentProcess = Date.now();
}
index = x + y * mapWidth;
pixelIndex = 4 * index;
if (checkPixel(pixels, pixelIndex)) {
const b = Math.floor(map.waterColor[0] + data[4] * noise[index] / 1E4) - pixels[pixelIndex];
0 < b && (pixels[pixelIndex] += b, pixels[pixelIndex + 1] += b, pixels[pixelIndex + 2] += b)
} else {
const b = Math.floor(map.landColor[0] + data[3] * noise[index] / 1E4) - pixels[pixelIndex];
0 < b && (pixels[pixelIndex] += b, pixels[pixelIndex + 1] += b, pixels[pixelIndex + 2] += b)
}
}
}
ctx.putImageData(imgData, 0, 0, 1, 1, mapWidth - 2, mapHeight - 2);
await new Promise(resolve => setTimeout(resolve, 0));
if (!checkProcessStart(startTick)) {
reject();
return;
}
startTick = currentProcess = Date.now();
for (pixelIndex, index, y = 1; y < mapHeight - 2; y++) {
for (x = 1; x < mapWidth - 1; x++) {
index = x + y * mapWidth;
if (Date.now() - startTick > 200) {
setLoad("Polishing (2/2)... " + Math.floor((index / (mapWidth * mapHeight)) * 100) + "%");
await new Promise(resolve => setTimeout(resolve, 0));
if (!checkProcessStart(startTick)) {
reject();
return;
}
startTick = currentProcess = Date.now();
}
pixelIndex = 4 * index;
if (!checkPixel(pixels, pixelIndex)) {
if (1 < x && checkPixel(pixels, pixelIndex - 4) || x < mapWidth - 2 && checkPixel(pixels, pixelIndex + 4) || 1 < y && checkPixel(pixels, pixelIndex - 4 * mapWidth) || y < mapHeight - 2 && checkPixel(pixels, pixelIndex + 4 * mapWidth)) {
var c = x - this.a0l;
var d = y - this.a0l;
var e = x + this.a0l, f = y + this.a0l;
c = 1 > c ? 1 : c;
e = e > mapWidth - 2 ? mapWidth - 2 : e;
f = f > mapHeight - 2 ? mapHeight - 2 : f;
for (var g = 1 > d ? 1 : d; g <= f; g++) {
for (var h = c; h <= e; h++) {
if (d = 4 * (h + g * mapWidth), checkPixel(pixels, d)) {
var i = this.a0k + (this.a0l - this.a0k) * noise[h + mapWidth * g] / 1E4;
if (!(Math.abs(x - h) > i || Math.abs(y - g) > i)) {
var j = Math.sqrt((x - h) * (x - h) + (y - g) * (y - g));
if (j < i) {
const b = Math.floor(this.a0o[1] + (1 - j / i) * this.pw[3]) - pixels[d]
0 < b && (pixels[d] += b, pixels[d + 1] += b, pixels[d + 2] += b)
}
}
} else {
i = this.a0m + (this.a0n - this.a0m) * noise[h + mapWidth * g] / 1E4;
if (!(Math.abs(x - h) > i || Math.abs(y - g) > i)) {
j = Math.sqrt((x - h) * (x - h) + (y - g) * (y - g));
if (j < i) {
const b = Math.floor(this.a0o[0] + (1 - j / i) * this.pw[2]) - pixels[d]
0 < b && (pixels[d] += b, pixels[d + 1] += b, pixels[d + 2] += b)
}
}
}
}
}
}
}
}
}
ctx.putImageData(imgData, 0, 0, 1, 1, mapWidth - 2, mapHeight - 2);
unsetLoad();
if (!checkProcessStart(this)) {
reject();
return;
}
resolve(imgData);
});
}
function checkPixel(pixels, pixelIndex) {
return pixels[pixelIndex + 2] > pixels[pixelIndex] && pixels[pixelIndex + 2] > pixels[pixelIndex + 1]
}
function Random() {
var seed, values;
this.init = function (s) {
values = Array(101);
for (var i = values.length - 1; 0 <= i; i--) values[i] = Math.floor(32768 * i / 100);
seed = 2 * s % 32768 + 1;
};
this.value = function (key) {
return values[key]
};
this.staticRandom = function () {
return Math.floor(seed - 1 / 2)
};
this.random = function () {
return seed = 167 * seed % 32768
};
this.seededRandom = function (s) {
return Math.floor(s * this.random() / 32768)
};
}
function NoiseGenerator() {
function f_g(start, change, amount) {
row[0] = start;
for (var i = 1; i < amount; i++) row[i] = row[i - 1] + change, 1E4 <= row[i] ? (row[i] = 9999, change = -change) : 0 > row[i] ? (row[i] = 0, change = -change) : (change += 16384 <= randomValueGenerator.random() ? changeAmplifier : -changeAmplifier, change = change < -maxChange ? -maxChange : change > maxChange ? maxChange : change)
}
function f_k_a(x, y, amount) {
for (var i = 0; i < amount; i++) noise[y * width + x + i] = row[i];
done += amount;
}
function f_k_b(x, y, amount) {
for (var i = 0; i < amount; i++) noise[y * width + x + i * width] = row[i]
done += amount;
}
function f_y(prev, index) {
var diff = prev - row[index];
if (0 !== diff) {
var d = 1 + Math.floor(Math.abs(diff) / index);
d = 0 > diff ? -d : d;
row[index] = prev;
var e = index - Math.floor(Math.abs(diff) / Math.abs(d));
e = 1 > e ? 1 : e > index - 1 ? index - 1 : e;
for (var f = index - 1; f >= e; f--) row[f] += diff - (index - f) * d;
if (0 > diff) for (diff = index - 1; 1 <= diff; diff--) 0 > row[diff] && (row[diff] = -row[diff] - 1); else for (diff = index - 1; 1 <= diff; diff--) 1E4 <= row[diff] && (row[diff] = 2E4 - row[diff] - 1)
}
}
var noise, width, maxSize, maxChange, changeAmplifier, row, g_G, g_F, g_K, columnsDone, rowsDone, xStart, yStart, randomValueGenerator, done;
this.generate = async function (widthArg, height, maxChangeArg, changeAmplifierArg, rand) {
currentProcess = this;
maxChange = maxChangeArg;
changeAmplifier = changeAmplifierArg;
width = widthArg;
randomValueGenerator = rand;
noise = new Int16Array(width * height);
maxSize = width > height ? width : height;
row = new Int16Array(maxSize);
g_G = [];
g_F = [];
g_K = [];
columnsDone = Array(width);
rowsDone = Array(height);
for (var i = width - 1; 0 <= i; i--) columnsDone[i] = false;
for (i = height - 1; 0 <= i; i--) rowsDone[i] = false;
xStart = new Int16Array(width);
yStart = new Int16Array(height);
//init horizontal line
f_g(randomValueGenerator.random() % 1E4, randomValueGenerator.random() % (2 * maxChange + 1) - maxChange, maxSize);
for (i = 0; i < height - 1; i++) yStart[i] = row[i + 1] - row[i];
yStart[height - 1] = yStart[height - 3];
f_k_a(0, 0, width);
//init vertical line
f_g(noise[0], randomValueGenerator.random() % (2 * maxChange + 1) - maxChange, maxSize);
for (i = 0; i < width - 1; i++) xStart[i] = row[i + 1] - row[i];
xStart[width - 1] = xStart[width - 3];
f_k_b(0, 0, height);
var d, a, b, c;
f_g(noise[width - 1], xStart[width - 1], height);
f_k_b(width - 1, 0, height);
f_g(noise[width * (height - 1)], yStart[height - 1], width);
f_y(noise[width * height - 1], width - 1);
f_k_a(0, height - 1, width);
columnsDone[width - 1] = columnsDone[0] = true;
rowsDone[height - 1] = rowsDone[0] = true;
a = width;
g_G.push(0);
g_F.push(a);
g_K.push(true);
a = height;
g_G.push(0);
g_F.push(a);
g_K.push(false);
done = 0;
return new Promise(async (resolve, reject) => {
let startTick = Date.now();
for (; ;) {
if (Date.now() - startTick > 200) {
setLoad("Noise... " + Math.floor((done / (width * height)) * 100) + "%");
await new Promise(resolve => setTimeout(resolve, 0));
startTick = Date.now();
if (!checkProcessStart(this)) {
reject();
return;
}
}
a = g_G.length - 1;
for (b = a - 1; 0 <= b; b--) g_F[b] > g_F[a] && (a = b);
if (5 > g_F[a]) break;
b = g_G[a] + Math.floor(g_F[a] / 2);
if (g_K[a]) {
c = void 0;
var e;
d = b;
for (var f = 0, g = 0; g < height - 1;) {
for (e = f + 1; e < height; e++) if (rowsDone[e]) {
g = e;
break
}
e = g - f + 1;
f_g(noise[d + width * f], 0 === f ? xStart[d] : row[c - 1] - row[c - 2], e);
f_y(noise[g * width + d], e - 1);
f_k_b(d, f, e);
c = e;
f = g
}
columnsDone[d] = true
} else {
c = void 0;
d = b;
for (g = f = 0; g < width - 1;) {
for (e = f + 1; e < width; e++) if (columnsDone[e]) {
g = e;
break
}
e = g - f + 1;
f_g(noise[d * width + f], 0 === f ? yStart[d] : row[c - 1] - row[c - 2], e);
f_y(noise[d * width + g], e - 1);
f_k_a(f, d, e);
c = e;
f = g
}
rowsDone[d] = true
}
c = g_G[a] + g_F[a] - b;
d = g_K[a];
g_G.push(b);
g_F.push(c);
g_K.push(d);
g_F[a] = b - g_G[a] + 1
}
for (a = 0; a < width; a++) if (!columnsDone[a]) for (b = 0; b < height; b++) rowsDone[b] || (c = noise[b * width + a - 1] + noise[(b - 1) * width + a], d = 2, columnsDone[a + 1] && (d++, c += noise[b * width + a + 1]), rowsDone[b + 1] && (d++, c += noise[(b + 1) * width + a]), noise[b * width + a] = Math.floor(c / d))
unsetLoad();
if (!checkProcessStart(this)) {
reject();
return;
}
resolve(noise);
});
};
}
async function generateMap(map) {
const rand = new Random();
rand.init(map.seed);
const noise = await (new NoiseGenerator()).generate(map.width, map.height, map.g7, map.g4, rand);
await new Promise(resolve => setTimeout(resolve, 0));
if (map.h1) {
var a = [map.width / 2];
var b = [map.height / 2];
var c = [...map.h1];
var d = [...map.h2];
var f, g, h, i = a.length - 1, j = map.width + map.height;
j *= j;
var k = c.length;
for (f = k - 1; 0 <= f; f--) c[f] *= c[f];
var l = Array(k), m = Array(k), n = Array(k);
var e = Array(k)
for (f = k - 1; 0 <= f; f--) e[f] = 0;
for (f = 1; f < k; f++) l[f] = c[f] - c[f - 1], m[f] = d[f] - d[f - 1], n[f] = e[f] - e[f - 1];
for (g = map.width - 1; 0 <= g; g--) for (h = map.height - 1; 0 <= h; h--) {
var p = j;
for (f = i; 0 <= f; f--) {
var q = (g - a[f]) * (g - a[f]) + (h - b[f]) * (h - b[f]);
p = q < p ? q : p
}
q = d[k - 1];
var r = e[k - 1];
for (f = 1; f < k; f++) if (p < c[f]) {
q = d[f - 1] + divideNegative((p - c[f - 1]) * m[f], l[f]);
r = e[f - 1] + divideNegative((p - c[f - 1]) * n[f], l[f]);
break
}
var z = map.width * h + g;
500 > q ? noise[z] = Math.floor(noise[z] * q * 2 / 1E3) : 500 < q && (noise[z] += Math.floor(2 * (1E4 - noise[z]) * (q - 500) / 1E3));
noise[z] += Math.floor(r * (10 * q - noise[z]) / 1E3)
}
}
canvas.width = map.width;
canvas.height = map.height;
const ctx = canvas.getContext("2d", {alpha: false});
const imgData = ctx.getImageData(0, 0, map.width, map.height);
let pixels = imgData.data;
b = map.bt, c = map.ez, d = map.mm, e = map.ce, f, g, i = b.length - 2, j = Array(i + 1), k = Array(i + 1), l = Array(i + 1), m = Array(i + 1);
let startTick = currentProcess = Date.now();
for (g = i; 0 <= g; g--) j[g] = b[g + 1] - b[g], k[g] = c[g + 1] - c[g], l[g] = d[g + 1] - d[g], m[g] = e[g + 1] - e[g];
for (f = map.width * map.height - 1; 0 <= f; f--) for (g = i; 0 <= g; g--) if (noise[f] >= b[g]) {
if (Date.now() - startTick > 200) {
setLoad("Generating... " + Math.floor(100 - (f / (map.width * map.height)) * 100) + "%");
await new Promise(resolve => setTimeout(resolve, 0));
if (!checkProcessStart(startTick)) {
return;
}
startTick = currentProcess = Date.now();
}
n = noise[f] - b[g];
pixels[4 * f] = c[g] + divideNegative(k[g] * n, j[g]);
pixels[4 * f + 1] = d[g] + divideNegative(l[g] * n, j[g]);
pixels[4 * f + 2] = e[g] + divideNegative(m[g] * n, j[g]);
pixels[4 * f + 3] = 255;
break
}
ctx.putImageData(imgData, 0, 0);
unsetLoad();
finishMapLoad();
}
function divideNegative(a, b) {
return 0 <= a ? Math.floor(a / b) : -Math.floor(-a / b)
}
//End of Territorial.io code
for (let i = 0; i < defaultData.length; i++) {
const option = document.createElement("option");
option.value = i.toString();
option.innerText = defaultData[i].name;
mapSelector.appendChild(option);
}
const sizeXInput = document.getElementById("sizeXInput");
const sizeYInput = document.getElementById("sizeYInput");
const landColor = document.getElementById("landColor");
const landTargetColor = document.getElementById("landTargetColor");
const waterColor = document.getElementById("waterColor");
const waterTargetColor = document.getElementById("waterTargetColor");
const mountainColor = document.getElementById("mountainColor");
const mountainTargetColor = document.getElementById("mountainTargetColor");
let normalizeLand = false, normalizeWater = false, normalizeMountains = false;
function loadMap(index, seed) {
const map = {...defaultData[index]};
if (!mapInput || (mapInput.type !== "preset" || mapInput.index !== index)) {
mapInput = {type: "preset", index: index};
if (map.width) {
sizeXInput.value = map.width;
sizeYInput.value = map.height;
sizeXInput.original = map.width;
sizeYInput.original = map.height;
updateNormalizer()
} else {
sizeXInput.original = -1;
}
}
if (index === 1) seed = defaultData[1].seed;
map.seed = seed;
map.width = parseInt(sizeXInput.value);
map.height = parseInt(sizeYInput.value);
map.data ? loadStaticMap(map) : generateMap(map);
}
function finishMapLoad() {
document.getElementById("edits").classList.remove("d-none");
sizeXInput.value = canvas.width;
sizeYInput.value = canvas.height;
canvas.style.width = canvas.parentElement.getBoundingClientRect().width + "px";
canvas.style.height = canvas.parentElement.getBoundingClientRect().height + "px";
canvas.classList.remove("d-none");
overlay.classList.remove("d-none");
updateSpawnOverlay();
updateSpawnOverlay();
}
function applyMapChanges() {
currentProcess = null;
unsetLoad();
if (!mapInput) return;
if (mapInput.type === "preset") {
loadMap(mapInput.index, seedInput.value);
} else if (mapInput.type === "image") {
canvas.width = sizeXInput.original;
canvas.height = sizeYInput.original;
const ctx = canvas.getContext("2d");
ctx.putImageData(mapInput.data, 0, 0);
scaleMap(mapInput.data);
if (!currentPicker && (normalizeLand || normalizeWater || normalizeMountains)) {
normalizeMap(normalizeLand, normalizeWater, normalizeMountains);
}
finishMapLoad();
}
}
const seedInput = document.getElementById("seedInput");
const spawnSeedInput = document.getElementById("spawnSeed");
seedInput.value = spawnSeedInput.value = 14071;
mapSelector.value = "2";
document.getElementById("random").onclick = () => {
seedInput.value = Math.floor((Math.random() * 1E5) % 16383);
if (spawnLink) spawnSeedInput.value = seedInput.value;
applyMapChanges();
};
document.getElementById("spawnRandom").onclick = () => {
if (spawnLink) return;
spawnSeedInput.value = Math.floor((Math.random() * 1E5) % 16383);
};
mapSelector.onchange = function () {
loadMap(parseInt(this.value), seedInput.value);
preview.classList.add("d-none");
fileDesc.classList.remove("d-none");
fileDesc.innerText = "Upload or Drop an Image here";
fileDesc.classList.remove("text-danger");
}
seedInput.oninput = function () {
if (spawnLink) spawnSeedInput.value = this.value;
applyMapChanges();
}
mapSelector.onchange(undefined);
let linked = true;
document.getElementById("link").onclick = function () {
linked = !linked;
this.innerHTML = `<i class='fas ${linked ? "fa-link" : "fa-link-slash"}'></i>`;
}
let spawnLink = true;
document.getElementById("spawnLink").onclick = function () {
spawnLink = !spawnLink;
this.innerHTML = `<i class='fas ${spawnLink ? "fa-link" : "fa-link-slash"}'></i>`;
document.getElementById("spawnRandom").style.opacity = spawnLink ? "0.5" : "1";
if (spawnLink) {
spawnSeedInput.value = seedInput.value;
}
}
sizeXInput.oninput = sizeYInput.oninput = function () {
sizeXInput.value = Math.max(1, Math.min(parseInt(sizeXInput.value), 4096));
sizeYInput.value = Math.max(1, Math.min(parseInt(sizeYInput.value), 4096));
if (isNaN(sizeXInput.value)) sizeXInput.value = 0;
if (isNaN(sizeYInput.value)) sizeYInput.value = 0;
if (linked) {
if (this === sizeXInput) {
sizeYInput.value = Math.floor(sizeXInput.value * sizeYInput.original / sizeXInput.original);
} else {
sizeXInput.value = Math.floor(sizeYInput.value * sizeXInput.original / sizeYInput.original);
}
}
sizeXInput.value > 0 && sizeYInput.value > 0 && applyMapChanges();
if (sizeXInput.value === "0") sizeXInput.value = "";
if (sizeYInput.value === "0") sizeYInput.value = "";
}
function scaleMap(imgData) {
const newCanvas = document.createElement("canvas");
newCanvas.width = canvas.width;
newCanvas.height = canvas.height;
const newCtx = newCanvas.getContext("2d");
newCtx.putImageData(imgData, 0, 0);
canvas.width = sizeXInput.value;
canvas.height = sizeYInput.value;
const ctx = canvas.getContext("2d");
ctx.drawImage(newCanvas, 0, 0, newCanvas.width, newCanvas.height, 0, 0, canvas.width, canvas.height);
}
document.getElementById("normalizeLand").onclick = function () {
if (mapInput.type === "preset") return;
normalizeLand = !normalizeLand;
this.innerHTML = `<i class='fas ${normalizeLand ? "fa-check" : "fa-xmark"}'></i>`;
applyMapChanges();
}
document.getElementById("normalizeWater").onclick = function () {
if (mapInput.type === "preset") return;
normalizeWater = !normalizeWater;
this.innerHTML = `<i class='fas ${normalizeWater ? "fa-check" : "fa-xmark"}'></i>`;
applyMapChanges();
}
document.getElementById("normalizeMountains").onclick = function () {
if (mapInput.type === "preset") return;
normalizeMountains = !normalizeMountains;
this.innerHTML = `<i class='fas ${normalizeMountains ? "fa-check" : "fa-xmark"}'></i>`;
applyMapChanges();
}
landColor.onclick = waterColor.onclick = mountainColor.onclick = function () {
if (mapInput.type === "preset") return;
const picker = document.createElement("input");
picker.type = "color";
picker.value = this.value;
picker.style.display = "none";
const parent = this;
picker.onchange = function () {
parent.value = this.value;
updateNormalizer();
applyMapChanges();
}
document.body.appendChild(picker);
picker.click();
}
let currentPicker = null;
landTargetColor.onclick = waterTargetColor.onclick = mountainTargetColor.onclick = function () {
if (mapInput.type === "preset") return;
var cvas = document.createElement("canvas");
cvas.width = 24;
cvas.height = 24;
var ctx = cvas.getContext("2d");
const font = "900 24px " + getComputedStyle(document.body).getPropertyValue("--fa-style-family-classic");
document.fonts.load(font).then(() => {
ctx.font = font;
ctx.fillStyle = "#FF0000";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("\uf00d", 12, 12);
document.body.style.cursor = `url(${(cvas.toDataURL('image/png'))}) 12 12, auto`;
ctx.clearRect(0, 0, cvas.width, cvas.height);
ctx.fillStyle = getComputedStyle(document.body).getPropertyValue("--bs-body-color");
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("\uf1fb", 12, 12);
canvas.style.cursor = `url(${(cvas.toDataURL('image/png'))}) 0 24, auto`;
document.getElementById("overlay").classList.add("d-none");
});
currentPicker = this;
applyMapChanges();
document.onclick = function (e) {
if (e.target === currentPicker || e.target.parentElement === currentPicker) return;
if (e.target === canvas) {
const ctx = canvas.getContext("2d");
const imgData = ctx.getImageData(e.offsetX * (canvas.width / canvas.getBoundingClientRect().width), e.offsetY * (canvas.height / canvas.getBoundingClientRect().height), 1, 1);
currentPicker.value = "#" + (imgData.data[0] << 16 | imgData.data[1] << 8 | imgData.data[2]).toString(16).padStart(6, "0");
updateNormalizer();
currentPicker = null;
applyMapChanges();
}
document.body.style.cursor = "";
canvas.style.cursor = "";
document.onclick = undefined;
currentPicker = null;
document.getElementById("overlay").classList.remove("d-none");
}
}
function normalizeMap() {
const ctx = canvas.getContext("2d");
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
let pixels = imageData.data;
const land = [parseInt(landColor.value.slice(1, 3), 16), parseInt(landColor.value.slice(3, 5), 16), parseInt(landColor.value.slice(5, 7), 16)];
const water = [parseInt(waterColor.value.slice(1, 3), 16), parseInt(waterColor.value.slice(3, 5), 16), parseInt(waterColor.value.slice(5, 7), 16)];
const mountain = [parseInt(mountainColor.value.slice(1, 3), 16), parseInt(mountainColor.value.slice(3, 5), 16), parseInt(mountainColor.value.slice(5, 7), 16)];
const landTarget = [parseInt(landTargetColor.value.slice(1, 3), 16), parseInt(landTargetColor.value.slice(3, 5), 16), parseInt(landTargetColor.value.slice(5, 7), 16)];
const waterTarget = [parseInt(waterTargetColor.value.slice(1, 3), 16), parseInt(waterTargetColor.value.slice(3, 5), 16), parseInt(waterTargetColor.value.slice(5, 7), 16)];
const mountainTarget = [parseInt(mountainTargetColor.value.slice(1, 3), 16), parseInt(mountainTargetColor.value.slice(3, 5), 16), parseInt(mountainTargetColor.value.slice(5, 7), 16)];
for (let i = 0; i < pixels.length; i += 4) {
const landDiff = normalizeLand ? Math.abs(pixels[i] - landTarget[0]) + Math.abs(pixels[i + 1] - landTarget[1]) + Math.abs(pixels[i + 2] - landTarget[2]) : 766;
const waterDiff = normalizeWater ? Math.abs(pixels[i] - waterTarget[0]) + Math.abs(pixels[i + 1] - waterTarget[1]) + Math.abs(pixels[i + 2] - waterTarget[2]) : 766;
const mountainDiff = normalizeMountains ? Math.abs(pixels[i] - mountainTarget[0]) + Math.abs(pixels[i + 1] - mountainTarget[1]) + Math.abs(pixels[i + 2] - mountainTarget[2]) : 766;
if (landDiff < waterDiff && landDiff < mountainDiff) {
pixels[i] = land[0];
pixels[i + 1] = land[1];
pixels[i + 2] = land[2];
} else if (waterDiff < mountainDiff) {
pixels[i] = water[0];
pixels[i + 1] = water[1];
pixels[i + 2] = water[2];
} else {
pixels[i] = mountain[0];
pixels[i + 1] = mountain[1];
pixels[i + 2] = mountain[2];
}
pixels[i + 3] = 255;
}
ctx.putImageData(imageData, 0, 0);
polishMap(defaultData[10], ctx, canvas.width, canvas.height);
}
function updateNormalizer() {
document.getElementById("normalize").style.opacity = mapInput.type === "preset" ? "50%" : "100%";
waterColor.style.backgroundColor = waterColor.value;
landColor.style.backgroundColor = landColor.value;
mountainColor.style.backgroundColor = mountainColor.value;
waterTargetColor.style.backgroundColor = waterTargetColor.value;
landTargetColor.style.backgroundColor = landTargetColor.value;
mountainTargetColor.style.backgroundColor = mountainTargetColor.value;
}
const playerColorPicker = document.getElementById("selectableColor");
playerColorPicker.value = "";
playerColorPicker.onclick = function () {
const picker = document.createElement("input");
picker.type = "color";
picker.value = this.value;
picker.style.display = "none";
const parent = this;
picker.onchange = function () {
parent.value = this.value;
parent.style.backgroundColor = this.value;
updateSpawnOverlay();
}
document.body.appendChild(picker);
picker.click();
}
document.getElementById("clearColor").onclick = function () {
playerColorPicker.value = "";
playerColorPicker.style.backgroundColor = "";
updateSpawnOverlay();
}
let playerSpawn = null;
let bots = [];
let lastBot = null;
document.getElementById("clearSpawn").onclick = function () {
playerSpawn = null;
updateSpawnOverlay();
}
document.getElementById("playerTeam").onchange = function () {
updateSpawnOverlay();
}
document.getElementById("gameMode").onchange = function () {
updateSpawnOverlay();
}
document.getElementById("selectableSpawn").onclick = function () {
var cvas = document.createElement("canvas");
cvas.width = 24;
cvas.height = 24;
var ctx = cvas.getContext("2d");
const font = "900 24px " + getComputedStyle(document.body).getPropertyValue("--fa-style-family-classic");
document.fonts.load(font).then(() => {
ctx.font = font;
ctx.fillStyle = "#FF0000";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("\uf00d", 12, 12);
document.body.style.cursor = `url(${(cvas.toDataURL('image/png'))}) 12 12, auto`;
ctx.clearRect(0, 0, cvas.width, cvas.height);
ctx.fillStyle = getComputedStyle(document.body).getPropertyValue("--bs-body-color");
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("\uf007", 12, 12);
overlay.style.cursor = `url(${(cvas.toDataURL('image/png'))}) 12 12, auto`;
});
currentPicker = this;
document.onclick = function (e) {
if (e.target === currentPicker || e.target.parentElement === currentPicker) return;
if (e.target === overlay) {
const posX = e.offsetX / overlay.getBoundingClientRect().width;
const posY = e.offsetY / overlay.getBoundingClientRect().height;
playerSpawn = [posX, posY];
updateSpawnOverlay();
}
document.body.style.cursor = "";
overlay.style.cursor = "";
document.onclick = undefined;
currentPicker = null;
}
}
function writeToData() {
let data = {};
if (document.getElementById("credit").checked) {
data._ = "Created using https://platz1de.github.io/BetterTT/maps/";
}
data.numberPlayers = bots.length === 0 ? 512 : bots.length + 1;
data.modeID = parseInt(document.getElementById("gameMode").value);
data.mapID = mapInput.type === "preset" ? parseInt(mapInput.index) : 0;
data.seedMap = mapInput.type === "preset" ? parseInt(seedInput.value) : 0;
data.seedSpawn = parseInt(spawnSeedInput.value);
data.selectableName = document.getElementById("selectableName").value === "";
data.selectableColor = document.getElementById("selectableColor").value === "";
data.selectableSpawn = playerSpawn === null;
data.mapName = document.getElementById("mapName").value || "Unnamed Map";
data.description = document.getElementById("mapDescription").value.split("\n") || ["No description"];
if (bots.length > 0) {
const mapWidth = sizeXInput.value;
const mapHeight = sizeYInput.value;
const names = [document.getElementById("selectableName").value];
const colors = [hexToColor(document.getElementById("selectableColor").value)];
const x = [playerSpawn ? playerSpawn[0] * mapWidth : 0];
const y = [playerSpawn ? playerSpawn[1] * mapHeight : 0];
const teams = [parseInt(document.getElementById("playerTeam").value)];
const strength = [0];
for (let i = 0; i < bots.length; i++) {
names.push(bots[i].name);
colors.push(hexToColor(bots[i].color));
x.push(bots[i].spawnX * mapWidth);
y.push(bots[i].spawnY * mapHeight);
teams.push(parseInt(bots[i].team));
strength.push(parseInt(bots[i].strength));
}
data.playerName = names;
data.playerColor = colors;
data.playerX = x;
data.playerY = y;
data.playerTeam = teams;
data.playerStrength = strength;
}
if (mapInput.type !== "preset" || parseInt(sizeXInput.value) !== sizeXInput.original || parseInt(sizeYInput.value) !== sizeYInput.original) {
data.mapBase64 = canvas.toDataURL("image/png");
}
return data;
}
document.getElementById("import").onclick = function () {
const fileInput = document.createElement("input");
fileInput.type = "file";
fileInput.accept = ".json";
fileInput.onchange = function () {
const file = fileInput.files[0];
const reader = new FileReader();
reader.onload = async () => {
const data = JSON.parse(reader.result);
let mapWidth = 0, mapHeight = 0;
document.getElementById("gameMode").value = data.modeID;
if (data.mapBase64 && data.mapBase64 !== "") {
mapInput = {type: "image", data: data.mapBase64};
await new Promise(r => {
const img = new Image();
img.onload = function () {
canvas.width = mapWidth = img.width;
canvas.height = mapHeight = img.height;
canvas.getContext("2d").drawImage(img, 0, 0);
finishMapLoad()
r();
}
img.src = data.mapBase64;
});
seedInput.value = data.seedMap;
} else {
seedInput.value = data.seedMap;
mapSelector.value = data.mapID;
loadMap(data.mapID, data.seedMap);
mapWidth = sizeXInput.value;
mapHeight = sizeYInput.value;
}
spawnSeedInput.value = data.seedSpawn;
document.getElementById("selectableName").value = data.selectableName ? "" : data.playerName[0];
document.getElementById("selectableColor").value = document.getElementById("selectableColor").style.backgroundColor = data.selectableColor ? "" : "#" + (data.playerColor[0] << 16 | data.playerColor[1] << 8 | data.playerColor[2]).toString(16).padStart(6, "0");
playerSpawn = data.selectableSpawn ? null : [data.playerX[0] / mapWidth, data.playerY[0] / mapHeight];
document.getElementById("mapName").value = data.mapName;
document.getElementById("mapDescription").value = data.description.join("\n");
if (data.numberPlayers > 1) {
bots = [];
for (let i = 1; i < data.numberPlayers; i++) {
bots.push({
name: data.playerName[i],
color: "#" + (data.playerColor[i][0] << 16 | data.playerColor[i][1] << 8 | data.playerColor[i][2]).toString(16).padStart(6, "0"),
spawnX: data.playerX[i] / mapWidth,
spawnY: data.playerY[i] / mapHeight,
team: data.playerTeam[i],
strength: data.playerStrength[i]
});
}
lastBot = bots[bots.length - 1];
updateSpawnOverlay();
}
}
reader.readAsText(file);
}
fileInput.click();
}
function hexToColor(hex) {
if (!hex) return [0, 0, 0];
return [parseInt(hex.slice(1, 3), 16), parseInt(hex.slice(3, 5), 16), parseInt(hex.slice(5, 7), 16)];
}
document.getElementById("save").onclick = function () {
const data = writeToData();
const a = document.createElement("a");
a.href = "data:text/plain;charset=utf-8," + encodeURIComponent(JSON.stringify(data, null, 2));
a.download = data.mapName + ".json";
a.click();
}
document.getElementById("copy").onclick = function () {
const data = writeToData();
navigator.clipboard.writeText(JSON.stringify(data, null, 2));
}
document.getElementById("image").onclick = function () {
const data = canvas.toDataURL("image/png");
const a = document.createElement("a");
a.href = data;
a.download = (document.getElementById("mapName").value || "Unnamed Map") + ".png";
a.click();
}
function updateSpawnOverlay() {
const bb = canvas.getBoundingClientRect();
const cRatio = bb.width / bb.height;
const oRatio = canvas.width / canvas.height;
if (oRatio > cRatio) {
overlay.style.width = bb.width + "px";
overlay.style.height = bb.width / oRatio + "px";
} else {
overlay.style.width = bb.height * oRatio + "px";
overlay.style.height = bb.height + "px";
}
if (canvas.width > canvas.height) {
overlay.width = 5120 * oRatio;
overlay.height = 5120;
} else {
overlay.width = 5120 * oRatio;
overlay.height = 5120;
}
const ctx = overlay.getContext("2d");
ctx.clearRect(0, 0, overlay.width, overlay.height);
const font = "900 120px " + getComputedStyle(document.body).getPropertyValue("--fa-style-family-classic");
document.fonts.load(font).then(() => {
ctx.font = font;
ctx.textAlign = "center";
ctx.textBaseline = "middle";
if (playerSpawn) {
ctx.fillStyle = "rgba(0, 0, 0, 0.5)";
ctx.fillRect(playerSpawn[0] * overlay.width - 75, playerSpawn[1] * overlay.height - 75, 150, 150);
ctx.fillStyle = getColor(document.getElementById("selectableColor").value || "#000000", parseInt(document.getElementById("playerTeam").value));
ctx.fillText("\uf007", playerSpawn[0] * overlay.width, playerSpawn[1] * overlay.height);
}
for (let i = 0; i < bots.length; i++) {
ctx.fillStyle = "rgba(0, 0, 0, 0.5)";
ctx.fillRect(bots[i].spawnX * overlay.width - 75, bots[i].spawnY * overlay.height - 135, 150, 150);
ctx.fillStyle = getColor(bots[i].color, bots[i].team);
ctx.fillText("\uf041", bots[i].spawnX * overlay.width, bots[i].spawnY * overlay.height - 60);
}
});
}
function getColor(color, team) {
if (parseInt(document.getElementById("gameMode").value) !== 0) {
return colors[team];
}
return color;
}
document.getElementById("addBot").onclick = function () {
var cvas = document.createElement("canvas");
cvas.width = 24;
cvas.height = 24;
var ctx = cvas.getContext("2d");
const font = "900 24px " + getComputedStyle(document.body).getPropertyValue("--fa-style-family-classic");
document.fonts.load(font).then(() => {
ctx.font = font;
ctx.fillStyle = "#FF0000";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("\uf00d", 12, 12);
document.body.style.cursor = `url(${(cvas.toDataURL('image/png'))}) 12 12, auto`;
ctx.clearRect(0, 0, cvas.width, cvas.height);
ctx.fillStyle = getComputedStyle(document.body).getPropertyValue("--bs-body-color");
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("\uf041", 12, 12);
overlay.style.cursor = `url(${(cvas.toDataURL('image/png'))}) 12 24, auto`;
});
currentPicker = this;
document.onclick = function (e) {
if (e.target === currentPicker || e.target.parentElement === currentPicker) return;
if (e.target === overlay) {
const posX = e.offsetX / overlay.getBoundingClientRect().width;
const posY = e.offsetY / overlay.getBoundingClientRect().height;
botDone.int_posX = posX;
botDone.int_posY = posY;
openBotSettings(-1);
}
document.body.style.cursor = "";
overlay.style.cursor = "";
document.onclick = undefined;
currentPicker = null;
}
}
window.addEventListener("resize", function () {
canvas.classList.add("d-none");
canvas.style.width = canvas.parentElement.getBoundingClientRect().width + "px";
canvas.style.height = canvas.parentElement.getBoundingClientRect().height + "px";
canvas.classList.remove("d-none");
updateSpawnOverlay();
});
const botName = document.getElementById("botName");
const botColor = document.getElementById("botColor");
const botTeam = document.getElementById("botTeam");
const botStrength = document.getElementById("botStrength");
const botDone = document.getElementById("botDone");
const botDelete = document.getElementById("botDelete");
botColor.onclick = function () {
const picker = document.createElement("input");
picker.type = "color";
picker.value = this.value;
picker.style.display = "none";
const parent = this;
picker.onchange = function () {
parent.value = this.value;
parent.style.backgroundColor = this.value;
}
document.body.appendChild(picker);
picker.click();
}
document.getElementById("botColorRandom").onclick = function () {
botColor.value = "#" + Math.floor(Math.random() * 16777215).toString(16);
botColor.style.backgroundColor = botColor.value;
}
function openBotSettings(id) {
document.getElementById("botSettings").classList.remove("d-none");
var data;
if (id === -1) {
data = lastBot ?? {
team: 0,
strength: 0,
}
data = {...data};
data.color = "#" + Math.floor(Math.random() * 16777215).toString(16);
data.name = "Bot " + (bots.length + 1);
data.spawnX = botDone.int_posX;
data.spawnY = botDone.int_posY;
} else {
data = bots[id];
}
lastBot = data;
botName.value = data.name;
botColor.value = botColor.style.backgroundColor = data.color;
botTeam.value = data.team;
botStrength.value = data.strength;
botDone.onclick = function () {
if (id === -1) {
bots.push({
name: botName.value,
color: botColor.value,
team: botTeam.value,
strength: botStrength.value,
spawnX: botDone.int_posX,
spawnY: botDone.int_posY
});
} else {
bots[id].name = botName.value;
bots[id].color = botColor.value;
bots[id].team = botTeam.value;
bots[id].strength = botStrength.value;
}
lastBot = bots[id === -1 ? bots.length - 1 : id];
updateSpawnOverlay();
document.getElementById("botSettings").classList.add("d-none");
}
botDelete.onclick = function () {
if (id !== -1) {
bots.splice(id, 1);
updateSpawnOverlay();
}
document.getElementById("botSettings").classList.add("d-none");
}
}
overlay.onclick = function (e) {
const posX = e.offsetX / overlay.getBoundingClientRect().width;
const posY = e.offsetY / overlay.getBoundingClientRect().height;
const off = 75 / 5120;
for (let i = 0; i < bots.length; i++) {
if (posX > bots[i].spawnX - off && posX < bots[i].spawnX + off && posY > bots[i].spawnY - off && posY < bots[i].spawnY + off) {
openBotSettings(i);
return;
}
}
}
</script>
</body>
</html>