feat(website): add contributors and complete the Greek edition (#3520)

Add an equal, searchable directory of 214 contributors and translate its shared
navigation and copy. Complete the Greek website edition (1728/1728 messages),
preserving source examples, protected commands and evidence.

Publish refreshed contributor snapshots atomically and cover partial writes,
denied replacement and staging cleanup with failure regressions.

Validation: complete website checks and 16 maintenance tests, strict Greek
coverage, desktop/mobile and no-JavaScript journeys, selected PR CI and Greptile
follow-up. Codex automated review was unavailable because its quota was exhausted.
No analysis-provider behavior or production website publication is included.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2026-10-14 16:21:24 +00:00
1 parent 0f623732bd
commit 569ef4159d
48 files changed
+45142 -37082

No files matched your search

+103 -1
View File
@@ -1,6 +1,7 @@
"""Exercise automatic route discovery and mistakes that break search metadata."""
import contextlib
import errno
import importlib.util
import io
import json
@@ -9,13 +10,14 @@ import shutil
import tempfile
from threading import Thread
import unittest
from unittest.mock import patch
from http.server import ThreadingHTTPServer
from urllib.error import HTTPError
from urllib.request import urlopen
import xml.etree.ElementTree as ET
import polib
from website_i18n import Document, build_translations, checked_catalog, extract_catalogs, languages, reading_pages, read_runtime
from website_i18n import Document, build_translations, checked_catalog, extract_catalogs, languages, prose_units, reading_pages, read_runtime
ROOT = Path(__file__).resolve().parent.parent
@@ -138,6 +140,106 @@ class WebsiteSearchChecks(unittest.TestCase):
class WebsiteMaintenanceChecks(unittest.TestCase):
"""Exercise contributor edits and the static preview through real consumers."""
def test_contributors_render_from_snapshot_and_reject_drift_without_rewriting(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
for name in ("public", "templates"):
shutil.copytree(ROOT / "website" / name, root / "website" / name)
page = root / "website/public/contributors/index.html"
snapshot = root / "website/public/contributors/people.json"
data = json.loads(snapshot.read_text())
people = data["contributors"][:3]
data["contributors"] = list(reversed(people))
data["updated"] = "2026-10-15"
snapshot.write_text(json.dumps(data))
original = page.read_text()
with self.assertRaisesRegex(ValueError, "Shared HTML is stale"):
WEBSITE.sync_pages(root, check=True)
self.assertEqual(page.read_text(), original)
WEBSITE.sync_pages(root)
source = page.read_text()
doc = Document(source)
cards = [node for node in doc.nodes if "data-contributor" in node.attrs]
self.assertEqual([node.attrs["data-contributor"] for node in cards], sorted(
(person["login"] for person in people), key=str.casefold,
))
links = [node.attrs["href"] for node in doc.nodes if node.attrs.get("class") == "contributor-card"]
self.assertCountEqual(links, [person["html_url"] for person in people])
self.assertIn('<time datetime="2026-10-15" translate="no">2026-10-15</time>', source)
self.assertEqual(WEBSITE.sync_pages(root), [])
translated_units = [unit[1] for unit in prose_units(source, "contributors/index.html")]
for person in people:
self.assertFalse(any(person["login"] in unit for unit in translated_units))
def test_contributor_refresh_collects_all_pages_and_preserves_snapshot_on_failure(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
snapshot = root / "website/public/contributors/people.json"
snapshot.parent.mkdir(parents=True)
original = (ROOT / "website/public/contributors/people.json").read_text()
snapshot.write_text(original)
people = json.loads(original)["contributors"][:3]
response = WEBSITE.subprocess.CompletedProcess([], 0, stdout=json.dumps(people[:2]) + "\n" + json.dumps(people[2:]))
with patch.object(WEBSITE.subprocess, "run", return_value=response) as api:
WEBSITE.refresh_contributors(root)
self.assertIn("--paginate", api.call_args.args[0])
self.assertEqual(json.loads(snapshot.read_text())["contributors"], people)
self.assertEqual(set(snapshot.parent.iterdir()), {snapshot})
good = snapshot.read_text()
for output in (json.dumps(people) + "\n[", json.dumps(people + people), "[]", '{"message":"API error"}'):
with self.subTest(output=output), patch.object(WEBSITE.subprocess, "run", return_value=WEBSITE.subprocess.CompletedProcess([], 0, stdout=output)):
with self.assertRaises(ValueError):
WEBSITE.refresh_contributors(root)
self.assertEqual(snapshot.read_text(), good)
with patch.object(WEBSITE.subprocess, "run", side_effect=WEBSITE.subprocess.CalledProcessError(1, ["gh"])):
with self.assertRaises(WEBSITE.subprocess.CalledProcessError):
WEBSITE.refresh_contributors(root)
self.assertEqual(snapshot.read_text(), good)
def test_contributor_refresh_preserves_snapshot_and_cleans_staging_on_save_failure(self):
people = json.loads((ROOT / "website/public/contributors/people.json").read_text())["contributors"][:2]
response = WEBSITE.subprocess.CompletedProcess([], 0, stdout=json.dumps(people))
write_text = Path.write_text
def partial_write(path, text, *args, **kwargs):
write_text(path, text[:20], *args, **kwargs)
raise OSError(errno.ENOSPC, "injected partial write", str(path))
failures = (
("partial write", patch.object(
Path, "write_text", autospec=True, side_effect=partial_write,
)),
("replace", patch.object(
Path, "replace", autospec=True,
side_effect=PermissionError(errno.EACCES, "injected replace failure"),
)),
)
for name, failure in failures:
with self.subTest(failure=name), tempfile.TemporaryDirectory() as directory:
root = Path(directory)
snapshot = root / "website/public/contributors/people.json"
snapshot.parent.mkdir(parents=True)
snapshot.write_bytes(json.dumps({
"repository": "morluto/rea", "updated": "2026-10-14", "contributors": people[:1],
}).encode("utf-8"))
before = snapshot.read_bytes()
with patch.object(WEBSITE.subprocess, "run", return_value=response), failure as save:
with self.assertRaises(OSError):
WEBSITE.refresh_contributors(root)
self.assertEqual(save.call_count, 1)
self.assertEqual(snapshot.read_bytes(), before)
self.assertEqual(set(snapshot.parent.iterdir()), {snapshot})
def test_contributor_snapshot_rejects_malformed_identity_and_unsafe_links(self):
original = json.loads((ROOT / "website/public/contributors/people.json").read_text())
for field, value in (("id", True), ("id", 0), ("login", ""), ("type", "unknown"),
("html_url", "javascript:alert(1)"), ("html_url", "https://github.com.evil.test/person"),
("avatar_url", "https://token@avatars.githubusercontent.com/u/1")):
with self.subTest(field=field, value=value):
data = {**original, "contributors": [{**original["contributors"][0], field: value}]}
with self.assertRaises(ValueError):
WEBSITE.checked_contributors(data)
def test_shared_edits_preserve_body_and_catch_drift_before_rewriting(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
+90 -1
View File
@@ -1,14 +1,17 @@
"""Maintain shared HTML and run the static website's contributor commands."""
import argparse
from datetime import date
from functools import partial
from html import escape
from html.parser import HTMLParser
from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
import json
from pathlib import Path, PurePosixPath
from string import Template
import subprocess
import sys
import tempfile
from textwrap import indent
from urllib.parse import quote, urlsplit
@@ -21,9 +24,89 @@ NAVIGATION = (
("Blog", "blog/"),
("Guides", "guides/"),
("FAQ", "faq/"),
("Contributors", "contributors/"),
)
def checked_contributors(data):
"""Validate the public snapshot once, before rendering or replacing it."""
if not isinstance(data, dict) or data.get("repository") != "morluto/rea":
raise ValueError("Contributors must come from morluto/rea")
if not isinstance(data.get("updated"), str):
raise ValueError("Contributors need an ISO update date")
date.fromisoformat(data["updated"])
people = data.get("contributors")
if not isinstance(people, list) or not people:
raise ValueError("Contributors must be a nonempty list")
ids, logins = set(), set()
for person in people:
if not isinstance(person, dict):
raise ValueError("Invalid contributor record")
identity, login = person.get("id"), person.get("login")
if type(identity) is not int or identity <= 0 or identity in ids:
raise ValueError("Contributor IDs must be unique positive integers")
if not isinstance(login, str) or not login.strip() or login.casefold() in logins:
raise ValueError("Contributor usernames must be nonempty and unique")
if person.get("type") not in ("User", "Bot"):
raise ValueError(f"Unknown contributor type: {login}")
for key, host in (("html_url", "github.com"), ("avatar_url", "avatars.githubusercontent.com")):
value = person.get(key)
if not isinstance(value, str):
raise ValueError(f"Missing {key}: {login}")
url = urlsplit(value)
if url.scheme != "https" or url.netloc != host or not url.path:
raise ValueError(f"Invalid public {key}: {login}")
ids.add(identity)
logins.add(login.casefold())
return data
def contributor_block(root):
"""Render equal-sized profile links from the checked GitHub snapshot."""
path = root / "website/public/contributors/people.json"
data = checked_contributors(json.loads(path.read_text(encoding="utf-8")))
cards = []
for person in sorted(data["contributors"], key=lambda item: item["login"].casefold()):
login = escape(person["login"], quote=True)
profile = escape(person["html_url"], quote=True)
avatar = escape(person["avatar_url"], quote=True)
cards.append(
f' <li data-contributor="{login}"><a class="contributor-card" href="{profile}">\n'
f' <img src="{avatar}" alt="" width="56" height="56" loading="lazy" decoding="async" referrerpolicy="no-referrer" />\n'
f' <span dir="ltr">@{login}</span>\n'
' </a></li>'
)
template = root / "website/templates/contributors.html.tmpl"
return indent(Template(template.read_text(encoding="utf-8")).substitute(
cards="\n".join(cards), updated=escape(data["updated"], quote=True),
), " ")
def refresh_contributors(root):
"""Validate every GitHub page, then atomically replace the offline snapshot."""
result = subprocess.run(
["gh", "api", "--paginate", "repos/morluto/rea/contributors?per_page=100", "--jq",
"[.[] | {login,id,type,avatar_url,html_url}]"],
capture_output=True, text=True, check=True,
)
decoder, remaining, people = json.JSONDecoder(), result.stdout.strip(), []
while remaining:
page, end = decoder.raw_decode(remaining)
if not isinstance(page, list):
raise ValueError("GitHub returned an invalid contributors page")
people.extend(page)
remaining = remaining[end:].lstrip()
data = checked_contributors({
"repository": "morluto/rea", "updated": date.today().isoformat(), "contributors": people,
})
path = root / "website/public/contributors/people.json"
with tempfile.TemporaryDirectory(dir=path.parent, prefix=f".{path.name}-") as directory:
staged = Path(directory) / path.name
staged.write_text(json.dumps(data, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
staged.replace(path)
print(f"Refreshed {len(people)} contributors. Run sync, translations extract and check.")
def authored_markdown(root):
"""Discover website documentation while excluding local environments and vendors."""
site = root / "website"
@@ -117,10 +200,13 @@ def shared_blocks(root, path, source):
values["language_picker"] = indent(selector, " ") if not metadata.noindex else ""
values["alternates"] = alternates if not metadata.noindex else ""
templates = root / "website/templates"
return {
blocks = {
name: indent(Template((templates / f"{name}.html.tmpl").read_text(encoding="utf-8")).substitute(values), " ")
for name in ("sharing", "theme", "header", "footer")
}
if route == "contributors/":
blocks["contributors"] = contributor_block(root)
return blocks
def sync_pages(root, check=False):
@@ -206,6 +292,7 @@ def main():
sync = commands.add_parser("sync", help="Update shared HTML after editing templates or page metadata")
sync.add_argument("--check", action="store_true", help="Report drift without rewriting pages")
commands.add_parser("check", help="Check shared HTML, prepare assets, verify links and run regression tests")
commands.add_parser("contributors", help="Refresh the public contributor snapshot using GitHub CLI")
links = commands.add_parser("links", help="Audit external targets using gh and HTTP; separate from offline checks")
links.add_argument("--report", help="Write the full external-link JSON report")
create = commands.add_parser("new-page", help="Create a draft reading page")
@@ -238,6 +325,8 @@ def main():
new_page(root, args.route, args.title, args.description)
elif args.command == "sync":
sync_pages(root, check=args.check)
elif args.command == "contributors":
refresh_contributors(root)
elif args.command == "check":
sync_pages(root, check=True)
for name in ("prepare-website.py", "verify-website.py", "test-website.py"):
+24
View File
@@ -174,6 +174,7 @@ describe its recorded investigation; update them only when repeating that work.
- `public/showcase/ctf/index.html`: DownUnderCTF's masked-squares flag checker, extracted equations and real process captures.
- `public/get-started/index.html`: agent setup, first CLI result and provider guides.
- `public/faq/index.html`: concise answers about setup, updates, analysis and troubleshooting.
- `public/contributors/index.html`: one searchable, alphabetical grid of GitHub contributors, with profile links and contribution guidance.
- `public/guides/`: a guide hub and native, JavaScript/Electron and browser examples.
- `public/examples/`: downloadable Electron source and an interactive Notes browser app.
- `public/assets/`: shared styles, interactions, favicon and explanatory figures.
@@ -181,6 +182,29 @@ describe its recorded investigation; update them only when repeating that work.
Navigation and assets use relative paths, so the same files work at the local
root and a GitHub Pages project path such as `/rea/`.
### Update contributors
`public/contributors/people.json` is a dated snapshot of the repository's public
GitHub contributor list, including accounts GitHub identifies as bots. Every
profile has the same presentation; there are no team tiers or contribution
rankings. The page links the source list and shows the snapshot date. Avatars
load from GitHub; usernames and profile links remain usable without images or
JavaScript. Search is a small progressive enhancement.
Refresh the snapshot with GitHub CLI available, then regenerate the marked
`website:contributors` region from `templates/contributors.html.tmpl`:
```sh
python3 scripts/website.py contributors
python3 scripts/website.py sync
python3 scripts/website.py translations extract
python3 scripts/website.py check
```
Refresh fetches every API page and validates the complete result before replacing
the snapshot. Review and commit the JSON, rendered page and catalog updates
together. Builds and offline checks use that snapshot, not the live API.
## Search and sharing metadata
`https://rea.tools/` is the preferred public origin. Each content page has one
+4 -3
View File
@@ -120,9 +120,10 @@ Persian use right-to-left page layouts; code and numeric demos remain left to
right. The two Notes target applications and the downloadable source archive
remain the original investigation inputs.
Greek (`el`) has a translated README and a partially translated website catalog.
Incomplete website pages use the labeled English fallback until their required
messages are translated and reviewed.
Greek (`el`) has a translated README and a complete website catalog, including
setup guides, case studies, articles and Contributors. Like the other editions,
it uses the labeled English fallback when a future source change leaves a
required translation missing or pending review.
The first catalogs started with machine-assisted drafts. They include editorial
corrections to navigation, prompts and technical terminology. Traditional Chinese
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+1865 -1729
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+31
View File
@@ -0,0 +1,31 @@
import { t } from "./i18n.js";
const search = document.querySelector("[data-contributors-search]");
const input = document.getElementById("contributor-search");
const status = document.querySelector("[data-contributors-status]");
const empty = document.querySelector("[data-contributors-empty]");
const people = Array.from(document.querySelectorAll("[data-contributor]"));
if (search && input && status && empty) {
function filterContributors() {
const query = input.value.trim().replace(/^@/, "").toLowerCase();
let count = 0;
for (const person of people) {
const matches = person
.getAttribute("data-contributor")
.toLowerCase()
.includes(query);
person.hidden = !matches;
if (matches) count += 1;
}
status.textContent = t("Contributors: {count}", {
count: new Intl.NumberFormat(document.documentElement.lang).format(count),
});
empty.hidden = count !== 0;
}
input.addEventListener("input", filterContributors);
input.addEventListener("search", filterContributors);
filterContributors();
search.hidden = false;
}
+79
View File
@@ -753,6 +753,85 @@ pre code {
color: var(--muted);
font-size: 0.875rem;
}
.contributors-section {
padding-block: 0 4rem;
}
.contributors-toolbar {
display: flex;
align-items: end;
justify-content: space-between;
flex-wrap: wrap;
gap: 1rem 2rem;
margin-bottom: 1rem;
}
.contributors-toolbar h2 {
margin: 0;
}
.contributors-search {
display: grid;
gap: 0.35rem;
width: min(100%, 19rem);
font-size: 0.85rem;
color: var(--muted);
}
.contributors-search input {
min-width: 0;
width: 100%;
min-height: 44px;
padding: 0.5rem 0.75rem;
border: 1px solid var(--line);
border-radius: 5px;
background: var(--page);
color: var(--ink);
}
.contributors-search input::placeholder {
color: var(--muted);
}
.contributors-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(min(8.5rem, 100%), 1fr));
gap: 0.75rem;
padding: 0;
margin: 0;
list-style: none;
}
.contributors-grid li {
margin: 0;
min-width: 0;
}
.contributor-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: start;
gap: 0.7rem;
height: 100%;
padding: 1.25rem 0.65rem;
border: 1px solid var(--line);
border-radius: 6px;
color: var(--ink);
text-decoration: none;
text-align: center;
font-size: 0.8rem;
line-height: 1.4;
}
.contributor-card:hover {
background: var(--soft);
border-color: var(--accent);
}
.contributor-card img {
border-radius: 50%;
background: var(--soft);
object-fit: cover;
}
.contributor-card span {
max-width: 100%;
overflow-wrap: anywhere;
}
.contributors-source {
margin-block: 1.5rem 0;
}
.article-layout {
display: grid;
grid-template-columns: 190px minmax(0, 1fr);
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../blog/" aria-current="page">Blog</a>
<a href="../guides/">Guides</a>
<a href="../faq/">FAQ</a>
<a href="../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../blog/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../zh-CN/blog/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../zh-TW/blog/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../ja/blog/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../ko/blog/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../tr/blog/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../ru/blog/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../vi/blog/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../th/blog/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../de/blog/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../es/blog/" lang="es" dir="ltr" data-language="es">Español</a><a href="../fr/blog/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../uk/blog/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../pl/blog/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../pt-BR/blog/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../ar/blog/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../fa/blog/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../id/blog/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../it/blog/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../el/blog/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -235,7 +236,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
@@ -117,6 +117,7 @@
<a href="../../blog/" aria-current="page">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../blog/reverse-engineering-models/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/blog/reverse-engineering-models/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/blog/reverse-engineering-models/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/blog/reverse-engineering-models/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/blog/reverse-engineering-models/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/blog/reverse-engineering-models/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/blog/reverse-engineering-models/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/blog/reverse-engineering-models/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/blog/reverse-engineering-models/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/blog/reverse-engineering-models/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/blog/reverse-engineering-models/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/blog/reverse-engineering-models/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/blog/reverse-engineering-models/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/blog/reverse-engineering-models/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/blog/reverse-engineering-models/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/blog/reverse-engineering-models/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/blog/reverse-engineering-models/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/blog/reverse-engineering-models/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/blog/reverse-engineering-models/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/blog/reverse-engineering-models/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -874,7 +875,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
@@ -117,6 +117,7 @@
<a href="../../blog/" aria-current="page">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../blog/touhou-reconstruction/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/blog/touhou-reconstruction/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/blog/touhou-reconstruction/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/blog/touhou-reconstruction/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/blog/touhou-reconstruction/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/blog/touhou-reconstruction/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/blog/touhou-reconstruction/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/blog/touhou-reconstruction/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/blog/touhou-reconstruction/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/blog/touhou-reconstruction/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/blog/touhou-reconstruction/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/blog/touhou-reconstruction/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/blog/touhou-reconstruction/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/blog/touhou-reconstruction/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/blog/touhou-reconstruction/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/blog/touhou-reconstruction/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/blog/touhou-reconstruction/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/blog/touhou-reconstruction/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/blog/touhou-reconstruction/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/blog/touhou-reconstruction/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -1071,7 +1072,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+3 -1
View File
@@ -118,6 +118,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../examples/dino-lab/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/examples/dino-lab/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/examples/dino-lab/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/examples/dino-lab/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/examples/dino-lab/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/examples/dino-lab/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/examples/dino-lab/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/examples/dino-lab/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/examples/dino-lab/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/examples/dino-lab/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/examples/dino-lab/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/examples/dino-lab/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/examples/dino-lab/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/examples/dino-lab/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/examples/dino-lab/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/examples/dino-lab/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/examples/dino-lab/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/examples/dino-lab/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/examples/dino-lab/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/examples/dino-lab/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -466,7 +467,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../blog/">Blog</a>
<a href="../guides/">Guides</a>
<a href="../faq/" aria-current="page">FAQ</a>
<a href="../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../faq/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../zh-CN/faq/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../zh-TW/faq/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../ja/faq/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../ko/faq/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../tr/faq/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../ru/faq/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../vi/faq/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../th/faq/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../de/faq/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../es/faq/" lang="es" dir="ltr" data-language="es">Español</a><a href="../fr/faq/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../uk/faq/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../pl/faq/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../pt-BR/faq/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../ar/faq/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../fa/faq/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../id/faq/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../it/faq/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../el/faq/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -564,7 +565,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
@@ -117,6 +117,7 @@
<a href="../blog/">Blog</a>
<a href="../guides/">Guides</a>
<a href="../faq/">FAQ</a>
<a href="../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../first-investigation/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../zh-CN/first-investigation/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../zh-TW/first-investigation/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../ja/first-investigation/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../ko/first-investigation/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../tr/first-investigation/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../ru/first-investigation/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../vi/first-investigation/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../th/first-investigation/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../de/first-investigation/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../es/first-investigation/" lang="es" dir="ltr" data-language="es">Español</a><a href="../fr/first-investigation/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../uk/first-investigation/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../pl/first-investigation/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../pt-BR/first-investigation/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../ar/first-investigation/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../fa/first-investigation/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../id/first-investigation/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../it/first-investigation/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../el/first-investigation/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -525,7 +526,8 @@ process.stdout.write(toCsv([{ id: 1, title: 'Hello, "REA"' }]));
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../blog/">Blog</a>
<a href="../guides/">Guides</a>
<a href="../faq/">FAQ</a>
<a href="../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../get-started/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../zh-CN/get-started/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../zh-TW/get-started/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../ja/get-started/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../ko/get-started/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../tr/get-started/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../ru/get-started/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../vi/get-started/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../th/get-started/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../de/get-started/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../es/get-started/" lang="es" dir="ltr" data-language="es">Español</a><a href="../fr/get-started/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../uk/get-started/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../pl/get-started/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../pt-BR/get-started/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../ar/get-started/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../fa/get-started/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../id/get-started/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../it/get-started/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../el/get-started/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -1808,7 +1809,8 @@ npx rea-agents@latest setup</code></pre>
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/" aria-current="page">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../guides/browser/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/guides/browser/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/guides/browser/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/guides/browser/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/guides/browser/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/guides/browser/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/guides/browser/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/guides/browser/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/guides/browser/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/guides/browser/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/guides/browser/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/guides/browser/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/guides/browser/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/guides/browser/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/guides/browser/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/guides/browser/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/guides/browser/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/guides/browser/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/guides/browser/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/guides/browser/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -498,7 +499,8 @@ link.click();</code></pre>
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../blog/">Blog</a>
<a href="../guides/" aria-current="page">Guides</a>
<a href="../faq/">FAQ</a>
<a href="../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../guides/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../zh-CN/guides/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../zh-TW/guides/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../ja/guides/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../ko/guides/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../tr/guides/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../ru/guides/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../vi/guides/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../th/guides/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../de/guides/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../es/guides/" lang="es" dir="ltr" data-language="es">Español</a><a href="../fr/guides/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../uk/guides/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../pl/guides/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../pt-BR/guides/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../ar/guides/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../fa/guides/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../id/guides/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../it/guides/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../el/guides/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -273,7 +274,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/" aria-current="page">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../guides/javascript/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/guides/javascript/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/guides/javascript/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/guides/javascript/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/guides/javascript/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/guides/javascript/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/guides/javascript/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/guides/javascript/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/guides/javascript/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/guides/javascript/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/guides/javascript/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/guides/javascript/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/guides/javascript/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/guides/javascript/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/guides/javascript/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/guides/javascript/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/guides/javascript/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/guides/javascript/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/guides/javascript/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/guides/javascript/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -494,7 +495,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/" aria-current="page">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../guides/native/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/guides/native/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/guides/native/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/guides/native/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/guides/native/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/guides/native/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/guides/native/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/guides/native/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/guides/native/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/guides/native/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/guides/native/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/guides/native/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/guides/native/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/guides/native/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/guides/native/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/guides/native/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/guides/native/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/guides/native/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/guides/native/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/guides/native/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -500,7 +501,8 @@ return (DxBallInt)pan;</code></pre>
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -119,6 +119,7 @@
<a href="./blog/">Blog</a>
<a href="./guides/">Guides</a>
<a href="./faq/">FAQ</a>
<a href="./contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="./" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="./zh-CN/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="./zh-TW/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="./ja/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="./ko/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="./tr/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="./ru/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="./vi/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="./th/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="./de/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="./es/" lang="es" dir="ltr" data-language="es">Español</a><a href="./fr/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="./uk/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="./pl/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="./pt-BR/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="./ar/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="./fa/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="./id/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="./it/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="./el/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -1213,7 +1214,8 @@ SPEED: 6</code></pre>
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="./contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -118,6 +118,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../showcase/aegis/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/showcase/aegis/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/showcase/aegis/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/showcase/aegis/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/showcase/aegis/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/showcase/aegis/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/showcase/aegis/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/showcase/aegis/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/showcase/aegis/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/showcase/aegis/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/showcase/aegis/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/showcase/aegis/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/showcase/aegis/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/showcase/aegis/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/showcase/aegis/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/showcase/aegis/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/showcase/aegis/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/showcase/aegis/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/showcase/aegis/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/showcase/aegis/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -799,7 +800,8 @@ npx rea-agents@latest inspect-android-package \
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../showcase/ctf/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/showcase/ctf/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/showcase/ctf/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/showcase/ctf/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/showcase/ctf/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/showcase/ctf/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/showcase/ctf/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/showcase/ctf/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/showcase/ctf/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/showcase/ctf/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/showcase/ctf/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/showcase/ctf/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/showcase/ctf/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/showcase/ctf/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/showcase/ctf/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/showcase/ctf/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/showcase/ctf/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/showcase/ctf/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/showcase/ctf/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/showcase/ctf/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -768,7 +769,8 @@ chmod +x ms_flag_checker
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../showcase/dx-ball/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/showcase/dx-ball/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/showcase/dx-ball/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/showcase/dx-ball/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/showcase/dx-ball/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/showcase/dx-ball/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/showcase/dx-ball/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/showcase/dx-ball/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/showcase/dx-ball/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/showcase/dx-ball/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/showcase/dx-ball/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/showcase/dx-ball/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/showcase/dx-ball/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/showcase/dx-ball/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/showcase/dx-ball/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/showcase/dx-ball/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/showcase/dx-ball/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/showcase/dx-ball/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/showcase/dx-ball/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/showcase/dx-ball/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -776,7 +777,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../blog/">Blog</a>
<a href="../guides/">Guides</a>
<a href="../faq/">FAQ</a>
<a href="../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../showcase/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../zh-CN/showcase/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../zh-TW/showcase/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../ja/showcase/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../ko/showcase/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../tr/showcase/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../ru/showcase/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../vi/showcase/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../th/showcase/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../de/showcase/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../es/showcase/" lang="es" dir="ltr" data-language="es">Español</a><a href="../fr/showcase/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../uk/showcase/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../pl/showcase/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../pt-BR/showcase/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../ar/showcase/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../fa/showcase/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../id/showcase/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../it/showcase/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../el/showcase/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -308,7 +309,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../showcase/notion/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/showcase/notion/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/showcase/notion/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/showcase/notion/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/showcase/notion/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/showcase/notion/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/showcase/notion/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/showcase/notion/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/showcase/notion/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/showcase/notion/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/showcase/notion/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/showcase/notion/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/showcase/notion/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/showcase/notion/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/showcase/notion/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/showcase/notion/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/showcase/notion/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/showcase/notion/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/showcase/notion/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/showcase/notion/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -622,7 +623,8 @@ mimeTypes:
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+3 -1
View File
@@ -117,6 +117,7 @@
<a href="../../blog/">Blog</a>
<a href="../../guides/">Guides</a>
<a href="../../faq/">FAQ</a>
<a href="../../contributors/">Contributors</a>
</nav>
<div class="header-social">
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../../showcase/th04/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../../zh-CN/showcase/th04/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../../zh-TW/showcase/th04/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../../ja/showcase/th04/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../../ko/showcase/th04/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../../tr/showcase/th04/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../../ru/showcase/th04/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../../vi/showcase/th04/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../../th/showcase/th04/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../../de/showcase/th04/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../../es/showcase/th04/" lang="es" dir="ltr" data-language="es">Español</a><a href="../../fr/showcase/th04/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../../uk/showcase/th04/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../../pl/showcase/th04/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../../pt-BR/showcase/th04/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../../ar/showcase/th04/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../../fa/showcase/th04/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../../id/showcase/th04/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../../it/showcase/th04/" lang="it" dir="ltr" data-language="it">Italiano</a><a href="../../el/showcase/th04/" lang="el" dir="ltr" data-language="el">Ελληνικά</a></nav></details>
@@ -791,7 +792,8 @@ no_aim:
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="../../contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>
+7
View File
@@ -0,0 +1,7 @@
<!-- prettier-ignore -->
<ul class="contributors-grid" data-contributors-list translate="no">
$cards
</ul>
<p class="caption contributors-source">
From <a href="https://github.com/morluto/rea/graphs/contributors">GitHub’s contributor list</a> · Updated <time datetime="$updated" translate="no">$updated</time>.
</p>
+2 -1
View File
@@ -3,7 +3,8 @@
<div class="container footer-inner">
<p>REA · Reverse Engineer Anything</p>
<div class="footer-links">
<a href="https://github.com/morluto/rea">Source</a
<a href="${base}contributors/">Contributors</a
><a href="https://github.com/morluto/rea">Source</a
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
><a href="https://x.com/reatools">Follow us on X</a>