成立於2013年,總部位於美國加州,是一家徹底改變美國散戶金融市場的網路券商。它以推出**零手續費(Commission-Free)**的股票交易而聞名 。
比重數據通常會依據**「散戶託管資產總額(Retail AUM)」** 或**「活躍交易帳戶數」**來劃分。





最快的回应链路应该是:
插件一次性输出当前任务判断所需的上下文 -> Codex 读 latest.json -> 必要时补一次源码/反射检索 -> 回答
现在慢的地方不是 latest.json 文件读写,而是 AI 还要自己推断:
- 当前是哪个 editor
- 哪些资产打开
- 当前面板是不是目标面板
- 当前可见操作是什么
- 当前选择是什么
- 目标功能是不是在当前面板里
- 如果不在,可能去哪
所以 latest.json 最好直接输出这些"判断字段":
{ "current_location": { "active_editor_kind": "SkeletalMeshEditor", "active_asset": "...", "opened_assets": [...] }, "current_selection": { "selected_actors": [], "selected_objects": [], "asset_editor_selection": [] }, "visible_workspace": { "visible_panels": ["Skeleton Tree", "Asset Details", "Material Slots"], "visible_actions": ["Preview Animation", "Create Asset", "Reimport Mesh"], "visible_properties": ["Material Slots", "Element 0", "Element 1"] }, "context_hints": { "not_currently_visible": ["IK Retargeter Op Stack"], "likely_relevant_open_assets": ["RTG_Aglina"], "missing_collectors": ["IKRetargeterOpStackCollector"] } }
这样问"隐藏 IK Goal 图标怎么做"时,AI 可以立刻判断:
- 你当前窗口是 Skeletal Mesh,不是 Retargeter op 设置;
- RTG_Aglina 已打开,是相关资产;
- 当前 visible properties 是 Material Slots,不是 Debug draw goals;
- 需要切到 Retargeter / Op Stack;
- 具体属性名如果 JSON 里有就直接答,没有再查源码。
所以最优不是"大 JSON",而是一份小而语义化的 JSON。




Vertex Group 存在于 Mesh 对象上。
Bone 存在于 Armature 对象里。
Armature Modifier 把二者按名字配对。
给某一根 bone 增加 Vertex Group,本质是:在 Mesh 上创建一个和 bone 完全同名的 Vertex Group,然后把一批顶点 Assign 到这个 group 里。
Scalar Parameter:按住 S + 鼠标左键点击空白处
常用于 Roughness、Opacity、Metallic 这类单个数值。
Vector Parameter:按住 V + 鼠标左键点击空白处
常用于 Base Color、Emissive Color、Tint 颜色。UE 5.7 里 Vector Parameter 已经有 Vector4 / RGBA 输出。Epic Games Developers
Texture Sample Parameter 2D:按住 T + 鼠标左键点击空白处
常用于把贴图暴露给 Material Instance 替换。
因为它们解决的不是同一层问题。
Slab / BSDF 节点 回答的是:
"这个像素上的物质本身是什么?光进入表面后,如何反射、散射、透射、吸收?"
也就是材料的物理组成层 。在 Substrate 里,一个 Slab 被定义成一块 matter:有 interface,也有 medium。interface 管 F0、F90、Roughness、Normal、Anisotropy 这类表面反射;medium 管 MFP、SSS、吸收、透射这类体内行为。官方文档也明确说 Substrate Slab 是构建 Substrate Material 的 elementary building block,而且是 non-Substrate 旧 Material Root Node 的模块化替代物。Epic Games Developers
Shading Model 节点 回答的是:
"这个材质在 UE 的旧渲染语义里,应该走哪种引擎级光照/分类路径?"
比如 Default Lit、Clear Coat、Cloth、Hair、Subsurface Profile、Single Layer Water、Unlit 等。旧系统里 Shading Model 是一个很大的分类开关:你选了 Cloth,UE 就暴露 Cloth 相关输入;你选了 Hair,就进入 Hair 的专用光照逻辑。官方对 Shading Model 的定义就是:决定 Material 如何和 incoming light 交互,并且 UE 有很多为特定表面类型设计的 Shading Models。Epic Games Developers
所以用户需求不是"为什么要重复两个东西",而是:
Substrate 想要更物理、更可组合;但 UE 又不能立刻抛弃旧的 Shading Model 生态。
Slab BSDF 负责"这层材料本身怎么反光、漫反射、粗糙、法线、SSS"。
主 Material 节点 / Blend Mode 负责"这整个材质如何和背景混合、是否透明"。
所以不是你接错了,而是控制权分层变了。
当前 Blend Mode / Substrate 透明模式 没有启用 root node 的 Opacity 输入
Material → Blend Mode = TranslucentGreyTransmittance
这属于 Substrate 的 Transmittance 透明模式。它的目标不是"Alpha 把物体整体淡出",而是模拟光穿过材质后的透射、散射、折射。所以它主要看:
SSS MFP
SSS MFP Scale
Surface Thickness
Refraction
Roughness
官方 Substrate 文档里,粗糙折射半透明材质就是设置 TranslucentColoredTransmittance / TranslucentGreyTransmittance / ColoredTransmittanceOnly,然后把值传到 Refraction、Roughness、SSS MFP 等输入,而不是接普通 Opacity。Epic Games Developers
官方逻辑是:Substrate 用 "slab of matter" 表达材料,透明/透射不是单独一个旧式 Opacity 输入,而是由 Slab 的透射、吸收、厚度这些物理参数决定;官方也明确说 Transmittance/MFP 越大,光越能穿过 slab,背景越可见。Epic Games Developers+1

