Compare commits

..

1 Commits
main ... main

Author SHA1 Message Date
Noah
0463d08320 add polytrack 0.5.0
by yours truly
2025-04-28 15:54:13 -07:00
125 changed files with 107316 additions and 3191 deletions

View File

@ -4,7 +4,6 @@
The following versions of this project that are currently supported and unsupported: The following versions of this project that are currently supported and unsupported:
- **Version 2.3.7** Supported ✅
- **Version 2.3.5** Supported ✅ - **Version 2.3.5** Supported ✅
- **Version 2.3.1** Supported ✅ - **Version 2.3.1** Supported ✅
- **Version 2.3.0** Supported ✅ - **Version 2.3.0** Supported ✅
@ -18,4 +17,4 @@ The following versions of this project that are currently supported and unsuppor
## Support ## Support
If you are experiencing an issue with Waves unrelated to security, feel free to join our [Discord Server](https://discord.gg/dJvdkPRheV) and open a ticket. If you are experiencing an issue with Waves unrelated to security, feel free to join our [Discord](https://discord.gg/dJvdkPRheV) server and open a ticket.

257
index.mjs
View File

@ -1,126 +1,74 @@
import cluster from "cluster"; import cluster from "cluster";
import os from "os"; import os from "os";
import net from "net"; import net from "net";
import fs from "fs";
import path from "path";
import { spawnSync } from "child_process";
import express from "express"; import express from "express";
import { createServer } from "http"; import { createServer } from "http";
import path from "path";
import compression from "compression"; import compression from "compression";
import WebSocket from "ws"; import WebSocket from "ws";
import { LRUCache } from "lru-cache";
import { baremuxPath } from "@mercuryworkshop/bare-mux/node"; import { baremuxPath } from "@mercuryworkshop/bare-mux/node";
import { epoxyPath } from "@mercuryworkshop/epoxy-transport"; import { epoxyPath } from "@mercuryworkshop/epoxy-transport";
import { libcurlPath } from "@mercuryworkshop/libcurl-transport"; import { libcurlPath } from "@mercuryworkshop/libcurl-transport";
import { uvPath } from "@titaniumnetwork-dev/ultraviolet"; import { uvPath } from "@titaniumnetwork-dev/ultraviolet";
import wisp from "wisp-server-node"; import wisp from "wisp-server-node";
import NodeCache from "node-cache";
const surgeConfigPath = path.resolve("surge.config.json");
const isSurgedRun = process.argv.includes("--surged");
let startTime = Date.now();
function applySurgeAndRestartIfNeeded() {
if (isSurgedRun) {
try {
const config = JSON.parse(fs.readFileSync(surgeConfigPath, "utf-8"));
process.env.UV_THREADPOOL_SIZE = String(config.uvThreadpoolSize);
} catch {}
return;
}
const result = spawnSync("node", ["./others/surge.mjs"], { stdio: "inherit" });
if (result.error) process.exit(1);
const config = JSON.parse(fs.readFileSync(surgeConfigPath, "utf-8"));
const nodeArgs = [...config.nodeFlags, path.resolve("index.mjs"), "--surged"];
const env = {
...process.env,
UV_THREADPOOL_SIZE: String(config.uvThreadpoolSize),
ALREADY_SURGED: "true"
};
const relaunch = spawnSync(process.execPath, nodeArgs, { stdio: "inherit", env });
process.exit(relaunch.status || 0);
}
applySurgeAndRestartIfNeeded();
if (global.gc) {
setInterval(() => {
const { heapUsed, heapTotal } = process.memoryUsage();
if (heapTotal > 0 && heapUsed / heapTotal > 0.7) global.gc();
}, 60000);
}
import "./others/scaler.mjs";
import "./others/warmup.mjs";
const cache = new LRUCache({
maxSize: 1000,
ttl: 60_000,
allowStale: false,
sizeCalculation: (value, key) => Buffer.byteLength(value) + Buffer.byteLength(key)
});
const port = parseInt(process.env.PORT || "3000", 10); const port = parseInt(process.env.PORT || "3000", 10);
cluster.schedulingPolicy = cluster.SCHED_RR;
function logInfo(msg) { function logInfo(message) {
console.info(`[~] ${msg}`); console.info(`[INFO] ${message}`);
}
function logError(error) {
const msg = error instanceof Error ? error.message : error;
console.error(`[ERR] ${msg}`);
} }
function logSuccess(msg) { process.on("uncaughtException", (err) => logError(`Unhandled Exception: ${err}`));
console.info(`[+] ${msg}`); process.on("unhandledRejection", (reason) => logError(`Unhandled Promise Rejection: ${reason}`));
}
function logError(err) {
console.error(`[!] ${err instanceof Error ? err.message : err}`);
}
process.on("uncaughtException", err => logError(`Unhandled Exception: ${err}`));
process.on("unhandledRejection", reason => logError(`Unhandled Rejection: ${reason}`));
if (cluster.isPrimary) { if (cluster.isPrimary) {
const cpus = os.cpus().length; const numCPUs = os.cpus().length;
const workers = Math.max(1, cpus - 1); logInfo(`Master started. Forking ${numCPUs} workers.`);
for (let i = 0; i < numCPUs; i++) {
logInfo(`Master: forking ${workers} workers`);
for (let i = 0; i < workers; i++) {
cluster.fork(); cluster.fork();
} }
cluster.on("exit", (worker, code, signal) => {
cluster.on("exit", worker => { logError(`Worker ${worker.process.pid} terminated (code: ${code}, signal: ${signal}). Restarting...`);
logError(`Worker ${worker.process.pid} exited. Restarting...`);
cluster.fork(); cluster.fork();
}); });
let currentWorker = 0;
let current = 0; const server = net.createServer({ pauseOnConnect: true }, (connection) => {
const server = net.createServer({ pauseOnConnect: true }, conn => { const workerIds = Object.keys(cluster.workers);
const workersArr = Object.values(cluster.workers); if (workerIds.length === 0) {
if (!workersArr.length) return conn.destroy(); connection.destroy();
const worker = workersArr[current++ % workersArr.length]; return;
worker.send("sticky-session:connection", conn); }
const worker = cluster.workers[workerIds[currentWorker % workerIds.length]];
currentWorker++;
if (worker) worker.send("sticky-session:connection", connection);
}); });
server.on("error", (err) => logError(`Server error: ${err}`));
server.on("error", err => logError(`Server error: ${err}`)); server.listen(port, () => logInfo(`Server running at http://localhost:${port}`));
server.listen(port, () => logSuccess(`Server listening on ${port}`));
} else { } else {
process.env.UV_THREADPOOL_SIZE = os.cpus().length * 2;
const __dirname = process.cwd(); const __dirname = process.cwd();
const publicPath = path.join(__dirname, "public"); const publicPath = path.join(__dirname, "public");
const app = express(); const app = express();
let latencySamples = [];
app.use(compression({ level: 4, memLevel: 4, threshold: 1024 })); app.use(compression({ level: 9, threshold: 128, memLevel: 9 }));
const cache = new NodeCache({ stdTTL: 1, checkperiod: 1 });
app.use((req, res, next) => { app.use((req, res, next) => {
const key = req.originalUrl; const key = req.originalUrl;
const val = cache.get(key); if (cache.has(key)) {
if (val) {
res.setHeader("X-Cache", "HIT"); res.setHeader("X-Cache", "HIT");
return res.send(val); return res.send(cache.get(key));
} }
res.sendResponse = res.send.bind(res); res.sendResponse = res.send;
res.send = body => { res.send = (body) => {
cache.set(key, body); cache.set(key, body);
res.setHeader("X-Cache", "MISS"); res.setHeader("X-Cache", "MISS");
res.sendResponse(body); res.sendResponse(body);
@ -128,7 +76,7 @@ if (cluster.isPrimary) {
next(); next();
}); });
const staticOpts = { maxAge: "7d", immutable: true }; const staticOpts = { maxAge: "1s" };
app.use("/baremux/", express.static(baremuxPath, staticOpts)); app.use("/baremux/", express.static(baremuxPath, staticOpts));
app.use("/epoxy/", express.static(epoxyPath, staticOpts)); app.use("/epoxy/", express.static(epoxyPath, staticOpts));
app.use("/libcurl/", express.static(libcurlPath, staticOpts)); app.use("/libcurl/", express.static(libcurlPath, staticOpts));
@ -136,129 +84,62 @@ if (cluster.isPrimary) {
app.use("/wah/", express.static(uvPath, staticOpts)); app.use("/wah/", express.static(uvPath, staticOpts));
app.use(express.json()); app.use(express.json());
const sendHtml = file => (_req, res) => res.sendFile(path.join(publicPath, file)); app.get("/", (req, res) => res.sendFile(path.join(publicPath, "$.html")));
app.get("/g", (req, res) => res.sendFile(path.join(publicPath, "!.html")));
app.get("/", sendHtml("$.html")); app.get("/a", (req, res) => res.sendFile(path.join(publicPath, "!!.html")));
app.get("/g", sendHtml("!.html")); app.get("/ai", (req, res) => res.sendFile(path.join(publicPath, "!!!.html")));
app.get("/s", sendHtml("!!.html")); app.get("/resent", (req, res) => res.sendFile(path.join(publicPath, "resent", "index.html")));
app.get("/resent", (_req, res) => res.sendFile(path.join(publicPath, "resent", "index.html"))); app.use((req, res) => res.status(404).sendFile(path.join(publicPath, "404.html")));
app.get("/api/info", (_req, res) => {
try {
const average = latencySamples.length
? latencySamples.reduce((a, b) => a + b, 0) / latencySamples.length
: 0;
let speed = "Medium";
if (average < 200) speed = "Fast";
else if (average > 500) speed = "Slow";
const cpus = os.cpus();
const totalMem = os.totalmem() / 1024 / 1024 / 1024;
res.json({
speed,
averageLatency: average.toFixed(2),
specs: `${cpus[0].model} + ${cpus.length} CPU Cores + ${totalMem.toFixed(1)}GB of RAM`,
startTime,
samples: latencySamples.length,
timestamp: Date.now()
});
} catch {
res.status(500).json({ error: "Internal error" });
}
});
app.get("/api/latest-commit", async (_req, res) => {
try {
const ghRes = await fetch(
"https://api.github.com/repos/xojw/waves/commits?per_page=1",
{
headers: {
"User-Agent": "waves-app",
Accept: "application/vnd.github.v3+json"
}
}
);
if (!ghRes.ok) return res.status(ghRes.status).json({ error: "GitHub API error" });
const commits = await ghRes.json();
const updates = commits.map(c => ({
sha: c.sha.slice(0, 7),
message: c.commit.message.split("\n")[0],
author: c.commit.author.name,
date: c.commit.author.date
}));
res.json({ repo: "xojw/waves", updates });
} catch {
res.status(500).json({ error: "Internal server error" });
}
});
app.use((_req, res) => res.status(404).sendFile(path.join(publicPath, "404.html")));
const server = createServer(app); const server = createServer(app);
server.keepAliveTimeout = 0; server.keepAliveTimeout = 0;
server.headersTimeout = 0; server.headersTimeout = 0;
const pingWSS = new WebSocket.Server({ const pingWSS = new WebSocket.Server({ noServer: true, maxPayload: 1048576 });
noServer: true,
maxPayload: 4 * 1024 * 1024,
perMessageDeflate: false
});
pingWSS.on("connection", (ws, req) => { pingWSS.on("connection", (ws, req) => {
const remote = req.socket.remoteAddress || "unknown"; const remoteAddress = req.socket.remoteAddress || "unknown";
let lat = []; let latencies = [];
const interval = setInterval(() => { const pingInterval = setInterval(() => {
if (ws.readyState === WebSocket.OPEN) { if (ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify({ type: "ping", timestamp: Date.now() })); const timestamp = Date.now();
ws.send(JSON.stringify({ type: "ping", timestamp }));
} }
}, 1000); }, 1000);
ws.on("message", (message) => {
ws.on("message", msg => {
try { try {
const data = JSON.parse(msg); const data = JSON.parse(message);
if (data.type === "pong" && data.timestamp) { if (data.type === "pong" && data.timestamp) {
const d = Date.now() - data.timestamp; const latency = Date.now() - data.timestamp;
lat.push(d); latencies.push(latency);
if (lat.length > 5) lat.shift(); if (latencies.length > 5) latencies.shift();
latencySamples.push(d); ws.send(JSON.stringify({ type: "latency", latency }));
if (latencySamples.length > 100) latencySamples.shift();
ws.send(JSON.stringify({ type: "latency", latency: d }));
} }
} catch (e) { } catch (e) {
logError(`Ping error: ${e}`); logError(`Ping error: ${e}`);
} }
}); });
ws.on("close", () => { ws.on("close", () => {
clearInterval(interval); clearInterval(pingInterval);
const avg = lat.length const avgLatency = latencies.length ? latencies.reduce((a, b) => a + b) / latencies.length : 0;
? (lat.reduce((a, b) => a + b) / lat.length).toFixed(2) logInfo(`Conn from ${remoteAddress} closed. Avg: ${avgLatency.toFixed(2)}ms.`);
: 0;
logInfo(`WS ${remote} closed. Avg: ${avg}ms`);
}); });
}); });
server.on("upgrade", (req, sock, head) => { server.on("upgrade", (req, socket, head) => {
if (req.url === "/w/ping") { if (req.url === "/w/ping") {
pingWSS.handleUpgrade(req, sock, head, ws => pingWSS.handleUpgrade(req, socket, head, (ws) => pingWSS.emit("connection", ws, req));
pingWSS.emit("connection", ws, req)
);
} else if (req.url.startsWith("/w/")) { } else if (req.url.startsWith("/w/")) {
wisp.routeRequest(req, sock, head); wisp.routeRequest(req, socket, head);
} else { } else {
sock.end(); socket.end();
} }
}); });
server.on("error", (err) => logError(`Worker server error: ${err}`));
server.on("error", err => logError(`Worker error: ${err}`)); server.listen(0, () => logInfo(`Worker ${process.pid} ready.`));
process.on("message", (message, connection) => {
server.listen(0, () => logSuccess(`Worker ${process.pid} ready`)); if (message === "sticky-session:connection") {
server.emit("connection", connection);
process.on("message", (msg, conn) => { connection.resume();
if (msg === "sticky-session:connection" && conn) {
server.emit("connection", conn);
conn.resume();
} }
}); });
} }

View File

@ -1,36 +0,0 @@
import { LRUCache } from 'lru-cache';
let maxKeys = 10_000;
let cache = makeCache(maxKeys);
function makeCache(maxEntries) {
return new LRUCache({
maxSize: maxEntries,
ttl: 60_000,
allowStale: false,
updateAgeOnGet: false,
updateAgeOnHas: false,
});
}
function scaleCache() {
const { heapUsed, heapTotal } = process.memoryUsage();
const freeHeapRatio = (heapTotal - heapUsed) / heapTotal;
const newMax = freeHeapRatio > 0.5
? 20_000
: freeHeapRatio < 0.2
? 5_000
: 10_000;
if (newMax !== maxKeys) {
maxKeys = newMax;
cache = makeCache(maxKeys);
console.log(`[SCALER] freeHeap ${( (heapTotal - heapUsed)/1e6 ).toFixed(1)}MB → maxKeys: ${maxKeys}`);
}
}
setInterval(scaleCache, 60_000);
scaleCache();
export { cache };

View File

@ -1,57 +0,0 @@
import { execSync } from "child_process";
import os from "os";
import fs from "fs";
import path from "path";
const log = (msg) => console.log(`[SURGE] ${msg}`);
const surgePath = path.resolve("surge.config.json");
function generateSurgeFlags() {
const cpus = os.cpus().length;
const flags = [
"--max-old-space-size=4096",
"--optimize_for_size",
"--gc-global",
"--max-semi-space-size=256",
"--no-warnings",
"--expose-gc"
];
if (process.platform !== "win32") {
flags.push("--use-largepages=on");
}
return {
uvThreadpoolSize: cpus * 2,
nodeFlags: flags
};
}
function writeSurgeFile(flags) {
fs.writeFileSync(surgePath, JSON.stringify(flags, null, 2));
log("Surge config saved.");
}
function launchSurgedBackend(flags) {
const args = [
...flags.nodeFlags,
"index.mjs",
"--surged"
];
log(`Launching backend: node ${args.join(" ")}`);
execSync(`node ${args.join(" ")}`, { stdio: "inherit" });
}
function isSurgedRun() {
return process.argv.includes("--surged");
}
(async () => {
if (isSurgedRun()) return;
log("Detecting best settings...");
const flags = generateSurgeFlags();
writeSurgeFile(flags);
launchSurgedBackend(flags);
process.exit(0);
})();

View File

@ -1,59 +0,0 @@
import http from 'http';
const endpoints = [
'http://localhost:3000/',
'http://localhost:3000/g',
'http://localhost:3000/a'
];
function httpGet(url, timeout = 5000) {
return new Promise((resolve) => {
const req = http.get(url, (res) => {
res.on('data', () => {});
res.on('end', () => {
resolve({ url, statusCode: res.statusCode });
});
});
req.on('error', (e) => {
resolve({ url, error: e.message });
});
req.setTimeout(timeout, () => {
req.abort();
resolve({ url, error: 'Timeout' });
});
});
}
async function warm(retries = 2) {
const results = await Promise.all(endpoints.map(async (url) => {
for (let i = 0; i <= retries; i++) {
const res = await httpGet(url);
if (!res.error) {
console.log(`[WARMUP] ${url}${res.statusCode}`);
return res;
} else {
console.warn(`[WARMUP] ${url} attempt ${i + 1} failed: ${res.error}`);
}
}
return { url, error: `Failed after ${retries + 1} attempts` };
}));
const failed = results.filter(r => r.error);
if (failed.length) {
console.warn(`[WARMUP] Some endpoints failed to warm:`, failed);
} else {
console.log('[WARMUP] All endpoints warmed successfully');
}
}
async function periodicWarmup(intervalMs = 5 * 60 * 1000) {
while (true) {
await warm();
console.log('[WARMUP] Cycle done');
await new Promise(res => setTimeout(res, intervalMs));
}
}
setTimeout(() => periodicWarmup(), 2000);

3285
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "waves", "name": "waves",
"version": "2.8.7", "version": "2.3.5",
"description": "A sleek and minimalist Web Proxy.", "description": "A sleek and minimalist Web Proxy.",
"type": "module", "type": "module",
"engines": { "engines": {
@ -21,13 +21,16 @@
"@mercuryworkshop/epoxy-transport": "latest", "@mercuryworkshop/epoxy-transport": "latest",
"@mercuryworkshop/libcurl-transport": "latest", "@mercuryworkshop/libcurl-transport": "latest",
"@titaniumnetwork-dev/ultraviolet": "latest", "@titaniumnetwork-dev/ultraviolet": "latest",
"axios": "latest", "axios": "^1.8.2",
"cache": "latest", "cache": "^3.0.0",
"compression": "latest", "compression": "latest",
"cors": "latest", "cors": "^2.8.5",
"express": "latest", "express": "latest",
"express-rate-limit": "latest", "express-rate-limit": "^7.5.0",
"lru-cache": "latest", "fs": "^0.0.1-security",
"node": "^23.9.0",
"node-cache": "latest",
"node-fetch": "latest",
"wisp-server-node": "latest", "wisp-server-node": "latest",
"ws": "latest" "ws": "latest"
}, },

View File

@ -3,80 +3,54 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:title" content="Waves." /> <meta property="og:title" content="Waves. - Apps"/>
<meta property="og:description" content="A sleek and minimalist web proxy."/> <meta property="og:description" content="A sleek and minimalist web proxy."/>
<meta property="og:image" content="/assets/images/icons/favicon.ico"/> <meta property="og:image" content="/assets/images/icons/favicon.ico"/>
<meta name="theme-color" content="#ffffff"/> <meta name="theme-color" content="#ffffff"/>
<meta name="msapplication-TileColor" content="#ffffff"/> <meta name="msapplication-TileColor" content="#ffffff"/>
<title>Waves.</title> <title>Waves</title>
<link rel="icon" type="image/x-icon" href="/assets/images/icons/favicon.ico">
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin /> <link rel="stylesheet" href="/assets/css/$.css">
<link rel="stylesheet" href="/assets/css/settings.css">
<link rel="icon" type="image/x-icon" href="/assets/images/icons/favicon.ico" /> <link rel="stylesheet" href="/assets/css/toast.css">
<link rel="stylesheet" href="/assets/css/a.css">
<link rel="stylesheet" href="/assets/css/$.css" /> <link href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css">
<link rel="preload" href="/assets/css/settings.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
<link rel="preload" href="/assets/css/toast.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-WGJ2192JZY"></script><script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-WGJ2192JZY');</script>
<link rel="preload" href="/assets/css/nprogress.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script type='text/javascript' src='//pl26200262.effectiveratecpm.com/f0/e8/15/f0e81559842363ebf19aa99900ff2d02.js'></script>
<link rel="preload" href="/assets/css/s.css" as="style" onload="this.onload=null;this.rel='stylesheet'" />
<noscript>
<link rel="stylesheet" href="/assets/css/settings.css" />
<link rel="stylesheet" href="/assets/css/toast.css" />
<link rel="stylesheet" href="/assets/css/nprogress.css" />
<link rel="stylesheet" href="/assets/css/s.css" />
</noscript>
<link rel="preload" as="style" href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" onload="this.onload=null;this.rel='stylesheet'" />
<noscript>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" />
</noscript>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-WGJ2192JZY"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "G-WGJ2192JZY");
</script>
</head> </head>
<body> <body>
<script src="/baremux/index.js" defer></script> <script src="/baremux/index.js"></script>
<script src="/assets/js/nprogress.js?v=0.2.0" defer></script>
<script src="/wah/uv.bundle.js" defer></script> <script src="/wah/uv.bundle.js" defer></script>
<script src="/wah/cute1.js" defer></script> <script src="/wah/cute1.js" defer></script>
<script src="/assets/js/eruda.js?v=2.8.4" defer></script> <script src="/assets/js/navbar.js" defer></script>
<script src="/assets/js/register.js?v=2.8.9" defer></script> <script src="/assets/js/load.js" defer></script>
<script src="/assets/js/settings.js?v=2.8.9" defer></script> <script src="/assets/js/eruda.js" defer></script>
<script src="/assets/js/greetings.js?v=2.8.9" defer></script> <script src="/assets/js/register.js" defer></script>
<script src="/assets/js/shortcuts.js?v=2.8.9" defer></script> <script src="/assets/js/settings.js" defer></script>
<script src="/assets/js/$.js?v=2.8.9" defer></script> <script src="/assets/js/greetings.js" defer></script>
<script src="/assets/js/s.js?v=2.8.9" defer></script> <script src="/assets/js/shortcuts.js" defer></script>
<script src="/assets/js/wv.js?v=1.4.1" defer></script> <script src="/assets/js/$.js" defer></script>
<script src="/assets/js/a.js" defer></script>
<div class="relative flex flex-col h-[100vh] items-center justify-center bg-black transition-bg"> <div class="relative flex flex-col h-[100vh] items-center justify-center bg-black transition-bg">
<div class="absolute inset-0 overflow-hidden"> <div class="absolute inset-0 overflow-hidden">
<div class="god-rays absolute -inset-[10px] opacity-50"></div> <div class="god-rays absolute -inset-[10px] opacity-50"></div>
</div> </div>
</div> </div>
<div class="home-navbar"> <div class="home-navbar">
<img src="/assets/images/icons/favicon.ico" class="favicon" alt="favicon" /> <img src="/assets/images/icons/favicon.ico" class="favicon">
<span id="waves">Waves.</span> <span id="waves">Waves</span>
<a href="/" id="home">Home</a> <a href="/" id="home">Home</a>
<a href="/g" id="games">Games</a> <a href="/g" id="games">Games</a>
<a href="/s" id="shortcuts" style="color: #ffffff;">Shortcuts</a> <a href="/a" id="apps">Apps</a>
<a href="#" id="movies">Movies</a> <a href="#" id="movies">Movies</a>
<a href="#" id="ai">AI</a> <a href="#" id="ai">AI</a>
<a href="#" id="settings-icon"> <a href="#" id="settings-icon">
<i class="settings-icon fa-regular fa-gear"></i> <i class="settings-icon fa-regular fa-gear"></i>
</a> </a>
</div> </div>
<div id="settings-menu" class="settings-menu"></div> <div id="settings-menu" class="settings-menu"></div>
<div class="navbar"> <div class="navbar">
<ul class="nav-buttons"> <ul class="nav-buttons">
<li><a id="backIcon" href="#"><i class="fa-regular fa-arrow-left"></i></a></li> <li><a id="backIcon" href="#"><i class="fa-regular fa-arrow-left"></i></a></li>
@ -86,70 +60,41 @@
<li> <li>
<div class="small-searchbar" style="position: relative;"> <div class="small-searchbar" style="position: relative;">
<i id="lockIcon" class="fa-solid fa-lock"></i> <i id="lockIcon" class="fa-solid fa-lock"></i>
<input class="waves" type="text" id="searchInputt" placeholder="Search for a query or enter a URL..." autocomplete="off" style="padding-left: 40px;" /> <input class="waves" type="text" id="searchInputt"
placeholder="Search for a query or enter a URL..." autocomplete="off"
style="padding-left: 40px;">
<span class="shortcut-indicator-2">Ctrl + S</span>
</div> </div>
</li> </li>
<li><a href="/"><i class="fa-regular fa-home"></i></a></li> <li><a href="/"><i class="fa-regular fa-home"></i></a></li>
<li><a href="/g"><i class="fa-regular fa-gamepad"></i></a></li> <li><a href="/g"><i class="fa-regular fa-gamepad"></i></a></li>
<li><a href="/s"><i class="fa-regular fa-rocket"></i></a></li> <li><a href="/a"><i class="fa-regular fa-grid-2"></i></a></li>
<li><a id="erudaIcon" href="#"><i class="fa-regular fa-code"></i></a></li> <li><a id="erudaIcon" href="#"><i class="fa-regular fa-code"></i></a></li>
</ul> </ul>
</div> </div>
<div class="content apps-page">
<div class="content shortcuts-page"> <h1>Apps</h1>
<h1>Shortcuts</h1> <div class="apps-search-bar">
<div class="shortcuts-search-bar"> <input type="text" id="appSearchInput" placeholder="Search apps..." autocomplete="off" />
<input type="text" id="shortcutSearchInput" placeholder="Search shortcuts..." autocomplete="off" />
<span class="shortcut-indicator-4">Ctrl + S</span> <span class="shortcut-indicator-4">Ctrl + S</span>
</div> </div>
<div class="shortcuts-grid"></div> <div class="apps-grid">
</div>
</div> </div>
<div id="erudaLoadingScreen" style="display: none;">Eruda is loading...</div>
<div id="overlay" class="overlay"></div> <div id="overlay" class="overlay"></div>
<div id="namePrompt" class="popup"> <div id="namePrompt" class="popup">
<div class="input-container"> <div class="input-container">
<label for="userName">Please enter a name so we know what to call you:</label> <label for="userName">Please enter a name so we know what to call you:</label>
<div class="input-wrapper"> <div class="input-wrapper">
<input type="text" id="userName" placeholder="Your name" autocomplete="off" /> <input type="text" id="userName" placeholder="Your name" oninput="checkInput()" autocomplete="off" />
</div> </div>
<button id="doneButton" onclick="submitName()" disabled><i class="fa-regular fa-check"></i> Done</button> <button id="doneButton" onclick="submitName()" disabled>
<i class="fas fa-check"></i> Done
</button>
</div> </div>
</div> </div>
<div id="erudaLoadingScreen" style="display: none;">Eruda is loading...</div>
<iframe id="cool-iframe" class="iframe"></iframe> <iframe id="cool-iframe" class="iframe"></iframe>
<script type='text/javascript' src='//pl26200346.effectiveratecpm.com/08/db/84/08db842da9b43ad3d13c14634f9fd1c8.js'></script>
<script defer>
document.addEventListener("DOMContentLoaded", function () {
NProgress.configure({ showSpinner: false });
NProgress.start();
const titleElement = document.querySelector(".search-title");
if (titleElement) {
const text = titleElement.textContent.trim();
titleElement.textContent = "";
text.split("").forEach((letter, i) => {
const span = document.createElement("span");
span.textContent = letter;
span.style.animationDelay = `${i * 0.05}s`;
titleElement.appendChild(span);
});
}
window.addEventListener("load", function () {
NProgress.done();
});
});
</script>
<script>
requestIdleCallback(() => {
const ad = document.createElement("script");
ad.src = "//pl26200346.effectiveratecpm.com/08/db/84/08db842da9b43ad3d13c14634f9fd1c8.js";
ad.async = true;
document.body.appendChild(ad);
});
</script>
</body> </body>
</html> </html>

View File

@ -3,80 +3,54 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:title" content="Waves." /> <meta property="og:title" content="Waves. - Games"/>
<meta property="og:description" content="A sleek and minimalist web proxy."/> <meta property="og:description" content="A sleek and minimalist web proxy."/>
<meta property="og:image" content="/assets/images/icons/favicon.ico"/> <meta property="og:image" content="/assets/images/icons/favicon.ico"/>
<meta name="theme-color" content="#ffffff"/> <meta name="theme-color" content="#ffffff"/>
<meta name="msapplication-TileColor" content="#ffffff"/> <meta name="msapplication-TileColor" content="#ffffff"/>
<title>Waves.</title> <title>Waves</title>
<link rel="icon" type="image/x-icon" href="/assets/images/icons/favicon.ico">
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin /> <link rel="stylesheet" href="/assets/css/$.css">
<link rel="stylesheet" href="/assets/css/settings.css">
<link rel="icon" type="image/x-icon" href="/assets/images/icons/favicon.ico" /> <link rel="stylesheet" href="/assets/css/toast.css">
<link rel="stylesheet" href="/assets/css/g.css">
<link rel="stylesheet" href="/assets/css/$.css" /> <link href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css">
<link rel="preload" href="/assets/css/settings.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
<link rel="preload" href="/assets/css/toast.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-WGJ2192JZY"></script><script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-WGJ2192JZY');</script>
<link rel="preload" href="/assets/css/nprogress.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script type='text/javascript' src='//pl26200262.effectiveratecpm.com/f0/e8/15/f0e81559842363ebf19aa99900ff2d02.js'></script>
<link rel="preload" href="/assets/css/g.css" as="style" onload="this.onload=null;this.rel='stylesheet'" />
<noscript>
<link rel="stylesheet" href="/assets/css/settings.css" />
<link rel="stylesheet" href="/assets/css/toast.css" />
<link rel="stylesheet" href="/assets/css/nprogress.css" />
<link rel="stylesheet" href="/assets/css/g.css" />
</noscript>
<link rel="preload" as="style" href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" onload="this.onload=null;this.rel='stylesheet'" />
<noscript>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" />
</noscript>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-WGJ2192JZY"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "G-WGJ2192JZY");
</script>
</head> </head>
<body> <body>
<script src="/baremux/index.js" defer></script> <script src="/baremux/index.js"></script>
<script src="/assets/js/nprogress.js?v=0.2.0" defer></script>
<script src="/wah/uv.bundle.js" defer></script> <script src="/wah/uv.bundle.js" defer></script>
<script src="/wah/cute1.js" defer></script> <script src="/wah/cute1.js" defer></script>
<script src="/assets/js/eruda.js?v=2.8.4" defer></script> <script src="/assets/js/navbar.js" defer></script>
<script src="/assets/js/register.js?v=2.8.9" defer></script> <script src="/assets/js/load.js" defer></script>
<script src="/assets/js/settings.js?v=2.8.9" defer></script> <script src="/assets/js/eruda.js" defer></script>
<script src="/assets/js/greetings.js?v=2.8.9" defer></script> <script src="/assets/js/register.js" defer></script>
<script src="/assets/js/shortcuts.js?v=2.8.9" defer></script> <script src="/assets/js/settings.js" defer></script>
<script src="/assets/js/$.js?v=2.8.9" defer></script> <script src="/assets/js/greetings.js" defer></script>
<script src="/assets/js/g.js?v=2.8.9" defer></script> <script src="/assets/js/shortcuts.js" defer></script>
<script src="/assets/js/wv.js?v=1.4.1" defer></script> <script src="/assets/js/$.js" defer></script>
<script src="/assets/js/g.js" defer></script>
<div class="relative flex flex-col h-[100vh] items-center justify-center bg-black transition-bg"> <div class="relative flex flex-col h-[100vh] items-center justify-center bg-black transition-bg">
<div class="absolute inset-0 overflow-hidden"> <div class="absolute inset-0 overflow-hidden">
<div class="god-rays absolute -inset-[10px] opacity-50"></div> <div class="god-rays absolute -inset-[10px] opacity-50"></div>
</div> </div>
</div> </div>
<div class="home-navbar"> <div class="home-navbar">
<img src="/assets/images/icons/favicon.ico" class="favicon" alt="favicon" /> <img src="/assets/images/icons/favicon.ico" class="favicon">
<span id="waves">Waves.</span> <span id="waves">Waves</span>
<a href="/" id="home">Home</a> <a href="/" id="home">Home</a>
<a href="/g" id="games" style="color: #ffffff;">Games</a> <a href="/g" id="games">Games</a>
<a href="/s" id="apps">Shortcuts</a> <a href="/a" id="apps">Apps</a>
<a href="#" id="movies">Movies</a> <a href="#" id="movies">Movies</a>
<a href="#" id="ai">AI</a> <a href="#" id="ai">AI</a>
<a href="#" id="settings-icon"> <a href="#" id="settings-icon">
<i class="settings-icon fa-regular fa-gear"></i> <i class="settings-icon fa-regular fa-gear"></i>
</a> </a>
</div> </div>
<div id="settings-menu" class="settings-menu"></div> <div id="settings-menu" class="settings-menu"></div>
<div class="navbar"> <div class="navbar">
<ul class="nav-buttons"> <ul class="nav-buttons">
<li><a id="backIcon" href="#"><i class="fa-regular fa-arrow-left"></i></a></li> <li><a id="backIcon" href="#"><i class="fa-regular fa-arrow-left"></i></a></li>
@ -86,70 +60,42 @@
<li> <li>
<div class="small-searchbar" style="position: relative;"> <div class="small-searchbar" style="position: relative;">
<i id="lockIcon" class="fa-solid fa-lock"></i> <i id="lockIcon" class="fa-solid fa-lock"></i>
<input class="waves" type="text" id="searchInputt" placeholder="Search for a query or enter a URL..." autocomplete="off" style="padding-left: 40px;" /> <input class="waves" type="text" id="searchInputt"
placeholder="Search for a query or enter a URL..." autocomplete="off"
style="padding-left: 40px;">
<span class="shortcut-indicator-2">Ctrl + S</span>
</div> </div>
</li> </li>
<li><a href="/"><i class="fa-regular fa-home"></i></a></li> <li><a href="/"><i class="fa-regular fa-home"></i></a></li>
<li><a href="/g"><i class="fa-regular fa-gamepad"></i></a></li> <li><a href="/g"><i class="fa-regular fa-gamepad"></i></a></li>
<li><a href="/s"><i class="fa-regular fa-rocket"></i></a></li> <li><a href="/a"><i class="fa-regular fa-grid-2"></i></a></li>
<li><a id="erudaIcon" href="#"><i class="fa-regular fa-code"></i></a></li> <li><a id="erudaIcon" href="#"><i class="fa-regular fa-code"></i></a></li>
</ul> </ul>
</div> </div>
<div class="content games-page"> <div class="content games-page">
<h1>Games</h1> <h1>Games</h1>
<div class="games-search-bar"> <div class="games-search-bar">
<input type="text" id="gameSearchInput" placeholder="Search games..." autocomplete="off" /> <input type="text" id="gameSearchInput" placeholder="Search games..." autocomplete="off" />
<span class="shortcut-indicator-3">Ctrl + S</span> <span class="shortcut-indicator-3">Ctrl + S</span>
</div> </div>
<div class="games-grid"></div> <div class="games-grid">
</div>
</div> </div>
<div id="erudaLoadingScreen" style="display: none;">Eruda is loading...</div>
<div id="overlay" class="overlay"></div> <div id="overlay" class="overlay"></div>
<div id="namePrompt" class="popup"> <div id="namePrompt" class="popup">
<div class="input-container"> <div class="input-container">
<label for="userName">Please enter a name so we know what to call you:</label> <label for="userName">Please enter a name so we know what to call you:</label>
<div class="input-wrapper"> <div class="input-wrapper">
<input type="text" id="userName" placeholder="Your name" autocomplete="off" /> <input type="text" id="userName" placeholder="Your name" oninput="checkInput()" autocomplete="off" />
</div> </div>
<button id="doneButton" onclick="submitName()" disabled><i class="fa-regular fa-check"></i> Done</button> <button id="doneButton" onclick="submitName()" disabled>
<i class="fas fa-check"></i> Done
</button>
</div> </div>
</div> </div>
<div id="erudaLoadingScreen" style="display: none;">Eruda is loading...</div>
<iframe id="cool-iframe" class="iframe"></iframe> <iframe id="cool-iframe" class="iframe"></iframe>
<script type='text/javascript' src='//pl26200346.effectiveratecpm.com/08/db/84/08db842da9b43ad3d13c14634f9fd1c8.js'></script>
<script defer> </div>
document.addEventListener("DOMContentLoaded", function () {
NProgress.configure({ showSpinner: false });
NProgress.start();
const titleElement = document.querySelector(".search-title");
if (titleElement) {
const text = titleElement.textContent.trim();
titleElement.textContent = "";
text.split("").forEach((letter, i) => {
const span = document.createElement("span");
span.textContent = letter;
span.style.animationDelay = `${i * 0.05}s`;
titleElement.appendChild(span);
});
}
window.addEventListener("load", function () {
NProgress.done();
});
});
</script>
<script>
requestIdleCallback(() => {
const ad = document.createElement("script");
ad.src = "//pl26200346.effectiveratecpm.com/08/db/84/08db842da9b43ad3d13c14634f9fd1c8.js";
ad.async = true;
document.body.appendChild(ad);
});
</script>
</body> </body>
</html> </html>

View File

@ -1,78 +1,55 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Waves."/> <meta property="og:title" content="Waves."/>
<meta property="og:description" content="A sleek and minimalist web proxy."/> <meta property="og:description" content="A sleek and minimalist web proxy."/>
<meta property="og:image" content="/assets/images/icons/favicon.ico"/> <meta property="og:image" content="/assets/images/icons/favicon.ico"/>
<meta name="theme-color" content="#ffffff"/> <meta name="theme-color" content="#ffffff"/>
<meta name="msapplication-TileColor" content="#ffffff"/> <meta name="msapplication-TileColor" content="#ffffff"/>
<title>Waves.</title> <title>Waves.</title>
<link rel="icon" type="image/x-icon" href="/assets/images/icons/favicon.ico">
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin /> <link rel="stylesheet" href="/assets/css/$.css">
<link rel="stylesheet" href="/assets/css/settings.css">
<link rel="icon" type="image/x-icon" href="/assets/images/icons/favicon.ico" /> <link rel="stylesheet" href="/assets/css/toast.css">
<link href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" rel="stylesheet">
<link rel="stylesheet" href="/assets/css/$.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
<link rel="preload" href="/assets/css/settings.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-WGJ2192JZY"></script><script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-WGJ2192JZY');</script>
<link rel="preload" href="/assets/css/toast.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <script type='text/javascript' src='//pl26200262.effectiveratecpm.com/f0/e8/15/f0e81559842363ebf19aa99900ff2d02.js'></script>
<link rel="preload" href="/assets/css/nprogress.css" as="style" onload="this.onload=null;this.rel='stylesheet'" />
<noscript>
<link rel="stylesheet" href="/assets/css/settings.css" />
<link rel="stylesheet" href="/assets/css/toast.css" />
<link rel="stylesheet" href="/assets/css/nprogress.css" />
</noscript>
<link rel="preload" as="style" href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" onload="this.onload=null;this.rel='stylesheet'" />
<noscript>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/aquawolf04/font-awesome-pro@5cd1511/css/all.css" />
</noscript>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-WGJ2192JZY"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "G-WGJ2192JZY");
</script>
</head> </head>
<body> <body>
<script src="/baremux/index.js"></script> <script src="/baremux/index.js"></script>
<script src="/assets/js/nprogress.js?v=0.2.0" defer></script>
<script src="/wah/uv.bundle.js" defer></script> <script src="/wah/uv.bundle.js" defer></script>
<script src="/wah/cute1.js" defer></script> <script src="/wah/cute1.js" defer></script>
<script src="/assets/js/eruda.js?v=2.8.4" defer></script> <script src="/assets/js/navbar.js" defer></script>
<script src="/assets/js/register.js?v=2.8.9" defer></script> <script src="/assets/js/load.js" defer></script>
<script src="/assets/js/settings.js?v=2.8.9" defer></script> <script src="/assets/js/eruda.js" defer></script>
<script src="/assets/js/ping.js?v=2.8.9" defer></script> <script src="/assets/js/register.js" defer></script>
<script src="/assets/js/greetings.js?v=2.8.9" defer></script> <script src="/assets/js/settings.js" defer></script>
<script src="/assets/js/shortcuts.js?v=2.8.9" defer></script> <script src="/assets/js/ping.js" defer></script>
<script src="/assets/js/$.js?v=2.8.9" defer></script> <script src="/assets/js/greetings.js" defer></script>
<script src="/assets/js/wv.js?v=1.4.1" defer></script> <script src="/assets/js/shortcuts.js" defer></script>
<script src="/assets/js/$.js" defer></script>
<div class="relative flex flex-col h-[100vh] items-center justify-center bg-black transition-bg"> <div class="relative flex flex-col h-[100vh] items-center justify-center bg-white transition-bg">
<div class="absolute inset-0 overflow-hidden"> <div class="absolute inset-0 overflow-hidden">
<div class="god-rays absolute -inset-[10px] opacity-50"></div> <div class="god-rays absolute -inset-[10px] opacity-50"></div>
</div> </div>
</div> </div>
<div class="home-navbar"> <div class="home-navbar">
<img src="/assets/images/icons/favicon.ico" class="favicon" /> <img src="/assets/images/icons/favicon.ico" class="favicon">
<span id="waves">Waves</span> <span id="waves">Waves</span>
<a href="/" id="home" style="color: #ffffff;">Home</a> <a href="/" id="home">Home</a>
<a href="/g" id="games">Games</a> <a href="/g" id="games">Games</a>
<a href="/s" id="apps">Shortcuts</a> <a href="/a" id="apps">Apps</a>
<a href="#" id="movies">Movies</a> <a href="#" id="movies">Movies</a>
<a href="#" id="ai">AI</a> <a href="#" id="ai">AI</a>
<a href="#" id="settings-icon"><i class="settings-icon fa-regular fa-gear"></i></a> <a href="#" id="settings-icon">
<i id="settings-icon" class="settings-icon fa-regular fa-gear"></i>
</a>
</div> </div>
<div id="settings-menu" class="settings-menu"></div> <div id="settings-menu" class="settings-menu"></div>
<div class="navbar"> <div class="navbar">
<ul class="nav-buttons"> <ul class="nav-buttons">
<li><a id="backIcon" href="#"><i class="fa-regular fa-arrow-left"></i></a></li> <li><a id="backIcon" href="#"><i class="fa-regular fa-arrow-left"></i></a></li>
@ -82,91 +59,41 @@
<li> <li>
<div class="small-searchbar" style="position: relative;"> <div class="small-searchbar" style="position: relative;">
<i id="lockIcon" class="fa-solid fa-lock"></i> <i id="lockIcon" class="fa-solid fa-lock"></i>
<input class="waves" type="text" id="searchInputt" placeholder="Search for a query or enter a URL..." autocomplete="off" style="padding-left: 40px;" /> <input class="waves" type="text" id="searchInputt"
placeholder="Search for a query or enter a URL..." autocomplete="off"
style="padding-left: 40px;">
<span class="shortcut-indicator-2">Ctrl + S</span> <span class="shortcut-indicator-2">Ctrl + S</span>
</div> </div>
</li> </li>
<li><a href="/"><i class="fa-regular fa-home"></i></a></li> <li><a href="/"><i class="fa-regular fa-home"></i></a></li>
<li><a href="/g"><i class="fa-regular fa-gamepad"></i></a></li> <li><a href="/g"><i class="fa-regular fa-gamepad"></i></a></li>
<li><a href="/s"><i class="fa-regular fa-rocket"></i></a></li> <li><a href="/a"><i class="fa-regular fa-grid-2"></i></a></li>
<li><a id="erudaIcon" href="#"><i class="fa-regular fa-code"></i></a></li> <li><a id="erudaIcon" href="#"><i class="fa-regular fa-code"></i></a></li>
</ul> </ul>
</div> </div>
<div class="search-container"> <div class="search-container">
<div class="search-title">Waves.</div> <div class="search-title">Waves.</div>
<div class="search-bar"> <div class="search-bar">
<input class="waves" type="text" id="searchInput" placeholder="What's been on your mind lately?" autocomplete="off" /> <input class="waves" type="text" id="searchInput" placeholder="What's been on your mind lately?" autocomplete="off">
<span class="shortcut-indicator">Ctrl + S</span> <span class="shortcut-indicator">Ctrl + S</span>
</div> </div>
</div> </div>
<div id="erudaLoadingScreen" style="display: none;">Eruda is loading...</div> <div id="erudaLoadingScreen" style="display: none;">Eruda is loading...</div>
<div id="overlay" class="overlay"></div> <div id="overlay" class="overlay"></div>
<div id="namePrompt" class="popup"> <div id="namePrompt" class="popup">
<div class="input-container"> <div class="input-container">
<label for="userName">Please enter a name so we know what to call you:</label> <label for="userName">Please enter a name so we know what to call you:</label>
<div class="input-wrapper"> <div class="input-wrapper">
<input type="text" id="userName" placeholder="Your name" autocomplete="off" /> <input type="text" id="userName" placeholder="Your name" autocomplete="off">
</div> </div>
<button id="doneButton" onclick="submitName()" disabled><i class="fa-regular fa-check"></i> Done</button> <button id="doneButton" onclick="submitName()" disabled>
<i class="fa-regular fa-check"></i> Done
</button>
</div> </div>
</div> </div>
<div id="pingDisplay">Ping: Connecting...</div>
<div id="pingDisplay"><i class="fa-regular fa-wifi"></i> Ping: Connecting...</div>
<div id="greeting"></div> <div id="greeting"></div>
<iframe id="cool-iframe" class="iframe"></iframe> <iframe id="cool-iframe" class="iframe"></iframe>
<div id="lastest-commit">Loading latest commit</div> <script type='text/javascript' src='//pl26200346.effectiveratecpm.com/08/db/84/08db842da9b43ad3d13c14634f9fd1c8.js'></script>
<div id="copyright">
<i class="fa-regular fa-copyright"></i> 2025
<a class="hover-link" href="https://discord.gg/ire" target="_blank" rel="noopener noreferrer"><span class="copyrightname">Waves Services</span></a>.
All Rights Reserved.
</div>
<div id="discord">
<a class="hover-link" href="https://discord.gg/ire" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-discord"></i> Discord
</a>
</div>
<div id="github">
<a class="hover-link" href="https://github.com/xojw/waves" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-github"></i> Github
</a>
</div>
<script defer>
document.addEventListener("DOMContentLoaded", function () {
NProgress.configure({ showSpinner: false });
NProgress.start();
const titleElement = document.querySelector(".search-title");
if (titleElement) {
const text = titleElement.textContent.trim();
titleElement.textContent = "";
text.split("").forEach((letter, i) => {
const span = document.createElement("span");
span.textContent = letter;
span.style.animationDelay = `${i * 0.05}s`;
titleElement.appendChild(span);
});
}
window.addEventListener("load", function () {
NProgress.done();
});
});
</script>
<script>
requestIdleCallback(() => {
const ad = document.createElement("script");
ad.src = "//pl26200346.effectiveratecpm.com/08/db/84/08db842da9b43ad3d13c14634f9fd1c8.js";
ad.async = true;
document.body.appendChild(ad);
});
</script>
</body> </body>
</html> </html>

View File

@ -7,7 +7,6 @@ body {
color: #e0e0e0; color: #e0e0e0;
overflow-x: hidden; overflow-x: hidden;
transition: background-color 0.3s ease; transition: background-color 0.3s ease;
animation: fadeIn 0.3s ease;
scroll-behavior: smooth; scroll-behavior: smooth;
position: relative; position: relative;
z-index: 1; z-index: 1;
@ -18,23 +17,6 @@ body {
color: #000000; color: #000000;
} }
::-webkit-scrollbar {
width: 5px;
}
::-webkit-scrollbar-track {
background: #000000;
}
::-webkit-scrollbar-thumb {
background: #4e4e4e;
border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover {
background: #6b6b6b;
}
#nprogress .bar { #nprogress .bar {
background: #ffffff !important; background: #ffffff !important;
z-index: 99999 !important; z-index: 99999 !important;
@ -63,7 +45,7 @@ body {
.home-navbar { .home-navbar {
transform: translateX(-50%); transform: translateX(-50%);
width: 700px; width: 670px;
top: 1%; top: 1%;
margin-bottom: -10px; margin-bottom: -10px;
margin-left: 50%; margin-left: 50%;
@ -72,6 +54,7 @@ body {
height: 35px; height: 35px;
color: #818181; color: #818181;
padding: 10px; padding: 10px;
animation: fadeIn 2s ease;
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
@ -86,14 +69,14 @@ body {
} }
.home-navbar .favicon { .home-navbar .favicon {
width: 28px; width: 24px;
height: 24px; height: 24px;
margin-right: -10px; margin-right: -10px;
vertical-align: middle; vertical-align: middle;
} }
.home-navbar a { .home-navbar a {
color: #7c7c7c; color: #e6e6e6;
text-decoration: none; text-decoration: none;
padding: 8px 16px; padding: 8px 16px;
font-size: 14px; font-size: 14px;
@ -104,8 +87,7 @@ body {
} }
.home-navbar a:hover { .home-navbar a:hover {
color: #bbbbbb; font-size: 16px;
font-size: 18px;
} }
.home-navbar a:active { .home-navbar a:active {
@ -118,6 +100,23 @@ body {
margin-left: 115px; margin-left: 115px;
} }
::-webkit-scrollbar {
width: 5px;
}
::-webkit-scrollbar-track {
background: #000000;
}
::-webkit-scrollbar-thumb {
background: #4e4e4e;
border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover {
background: #6b6b6b;
}
.navbar { .navbar {
top: 1%; top: 1%;
background-color: #1111119c; background-color: #1111119c;
@ -223,26 +222,6 @@ body {
color: #818181; color: #818181;
} }
.shortcut-indicator {
position: absolute;
top: 50%;
left: 50%;
transform: translate(calc(-50% + 235px), -50%);
font-size: 12px;
font-weight: 500;
color: #000000;
background-color: #c4c4c4;
padding: 2px 6px;
border-radius: 7px;
cursor: pointer;
transition: all 0.3s ease;
animation: fadeIn 0.3s ease;
}
.shortcut-indicator:hover {
background-color: #ffffff;
}
.shortcut-indicator-2 { .shortcut-indicator-2 {
position: absolute; position: absolute;
top: 50%; top: 50%;
@ -256,20 +235,12 @@ body {
border-radius: 7px; border-radius: 7px;
cursor: pointer; cursor: pointer;
transition: all 0.3s ease; transition: all 0.3s ease;
animation: fadeUp 0.3s ease;
} }
.shortcut-indicator-2:hover { .shortcut-indicator-2:hover {
background-color: #ffffff; background-color: #ffffff;
} }
.arrow-mode {
display: inline-block;
margin-left: 17px;
transition: all 0.3s ease;
animation: fadeIn 0.3s ease;
}
#lockIcon { #lockIcon {
position: absolute; position: absolute;
left: 25px; left: 25px;
@ -284,6 +255,7 @@ body {
margin-top: 20%; margin-top: 20%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
animation: fadeIn 2s ease;
text-align: center; text-align: center;
width: 90%; width: 90%;
} }
@ -293,7 +265,7 @@ body {
font-weight: bolder; font-weight: bolder;
text-align: center; text-align: center;
display: inline-block; display: inline-block;
background: linear-gradient(-45deg, #8d8d8d, #ffffff); background: linear-gradient(-45deg, #4e4e4e, #ffffff);
-webkit-background-clip: text; -webkit-background-clip: text;
background-clip: text; background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
@ -304,11 +276,14 @@ body {
.search-title span { .search-title span {
display: inline-block; display: inline-block;
opacity: 0;
background: inherit; background: inherit;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent; color: transparent;
transform: translateY(4rem); opacity: 0;
animation: fadeSlideIn 0.6s forwards; transform: translateX(-50px);
animation: fadeInFromLeft 0.5s ease-in-out forwards;
} }
.search-bar { .search-bar {
@ -348,6 +323,25 @@ body {
color: #ffffff69; color: #ffffff69;
} }
.shortcut-indicator {
position: absolute;
top: 50%;
left: 50%;
transform: translate(calc(-50% + 235px), -50%);
font-size: 12px;
font-weight: 500;
color: #000000;
background-color: #c4c4c4;
padding: 2px 6px;
border-radius: 7px;
cursor: pointer;
transition: all 0.3s ease;
}
.shortcut-indicator:hover {
background-color: #ffffff;
}
#erudaLoadingScreen { #erudaLoadingScreen {
position: fixed; position: fixed;
top: 50%; top: 50%;
@ -393,13 +387,13 @@ body {
} }
.hover-link { .hover-link {
color: #b3b3b3; color: #949494;
text-decoration: none; text-decoration: none;
transition: color 0.3s ease; transition: color 0.3s ease;
} }
.hover-link:hover { .hover-link:hover {
color: #ffffff; color: #dadada;
} }
#pingDisplay { #pingDisplay {
@ -407,9 +401,10 @@ body {
margin-top: -46px; margin-top: -46px;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
font-weight: 550; font-weight: bold;
color: #888888; color: #888888;
cursor: default; cursor: default;
animation: fadeIn 2s ease;
padding: 5px 10px; padding: 5px 10px;
transition: all 0.3s ease; transition: all 0.3s ease;
z-index: -1; z-index: -1;
@ -417,7 +412,7 @@ body {
} }
#pingDisplay:hover { #pingDisplay:hover {
color: #d3d3d3; color: #b6b6b6;
} }
.god-rays { .god-rays {
@ -431,6 +426,7 @@ body {
background-image: var(--stripes), var(--rays); background-image: var(--stripes), var(--rays);
background-size: 300%, 200%; background-size: 300%, 200%;
background-position: 50% 50%, 50% 50%; background-position: 50% 50%, 50% 50%;
animation: fadeIn 2s ease;
mask-image: radial-gradient(ellipse at 100% 0%, transparent 40%, transparent 70%); mask-image: radial-gradient(ellipse at 100% 0%, transparent 40%, transparent 70%);
-webkit-mask-image: radial-gradient(ellipse at 100% 0%, white 40%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 100% 0%, white 40%, transparent 70%);
pointer-events: none; pointer-events: none;
@ -460,7 +456,7 @@ body {
display: none; display: none;
opacity: 0; opacity: 0;
transition: opacity 0.3s ease-in-out; transition: opacity 0.3s ease-in-out;
animation: fadeIn 0.3s ease-in-out forwards; animation: fadeInOverlay 0.3s ease-in-out forwards;
} }
#namePrompt { #namePrompt {
@ -576,6 +572,7 @@ body {
position: fixed; position: fixed;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
animation: fadeIn 2s ease;
opacity: 0; opacity: 0;
transition: all 0.3s ease; transition: all 0.3s ease;
cursor: default; cursor: default;
@ -583,94 +580,42 @@ body {
} }
#greeting:hover { #greeting:hover {
color: #d3d3d3; color: #b6b6b6;
} }
#namePrompt.fade-out { #namePrompt.fade-out {
animation: fadeOut 0.3s ease-in-out forwards; animation: fadeOutPrompt 0.3s ease-in-out forwards;
} }
#lastest-commit { @keyframes fadeInFromLeft {
position: fixed; 0% {
bottom: 10px; opacity: 0;
left: 10px; transform: translateX(-50px);
z-index: 9999;
background-color: #08080894;
border: 1px solid #ffffff21;
color: #cfcfcf;
font-weight: 540;
transition: all 0.3s ease;
cursor: default;
padding: 8px 12px;
border-radius: 15px;
font-size: 14px;
} }
#copyright { 100% {
position: fixed; opacity: 1;
bottom: 10px; transform: translateX(0);
left: 50%; }
transform: translateX(-50%);
z-index: 9999;
background-color: #08080894;
border: 1px solid #ffffff21;
color: #858585;
font-weight: 540;
transition: all 0.3s ease;
cursor: default;
padding: 8px 12px;
border-radius: 15px;
font-size: 14px;
} }
#copyright:hover { @keyframes fadeIn {
color: #afafaf; from {
opacity: 0;
} }
#discord {
position: fixed;
bottom: 10px;
right: 100px;
z-index: 9999;
background-color: #08080894;
border: 1px solid #ffffff21;
color: #858585;
font-weight: 540;
transition: all 0.3s ease;
cursor: default;
padding: 8px 12px;
border-radius: 15px;
font-size: 14px;
}
#github {
position: fixed;
bottom: 10px;
right: 10px;
z-index: 9999;
background-color: #08080894;
border: 1px solid #ffffff21;
color: #858585;
font-weight: 540;
transition: all 0.3s ease;
cursor: default;
padding: 8px 12px;
border-radius: 15px;
font-size: 14px;
}
.fadeIn {
animation: fadeIn 0.3s ease-in-out forwards;
}
.fadeOut {
animation: fadeOut 0.3s ease-in-out forwards;
}
@keyframes fadeSlideIn {
to { to {
opacity: 1; opacity: 1;
transform: translateY(0); }
}
@keyframes fadeInOverlay {
0% {
opacity: 0;
}
100% {
opacity: 1;
} }
} }
@ -686,17 +631,7 @@ body {
} }
} }
@keyframes fadeIn { @keyframes fadeOutPrompt {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadeOut {
0% { 0% {
opacity: 1; opacity: 1;
} }
@ -716,6 +651,47 @@ body {
} }
} }
@keyframes swing {
0%,
100% {
transform: rotate(3deg);
}
50% {
transform: rotate(-3deg);
}
}
@keyframes steamLarge {
0% {
stroke-dashoffset: 13;
opacity: 0.6;
}
100% {
stroke-dashoffset: 39;
opacity: 0;
}
}
@keyframes steamSmall {
10% {
stroke-dashoffset: 9;
opacity: 0.6;
}
80% {
stroke-dashoffset: 27;
opacity: 0;
}
100% {
stroke-dashoffset: 27;
opacity: 0;
}
}
@keyframes spin { @keyframes spin {
0% { 0% {
transform: rotate(0deg); transform: rotate(0deg);

View File

@ -1,16 +1,17 @@
.shortcuts-page { .apps-page {
padding: 100px 20px 40px; padding: 100px 20px 40px;
text-align: center; text-align: center;
position: relative; position: relative;
} }
.shortcuts-page h1 { .apps-page h1 {
animation: fadeIn 2s ease;
font-size: 2.5rem; font-size: 2.5rem;
margin-bottom: 20px; margin-bottom: 20px;
color: #fff; color: #fff;
} }
.shortcuts-grid { .apps-grid {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center; justify-content: center;
@ -21,14 +22,14 @@
margin: 0 auto; margin: 0 auto;
} }
.content.shortcuts-page { .content.apps-page {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
text-align: center; text-align: center;
} }
.shortcut-card { .app-card {
background-color: #08080894; background-color: #08080894;
border-radius: 25px; border-radius: 25px;
padding: 15px 20px; padding: 15px 20px;
@ -48,7 +49,7 @@
animation: fadeIn 2s ease; animation: fadeIn 2s ease;
} }
.shortcut-card img { .app-card img {
width: 100%; width: 100%;
height: 200px; height: 200px;
object-fit: cover; object-fit: cover;
@ -57,39 +58,40 @@
transition: all 0.3s ease; transition: all 0.3s ease;
} }
.shortcut-card:hover img { .app-card:hover img {
filter: brightness(1); filter: brightness(1);
} }
.shortcut-card:hover { .app-card:hover {
background-color: #333333; background-color: #333333;
} }
.shortcut-card h2 { .app-card h2 {
font-size: 1rem; font-size: 1rem;
margin: 10px 0; margin: 10px 0;
color: #fff; color: #fff;
} }
.shortcut-card p { .app-card p {
font-size: 1rem; font-size: 1rem;
color: #ccc; color: #ccc;
} }
.shortcuts-search-bar { .apps-search-bar {
text-align: center; text-align: center;
margin-top: 20px; margin-top: 20px;
margin-bottom: 20px; margin-bottom: 20px;
color: #a8a8a8; color: #a8a8a8;
animation: fadeIn 2s ease;
position: relative; position: relative;
} }
#shortcutSearchInput { #appSearchInput {
padding: 14px 30px; padding: 14px 30px;
border: 1px solid #ffffff1a; border: 1px solid #ffffff1a;
background-image: url('/assets/images/icons/search.png'); background-image: url('/assets/images/icons/search.png');
background-size: 35px 35px; background-size: 35px 35px;
background-position: 5px center; background-position: 10px center;
background-repeat: no-repeat; background-repeat: no-repeat;
padding-left: 45px; padding-left: 45px;
border-radius: 20px; border-radius: 20px;
@ -102,12 +104,12 @@
transition: all 0.3s ease; transition: all 0.3s ease;
} }
#shortcutSearchInput:focus, #appSearchInput:focus,
#shortcutSearchInput:hover { #appSearchInput:hover {
border: 1px solid #ffffff69; border: 1px solid #ffffff69;
} }
#shortcutSearchInput::placeholder { #appSearchInput::placeholder {
color: #a8a8a8; color: #a8a8a8;
} }

