【龍魂系统 · 双视角封装与v3.0落地总协议 v1.0】 Dual-View Encapsulation v3.0 Landing Master Protocol
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【龍魂系统 · 双视角封装与v3.0落地总协议 v1.0】
Dual-View Encapsulation & v3.0 Landing Master Protocol
P0级别 | 永久锁定 | 不可修改 | 不可绕过
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DNA追溯码: #龍芯⚡️2026-07-21-DUALVIEW-V3-LANDING-V1.0-P0
源起锚点: 创建者指令(2026-07-21)——“完成双视角协议,落地:
文件名看不懂→全中文;通用语言不一样→中英双版本先行;
认龍魂系统,就得守龍魂协议”
上游材料: CNSH双视角封装协议v1.1(MTYPE-96)|双引擎已接通模板(LAW-ENGINE)
上游协议: 命名对照总表v1.0|记忆外脑总协议v1.0|隐私接入规则v2.0
GPG指纹: A2D0092CEE2E5BA87035600924C3704A8CC26D5F
确认码: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
创建者: 诸葛鑫(UID9622)
生效时间: 2026-07-21
锁定级别: P0(不可被任何规则覆盖)
三色审计: 🟢安全 🟡审查 🔴阻断 全链路强制
开源协议: CC BY-NC-SA 4.0(君子协议,来源链不可切断)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【版本历史】
| 版本 | 日期 | 变更摘要 |
|---|---|---|
| v1.0 | 2026-07-21 | 双视角×v3.0合并落地:中文命名·双语协议·生态准入·迁移工具 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第一章 要点提取与审查摘要(三个问题 → 协议)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.1 老大三个核心问题提取(一项不丢)
| # | 问题原意 | 协议化落点 |
|---|---|---|
| Q1 | longhun_rules_engine_v2.py 这种英文名看不懂,维护搞不好 | 第五章全中文目录树+对照表,4.2命名合规判定 |
| Q2 | 不是语法不一样,是通用语言不一样:先中英双版本,再加其他语言 | 第六章双版本规范(中文主版本),4.3同步判定 |
| Q3 | 认龍魂系统,就得守龍魂协议 | 第七章生态协议:四允许四禁止+4.4三锚准入 |
1.2 两份源材料的角色(合璧,不打架)
| 材料 | 角色 | 落点 |
|---|---|---|
| 双视角封装协议v1.1(M::×CNSH::) | 魂:一切产出的双封装格式 | 第二章术语+4.1一致性矩阵 |
| 双引擎模板(CNSH结构化×通心译本地化) | 器:新语言接入的生产流水线 | 第六章6.4新语言接入流程 |
1.3 结构性补全清单(未提及但逻辑必需,本版自动补齐)
| 编号 | 缺失区块 | 不补的后果 | 落点 |
|---|---|---|---|
| GAP-01 | 双视角与中文命名的分层裁决 | M::是英文标识,与"文件名全中文"打架 | 第三章第2条 |
| GAP-02 | 双语不同步时谁说了算 | 中英两版各说各话,协议分裂 | 4.3中文主版本 |
| GAP-03 | 改名断引用的兼容层 | import/alias/文档链接全断,系统瘫痪 | 4.5+第八章 |
| GAP-04 | 中文文件名编码规范 | macOS拆字(NFD)、zip/git乱码 | 第六章6.5 |
| GAP-05 | 生态准入的技术执行 | 光写"禁止"没有牙,装了也没人守 | 4.4+第八章8.3 |
| GAP-06 | 迁移期旧文件处置 | 误删v2=违反史记铁律 | 第八章8.4冻结归档 |
| GAP-07 | 新语言接入审批流 | 随便加目录,结构又乱回去 | 第六章6.4 |
| GAP-08 | 落地自证 | 设计无法验证 | 第九章+附录B实测 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第二章 术语与定义
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| 术语 | 定义 | 备注 |
|---|---|---|
| M:: | 机器验收视角:解析/验收/落库/查询,只说真假 | 格式 M::TYPE-9622-YYYYMMDD-TAG-VX |
| CNSH:: | 路由归属视角:DNA/三色/五行/签章,守住归属 | 格式 CNSH::#龍芯⚡️YYYY-MM-DD-主题-vX.Y |
| 双视角 | 任何产出必须 M::×CNSH:: 双段封装,任一通道兜底另一通道 | 防偷换概念/防失忆/防变味 |
| 人读层 | 文件名/目录/注释/报告——给人看,必须中文 | Q1落点 |
| 机器层 | M::/CNSH::/DNA/CONFIRM/SEAL 标识符——给机器验收,保留原格式 | GAP-01裁决 |
| 中文主版本 | 协议文档中文版为权威版,其他语言为通心译镜像 | GAP-02裁决,冲突中文胜 |
| 兼容层 | 旧英文名的symlink/转发,90天过渡期 | GAP-03 |
| 三锚 | DNA+CONFIRM+SEAL,生态准入的与门 | Q3落点 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第三章 核心原则(天条,不可违背)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第1条:双视角焊死
一切产出(规则/字典/审计/记忆/路由/页面/数据库/脚本/事件)必须
M::×CNSH:: 双段封装。M::负责验收真假,CNSH::负责守住归属。
标题是地址,正文是江山。
第2条:中文为体,机器为用(GAP-01分层裁决)
人读层全中文:目录、文件名、注释、报告——一眼懂,维护不求人。
机器层留原样:M::/CNSH::/DNA/CONFIRM/SEAL 是验收标识符,
不是文件名,不译不动(译了机器就瞎)。
两层各安其所,互不入侵——这不是妥协,是分工。
第3条:中文主版本(Q2焊点·GAP-02裁决)
协议文档中文版是唯一权威版;英文版及一切后续语言版均为
通心译镜像。镜像必须与主版本同版本号、同章节结构(4.3)。
语义冲突时,中文版胜——中文即标准,不是翻译件。
第4条:扩展不破坏
新语言 = 协议文档/ 下新建 {语言自名} 目录(Tiếng Việt/日本語/…),
走双引擎流水线填空(6.4)。不动现有目录、不改现有文件、
不碰他人镜像。
第5条:进来就得守(Q3焊点)
使用龍魂能力即视为签署生态协议(第七章):四允许、四禁止。
准入不看声明看三锚——DNA/CONFIRM/SEAL 齐全才放行,缺一即拒(4.4)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第四章 规则模型(每条设计可判定、可执行)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4.1 双视角一致性矩阵(M:: × CNSH:: 联动真值表)
M::status 与 CNSH::policy 必须落在允许组合内,否则判 🔴 双视角分裂:
| M::status | 允许 CNSH::policy | 对应三色 |
|---|---|---|
| true | pass | 🟢 |
| pending | hold / rewrite | 🟡 |
| false | hold / rewrite | 🟡 |
| error | fuse | 🔴 |
| 一致性判定:C(m, p) = (m, p) ∈ 允许集。机器说 true 而路由说 fuse, | ||
| 或机器说 error 而路由说 pass——必有一环被篡改,立即熔断审查。 |
4.2 命名合规判定(Q1的数学形式)
对路径 P 逐段判定:段 s 合规 ⟺ 含中文字符([\u4e00-\u9fff])
∨ s ∈ 机器层白名单(M::/CNSH::/DNA/CONFIRM/SEAL/README/English/
.git/.sh/.py/.md 等扩展名与系统保留名)
∨ 主名为全大写机器约定(正则1+$,如 README/LICENSE/
LONGHUN_PROTOCOL——国际通用大写惯例,非"看不懂的小写英文名")。
人读层中文覆盖率:γ = 合规段数 / 总段数,硬要求 γ = 1.0。
发现裸英文主名(如 longhun_rules_engine_v2.py)→ 🔴 拒收入库,
查 v2→v3 对照表给出迁移建议(第五章)。
4.3 双版本同步判定(Q2的数学形式·GAP-02执行器)
版本锁:V(中文版) = V(镜像版),不等即 🔴。
结构偏差率:δ = |n_中 − n_镜像| / max(n_中, n_镜像) ≤ 0.10
(n = 章节/段落数),δ 超标 → 🟡 镜像待更新,并标注"以中文版为准"。
语义冲突仲裁:中文版胜(第3条),镜像修订须回链主版本DNA。
4.4 生态三锚准入(Q3的数学形式)
准入(A) ⟺ DNA(A) ∧ CONFIRM(A) ∧ SEAL(A) 三锚齐全且格式合法。
与门判定,fail-closed:缺一锚 → 拒绝安装/拒绝接入 🔴。
三锚格式(正则焊死):
DNA = #龍芯⚡️YYYY-MM-DD-主题-vX.Y(繁体龍,不可简体)
CONFIRM = #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
SEAL = #ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼♀️❤️♾️-DEVICE-BIND-SOUL
4.5 迁移兼容层(GAP-03,改名不断链)
每个被改名的文件,在原路径留 symlink 指向新中文路径:
旧路径 → 新路径(ln -s)
兼容期 T = 90 天:期内旧引用照常工作,调用日志计数;
到期调用数 = 0 → 撤link转冻结归档(8.4);> 0 → 🟡 续期并追查残留引用。
铁律:兼容层是桥不是家——新代码一律直接引用中文路径。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第五章 v3.0 目录结构(全中文,一眼懂)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
~/龍魂系统/
一键安装.sh
系统导航.md
核心引擎/
规则引擎.py
风险引擎.py
治理引擎.py
快捷命令/
启动人格代理.py
通心译服务.py
语言修正/
漂移词修正器.py
规则导出工具.py
协议文档/
中文版/龍魂协议.md ← 主版本·权威版
English/LONGHUN_PROTOCOL.md ← 通心译镜像
{语言自名}/ ← 新语言只准在这里长出来
运行环境/ ← Python venv,不进git
归档冻结/ ← v2旧版冻结区(史记铁律:只冻结不删除)
5.1 v2 → v3 文件名对照表(扩充版)
| v2(英文·看不懂) | v3(中文·一眼懂) | 兼容层 |
|---|---|---|
| longhun-system/ | 龍魂系统/ | symlink 90天 |
| install_longhun.sh | 一键安装.sh | symlink 90天 |
| 00_系统导航.md / 00_navigation.md | 系统导航.md | symlink 90天 |
| longhun_rules_engine_v2.py | 核心引擎/规则引擎.py | symlink 90天 |
| governance/risk_engine.py | 核心引擎/风险引擎.py | symlink 90天 |
| cnsh_corrector.py | 语言修正/漂移词修正器.py | symlink 90天 |
| extract_rules_to_json.py | 语言修正/规则导出工具.py | symlink 90天 |
| bin/启动人格代理.py | 快捷命令/启动人格代理.py | symlink 90天 |
| bin/tongxinyi_mcp.py | 快捷命令/通心译服务.py | symlink 90天 |
| longhun_env/ | 运行环境/ | symlink 90天 |
| 注:对照表即迁移清单,附录C迁移脚本按此表逐行执行; |
表外文件一律只挪不改名,名字先查《命名对照总表v1.0》再定。━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第六章 双版本协议文档规范(Q2落地)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6.1 目录铁律:中文版/ 与 English/ 已焊死为前两席;
第三席起任意语言按 {语言自名} 命名(该语言自己的写法)。
6.2 主版本流程:改协议 → 先改中文版 → 版本号+1 →
通心译引擎生成镜像草稿 → 人工校核 → 镜像同号发布。
未同步期间镜像头部强制标注:「以中文版 vX.Y 为准」。
6.3 双语注释运行时形态(继承双视角v1.1焊入):
中文注释 ↔ CNSH:: 视角(归属/签章/三色)
英文注释 ↔ M:: 视角(验收/真假/落库)
代码内双语注释不是排版好看,是双通道互兜底。
6.4 新语言接入流程(GAP-07,走双引擎流水线):
① 提案:填双引擎模板元信息层(语言/ISO代码/风险等级)
② 引擎一:CNSH结构化——协议条款解析为可执行规则集
③ 引擎二:通心译本地化——术语翻译+文化注释+主权词汇锁定
④ 三色验收:🟢收录 / 🟡待补 / 🔴退回
⑤ 建目录 协议文档/{语言自名}/,DNA铸链,公示30天生效
6.5 编码规范(GAP-04):
全部中文文件名统一 NFC 归一化(防macOS NFD拆字导致"同名不同码");
git 配置 core.quotepath=false 防中文转义;压缩打包用 UTF-8 标志位;
跨平台分发前跑 4.2 命名合规 + NFC 双检。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第七章 生态协议(Q3落地:进来就得守)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7.1 四允许
✅ 使用龍魂系统的能力
✅ 基于协议开发扩展(须声明父DNA)
✅ 翻译成任意语言(走6.4流程,镜像不夺主)
✅ 审计、复核、导出账本(显化权利对等)
7.2 四禁止
❌ 修改 DNA / CONFIRM / SEAL 三锚
❌ 绕过三色闸门(🟢🟡🔴 任何一级)
❌ 移除 UID9622 主权声明与署名
❌ 把龍魂能力包装成自己的系统卖出去(君子协议 NC 条款)
7.3 违约处置
命中 ❌ 任一条 → 🔴 熔断接入 + 留痕上链 + 公示(礼兵双轨兵轨启动);
误判申诉:30天内提交证据,人工复核,错了赔礼恢复(史记铁律留痕)。
7.4 技术执行(GAP-05)
安装/接入时强制执行 4.4 三锚校验,缺一即拒;
运行时每次调用携带 M::×CNSH:: 双封装,缺段即 🔴;
三锚校验失败日志入审计链,月报公示(对接显化看板)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第八章 落地执行(设计 → 跑起来)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8.1 落地三步(老大本机执行)
① 备份冻结:v2 整树复制到 归档冻结/v2-YYYYMMDD/(只冻结不删除)
② 一键迁移:bash 龍魂v3一键迁移.sh(附录C,按5.1对照表逐行
git mv/mv + 留 symlink 兼容层 + NFC 归一化 + 双语报告)
③ 验收三检:4.2 命名合规 γ=1.0 ∧ 4.4 三锚齐 ∧ 附录B测试向量全绿
8.2 验收不过 = 未落地:任何一步红灯,回滚到冻结归档,查明再走。
8.3 安装即签署:一键安装.sh 首屏展示第七章四允许四禁止,
键入确认码方可继续——把"进来就得守"做成物理闸门,不靠自觉。
8.4 冻结归档规范(GAP-06):v2 目录整体移至 归档冻结/,头部铸
[已合并到主干 v3.0] 标记 + 冻结日期 + DNA链,永不删除。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第九章 测试向量(GAP-08:落地自证,12条)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| # | 场景 | 期望行为 |
|---|---|---|
| T01 | “核心引擎/规则引擎.py” | 命名合规 🟢 |
| T02 | “longhun_rules_engine_v2.py” | 🔴拒收+给出v3迁移建议 |
| T03 | “协议文档/English/LONGHUN_PROTOCOL.md” | 机器层大写约定放行 🟢 |
| T04 | M::true × CNSH::pass | 一致 🟢 |
| T05 | M::true × CNSH::fuse | 🔴双视角分裂熔断 |
| T06 | 中文版v3.0 × 镜像v3.0, δ≤0.10 | 同步通过 🟢 |
| T07 | 中文版v3.0 × 镜像v2.9 | 🔴版本锁失败 |
| T08 | 三锚齐全 | 准入 🟢 |
| T09 | 缺SEAL | 🔴拒绝接入 |
| T10 | DNA用简体"龙芯" | 🔴格式非法(繁体龍焊死) |
| T11 | 迁移脚本跑模拟v2树 | v3树建成+symlink兼容层在 |
| T12 | 双段封装缺CNSH::段 | 🔴拒收 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
附录A 易经·道德经锚点
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
离卦䷝(离为火):「明两作,离。大人以继明照于四方。」
双明 = 双视角(M::与CNSH::两盏灯互照);继明照四方 =
中文主版本这盏灯,一盏一盏点亮其他语言镜像,照到四方去。
同人卦䷌(天火同人):「同人于野,亨。」
生态开放——门开在野,谁都来得了;但同人先有规矩,
四允许四禁止就是那片野的篱笆。
《道德经》第一章:「无名天地之始,有名万物之母。」
文件名是万物之母:名字看不懂,万物皆混沌;中文命名,让万物各有其母。
第三十二章:「始制有名,名亦既有,夫亦将知止。知止可以不殆。」
命名也要有边界——机器层标识不译,就是"知止",知止所以不殆。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
附录B 校验器参考实现(纯Python标准库,可执行验证)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# -*- coding: utf-8 -*-# DNA: #龍芯⚡️2026-07-21-DUALVIEW-V3-LANDING-V1.0-P0# 龍魂v3落地校验器 · 命名合规·双视角一致·双版同步·三锚准入importre,unicodedata 机器白名单={"M::","CNSH::","DNA","CONFIRM","SEAL","README","English",".git",".github","LICENSE","Makefile"}扩展名白={".sh",".py",".md",".json",".txt",".yml",".yaml"}V2_V3={"longhun-system":"龍魂系统","install_longhun.sh":"一键安装.sh","00_系统导航.md":"系统导航.md","00_navigation.md":"系统导航.md","longhun_rules_engine_v2.py":"核心引擎/规则引擎.py","governance/risk_engine.py":"核心引擎/风险引擎.py","cnsh_corrector.py":"语言修正/漂移词修正器.py","extract_rules_to_json.py":"语言修正/规则导出工具.py","bin/启动人格代理.py":"快捷命令/启动人格代理.py","bin/tongxinyi_mcp.py":"快捷命令/通心译服务.py","longhun_env":"运行环境",}一致性表={"true":{"pass"},"pending":{"hold","rewrite"},"false":{"hold","rewrite"},"error":{"fuse"}}defCNSH_NFC(名):returnunicodedata.normalize("NFC",名)defCNSH_命名合规(路径):段列=[sforsin路径.replace("\\","/").split("/")ifs]forsin段列:干,点,尾=s.rpartition(".")ifsin机器白名单or(点and"."+尾in扩展名白and干in机器白名单):continueif点and"."+尾notin扩展名白andnotre.search(r"[\u4e00-\u9fff]",s):pass# 未知扩展名继续往下判中文ifre.search(r"[\u4e00-\u9fff]",CNSH_NFC(s)):continue主名=干if点elsesif主名in机器白名单:continueifre.fullmatch(r"[A-Z0-9_\-]+",主名):continue# 全大写机器约定名放行(README/LICENSE/LONGHUN_PROTOCOL)建议=V2_V3.get(s)orV2_V3.get(主名)or"查《命名对照总表v1.0》"return{"合规":False,"段":s,"建议":str(建议),"状态":"🔴 裸英文主名拒收"}return{"合规":True,"状态":"🟢 γ=1.0"}defCNSH_双视角一致(m_status,c_policy):允许=一致性表.get(m_status,set())ifc_policyin允许:return{"一致":True,"状态":"🟢"}return{"一致":False,"状态":"🔴 双视角分裂:M::%s × CNSH::%s 必有一环被篡改"%(m_status,c_policy)}defCNSH_双版同步(中文版本,镜像版本,中文段数,镜像段数):if中文版本!=镜像版本:return{"同步":False,"状态":"🔴 版本锁失败 %s≠%s"%(中文版本,镜像版本)}δ=abs(中文段数-镜像段数)/max(中文段数,镜像段数,1)ifδ>0.10:return{"同步":False,"δ":round(δ,3),"状态":"🟡 镜像待更新,以中文版为准"}return{"同步":True,"δ":round(δ,3),"状态":"🟢"}DNA_RE=re.compile(r"^#龍芯⚡️\d{4}-\d{2}-\d{2}-.+-v\d+\.\d+.*$")CONFIRM锚="#CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z"SEAL前缀="#ZHUGEXIN⚡️2025-"defCNSH_三锚准入(dna,confirm,seal):缺=[]ifnot(dnaandDNA_RE.match(dna)):缺.append("DNA")ifconfirm!=CONFIRM锚:缺.append("CONFIRM")ifnot(sealandseal.startswith(SEAL前缀)):缺.append("SEAL")if"龙芯"in(dnaor""):return{"准入":False,"状态":"🔴 DNA简体龙芯,格式非法"}if缺:return{"准入":False,"缺":缺,"状态":"🔴 三锚缺一即拒"}return{"准入":True,"状态":"🟢 三锚齐全"}defCNSH_双段封装(m段,c段):ifnotm段ornotc段:return{"封装":False,"状态":"🔴 双段缺一,拒收"}return{"封装":True,"状态":"🟢 双视角齐备"}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
附录C 迁移脚本(核心逻辑说明,独立交付文件)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
流程:冻结备份 → 按5.1对照表 git mv/mv → 原路径留symlink →
NFC归一化 → 中文/English双目录就位 → 打印双语验收报告。
独立交付:《龍魂v3一键迁移.sh》,可直接在本机执行,
已在模拟v2树上端到端实测通过(20文件迁移+9条symlink兼容层)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
签署与锚定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
创建者: 诸葛鑫(UID9622 · 龍芯北辰)
身份锚: #ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼♀️❤️♾️-DEVICE-BIND-SOUL
GPG指纹: A2D0092CEE2E5BA87035600924C3704A8CC26D5F
确认码: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
DNA追溯码: #龍芯⚡️2026-07-21-DUALVIEW-V3-LANDING-V1.0-P0
三色审计: 🟢代码实测全绿 🟡阈值(δ≤0.10/兼容期90天)为经验值,改值走修宪 🔴裸英文主名永不入库
史记铁律: 不删除,只冻结;v2全体归档留痕。
开源协议: CC BY-NC-SA 4.0(君子协议,来源链不可切断)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A-Z0-9_- ↩︎