公式粗略算一下,如果 T = 0.98,Thickness = 0.1:
MFP ≈ -0.1 / ln(0.98)
MFP ≈ 4.95
所以它输出的 MFP 会是一个比较大的数。大,表示光可以在材料里走很远才被明显吸收,所以看起来很透明。
Constant3Vector / Vector Parameter 本质上都可以当 Vector3 用。
官方对 Constant3Vector 的定义是:输出一个三通道 vector,也就是三个常数;RGB 颜色可以被看成一个 Constant3Vector,每个通道对应红、绿、蓝。Epic Games Developers
也就是说:
Constant3Vector = float3 / RGB
Vector Parameter = 可参数化的 float4,UI 常按颜色参数显示
所以它既可以是"颜色",也可以被你拿来当三维数据,只是材质编辑器默认把它包装成颜色选择器。
如果你真的想要"裸 Vector3 数字",不要按 V。
在 Material Graph 里:
按 3 + 左键 :创建 Constant3Vector 。官方教程里也明确用 3 + Left Mouse Button 放置 Constant3Vector。Epic Games Developers
按 V + 左键 :创建 Vector Parameter,适合以后在 Material Instance 里调颜色/向量参数。
Git 的 partial clone / 按对象过滤获取下载
通过 Git 的 partial clone / 按对象过滤获取下载的,不是从 GitHub 网页下载目录树文件。
核心流程是:
git init git remote add origin https://github.com/EpicGames/UnrealEngine.git git fetch --filter=blob:none --depth=1 origin ` refs/heads/5.8:refs/remotes/origin/5.8 ` refs/heads/dev-5.8:refs/remotes/origin/dev-5.8
参数含义:
- --filter=blob:none:不下载源码文件内容,只获取 Commit 和 Tree 对象。
- --depth=1:仅获取分支最新提交,不获取完整历史。
- Git 使用你本机账号凭据访问 Epic 私有仓库。
然后从 Tree 对象生成路径文本:
git ls-tree -r --name-only refs/remotes/origin/5.8 git ls-tree -r --name-only refs/remotes/origin/dev-5.8 git diff --name-status refs/remotes/origin/5.8 refs/remotes/origin/dev-5.8
Git 仓库本身就将每次提交表示为:
Commit -> Tree -> 子 Tree / Blob
因此可以只下载 Tree 获取全部目录和文件路径,而不下载 Blob 源码内容。本次 Tree 元数据约 8.51 MiB,生成了约 22 万条文件路径。
表示 dev-5.8 里的 UBA 可执行/库相关导出产物更新了。你不能从这里直接读出"功能改了什么",只能知道二进制产物变了。想知道原因,要去看对应源码路径,比如:
Engine/Source/Programs/UnrealBuildAccelerator/...
GitDependencies 配置:
Engine/Build/Commit.gitdeps.xml
这个比较重要。Commit.gitdeps.xml 通常记录这次引擎提交需要的外部依赖包、预编译依赖、工具包、二进制依赖等。它变了,意味着 dev-5.8 对某些第三方/预编译依赖的版本、哈希、路径或包清单做了调整。
UE 识别插件的边界,不是靠"文件名里有 MCP",也不是靠"我觉得这些文件相关",而是靠插件描述文件 .uplugin。Epic 官方文档明确把 .uplugin 称为 plugin descriptor,并说明带 C++ 代码的插件通常包含 Source 文件夹和模块 .Build.cs;项目下的 Plugins 文件夹会在启动或项目生成时被发现。Epic Games Developers+1
所以当你确认存在:
Engine/Plugins/Experimental/ModelContextProtocol/ModelContextProtocol.uplugin
并且 .uplugin 里写着:
JSON
"FriendlyName": "Unreal MCP",
"Description": "Anthropic MCP (Model Context Protocol) server implementation for Unreal Engine."
这就说明:UE 5.8 仓库中确实有一个名为 ModelContextProtocol 的插件,它的插件根目录就是 Engine/Plugins/Experimental/ModelContextProtocol/。
因此,用 sparse checkout 只取:
Engine/Plugins/Experimental/ModelContextProtocol
这个行为可以说是准确的,因为它按 UE 插件描述文件确定了完整目录边界,而不是靠关键词散抓文件。
但它只准确到这一层:
准确下载了 ModelContextProtocol 这个插件目录。
.uplugin 是 UE 识别插件身份和插件边界的权威入口 。UE 会通过它知道"这是一个插件""插件叫什么""有哪些模块""什么时候加载""依赖哪些插件""是否默认启用"等。Epic 文档明确说插件有自己的 .uplugin 文件;带代码的插件如果有 Source 文件夹和 .Build.cs,插件代码会被加入生成的 C++ 项目文件,并在项目编译时作为依赖一起编译。Epic Games Developers
但 .uplugin 只回答第一层问题:
这个目录是不是一个 UE 插件?
这个插件声明了哪些模块?
这些模块大概什么时候加载?
这个插件显式依赖哪些其他插件?
不是功能实现文件 ,它只是 ModelContextProtocolEditorTests 这个模块的"入口登记文件"。
#include "Modules/ModuleManager.h"
class FModelContextProtocolEditorTestsModule : public IModuleInterface
{
};
IMPLEMENT_MODULE(FModelContextProtocolEditorTestsModule, ModelContextProtocolEditorTests)