View File

@ -5,6 +5,7 @@
} }
.games-page h1 { .games-page h1 {
animation: fadeIn 2s ease;
font-size: 2.5rem; font-size: 2.5rem;
margin-bottom: 20px; margin-bottom: 20px;
color: #fff; color: #fff;
@ -81,6 +82,7 @@
margin-top: 20px; margin-top: 20px;
margin-bottom: 20px; margin-bottom: 20px;
color: #a8a8a8; color: #a8a8a8;
animation: fadeIn 2s ease;
position: relative; position: relative;
} }

View File

@ -1 +0,0 @@
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

View File

@ -63,7 +63,7 @@
#close-settings:hover { #close-settings:hover {
transform: rotate(90deg); transform: rotate(90deg);
color: #ffffff; color: #d3d3d3;
} }
#close-settings i { #close-settings i {
@ -94,9 +94,9 @@
.transport-selected { .transport-selected {
background-color: #141414; background-color: #141414;
border: 1px solid #ffffff1a;
color: #e0e0e0; color: #e0e0e0;
padding: 10px; padding: 10px;
border: 1px solid #4141411a;
border-radius: 15px; border-radius: 15px;
cursor: pointer; cursor: pointer;
display: flex; display: flex;
@ -159,7 +159,7 @@
margin-left: -80px; margin-left: -80px;
background-color: #141414; background-color: #141414;
color: #e0e0e0; color: #e0e0e0;
border: 1px solid #ffffff1a; border: 1px solid #4141411a;
border-radius: 15px; border-radius: 15px;
font-size: 15px; font-size: 15px;
outline: none; outline: none;
@ -266,7 +266,7 @@
background-color: #1b1b1b; background-color: #1b1b1b;
color: #e0e0e0; color: #e0e0e0;
padding: 12px 14px; padding: 12px 14px;
border: 1px solid #ffffff21; border: 1px solid #4141411a;
border-radius: 15px; border-radius: 15px;
font-size: 16px; font-size: 16px;
cursor: pointer; cursor: pointer;
@ -280,8 +280,9 @@
} }
.tab-button.active { .tab-button.active {
background-color: #5c5c5c; background-color: #333;
color: #ffffff; color: #ffffff;
transform: translateY(-4px);
} }
.tab-content { .tab-content {

View File

@ -32,10 +32,6 @@
display: inline-block; display: inline-block;
} }
.toast i {
margin-right: 8px;
}
.toast.show { .toast.show {
animation: slideIn 0.3s forwards; animation: slideIn 0.3s forwards;
} }
@ -55,21 +51,6 @@
animation: progress 3s linear forwards; animation: progress 3s linear forwards;
} }
.toast .toast-close {
background: none;
border: none;
color: #888888;
font-size: 18px;
cursor: pointer;
padding: 0;
margin-left: 10px;
transition: 0.3s;
}
.toast-close:hover {
color: #ffffff;
}
@keyframes slideIn { @keyframes slideIn {
0% { 0% {
right: -300px; right: -300px;
@ -99,3 +80,18 @@
width: 0%; width: 0%;
} }
} }
.toast .toast-close {
background: none;
border: none;
color: #888888;
font-size: 18px;
cursor: pointer;
padding: 0;
margin-left: 10px;
transition: 0.3s;
}
.toast-close:hover {
color: #d3d3d3;
}