除了这些纯 Proof-of-Work(工作量证明)的测试网,比特币现在还有一个叫 Signet(签名网) 的测试环境(你页面上也能看到)。Signet 不再允许任何人随意挖矿,而是由指定的权威节点来签名生成区块,从而彻底根治了被恶意矿工"玩坏"的风险,也是现在非常流行的开发选择。

-
链上交易(On-chain):比特币的主链(Mainnet)通过 Proof-of-Work 机制打包区块,平均每 10 分钟产生一个区块。这种机制是为"去中心化与安全性"设计的,不是为了即时支付。就像"邮寄信件",虽然稳妥但速度慢。
-
闪电网络(Lightning Network) :它在主链之上构建了一个"链下(Off-chain)"支付通道网络。交易在用户之间直接通过点对点(P2P)进行,几乎是瞬间完成的。这种速度感类比"闪电"劈下的一瞬间,强调交易确认的瞬时性。
sat/vB 是比特币网络中衡量交易手续费(Transaction Fee)的单位,也就是你支付给矿工的"快递费"。
拆解来看:
-
sat :是 Satoshi(聪) 的缩写,它是比特币的最小单位。1 \\text{ BTC} = 100,000,000 \\text{ sat}。
-
vB :是 Virtual Byte(虚拟字节) 的缩写。这是比特币在 SegWit(隔离见证)升级后引入的一种计算交易大小的计量方式。
如果你在 mempool.space 上看到当前的高优先级费用是 5 sat/vB:
-
如果你的交易大小(vSize)是 200 vB。
-
你需要支付的总手续费就是:5 \\times 200 = 1,000 \\text{ sat}(即 0.00001 BTC)。
不要把你的私钥输入到这些网站里,只用你的公钥或交易 ID 进行查询
为什么叫它"浏览器"?
你没说错,这就是个网页,是用 JavaScript 和 HTML 写的。
-
准确定义 :我们叫它 "区块浏览器"(Block Explorer)。
-
逻辑:因为它本身不产生数据,它只是一个"翻译官"。比特币网络(节点)里的数据是加密的原始二进制代码,普通人看不懂。这个网站通过 API 连接到比特币节点,把那些原始数据渲染成了你看到的表格和方块,让你能用"浏览器"的方式去"阅读"区块链账本。
-
它不是基地 :它完全不是比特币的基地,它只是一个查询窗口。就像你用 Google 搜索新闻,Google 不是新闻的制造者,它只是把你导向新闻源头。
如何验证(Be your own explorer):
-
如果你有能力 :你可以下载 Bitcoin Core 软件,在你的电脑上运行一个全节点(Full Node)。这意味着你下载了完整的比特币账本,你可以直接查询本地数据库,根本不需要看任何网页。
-
如果你依赖网页 :你就只能去交叉比对 。你可以在 mempool.space 上查一笔交易,同时去 Blockchain.com 或 Blockchair 上查同一笔交易的哈希值(TXID)。如果所有浏览器显示的结果一致,说明数据大概率是准的。
在引入 SegWit 之前,区块大小限制是 1MB。引入后,通过 vSize 的计算方式,允许一个区块里塞入更多交易(理论上限提高到了 4M weight)。