View File

@ -1,5 +1,5 @@
{ {
"shortcuts": [ "apps": [
{ {
"icon": "/assets/images/a/crazygames.jpg", "icon": "/assets/images/a/crazygames.jpg",
"title": "Crazy Games", "title": "Crazy Games",

View File

@ -13,6 +13,7 @@
<script> <script>
var gameLoaded = false; var gameLoaded = false;
window.addEventListener("beforeunload", function (e) { window.addEventListener("beforeunload", function (e) {
if (adsVisible || !gameLoaded || !lockedOccured) return null;
var confirmationMessage = "Are you sure you want to leave? "; var confirmationMessage = "Are you sure you want to leave? ";
(e || window.event).returnValue = confirmationMessage; //Gecko + IE (e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc. return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.
@ -85,10 +86,52 @@
}, },
}); });
</script> </script>
<!-- MIDROLL/INTERSTITIAL VIDEO API -->
<script src="js/cpmstar.js"></script>
</head> </head>
<body> <body>
<div class="ads">
<div class="ad-smallscreen">
<div class="ad ad-rectangle-bottom"></div>
</div>
<div class="ad ad-rectangle-upper" id="adRectangleUpper">
<!-- 300X250B PLACEMENT TAG - PLACE INTO BODY (ZONE TAG REQUIRED) -->
<script>
(function (w, pid) {
var r = function (c, m) {
c = c.split("").reduce(function (a, b) {
return ((a << 5) - a + b.charCodeAt(0)) >>> m;
}, 0);
return (10 + ((c * 7) % 26)).toString(36) + c.toString(36);
},
y = r(w.location.href.split("#")[0], 1),
c = r(w.location.href.split("#")[0] + pid, 0);
w.document.write('<div style="width:300px;height:250px" class="' + c + '"></div>');
})(window, 83023);
</script>
</div>
<div class="ad-largescreen">
<div class="ad ad-leaderboard-bottom">
<!-- 300X600B PLACEMENT TAG - PLACE INTO BODY (ZONE TAG REQUIRED) -->
<script>
(function (w, pid) {
var r = function (c, m) {
c = c.split("").reduce(function (a, b) {
return ((a << 5) - a + b.charCodeAt(0)) >>> m;
}, 0);
return (10 + ((c * 7) % 26)).toString(36) + c.toString(36);
},
y = r(w.location.href.split("#")[0], 1),
c = r(w.location.href.split("#")[0] + pid, 0);
w.document.write('<div style="width:300px;height:600px" class="' + c + '"></div>');
})(window, 85420);
</script>
</div>
</div>
</div>
<!-- <div id="interAdsContainer" style="display: none;"></div> -->
<div id="gameContainer"></div> <div id="gameContainer"></div>
<div id="loader"> <div id="loader">
<img class="logo" src="logo.png" /> <img class="logo" src="logo.png" />
@ -179,6 +222,55 @@
var refreshNextTime = true; var refreshNextTime = true;
function showAds() {
document.getElementsByClassName("ad-rectangle-bottom")[0].style.display = "block";
document.getElementsByClassName("ad-leaderboard-bottom")[0].style.display = "block";
document.getElementById("adRectangleUpper").style.display = "block";
if (typeof counter === "undefined") {
startCounter();
resumeCounter();
} else {
resumeCounter();
refresh();
}
}
function hideAds() {
document.getElementsByClassName("ad-rectangle-bottom")[0].style.display = "none";
document.getElementsByClassName("ad-leaderboard-bottom")[0].style.display = "none";
document.getElementById("adRectangleUpper").style.display = "none";
pauseCounter();
}
// hide ads
hideAds();
function refresh() {
//console.log("time since ads refresh = " + timeSinceRefresh + " seconds");
//console.log("time ads visible = " + timeAdsVisible + " seconds");
if (timeSinceRefresh <= 30 || timeAdsVisible <= 2) {
//console.log("don't refresh");
return;
}
if (document.getElementById("adRectangleBottom") != null && window.getComputedStyle(document.getElementsByClassName("ad-smallscreen")[0]).display != "none") {
cpmstarAPI({ kind: "adcmd", module: "POOL 83023", command: "refresh" });
}
if (document.getElementById("adLeaderboardBottom") != null && window.getComputedStyle(document.getElementsByClassName("ad-largescreen")[0]).display != "none") {
cpmstarAPI({ kind: "adcmd", module: "POOL 85420", command: "refresh" });
}
cpmstarAPI({ kind: "adcmd", module: "POOL 83025", command: "refresh" });
timeSinceRefresh = 0;
timeAdsVisible = 0;
//console.log("refresh ads");
}
window.onfocus = function () { window.onfocus = function () {
//console.log("onfocus"); //console.log("onfocus");
resumeCounter(); resumeCounter();
@ -191,16 +283,26 @@
}; };
var timeSinceRefresh = 0; var timeSinceRefresh = 0;
var timeAdsVisible = 0;
var counter; var counter;
var adsVisible = false;
function startCounter() { function startCounter() {
timeSinceRefresh++; timeSinceRefresh++;
if (adsVisible) timeAdsVisible++;
counter = setTimeout(function () { counter = setTimeout(function () {
startCounter(); startCounter();
}, 1000); }, 1000);
} }
function resumeCounter() {
adsVisible = true;
}
function pauseCounter() {
adsVisible = false;
}
</script> </script>
<!-- Firebase App (the core Firebase SDK) is always required and must be listed first --> <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
<script src="firebase/firebase-app.js"></script> <script src="firebase/firebase-app.js"></script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M21.192 4.221l-2.881 2.881c-.411-.528-.886-1.003-1.414-1.414l2.881-2.881 1.414 1.414zm-8.192-.152v-4.069h-2v4.069c.328-.041.661-.069 1-.069s.672.028 1 .069zm6.931 6.931c.041.328.069.661.069 1s-.028.672-.069 1h4.069v-2h-4.069zm-1.931 1c0 .341-.035.674-.09 1h-11.82c-.055-.326-.09-.659-.09-1 0-3.314 2.686-6 6-6s6 2.686 6 6zm-10.897-6.312l-2.881-2.881-1.414 1.414 2.881 2.881c.411-.529.885-1.003 1.414-1.414zm-7.103 5.312v2h4.069c-.041-.328-.069-.661-.069-1s.028-.672.069-1h-4.069zm9.062 11.667c-1.205-1.195-1.364-1.893-.312-3.26.37-.481.53-.942.53-1.4 0-.959-.699-1.906-1.623-3.006l-1.449 1.379c1.375 1.6 1.247 1.772.26 3.184-.316.453-.446.908-.446 1.355 0 1.159.876 2.259 1.665 3.082l1.375-1.334zm8.688 0c-1.205-1.195-1.364-1.893-.312-3.26.37-.481.529-.942.529-1.4 0-.959-.699-1.906-1.622-3.006l-1.448 1.379c1.375 1.6 1.246 1.772.26 3.184-.316.453-.446.908-.446 1.355 0 1.159.876 2.259 1.665 3.082l1.374-1.334zm-4.396 0c-1.205-1.195-1.364-1.893-.312-3.26.37-.481.529-.942.529-1.4 0-.959-.699-1.906-1.622-3.006l-1.448 1.379c1.375 1.6 1.246 1.772.26 3.184-.316.453-.446.908-.446 1.355 0 1.159.876 2.259 1.665 3.082l1.374-1.334z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#ede2af" d="M21.192 4.221l-2.881 2.881c-.411-.528-.886-1.003-1.414-1.414l2.881-2.881 1.414 1.414zm-8.192-.152v-4.069h-2v4.069c.328-.041.661-.069 1-.069s.672.028 1 .069zm6.931 6.931c.041.328.069.661.069 1s-.028.672-.069 1h4.069v-2h-4.069zm-1.931 1c0 .341-.035.674-.09 1h-11.82c-.055-.326-.09-.659-.09-1 0-3.314 2.686-6 6-6s6 2.686 6 6zm-10.897-6.312l-2.881-2.881-1.414 1.414 2.881 2.881c.411-.529.885-1.003 1.414-1.414zm-7.103 5.312v2h4.069c-.041-.328-.069-.661-.069-1s.028-.672.069-1h-4.069zm9.062 11.667c-1.205-1.195-1.364-1.893-.312-3.26.37-.481.53-.942.53-1.4 0-.959-.699-1.906-1.623-3.006l-1.449 1.379c1.375 1.6 1.247 1.772.26 3.184-.316.453-.446.908-.446 1.355 0 1.159.876 2.259 1.665 3.082l1.375-1.334zm8.688 0c-1.205-1.195-1.364-1.893-.312-3.26.37-.481.529-.942.529-1.4 0-.959-.699-1.906-1.622-3.006l-1.448 1.379c1.375 1.6 1.246 1.772.26 3.184-.316.453-.446.908-.446 1.355 0 1.159.876 2.259 1.665 3.082l1.374-1.334zm-4.396 0c-1.205-1.195-1.364-1.893-.312-3.26.37-.481.529-.942.529-1.4 0-.959-.699-1.906-1.622-3.006l-1.448 1.379c1.375 1.6 1.246 1.772.26 3.184-.316.453-.446.908-.446 1.355 0 1.159.876 2.259 1.665 3.082l1.374-1.334z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<rect transform="rotate(45)" x="4.3595" y="-2.3796" width=".26129" height="4.7592" rx="0" ry="0" fill="#fff" fill-opacity=".25" stroke="#000" stroke-width=".0032925"/>
</svg>

After

Width:  |  Height:  |  Size: 375 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M21 9.102v5.793l3-2.896-3-2.897zm-18 5.793v-5.793l-3 2.896 3 2.897zm6.104-9.895h5.793l-2.897-3-2.896 3zm5.792 14h-5.792l2.896 3 2.896-3zm-9.896-12v10h14v-10h-14z"/></svg>

After

Width:  |  Height:  |  Size: 274 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<g fill="#fff">
<rect x=".79375" y=".79375" width="4.7625" height="4.7625" fill-opacity=".25"/>
<path d="m0.79375 0v0.79375h-0.79375v0.26458h0.79375v4.2333h-0.79375v0.26458h0.79375v0.79375h0.26458v-0.79375h4.2333v0.79375h0.26458v-0.79375h0.79375v-0.26458h-0.79375v-4.2333h0.79375v-0.26458h-0.79375v-0.79375h-0.26458v0.79375h-4.2333v-0.79375h-0.26458zm0.26458 1.0583h4.2333v4.2333h-4.2333v-4.2333z" fill-opacity=".75" stroke-width=".56589"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 658 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<g fill="#fff">
<rect x=".79375" y=".79375" width="4.7625" height="4.7625" fill-opacity=".25"/>
<path d="m0.79375 0v0.79375h-0.79375v0.26458h0.79375v1.9844h-0.79375v0.26458h0.79375v1.9844h-0.79375v0.26458h0.79375v0.79375h0.26458v-0.79375h1.9844v0.79375h0.26458v-0.79375h1.9844v0.79375h0.26458v-0.79375h0.79375v-0.26458h-0.79375v-1.9844h0.79375v-0.26458h-0.79375v-1.9844h0.79375v-0.26458h-0.79375v-0.79375h-0.26458v0.79375h-1.9844v-0.79375h-0.26458v0.79375h-1.9844v-0.79375h-0.26458zm0.26458 1.0583h1.9844v1.9844h-1.9844v-1.9844zm2.249 0h1.9844v1.9844h-1.9844v-1.9844zm-2.249 2.249h1.9844v1.9844h-1.9844v-1.9844zm2.249 0h1.9844v1.9844h-1.9844v-1.9844z" fill-opacity=".75"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 890 B

View File

@ -1,53 +1,3 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="200" height="200" version="1.1" viewBox="0 0 52.917 52.917" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g fill="#28346a" stroke="#212b58" stroke-width="1.3229" aria-label="PolyTrack"><g><rect width="52.917" height="52.917" fill="#28346a" stroke="none"/><path d="m18.136 15.178-3.9736 23.305h4.0872l1.5955-9.3577h16.667l2.3782-13.947zm3.2744 4.7681h12.421l-0.78268 4.5896h-12.421z" fill="#b3c1ff" stroke="#112052" stroke-width=".93948"/></g></g></svg>
<svg
width="200"
height="200"
viewBox="0 0 52.916666 52.916666"
version="1.1"
id="svg5"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="icon.svg"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#000000"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="true"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="3.6596241"
inkscape:cx="122.00707"
inkscape:cy="60.661968"
inkscape:window-width="2560"
inkscape:window-height="1369"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="g5117" /><defs
id="defs2" /><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><g
aria-label="PolyTrack"
id="text382"
style="font-size:59.2131px;font-family:Impact;-inkscape-font-specification:Impact;fill:#28346a;stroke:#212b58;stroke-width:1.32292"><g
id="g5117"><rect
style="fill:#28346a;fill-opacity:1;stroke:none;stroke-width:5.13017"
id="rect302"
width="52.916668"
height="52.916668"
x="0"
y="0" /><path
id="path4993"
style="font-family:'FORCED SQUARE';-inkscape-font-specification:'FORCED SQUARE';fill:#b3c1ff;fill-opacity:1;stroke:#112052;stroke-width:0.939478;stroke-dasharray:none;stroke-opacity:1"
d="m 18.136096,15.178219 -3.97364,23.30498 h 4.087232 l 1.595482,-9.357691 h 16.666846 l 2.378159,-13.947289 z m 3.274425,4.768092 h 12.420656 l -0.782676,4.589598 H 20.627846 Z"
sodipodi:nodetypes="cccccccccccc" /></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<rect x=".66158" y=".66158" width="3.4396" height="3.4396" fill="none" stroke="#fff" stroke-dasharray="0.264599, 0.264599" stroke-dashoffset=".3969" stroke-opacity=".75" stroke-width=".2646"/>
<rect x="2.3813" y="2.3813" width="3.175" height="3.175" fill="#fff" fill-opacity=".25"/>
<rect x="2.2491" y="2.2491" width="3.4394" height="3.4394" fill="none" stroke="#fff" stroke-dashoffset=".39687" stroke-opacity=".75" stroke-width=".26458"/>
</svg>

After

Width:  |  Height:  |  Size: 649 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<rect x=".79375" y=".79375" width="3.175" height="3.175" fill="#fff" fill-opacity=".25"/>
<rect x=".66305" y=".66305" width="3.4364" height="3.4364" fill="none" stroke="#fff" stroke-opacity=".75" stroke-width=".26776"/>
<rect x="2.3813" y="2.3813" width="3.175" height="3.175" fill="#fff" fill-opacity=".25"/>
<rect x="2.2491" y="2.2491" width="3.4394" height="3.4394" fill="none" stroke="#fff" stroke-dashoffset=".39687" stroke-opacity=".75" stroke-width=".26458"/>
</svg>

After

Width:  |  Height:  |  Size: 677 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm7 14h-8v-9h2v7h6v2z"/></svg>

After

Width:  |  Height:  |  Size: 208 B

View File

@ -1 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M18.885 3.515c-4.617-4.618-12.056-4.676-16.756-.195l-2.129-2.258v7.938h7.484l-2.066-2.191c2.82-2.706 7.297-2.676 10.073.1 4.341 4.341 1.737 12.291-5.491 12.291v4.8c3.708 0 6.614-1.244 8.885-3.515 4.686-4.686 4.686-12.284 0-16.97z"/></svg> <?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<path d="m0.52917 0.92604v4.4979c0 0.39688 0 0.39688 0.39688 0.39688h4.4979c0.39688 0 0.39688 0 0.39688-0.38447v-2.7905l0.52917 0.26458-0.92604-1.3229-0.92604 1.3229 0.52917-0.26458v2.3812h-3.7042v-3.7042h1.4552c0.39688 0 0.39688 0 0.39688-0.39688 0-0.39688 0-0.39688-0.39688-0.39688h-1.8604c-0.38861 0-0.38861 0-0.38861 0.39688z" fill="#fff" stroke-width="1.3198"/>
</svg>

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 574 B

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="28" height="28" version="1.1" viewBox="0 0 7.4083 7.4083" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.079375 .13229)">
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#000" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" stroke-width="1.0001"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y=".66146" width="1.0583" height=".26458"/>
<rect x="3.0427" y=".26458" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y="5.424" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#300" stroke-width=".265"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#260d0d"/>
<rect transform="rotate(-65)" x=".093264" y="3.0807" width="1.0583" height=".26458"/>
<rect transform="rotate(-65)" x=".49014" y="2.6838" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#f00" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375" fill="#f00"/>
<rect x=".4557" y="4.0696" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d1726" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="5.8483" y="-.66165" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d1726" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="1.532" y="-2.6744" width="1.0583" height=".26458"/>
<rect transform="rotate(65)" x="1.9289" y="-3.0712" width=".26458" height="1.0583"/>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" fill="#ff8080"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="28" height="28" version="1.1" viewBox="0 0 7.4083 7.4083" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.079375 .13229)">
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#000" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" stroke-width="1.0001"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y=".66146" width="1.0583" height=".26458"/>
<rect x="3.0427" y=".26458" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y="5.424" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#f00" stroke-width=".265"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#f00"/>
<rect transform="rotate(-65)" x=".093264" y="3.0807" width="1.0583" height=".26458"/>
<rect transform="rotate(-65)" x=".49014" y="2.6838" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#260d0d" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375" fill="#260d0d"/>
<rect x=".4557" y="4.0696" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d1726" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="5.8483" y="-.66165" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d1726" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="1.532" y="-2.6744" width="1.0583" height=".26458"/>
<rect transform="rotate(65)" x="1.9289" y="-3.0712" width=".26458" height="1.0583"/>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" fill="#ff8080"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="28" height="28" version="1.1" viewBox="0 0 7.4083 7.4083" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.079375 .13229)">
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#000" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" stroke-width="1.0001"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y=".66146" width="1.0583" height=".26458"/>
<rect x="3.0427" y=".26458" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0f0" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0f0"/>
<rect x="2.6458" y="5.424" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#260d0d" stroke-width=".265"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#260d0d"/>
<rect transform="rotate(-65)" x=".093264" y="3.0807" width="1.0583" height=".26458"/>
<rect transform="rotate(-65)" x=".49014" y="2.6838" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#260d0d" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375" fill="#260d0d"/>
<rect x=".4557" y="4.0696" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d1726" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="5.8483" y="-.66165" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d1726" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="1.532" y="-2.6744" width="1.0583" height=".26458"/>
<rect transform="rotate(65)" x="1.9289" y="-3.0712" width=".26458" height="1.0583"/>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" fill="#80ff80"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="28" height="28" version="1.1" viewBox="0 0 7.4083 7.4083" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.079375 .13229)">
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#000" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" stroke-width="1.0001"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0f0" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0f0"/>
<rect x="2.6458" y=".66146" width="1.0583" height=".26458"/>
<rect x="3.0427" y=".26458" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y="5.424" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#260d0d" stroke-width=".265"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#260d0d"/>
<rect transform="rotate(-65)" x=".093264" y="3.0807" width="1.0583" height=".26458"/>
<rect transform="rotate(-65)" x=".49014" y="2.6838" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#260d0d" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375" fill="#260d0d"/>
<rect x=".4557" y="4.0696" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d1726" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="5.8483" y="-.66165" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d1726" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="1.532" y="-2.6744" width="1.0583" height=".26458"/>
<rect transform="rotate(65)" x="1.9289" y="-3.0712" width=".26458" height="1.0583"/>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" fill="#80ff80"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="28" height="28" version="1.1" viewBox="0 0 7.4083 7.4083" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.079375 .13229)">
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#000" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" stroke-width="1.0001"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y=".66146" width="1.0583" height=".26458"/>
<rect x="3.0427" y=".26458" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y="5.424" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#300" stroke-width=".265"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#260d0d"/>
<rect transform="rotate(-65)" x=".093264" y="3.0807" width="1.0583" height=".26458"/>
<rect transform="rotate(-65)" x=".49014" y="2.6838" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#260d0d" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375" fill="#260d0d"/>
<rect x=".4557" y="4.0696" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#06f" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#06f"/>
<rect transform="rotate(65)" x="5.8483" y="-.66165" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d1726" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="1.532" y="-2.6744" width="1.0583" height=".26458"/>
<rect transform="rotate(65)" x="1.9289" y="-3.0712" width=".26458" height="1.0583"/>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" fill="#80b1ff"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="28" height="28" version="1.1" viewBox="0 0 7.4083 7.4083" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.079375 .13229)">
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#000" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#000" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#000" stroke-width=".26458"/>
<g>
<circle cx="3.175" cy=".79375" r=".79375"/>
</g>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" stroke-width="1.0001"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y=".66146" width="1.0583" height=".26458"/>
<rect x="3.0427" y=".26458" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d260d" stroke-width=".26458"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d260d"/>
<rect x="2.6458" y="5.424" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(65 3.0217 3.8449)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#300" stroke-width=".265"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#260d0d"/>
<rect transform="rotate(-65)" x=".093264" y="3.0807" width="1.0583" height=".26458"/>
<rect transform="rotate(-65)" x=".49014" y="2.6838" width=".26458" height="1.0583"/>
</g>
<g transform="translate(.5291 .52917)">
<path d="m3.143 3.1955-1.9184 0.89454" fill="none" stroke="#260d0d" stroke-width=".26458"/>
<circle transform="rotate(65)" cx="4.2244" cy=".88321" r=".79375" fill="#260d0d"/>
<rect x=".4557" y="4.0696" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8304 3.0199)">
<path d="m3.175 3.175v2.1167" fill="none" stroke="#0d1726" stroke-width=".265"/>
<circle cx="3.175" cy="5.5563" r=".79375" fill="#0d1726"/>
<rect transform="rotate(65)" x="5.8483" y="-.66165" width="1.0583" height=".26458"/>
</g>
<g transform="rotate(-65 3.8352 3.0123)">
<path d="m3.175 1.0583v2.1167" fill="none" stroke="#0064ff" stroke-width=".26458"/>
<circle cx="3.175" cy=".79375" r=".79375" fill="#0064ff"/>
<rect transform="rotate(65)" x="1.532" y="-2.6744" width="1.0583" height=".26458"/>
<rect transform="rotate(65)" x="1.9289" y="-3.0712" width=".26458" height="1.0583"/>
</g>
<circle cx="3.7041" cy="3.7042" r=".39687" fill="#80b1ff"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M21.172 24l-7.387-7.387c-1.388.874-3.024 1.387-4.785 1.387-4.971 0-9-4.029-9-9s4.029-9 9-9 9 4.029 9 9c0 1.761-.514 3.398-1.387 4.785l7.387 7.387-2.828 2.828zm-12.172-8c3.859 0 7-3.14 7-7s-3.141-7-7-7-7 3.14-7 7 3.141 7 7 7z"/></svg>

After

Width:  |  Height:  |  Size: 337 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M5 7c2.761 0 5 2.239 5 5s-2.239 5-5 5-5-2.239-5-5 2.239-5 5-5zm11.122 12.065c-.073.301-.122.611-.122.935 0 2.209 1.791 4 4 4s4-1.791 4-4-1.791-4-4-4c-1.165 0-2.204.506-2.935 1.301l-5.488-2.927c-.23.636-.549 1.229-.943 1.764l5.488 2.927zm7.878-15.065c0-2.209-1.791-4-4-4s-4 1.791-4 4c0 .324.049.634.122.935l-5.488 2.927c.395.535.713 1.127.943 1.764l5.488-2.927c.731.795 1.77 1.301 2.935 1.301 2.209 0 4-1.791 4-4z"/></svg>

After

Width:  |  Height:  |  Size: 525 B

View File

@ -0,0 +1 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path fill="#fff" d="M13.001 24h-2v-5h-7.001l4-6h-3l4-6h-2l5.001-7 4.999 7h-2l4 6h-3l4 6h-6.999v5z"/></svg>

After

Width:  |  Height:  |  Size: 210 B

View File

@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M21.739 10.921c-1.347-.39-1.885-.538-3.552-.921 0 0-2.379-2.359-2.832-2.816-.568-.572-1.043-1.184-2.949-1.184h-7.894c-.511 0-.736.547-.07 1-.742.602-1.619 1.38-2.258 2.027-1.435 1.455-2.184 2.385-2.184 4.255 0 1.76 1.042 3.718 3.174 3.718h.01c.413 1.162 1.512 2 2.816 2 1.304 0 2.403-.838 2.816-2h6.367c.413 1.162 1.512 2 2.816 2s2.403-.838 2.816-2h.685c1.994 0 2.5-1.776 2.5-3.165 0-2.041-1.123-2.584-2.261-2.914zm-15.739 6.279c-.662 0-1.2-.538-1.2-1.2s.538-1.2 1.2-1.2 1.2.538 1.2 1.2-.538 1.2-1.2 1.2zm3.576-6.2c-1.071 0-3.5-.106-5.219-.75.578-.75.998-1.222 1.27-1.536.318-.368.873-.714 1.561-.714h2.388v3zm1-3h1.835c.882 0 1.428.493 2.022 1.105.452.466 1.732 1.895 1.732 1.895h-5.588v-3zm7.424 9.2c-.662 0-1.2-.538-1.2-1.2s.538-1.2 1.2-1.2 1.2.538 1.2 1.2-.538 1.2-1.2 1.2z"/></svg> <?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m1.9682 23.819-1.8494-0.49555 5.9466-22.193 1.8494 0.49555zm21.944-15.317s-1.8533 0.92069-3.8257 0.39218c-3.107-0.83252-2.46-3.5284-6.0672-4.4949-1.9493-0.52231-4.011-0.10347-4.9591 0.35013l-2.9943 11.175c1.2978-0.46397 3.1712-0.81631 4.9688-0.33464 3.4066 0.9128 3.2023 3.5875 6.2381 4.401 1.9622 0.52578 3.6592-0.36642 3.6592-0.36642z" fill="#ffffff" stroke-width=".95732"/>
</svg>

Before

Width:  |  Height:  |  Size: 893 B

After

Width:  |  Height:  |  Size: 531 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M24 14.895v-5.793l-3 2.896 3 2.897zm-24-5.793v5.793l3-2.896-3-2.897zm14.896-7.102h-5.792l2.896 3 2.896-3zm-5.792 20h5.793l-2.897-3-2.896 3zm-4.104-15v10h14v-10h-14z"/></svg>

After

Width:  |  Height:  |  Size: 277 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M23.464 12.698l-5.45 1.522-3.966-2.22 3.966-2.219 5.449 1.521.537-1.927-3.523-.982 3.125-1.762-.983-1.742-3.125 1.761.983-3.523-1.926-.537-1.52 5.449-4.031 2.256v-3.881l4-4-1.414-1.414-2.586 2.586v-3.586h-2v3.586l-2.586-2.586-1.414 1.414 4 4v3.881l-4.031-2.256-1.52-5.449-1.926.537.982 3.523-3.124-1.761-.982 1.742 3.124 1.762-3.523.982.537 1.927 5.449-1.521 3.966 2.219-3.966 2.22-5.45-1.522-.536 1.927 3.523.982-3.125 1.763.983 1.741 3.125-1.761-.984 3.523 1.927.536 1.521-5.448 4.03-2.255v3.88l-4 4 1.414 1.414 2.586-2.586v3.586h2v-3.586l2.586 2.586 1.414-1.414-4-4v-3.88l4.03 2.255 1.521 5.448 1.927-.536-.984-3.523 3.125 1.761.983-1.741-3.125-1.763 3.523-.982z"/></svg>

After

Width:  |  Height:  |  Size: 778 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#bed8f7" d="M23.464 12.698l-5.45 1.522-3.966-2.22 3.966-2.219 5.449 1.521.537-1.927-3.523-.982 3.125-1.762-.983-1.742-3.125 1.761.983-3.523-1.926-.537-1.52 5.449-4.031 2.256v-3.881l4-4-1.414-1.414-2.586 2.586v-3.586h-2v3.586l-2.586-2.586-1.414 1.414 4 4v3.881l-4.031-2.256-1.52-5.449-1.926.537.982 3.523-3.124-1.761-.982 1.742 3.124 1.762-3.523.982.537 1.927 5.449-1.521 3.966 2.219-3.966 2.22-5.45-1.522-.536 1.927 3.523.982-3.125 1.763.983 1.741 3.125-1.761-.984 3.523 1.927.536 1.521-5.448 4.03-2.255v3.88l-4 4 1.414 1.414 2.586-2.586v3.586h2v-3.586l2.586 2.586 1.414-1.414-4-4v-3.88l4.03 2.255 1.521 5.448 1.927-.536-.984-3.523 3.125 1.761.983-1.741-3.125-1.763 3.523-.982z"/></svg>

After

Width:  |  Height:  |  Size: 781 B

View File

@ -1,12 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head>
<title>Polytrack</title>
<head>
<link rel="manifest" href="manifest.json" /> <link rel="manifest" href="manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
</head> </head>
<body> <body>
<canvas id="screen"></canvas> <canvas id="screen"></canvas>
<div id="ui"></div> <div id="ui"></div>
@ -14,4 +14,5 @@
<script type="module" src="main.bundle.js" defer></script> <script type="module" src="main.bundle.js" defer></script>
</body> </body>
</html> </html>

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
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

View File

@ -0,0 +1 @@
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

View File

@ -0,0 +1 @@
PolyTrack14pdXVdtskiDD9Xic4xmmGoJnTvRwuBMpmM81vcnZntmarSlktOy2qkKdciRZjtyc9URhksCc87a2o31ifhmy8hCv0BxRamOHlBTXZs60qZ3PSvWccezaVnna7zJGRJIyy4h4hZVbB6K1NlYYBYjR5BE8EOmBC7Zme1CsB7hiwKILMAu9FAJsBM2Qo3JECOsBN1AIAOB5vQZl4otQT5VqX04ktTvoN5kZ4N86B9N1SzeU8f0oMA27thwbzbRAbrdGTBLvgyPNG6qmrqFuxwRYoJwqm0lDrO6kqOy7MHvfBg6hVt6G1cpJ7hQxrecEeHa1nF9TkfbH70tFLi4qFyk1s79hkyySXfzuDeUCcvBvAzJk4fwbd4WcnG5wL9u3HGSWfSM7ObrPeUj6pNSQLfOA1iWXj9IW9iUgzI8ULnzN34RxkjSgLOkwzpeDXekSYfY1b66vkWskm3S3HQYc09MXbeIdPYbIXbahcesVVZiOxHXjPEKOfQLaAf4SJBI0Zvz9LFzkzdFmCrWADgbsm8YpUJqzeJTtgnxFClWWjP2i32lvHh7gLhPZnuREDDigcQCfM5urVkH2cIQpq9eo4JLfkwm6oBec8JSy7ZFSMUexO6nmEyPsMqIa1172tmly3fWeeTeeuAYz9d8fjyKG1lGXpKZ16Ie5iqOMagWLbtub6fZvkGTJCT8q8VxexJPbjY8JWxnOxfliuGzgVzYcf4rMnBTVnLcsCTzYffL7fXMjddxuX3PTIGnWG4fKMFuZdlSdBUBPNfGrbuujPu4r1VM182ec22HRVghLOPXv1914kzLURX52qQDVGqbz7KOFETPHTHcLbrqT2fGfGqQKqRYeTe3n0MOCeE2pMtfRUz0OOlsRGQe0WY01KZyZeiv5Y7mZsymQZyTe1oielbXIS6AyxKWMiyMQ5ar98IpR90RYip8uGWj1likKtALQwHI0zIYy9hA8pDeTO9FIsebB14RY6RQbbwsYeDZjahgEgkYyr7WNW2bVXefKv7W49cwpee1OeJye1lfeYCKVTmKQIbALakWeMe0td9v9UsMGgnAJONQILBiENbdPLaBE92YEnDhwaOaYE7FnKrTVvXiCRtZyLxhBNd593Efsko05MR7CfZt4B7hR3ej9BeHVX6Wu10U1XIjr1L0cLaBFUooymQekpPlf1MAMTMbXEt8zUZf0z0uUriPeLR4Kp83p5QrxLrwUwMv5Jjbk9Fzoku6dgNAiFIic196FR1S11XIvZ97Kzbsfb299sLo9ftBKKop38UxjrLt8ajCiX3kOd8mMGxqfkXiG8jIet0O3zLdjtflhkxVRTSE9BI1ge5JzdJeNJihom01tvOfhigTWl7qtM5K1brqLqoCFQahN4B4HCk7SbZmVVD1DimUjfaoeMVaH9reZ23hpsK1fQFD01zLaFqo11IpmiKJ1YQ85tqeVY0t8fUTi07Jje1mXBagUPHYNrqQbtybBeS2euhtdvhBGqDBcPVHIL2zhRyFS9vHpejzCd1hNKLPHwixOL8xNI6nrgm9bVsn42XZYd8bBaJiIEKiYZ6ta5cevvVVJMjRIDWCfesV5RGBIkAR58b1mZ2AXvuES66f0emX2YFulmjn2zB8rXA71eftMUBn7V3BIUJgF1Qsahl3p55VXCVKrfuEIw3DHtdjJC6vH8eL6OMZj1fh6Drbc57v5ecvmWfCLgcTdCmaMobTfMsuY9kzbhWfkJJDuZPn5XwJOZqbNnJR1VdZSfgcYjy2EJo5eHPlu0xk6DLaNZSnVZsOe6JxWnUJfJmRZfCFsCH2tniD9zpdS2s4jJzGD7LOZznuZ8jXiNjL3jYxx55tCMuOFubPm5c9GlDJEaKmlDkc25kk8f1fzifw71IN9rfDwMijEZ

View File

@ -0,0 +1 @@
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

View File

@ -0,0 +1 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
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

View File

@ -0,0 +1 @@
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

View File

@ -0,0 +1 @@
PolyTrack14pdXUlstriDD8XCCgBWemABCJETYwMsjBbCgJgZKAf6buvX3b6V6c0RWqqSlcsdRkDpH94jhNEibOhxQqcA9mOtzXvKW8VYA3tg1LhNzdlXHvjEvBfw41LurzundJ4mF9CBeKKPLomxYpWJhdCXDmsSOtQWwDk9vfoergiJhSUdGUJCfQU2ZbLEfSLLDgeb9YWtxaRuW061cjP3TDgAiFec8Dz979dfEaT3dUt0d2assrOna9S21e76rmBShuLh9j39lG1Uj7a789uY89W7X38L7iKU3pmHtrHF7aXi70c420AvkvjDkDqwxfhKT0ORenBTfgqOWlJelpjQeEqKDs5R3dp9iyIsDfy0Z7ETA4W8I63uFoohVvLJMGGKavOICnXDD5PeeQ8r5rMNgUDOnRzAx1jPWty13jvUHfH1OtIuzUbash5qeDkCcNhdz7Fi85mHBZeXlRLvzuUwivbXegt1i6trJ5SewVfaZXXHfiWsej2sMUQz4LQolu50yGmrHr9mrSzzc2VHm3G8jAHf95tHFRWze2YMWe9IeVyNjvXAree6TaPHeZeVjlb8owaRjpl1O8SgFx6Za3KkPLuTg7mkf7SHNRJ9AZfuFEG2LaOjM2YeufQWrXr2F3oWe03FF5D2eZrULWgmkr7Hrr1ZWcQUnULBPnwpm4vnHNlnbesLJL90Y7SV7SX7yMW3fah2zOVPsXPxIfPyL2e9aZJeu0ofWP2Ik3v6DDzloiE5oyv87idglGcYPHwNBXHIYBmh6f5saehxkVI3Jbe39tglqxRHpUMkzkg1GcnedYe7onfNvAVBfkHiLPptJFBFs3H3tpiN35vb8HDTRfgnbS3eRLHebC5BVXg6tVyi6nfsDozHrdqqoq18ORUYs7w69zxixc1Ge9u4l5fxG8jz6bTxHhOCvni1Yu0ue3tMYpde18TG8qosQA3WwMrRsjVDPkql7W4AeefBbj6ubdmZ0tfHfXH88O2uA7tgesmmu0KovNfYknRP4WBcLQ6Ibf0W4uNfAkX7B6KgrB7IrkW2OnktfpAazV28rPPs5TReC7B3Lm3CyOqomlxJZ4PFRbKYzefR2m3F5B7AnLwl9wBvNLkTfdftAIaxnXOQ9IGNgfmV0UevsSEopqEeb44ZedXIXAKrgxw2rZ2NlMmWT5Tks15kMhsBPehaLCBSg56MRA11rKApICyL3RqdDiS0jDy6uxpG2ibvxfTLRoH4XZ6I00VHehbXlTVfklVUg0qmqUbsLN2miC9ZohCPo86pQHnqEwC4mqj1J4aUfUDTphIqOYkQTafcXYKtIrexorxNe6HZvrgc1nHjM5r6ryeU9QKUO2dO4hmT8buOgXPMerV3X0ecwwpTWojzZjovocNhVNlfnTvb60OvwUZviHlg3MmfeW9OznuTeeM5Qzcf82DDSIvLtmAcQwtLm6LJiezJ1XXKI1MDeTeVejw6z8rRfm873XHfG7mxrfCg0vvfguIDq3eUCDH7Vus8kDGdcO9yXOw9xJeg0GWlW35JE5Vg3feSz2Kzw8lW6qQvbfAjil4MJWPGBuoCoVLkoXT6GPwjJdiu8D6aWVEYy25CmyHzYLWUUAU1P14WAeEeUeAczDEe1NyOu9tHWIEag2aJUokG2VaL21EseHjVdY1B4fZlyWK1ffzCnF3ZWqEbeguAuhzNLofcyfFs83seHCIS0YfQVJf5fA0fyHlF

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
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

View File

@ -1 +0,0 @@
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

View File

@ -1 +0,0 @@
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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More