gemini拍马屁是一流,难怪ai越来越难用

为什么 REST 这么流行?
因为它解决了"跨语言"和"跨平台"的沟通成本:
-
你不需要知道对面服务器是怎么写的 :
mempool.space可能后台用的是 Rust 或 Node.js,但你写代码时,只要会发 HTTP 请求,不管是 Python、Java、Go 还是 JavaScript,都能直接读懂它返回的 JSON 数据。 -
像点餐一样标准化:
-
GET /blocks------ 就是点一个"给我看最近区块"的套餐。 -
GET /tx/:txid------ 就是点一个"给我查这笔交易详情"的单点。 -
无论后端怎么变,只要菜单格式不变,你的代码就不需要改。
-

-
飞进来 :代表全球各地有人发起了一笔交易(比如 A 给 B 转账)。这笔交易通过网络节点广播到
mempool.space的节点,所以它"飞进来"了。 -
飞出去(到右边):这意味着它被矿工"选中"并打包了。矿工也是生意人,他们必须在 10 分钟内填满一个区块,他们会优先选择那些"给小费(手续费)多"的交易。
为什么有的方块大,有的方块小?
这不仅是视觉效果,这代表了数据量的大小:
-
大方块:这笔交易包含了非常多的输入(Inputs)或输出(Outputs),或者它是一笔极其复杂的"多重签名"交易,它占用的空间(vB)大,矿工打包它需要消耗更多的"区块空间资源"。
-
小方块:普通的转账,数据很紧凑。
-
矿工的逻辑:矿工盯着这些方块,就像是在玩俄罗斯方块------他们必须在有限的 1MB-4MB 空间内,塞入尽可能多且手续费高的方块。
-
深浅差异 :并不是交易随机染色,而是
mempool.space为了让你一眼看出"谁给钱多"。 -
高优先级(比如亮绿色或金色):通常是手续费高的交易,矿工最爱抢;
-
低优先级(暗色):手续费低或甚至没给手续费的交易,它们往往被排在区块的最底部,或者被推迟到下一个区块。
区块是"一人独自设置数据块分配"还是"多个不相关的人同时构建一个区块"?
这确实是个误区:区块是由一个矿工(或一个矿池)打包并计算出来的,而不是大家平摊着做的。
-
抢答机制:你可以把挖矿想象成全球矿工在抢一道"数学难题"的答案。每 10 分钟,只有一个人能抢到。
-
权力:谁抢到了这 10 分钟的"记账权",这 10 分钟内区块里装什么,就是谁说了算。其他矿工抢不到,就只能看着他把交易打包,然后赶紧去准备下一轮的抢答。
-
矿工不仅是"体力劳动者",还是"精算师" : 矿工不是瞎塞的。他们后台运行的软件(如 Bitcoin Core)有非常先进的算法(例如
Knapsack Problem背包问题算法)。矿工的目标是收益最大化。 -
最优解:他们会从 Mempool 里挑选几千笔交易,像拼图一样,把 1MB-4MB 的空间填得满满当当,让手续费的总和最高。
-
如果填不满怎么办? :矿工完全可以允许区块留白(比如只填了 3.99MB)。比特币协议规定区块大小的上限 是 400万重量单位(Weight),但并没有规定下限。如果实在没交易了,他就出一个"缺斤少两"的区块,没有任何惩罚。
"卡死"在区块链世界里叫 "拥堵"。
-
当交易太多,所有矿工都填得满满当当,还是处理不完时,交易就会在 Mempool 里排队(也就是你看到的颜色越来越暗,优先级越来越低)。
-
这时候,市场机制 就生效了:如果你的交易急着用,你只能提高
sat/vB手续费,用金钱优势让矿工优先把你那个"方块"塞进下一个区块。
-
每一个运行比特币节点的人(矿工、交易所、开发者),都可以通过代码里的设置(
mempoolsize)来决定自己的电脑愿意缓存多少交易。 -
没有硬性强制:比特币协议本身没有写死"内存池只能存 1000 笔交易"。只要你的电脑内存条(RAM)够大,你愿意设置缓存 100 万笔交易,那你的节点就能存下 100 万笔。
比特币全节点软件(Bitcoin Core)的源代码。开发者写了这一套逻辑:当内存池(Mempool)快满时,必须触发"清理程序"。
不是某个"大佬"在后台点按钮,而是你运行的每一个全节点程序里都自带这个逻辑。
一旦你的交易被某个节点"丢弃"了:你没听错,它真的会消失
-
它在全网"消失":这意味着没有任何矿工会看到这笔交易,也不会打包它。
-
你的客户端会看到:你的钱包可能会显示交易"未确认"或"找不到该交易"。
-
解决办法 :你必须重新发起(广播)这笔交易,并且这次调高手续费,这样矿工才会看它一眼,它才能在内存池里"站稳脚跟",不被丢掉。
Bitcoin Core 是中本聪(Satoshi Nakamoto)在 2009 年发布的第一版比特币软件(当时叫 Bitcoin-Qt 或直接叫 Bitcoin)的直接演进版本。
中本聪在 2011 年左右隐退时,把代码仓库的控制权交给了加文·安德烈森(Gavin Andresen)和其他核心开发者。
-
名称变更 :随着时间的推移,为了体现该软件不再是由单一创始人的个人项目,而是由全球开发者维护的开源项目,它改名为 Bitcoin Core。
-
意义:Bitcoin Core 依然是目前全球最主流、最权威的比特币节点软件。它的代码库里依然保留着中本聪写的很多原始逻辑,但也为了应对扩容、安全和功能扩展(如你刚才看到的 SegWit/隔离见证、Taproot 等升级),加入了大量现代化的功能。
中本聪在最初的代码里也设计了类似的"丢弃机制"限制,防止垃圾交易堵死网络。
- 演进逻辑 :但随着网络流量增加,现在的 Bitcoin Core 开发者们不断地优化这些算法,使其更精细(比如现在的策略不仅看费率,还看交易的各种权重),但这套逻辑的内核------即"作为节点我有权利丢弃你不想要的交易"------完全符合中本聪最初设计的去中心化原则。

Bitcoin Halving
"具体数量取决于某个 xxxx",在比特币世界里有一个大名鼎鼎的机制,叫"比特币减半(Bitcoin Halving)"。
中本聪在写 Bitcoin Core 的初始代码时,没有让系统无限印钞,而是写死了一个极其冷酷的数学规则:每产出 210,000 个区块(大约需要 4 年时间),系统给赢家矿工的固定奖励就会直接砍半。
这就形成了一个倒计时纪元:
-
2009 年(创世) :每个区块奖励 50 BTC。(那时候电脑随便跑跑 hash 就能挖到,一天能挖几百个)
-
2012 年(第一次减半) :降到 25 BTC。
-
2016 年(第二次减半) :降到 12.5 BTC。
-
2020 年(第三次减半) :降到 6.25 BTC。
-
2024 年 4 月(第四次减半,也就是目前所处的阶段) :降到了 3.125 BTC。
当一个矿工拼命算 Hash,终于"算对"了,赢得了记账权时,系统不是从天上掉钱给他。 Bitcoin Core 允许这个赢家在自己打包的这个区块的最顶端 ,凭空伪造一笔没有任何发送人的特殊交易(这叫 Coinbase Transaction)。
在这笔交易里,矿工会写上: "向我自己的钱包地址支付 3.125 个新鲜出炉的 BTC,外加这个区块里所有人交的手续费。"
只要他的 Hash 算对了,全网其他节点就会捏着鼻子承认这笔"无中生有"的钱是合法的。这就是比特币系统中唯一凭空产生新币的方式。
终局是什么?
顺着这个"四年砍半"的 xxxx 机制往下算,大约到 2140 年 左右,这个区块奖励会经过 32 次减半,最终变成 0。 到时候,所有的比特币都被挖光了,总量被永远锁死在 2,100 万枚。
到那一天,矿工算对 Hash 后,系统不再发放任何新的 BTC。矿工唯一的收入来源,就只剩下 Mempool 里那些排队用户支付的 "交易手续费(sat/vB)"。


对比界面的存在,就是为了体现比特币社区的透明与监督(Don't trust, verify)。
它在明晃晃地告诉你:"你看,按照规则矿池本来应该这么打包(左图),但他实际是那么打包的(右图)。" 通过下面那个百分比偏差(-4.37\\% 和 +2.56\\%),你就能直观地看到这个矿池有多"守规矩",或者他接了多少"走后门"的私活。


btc节点有默认最优算法
正常的比特币全节点(比如 Bitcoin Core 软件)在组装区块模板(Block Template)时,有一个默认的算法:严格读取交易自带的链上手续费(sat/vB),按照从高到低自动排序打包。 mempool.space 网站就是严格按照这个开源算法,算出了左边的预期区块。
2. 矿池的绝对控制权
矿池本质上是中心化的商业公司。 虽然比特币网络是去中心化的,但算力高度集中在几个大矿池(比如图里的 SpiderPool、Foundry USA、AntPool)手里。 矿池的服务器是他们自己所有的,这意味着他们有最高权限修改自己节点上的打包排序算法代码。 比特币协议只要求矿工计算出正确的 Hash,根本不管矿工在区块里塞了什么交易(只要交易本身合法)。
3. "私底下"的具体操作流程(如何产生蓝色方块)
当一笔交易链上手续费给得太低,长期卡在 Mempool 里不确认时,就会触发这种链外操作:
-
第一步:提交 TXID 用户离开比特币网络,直接用普通的网页浏览器登录矿池的官方网站(例如 ViaBTC 或 Binance Pool 都有公开的加速器页面),输入自己卡住的交易哈希值(TXID)。
-
第二步:链外付款(Out-of-Band) 矿池系统会给用户报个价。用户通过信用卡(美元)、微信支付宝、或者其他加密货币(如以太坊、USDT) ,直接把钱打进矿池公司的银行账户或企业钱包。这笔钱没有走比特币主链。
-
第三步:调用 RPC 接口强行改权 矿池收到你的场外汇款后,他们的后台系统会立刻调用自己运行的 Bitcoin Core 节点上的一个高级 RPC 命令,通常是
prioritisetransaction。 这个命令的作用是:在矿池本地的内存池中,强行给这笔交易加上一个"虚拟的费率权重"。 -
第四步:违背常理的打包 当矿池的机器开始打包下一个区块时,代码读取到了这个被强行改过权重的交易,就会无视它原本极低的链上费率,直接把它塞进区块里。
「second-tier」 是指「第二梯隊」、 「二線」或 「次要角色」的意思 00:10 Opens in a new window。
影片開頭提到,雖然台灣在邏輯晶片(如台積電主導的領域)上實力非常強大,但在半導體的另一個大領域------記憶體(特別是 DRAM)中,台灣的技術、市佔率和影響力只能算是「二線(second-tier)」,並不是市場上的主要核心玩家 00:10 Opens in a new window。
在 DRAM 的世界裡,真正的「第一梯隊(first-tier)」是掌握絕大多數市佔率與最先進技術的三大巨頭 37:23 Opens in a new window:
-
南韓的三星(Samsung) 20:36 Opens in a new window
-
南韓的SK海力士(SK Hynix) 20:36 Opens in a new window
-
美國的美光(Micron) 36:01 Opens in a new window
而台灣少數存活下來的 DRAM 廠商(例如南亞科技),在規模與技術領先度上都落後於上述三大巨頭,因此被歸類為「第二梯隊」的供應商 36:51 Opens in a new window。