您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
顶部加载条 => 进度条 | 个性化滚动条 | favicon 替换 | 自定义字体 | 百度 / 语雀 / ComfyUI / DeepSeek / ChatGPT ... 多站点界面个性化增强
// ==UserScript== // @name 全局定制 Global.Custom // @description 顶部加载条 => 进度条 | 个性化滚动条 | favicon 替换 | 自定义字体 | 百度 / 语雀 / ComfyUI / DeepSeek / ChatGPT ... 多站点界面个性化增强 // @version 5.5.1 // @author YMN // @icon https://greasyfork.org/vite/assets/blacklogo96-CxYTSM_T.png // @sourceXXX https://greasyfork.org/scripts/539125 // @match *://**/* // @include *://baidu.com/* // @include *://google.com/* // @include *://bing.com/* // @include *://youtube.com/* // @include *://bilibili.com/* // @include *://chat.deepseek.com/* // @include *://deepseek.com/* // @include *://chatgpt.com/* // @include *://zhihu.com/* // @include *://localhost:*/* // @include *://127.0.0.1:*/* // @exclude *://xxxxx.com/* // @run-at document-start // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @grant GM_registerMenuCommand // @grant GM_deleteValue // @connect XXXXX // @namespace https://github.com/rvnymn // @homepageURL https://greasyfork.org/scripts/539125 // @compatible Chrome // @license MIT // @copyright 2025 YMN // @contact [email protected] // @supportURL https://greasyfork.org/zh-CN/scripts/539125/feedback // @contributionURL https://buymeacoffee.com/rvnymn // @LOG 20.02.02 - Ver.0.1.0 // @LOG 25.03.14 - Ver.1.0.0 // @LOG 25.04.05 - Ver.2.0.0 // @LOG 25.04.24 - Ver.3.0.0 // @LOG 25.05.12 - Ver.4.0.0 // @LOG 25.06.05 - Ver.5.0.0 // @LOG 25.06.12 - Ver.5.2.4 // @LOG 25.07.16 - Ver.5.3.0 // @LOG 25.07.21 - Ver.5.4.0 // @LOG 25.08.01 - Ver.5.5.0 // ==/UserScript== /** * & TODO * * = ========== ↓ NEXT * = * = * + ========== ↓ NEW * + * + 挂载 悬浮/面板按钮 点击呼出弹窗 可输入多行下载链接 进行 单独/批量下载 「调用浏览器原生方式」 * + * + * # ========== ↓ OPTIMIZE * # * # 样式 .vbnTips * # VBN_GLOBAL_CACHE.valueStorage 存储各模块开关 当前最新 实时 的值 可在各具体功能 UI面板 获取/更新 让状态共联 * # VBN_OBSERVER_CENTER 可暴露 debugListObservers() debug开启时输出当前所有活跃的目标和监听函数数量 * # VBN_GlobalVariable 采用社区 --vbn-c-xxxxx 小写短横线的方式 按应用场景划分 完善亮暗主题适配颜色 * # * ! ========== ↓ WARN * ! * ! 应用样式的效率问题 可能是主逻辑过重所导致 * ! 某些网站更新页面内容后 需要手动刷新才可正确应用样式 * ! * ! * ? ========== ↓ ERROR * ? * ? * */ if (window.VBN_GLOBAL_CUSTOM || window.top !== window.self) return; window.VBN_GLOBAL_CUSTOM = true; (function VBN_GlobalVariable() { 'use strict'; GM_addStyle( /* css */ ` :root, [vbnGlobalColor] { --vbnBase09HEX: #F9F9F9; --vbnBase08HEX: #F4F4F4; --vbnBase07HEX: #BEC2CA; --vbnBase06HEX: #ABB0BA; --vbnBase05HEX: #757C8A; --vbnBase04HEX: #454A54; --vbnBase03HEX: #353941; --vbnBase02HEX: #2C2F35; --vbnBase01HEX: #1F2228; --vbnBase00HEX: #1C1E22; --vbnBase00HSL: var(--vbnBase00HSL-H), var(--vbnBase00HSL-S), var(--vbnBase00HSL-L); --vbnBase01HSL: var(--vbnBase00HSL-H), var(--vbnBase01HSL-S), var(--vbnBase01HSL-L); --vbnBase02HSL: var(--vbnBase00HSL-H), var(--vbnBase02HSL-S), var(--vbnBase02HSL-L); --vbnBase03HSL: var(--vbnBase00HSL-H), var(--vbnBase03HSL-S), var(--vbnBase03HSL-L); --vbnBase04HSL: var(--vbnBase00HSL-H), var(--vbnBase04HSL-S), var(--vbnBase04HSL-L); --vbnBase05HSL: var(--vbnBase00HSL-H), var(--vbnBase05HSL-S), var(--vbnBase05HSL-L); --vbnBase06HSL: var(--vbnBase00HSL-H), var(--vbnBase06HSL-S), var(--vbnBase06HSL-L); --vbnBase07HSL: var(--vbnBase00HSL-H), var(--vbnBase07HSL-S), var(--vbnBase07HSL-L); --vbnBase08HSL: var(--vbnBase00HSL-H), var(--vbnBase08HSL-S), var(--vbnBase08HSL-L); --vbnBase09HSL: var(--vbnBase00HSL-H), var(--vbnBase09HSL-S), var(--vbnBase09HSL-L); --vbnBase00HSL-H: 220; --vbnBase00HSL-S: 10%; --vbnBase00HSL-L: 12%; --vbnBase01HSL-S: 13%; --vbnBase01HSL-L: 34%; --vbnBase02HSL-S: 09%; --vbnBase02HSL-L: 19%; --vbnBase03HSL-S: 10%; --vbnBase03HSL-L: 23%; --vbnBase04HSL-S: 10%; --vbnBase04HSL-L: 30%; --vbnBase05HSL-S: 08%; --vbnBase05HSL-L: 50%; --vbnBase06HSL-S: 10%; --vbnBase06HSL-L: 70%; --vbnBase07HSL-S: 10%; --vbnBase07HSL-L: 77%; --vbnBase08HSL-S: 00%; --vbnBase08HSL-L: 96%; --vbnBase09HSL-S: 00%; --vbnBase09HSL-L: 98%; --vbnBase02AltXXX: var(--vbnBase00HSL-H), calc(var(--vbnBase02HSL-S) - 000%), calc(var(--vbnBase02HSL-L) - 000%); --vbnBase02PickXX: var(--vbnBase00HSL-H), calc(var(--vbnBase02HSL-S) - 000%), calc(var(--vbnBase02HSL-L) - 000%); --vbnBase02Border: var(--vbnBase00HSL-H), calc(var(--vbnBase02HSL-S) - 000%), calc(var(--vbnBase02HSL-L) + 020%); --vbnBase02Shadow: var(--vbnBase00HSL-H), calc(var(--vbnBase04HSL-S) - 000%), calc(var(--vbnBase04HSL-L) - 000%); --vbnBase04AltXXX: var(--vbnBase00HSL-H), calc(var(--vbnBase04HSL-S) - 000%), calc(var(--vbnBase04HSL-L) - 000%); --vbnBase04PickXX: var(--vbnBase00HSL-H), calc(var(--vbnBase04HSL-S) - 000%), calc(var(--vbnBase04HSL-L) - 010%); --vbnBase04Border: var(--vbnBase00HSL-H), calc(var(--vbnBase04HSL-S) - 000%), calc(var(--vbnBase04HSL-L) + 020%); --vbnBase04Shadow: var(--vbnBase00HSL-H), calc(var(--vbnBase04HSL-S) - 000%), calc(var(--vbnBase04HSL-L) - 000%); --vbnGlow09HEX: #85E0D7; --vbnGlow02HEX: #9087F8; --vbnGlow06HEX: #CEF4FD; --vbnGlow00HEX: #D9B9F9; --vbnGlow08HEX: #BCF5F4; --vbnGlow07HEX: #F7F0B7; --vbnGlow05HEX: #79ECD9; --vbnGlow04HEX: #13EC99; --vbnGlow03HEX: #25F493; --vbnGlow01HEX: #708BC2; --vbnGlow09HSL: 174, 059%, 070%; --vbnGlow02HSL: 245, 089%, 075%; --vbnGlow06HSL: 191, 092%, 090%; --vbnGlow00HSL: 270, 084%, 085%; --vbnGlow08HSL: 179, 074%, 085%; --vbnGlow07HSL: 053, 080%, 084%; --vbnGlow05HSL: 170, 075%, 070%; --vbnGlow04HSL: 157, 085%, 050%; --vbnGlow03HSL: 152, 090%, 055%; --vbnGlow01HSL: 220, 040%, 060%; --vbnMarkdownH1: #494F4D; --vbnMarkdownH2: #515463; --vbnMarkdownH3: #40465D; --vbnMarkdownH4: #4D5B66; --vbnMarkdownH5: #4F5E68; --vbnMarkdownH6: #5B7481; --vbnRed00000: #EF4444; --vbnOrange00: #EE5C2A; --vbnYellow00: var(--vbnGlow07HEX); --vbnGreen000: #10B981; --vbnCyan0000: #00B3B3; --vbnBlue0000: #478BE5; --vbnPurple00: var(--vbnGlow02HEX); --vbnRed00001: #000; --vbnOrange01: #FF5242; --vbnYellow01: #000; --vbnGreen001: #29F9A9; --vbnCyan0001: #000; --vbnBlue0001: #2BC2FF; --vbnPurple01: #000; --vbnLink: var(--vbnBlue0000); --vbnStateCorrect: var(--vbnGreen000); --vbnStateWarn: var(--vbnOrange00); --vbnStateError: var(--vbnRed00000); --vbnStateVisited: var(--vbnCyan0000); --vbnStateMatch: var(--vbnOrange01); --vbnBackdrop: ; --vbnForeground: ; --vbnBackground: ; --vbnGlassDark: hsla(var(--vbnPrimaryHSL), .526); --vbnGlassLight: hsla(var(--vbnBase09HSL), .526); --vbn115: #2777F8; --vbnBaidu: #4E6EF2; --vbnIQIYI: #00F48E; --vbnBiliPink: #FB7299; --vbnBiliBlue: #00AEEC; } :root, [vbnGlobalFont] { --vbnBaseFont: Emoji, "Public Sans", "Inter", "PingFang SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif, system-ui; --vbnBaseSize: 14px; --vbnBaseWeight: 400; --vbnBaseLineHeight: 1.5; --vbnBaseColor: var(--vbnBase04HEX); --vbnTitleSize: 24px; --vbnTitleWeight: 700; --vbnTitleLineHeight: 1.5; --vbnTitleColor: var(--vbnBase02HEX); --vbnCodeFont: "JetBrains Mono", "Fira Code", "PingFang SC", "Source Han Sans SC", "Microsoft YaHei", monospace; --vbnCodeSize: 12px; --vbnCodeWeight: 400; --vbnCodeLineHeight: 1.5; --vbnCodeColor: var(--vbnAccentHEX); --vbnOftenFontBase: var(--vbnBaseWeight) var(--vbnBaseSize)/var(--vbnBaseLineHeight) var(--vbnBaseFont); --vbnOftenFontTitle: var(--vbnTitleWeight) var(--vbnTitleSize)/var(--vbnTitleLineHeight) var(--vbnBaseFont); } @font-face { font-family: Emoji; src: local("Apple Color Emoji"), local("Segoe UI Emoji"), local("Segoe UI Symbol"), local("Noto Color Emoji"); unicode-range: U+1F000-1F9FF; } :root, [vbnGlobalSpace] { --vbnPriority00: 9999; --vbnPriority02: 999999; --vbnPriority09: 999999999; --vbnPriorityHead: ; --vbnPrioritySidebar: ; --vbnPriorityFooter: ; --vbnPriorityBase: ; --vbnSpace2X: 20px; --vbnSpace4X: 60px; --vbnSpace2Y: 260px; --vbnSpace4Y: 292.6px; --vbnSpaceAxialX: 1.26%; --vbnSpaceAxialY: ; --vbnSpaceWidth00: 80%; --vbnSpaceWidth02: 40vw; --vbnSpaceWidthVW: 60vw; --vbnSpaceWidthPX: calc(260px + 920px + 220px); --vbnSpaceHead: ; --vbnSpacePadding: 10px 20px; --vbnSpaceMargin: 15px 0; --vbnButtonWidth: 92px; --vbnButtonHeight: 40px; --vbnButtonPadding: ; --vbnButtonAxialX: ; --vbnButtonAxialY: ; --vbnButtonBase: ; --vbnTransitionSmooth: cubic-bezier(.260, .920, .60, 0.926); --vbnTransitionSoft: cubic-bezier(.250, .460, .45, 0.940); --vbnTransitionDrop: cubic-bezier(.240, .920, .92, 0.240); --vbnTransitionZoom: cubic-bezier(.526, .260, .92, 0.920); --vbnTransitionFlow: cubic-bezier(.240, .926, .60, 0.920); --vbnTransitionElastic: cubic-bezier(.175, .885, .32, 1.260); --vbnOftenTransition: all .526s var(--vbnTransitionSoft); } :root, [vbnGlobalStyle] { --vbnBaseRadius: 4px; --vbnBaseBorder: 1px solid; --vbnBaseShadow: 0 0 10px 0; --vbnBaseFilter: blur(5.26px); --vbnBaseZoomIn: ; --vbnOftenBaseBorderBase: var(); --vbnOftenBaseBorderHover: var(); --vbnOftenBaseShadowBase: var(); --vbnOftenBaseShadowHover: var(); --vbnUIRadius: 6px; --vbnUIBorder: 2px solid; --vbnUIShadow: 10px 10px 20px 0; --vbnUIFilter: blur(9.26px) saturate(1.52); --vbnUIZoomIn: scale(1.26); --vbnOftenUIBorderBase: var(--vbnUIBorder) hsla(var(--vbnAccentHSL), .4); --vbnOftenUIBorderHover: var(); --vbnOftenUIShadowBase: var(); --vbnOftenUIShadowHover: var(); --vbnPanelRadius: 12.6px; --vbnPanelBorder: 3px solid; --vbnPanelShadow: 0px 10px 20px 0; --vbnPanelFilter: blur(12.6px); --vbnPanelZoomIn: ; --vbnOftenPanelBorderBase: var(--vbnPanelBorder) hsla(var(--vbnAccentHSL), .4); --vbnOftenPanelBorderHover: var(--vbnPanelBorder) hsla(var(--vbnAccentHSL), .6); --vbnOftenPanelShadowBase: var(--vbnPanelShadow) hsla(var(--vbnAccentShadow), .4); --vbnOftenPanelShadowHover: var(--vbnPanelShadow) hsla(var(--vbnAccentShadow), .6); --vbnSurfaceRadius: 20.6px; --vbnSurfaceBorder: 2px solid; --vbnSurfaceShadow: 0px 20px 30px 0; --vbnSurfaceFilter: blur(20.6px); --vbnSurfaceZoomIn: scale(1.026); --vbnOftenSurfaceBorderBase: var(); --vbnOftenSurfaceBorderHover: var(); --vbnOftenSurfaceShadowBase: var(--vbnSurfaceShadow) hsla(var(--vbnBase04HSL), .05); --vbnOftenSurfaceShadowHover: var(--vbnSurfaceShadow) hsla(var(--vbnAccentHSL), .126); --vbnGlassShadow: inset 0px -1px 4px hsla(var(--vbnBase09HSL), .26), var(--vbnPanelShadow) hsla(var(--vbnBase04HSL), .0526); --vbnTipsShadow-S: inset 0 0 0 2px; --vbnTipsShadow-M: 10px 10px 20px; --vbnTipsShadow-L: 10px 10px 40px; } :root, [vbnGlobalURL] { --vbnICON-URL-Deepseek: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNTAuMDAwMDAwIiBoZWlnaHQ9IjUwLjAwMDAwMCIgdmlld0JveD0iMCAwIDUwIDUwIiBmaWxsPSJub25lIiB2Ym5HbG9iYWxWYXJpYWJsZT0idHJ1ZSI+Cgk8cGF0aCBpZD0icGF0aCIgZD0iTTQ4LjgzNTQgMTAuMDQ3OUM0OC4zMjMyIDkuNzkxOTkgNDguMTAyNSAxMC4yNzk4IDQ3LjgwMzIgMTAuNTI3OEM0Ny43MDA3IDEwLjYwNzkgNDcuNjE0MyAxMC43MTE5IDQ3LjUyNzMgMTAuODA3NkM0Ni43NzkzIDExLjYyNCA0NS45MDQ4IDEyLjE1OTcgNDQuNzYyMiAxMi4wOTU3QzQzLjA5MjMgMTIgNDEuNjY2IDEyLjUzNTYgNDAuNDA1OCAxMy44Mzk4QzQwLjEzNzcgMTIuMjMxOSAzOS4yNDc2IDExLjI3MiAzNy44OTI2IDEwLjY1NThDMzcuMTgzNiAxMC4zMzU5IDM2LjQ2NjggMTAuMDE1NiAzNS45NzAyIDkuMzE5ODJDMzUuNjIzNSA4LjgyMzczIDM1LjUyOTMgOC4yNzE5NyAzNS4zNTYgNy43Mjc1NEMzNS4yNDU2IDcuMzk5OSAzNS4xMzUzIDcuMDYzOTYgMzQuNzY1MSA3LjAwNzgxQzM0LjM2MzMgNi45NDM4NSAzNC4yMDU2IDcuMjg3NiAzNC4wNDc5IDcuNTc1NjhDMzMuNDE4IDguNzUxOTUgMzMuMTczMyAxMC4wNDc5IDMzLjE5NzMgMTEuMzU5OUMzMy4yNTI0IDE0LjMxMiAzNC40NzM2IDE2LjY2NDEgMzYuODk5OSAxOC4zMzU5QzM3LjE3NTggMTguNTI3OCAzNy4yNDY2IDE4LjcxOTcgMzcuMTU5NyAxOUMzNi45OTQ2IDE5LjU3NTcgMzYuNzk3NCAyMC4xMzU3IDM2LjYyNCAyMC43MTE5QzM2LjUxMzcgMjEuMDgwMSAzNi4zNDg2IDIxLjE1OTcgMzUuOTYyNCAyMUMzNC42MzA5IDIwLjQzMjEgMzMuNDgxIDE5LjU5MTggMzIuNDY0NCAxOC41NzU3QzMwLjczOTMgMTYuODcyMSAyOS4xNzkyIDE0Ljk5MTcgMjcuMjMzNCAxMy41MkMyNi43NzY0IDEzLjE3NTggMjYuMzE5MyAxMi44NTYgMjUuODQ2NyAxMi41NTE4QzIzLjg2MTggMTAuNTg0IDI2LjEwNjkgOC45Njc3NyAyNi42MjcgOC43NzU4OEMyNy4xNzA0IDguNTc1NjggMjYuODE1OSA3Ljg4NzcgMjUuMDU5MSA3Ljg5NkMyMy4zMDIyIDcuOTAzODEgMjEuNjk1MyA4LjUwMzkxIDE5LjY0NyA5LjMwMzcxQzE5LjM0NzcgOS40MjM4MyAxOS4wMzIyIDkuNTExNzIgMTguNzA5NSA5LjU4Mzk4QzE2Ljg1MDEgOS4yMjM2MyAxNC45MTk5IDkuMTQzNTUgMTIuOTAzMyA5LjM3NTk4QzkuMTA1OTYgOS44MDc2MiA2LjA3Mjc1IDExLjYzOTYgMy44NDMyNiAxNC43NjgxQzEuMTY0NTUgMTguNTI3OCAwLjUzNDE4IDIyLjc5OTggMS4zMDY2NCAyNy4yNTU5QzIuMTE3NjggMzEuOTUyMSA0LjQ2NTgyIDM1LjgzOTggOC4wNzM3MyAzOC44Nzk5QzExLjgxNTkgNDIuMDMyMiAxNi4xMjU1IDQzLjU3NjIgMjEuMDQxIDQzLjI4MDNDMjQuMDI2OSA0My4xMDQgMjcuMzUxNiA0Mi42OTYzIDMxLjEwMTYgMzkuNDU2MUMzMi4wNDY5IDM5LjkzNiAzMy4wMzk2IDQwLjEyNzkgMzQuNjg2IDQwLjI3MkMzNS45NTQ2IDQwLjM5MjEgMzcuMTc1OCA0MC4yMDggMzguMTIxMSA0MC4wMDc4QzM5LjYwMjEgMzkuNjg4IDM5LjQ5OTUgMzguMjg4MSAzOC45NjM5IDM4LjAzMjJDMzQuNjIzIDM1Ljk2NzggMzUuNTc2MiAzNi44MDgxIDM0LjcxIDM2LjEyNzlDMzYuOTE1NSAzMy40NjM5IDQwLjI0MDIgMzAuNjk1OCA0MS41NCAyMS43MjhDNDEuNjQyNiAyMS4wMTYxIDQxLjU1NTcgMjAuNTY3OSA0MS41NCAxOS45OTE3QzQxLjUzMjIgMTkuNjM5NiA0MS42MTA4IDE5LjUwMzkgNDIuMDA0OSAxOS40NjM5QzQzLjA5MjMgMTkuMzM1OSA0NC4xNDc5IDE5LjAzMTcgNDUuMTE2NyAxOC40ODc4QzQ3LjkyOTIgMTYuOTE5OSA0OS4wNjQgMTQuMzQzOCA0OS4zMzE1IDExLjI1NTlDNDkuMzcxMSAxMC43ODM3IDQ5LjMyMzcgMTAuMjk1OSA0OC44MzU0IDEwLjA0NzlaTTI0LjMyNjIgMzcuODM5OEMyMC4xMTk2IDM0LjQ2MzkgMTguMDc5MSAzMy4zNTIxIDE3LjIzNTggMzMuMzk5OUMxNi40NDgyIDMzLjQ0ODIgMTYuNTg5OCAzNC4zNjgyIDE2Ljc2MzIgMzQuOTY3OEMxNi45NDQzIDM1LjU2MDEgMTcuMTgxMiAzNS45NjgzIDE3LjUxMTcgMzYuNDg3OEMxNy43NDAyIDM2LjgzMiAxNy44OTc5IDM3LjM0NDIgMTcuMjgzMiAzNy43MjhDMTUuOTI4MiAzOC41ODQgMTMuNTcyOCAzNy40Mzk5IDEzLjQ2MjQgMzcuMzgzOEMxMC43MjA3IDM1LjczNTggOC40MjgyMiAzMy41NjAxIDYuODEzNDggMzAuNTg0QzUuMjUzNDIgMjcuNzE5NyA0LjM0NzY2IDI0LjY0NzkgNC4xOTc3NSAyMS4zNjc3QzQuMTU4MiAyMC41NzU3IDQuMzg2NzIgMjAuMjk1OSA1LjE1ODY5IDIwLjE1MTlDNi4xNzUyOSAxOS45NiA3LjIyMzE0IDE5LjkxOTkgOC4yMzkyNiAyMC4wNzE4QzEyLjUzMjcgMjAuNzExOSAxNi4xODg1IDIyLjY3MTkgMTkuMjUyOSAyNS43NzU5QzIxLjAwMiAyNy41NDM5IDIyLjMyNTIgMjkuNjU1OCAyMy42ODg1IDMxLjcyMDJDMjUuMTM3NyAzMy45MTIxIDI2LjY5NzggMzYgMjguNjgzMSAzNy43MTE5QzI5LjM4NDMgMzguMzEyIDI5Ljk0MzQgMzguNzY4MSAzMC40NzkgMzkuMTA0QzI4Ljg2NDMgMzkuMjg4MSAyNi4xNjk5IDM5LjMyODEgMjQuMzI2MiAzNy44Mzk4Wk0yNi4zNDMzIDI0LjYwMDFDMjYuMzQzMyAyNC4yNDggMjYuNjE5MSAyMy45Njc4IDI2Ljk2NTggMjMuOTY3OEMyNy4wNDQ0IDIzLjk2NzggMjcuMTE1MiAyMy45ODM5IDI3LjE3ODIgMjQuMDA3OEMyNy4yNjUxIDI0LjA0IDI3LjM0MzggMjQuMDg3OSAyNy40MDY3IDI0LjE2MDJDMjcuNTE3MSAyNC4yNzIgMjcuNTgwMSAyNC40MzIxIDI3LjU4MDEgMjQuNjAwMUMyNy41ODAxIDI0Ljk1MjEgMjcuMzA0MiAyNS4yMzE5IDI2Ljk1NzUgMjUuMjMxOUMyNi42MTA4IDI1LjIzMTkgMjYuMzQzMyAyNC45NTIxIDI2LjM0MzMgMjQuNjAwMVpNMzIuNjA2NCAyNy44Nzk5QzMyLjIwNDYgMjguMDQ3OSAzMS44MDI3IDI4LjE5MTkgMzEuNDE2NSAyOC4yMDhDMzAuODE3OSAyOC4yMzk3IDMwLjE2NDEgMjcuOTkyMiAyOS44MDk2IDI3LjY4OEMyOS4yNTgzIDI3LjIxNTggMjguODY0MyAyNi45NTIxIDI4LjY5ODcgMjYuMTI3OUMyOC42Mjc5IDI1Ljc3NTkgMjguNjY3NSAyNS4yMzE5IDI4LjczMDUgMjQuOTE5OUMyOC44NzIxIDI0LjI0OCAyOC43MTQ0IDIzLjgxNTkgMjguMjQ5NSAyMy40MjM4QzI3Ljg3MTYgMjMuMTA0IDI3LjM5MTEgMjMuMDE2MSAyNi44NjMzIDIzLjAxNjFDMjYuNjY2IDIzLjAxNjEgMjYuNDg0OSAyMi45Mjc3IDI2LjM1MTEgMjIuODU2QzI2LjEzMDQgMjIuNzQ0MSAyNS45NDkyIDIyLjQ2MzkgMjYuMTIyNiAyMi4xMjAxQzI2LjE3NzcgMjIuMDA3OCAyNi40NDU4IDIxLjczNTggMjYuNTA4OCAyMS42ODhDMjcuMjI1NiAyMS4yNzIgMjguMDUyNyAyMS40MDc3IDI4LjgxNjkgMjEuNzE5N0MyOS41MjU5IDIyLjAxNjEgMzAuMDYxNSAyMi41NjAxIDMwLjgzNCAyMy4zMjgxQzMxLjYyMTYgMjQuMjU1OSAzMS43NjMyIDI0LjUxMTcgMzIuMjEyNCAyNS4yMDhDMzIuNTY2OSAyNS43NTIgMzIuODkwMSAyNi4zMTIgMzMuMTEwNCAyNi45NTIxQzMzLjI0NDYgMjcuMzUyMSAzMy4wNzEzIDI3LjY4MDIgMzIuNjA2NCAyNy44Nzk5WiIgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxLjAwMDAwMCIgZmlsbC1ydWxlPSJub256ZXJvIi8+Cjwvc3ZnPg=="); --vbnICON-URL-OpenAI: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NyIgaGVpZ2h0PSI4NyIgdmlld0JveD0iMCAwIDg3IDg3IiBmaWxsPSJub25lIj4KICAgIDxzdHlsZT4KICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAgICNjaXJjbGUgeyBmaWxsOiBibGFjayB9CiAgICAgICAgICAgICNtYXJrIHsgZmlsbDogd2hpdGUgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzQyMzdfNDQ2NzUpIj4KICAgICAgICA8cmVjdCBpZD0iY2lyY2xlIiB4PSIwLjM2MTMyOCIgeT0iMC4wNDk4MDQ3IiB3aWR0aD0iODYuNjM4NyIgaGVpZ2h0PSI4Ni42Mzg3IiByeD0iNDMuMzE5MyIgZmlsbD0id2hpdGUiLz4KICAgICAgICA8cGF0aCBpZD0ibWFyayIgZD0iTTM2LjM2MyAzNS40OTlWMjkuNDU4MUMzNi4zNjMgMjkuMDUxNSAzNi40NzkyIDI4Ljc2MTEgMzYuODg1OCAyOC41Mjg3TDQ4LjA5NjIgMjIuMDIzMkM0OS42MDY1IDIxLjE1MTkgNTEuNTIzMyAyMC43NDUzIDUzLjM4MiAyMC43NDUzQzYwLjQ2ODQgMjAuNzQ1MyA2NC45NDEgMjYuMjA1MyA2NC45NDEgMzIuMDcyQzY0Ljk0MSAzMi41MzY2IDY0Ljk0MSAzMy4xNzU2IDY0LjgyNDkgMzMuNjk4NEw1My4wOTE2IDI2Ljg0NDNDNTIuNTEwNyAyNi40OTU4IDUxLjg3MTggMjYuNDM3NyA1MS4xNzQ4IDI2Ljg0NDNMMzYuMzYzIDM1LjQ5OVpNNjIuMjY5MSA1Ni45MzI1VjQzLjUxNDhDNjIuMjY5MSA0Mi43NTk3IDYxLjk3ODcgNDIuMjM2OSA2MS4yODE2IDQxLjgzMDNMNDYuNDExOCAzMy4xNzU2TDUxLjYzOTUgMzAuMTU1MUM1MS45Mjk5IDI5Ljk4MDkgNTIuMzk0NiAyOS45ODA5IDUyLjY4NSAzMC4xNTUxTDYzLjk1MzYgMzYuNjYwN0M2Ny4xNDgzIDM4LjUxOTQgNjkuMzU1NSA0Mi41ODU0IDY5LjM1NTUgNDYuNDc3MkM2OS4zNTU1IDUxLjA2NTkgNjYuNTY3NCA1NS4zMDYxIDYyLjI2OTEgNTYuOTMyNVpNMzMuMjg0NSA0NS4zNzM1TDI4LjExNDggNDIuMjk1QzI3LjcwODIgNDIuMDYyNyAyNy41OTIxIDQxLjc3MjIgMjcuNTkyMSA0MS4zNjU2VjI4LjQxMjZDMjcuNTkyMSAyMi4wODEzIDMyLjQxMzIgMTcuMzE4MyAzOC45NzY4IDE3LjMxODNDNDEuNTMyNiAxNy4zMTgzIDQzLjk3MjIgMTguMTg5NSA0NS45NDcxIDE5Ljc1NzhMMzQuMjcxOSAyNi41NTM4QzMzLjU3NDkgMjYuOTYwNCAzMy4yODQ1IDI3LjQ4MzIgMzMuMjg0NSAyOC4yMzgzVjQ1LjM3MzVaTTQzLjM5MTMgNTEuMTgyMUwzNi4zNjMgNDcuMjMyM1YzOC44NjhMNDMuMzkxMyAzNC45MTgxTDUwLjM2MTYgMzguODY4VjQ3LjIzMjNMNDMuMzkxMyA1MS4xODIxWk00Ny43NDc3IDY4Ljc4MkM0NS4xOTIgNjguNzgyIDQyLjc1MjQgNjcuOTEwNyA0MC43Nzc1IDY2LjM0MjRMNTIuNDUyNyA1OS41NDY0QzUzLjE0OTcgNTkuMTM5OCA1My40NDAxIDU4LjYxNyA1My40NDAxIDU3Ljg2MTlWNDAuNzI2N0w1OC42Njc4IDQzLjgwNTJDNTkuMDc0NCA0NC4wMzc2IDU5LjE5MDYgNDQuMzI4IDU5LjE5MDYgNDQuNzM0NlY1Ny42ODc3QzU5LjE5MDYgNjQuMDE5IDU0LjMxMTQgNjguNzgyIDQ3Ljc0NzcgNjguNzgyWk0zNC4wMzk2IDU1Ljk0NTFMMjIuNzcxIDQ5LjQzOTVDMTkuNTc2MyA0Ny41ODA4IDE3LjM2OSA0My41MTQ4IDE3LjM2OSAzOS42MjMxQzE3LjM2OSAzNC45NzYyIDIwLjIxNTIgMzAuNzk0MSAyNC41MTM1IDI5LjE2NzdWNDIuNjQzNUMyNC41MTM1IDQzLjM5ODYgMjQuODA0IDQzLjkyMTQgMjUuNTAxIDQ0LjMyOEw0MC4zMTI4IDUyLjkyNDZMMzUuMDg1MSA1NS45NDUxQzM0Ljc5NDcgNTYuMTE5MyAzNC4zMyA1Ni4xMTkzIDM0LjAzOTYgNTUuOTQ1MVpNMzMuMzQyNSA2NS4zNTQ5QzI2LjY2MjcgNjUuMzU0OSAyMS43ODM1IDYwLjM1OTYgMjEuNzgzNSA1NC4xNDQ0QzIxLjc4MzUgNTMuNTYzNiAyMS44NDE2IDUyLjk4MjcgMjEuODk5NyA1Mi40NkwzMy41NzQ5IDU5LjE5NzlDMzQuMjcxOSA1OS42MDQ1IDM0Ljg1MjggNTkuNjA0NSAzNS41NDk4IDU5LjE5NzlMNTAuMzYxNiA1MC42MDEyVjU2LjY0MjFDNTAuMzYxNiA1Ny4wNDg3IDUwLjI0NTQgNTcuMzM5MSA0OS44Mzg4IDU3LjU3MTVMMzguNjI4MyA2NC4wNzcxQzM3LjExODEgNjQuOTQ4MyAzNS4yMDEzIDY1LjM1NDkgMzMuMzQyNSA2NS4zNTQ5Wk00Ny43NDc3IDcxLjkxODZDNTQuNzE4IDcxLjkxODYgNjAuNTI2NSA2Ni45MjMyIDYxLjgwNDQgNjAuMzAxNUM2OC4zMSA1OC42NzUxIDcyLjQ5MjEgNTIuNjM0MiA3Mi40OTIxIDQ2LjQ3NzJDNzIuNDkyMSA0Mi40MTEyIDcwLjc0OTYgMzguNTE5NCA2Ny41NTQ5IDM1LjY3MzNDNjcuODQ1MyAzNC40NTM1IDY4LjA3NzYgMzMuMTc1NiA2OC4wNzc2IDMxLjk1NThDNjguMDc3NiAyMy43NjU3IDYxLjM5NzggMTcuNjA4NyA1My43MzA1IDE3LjYwODdDNTIuMTYyMiAxNy42MDg3IDUwLjU5MzkgMTcuODk5MSA0OS4wODM3IDE4LjQyMTlDNDYuNDY5OSAxNS44MDggNDIuOTI2NiAxNC4xODE2IDM4Ljk3NjggMTQuMTgxNkMzMi4wMDY2IDE0LjE4MTYgMjYuMTk4IDE5LjE3NyAyNC45MjAxIDI1Ljc5ODdDMTguNDE0NiAyNy40MjUxIDE0LjIzMjQgMzMuNDY2IDE0LjIzMjQgMzkuNjIzMUMxNC4yMzI0IDQzLjY4OTEgMTUuOTc1IDQ3LjU4MDggMTkuMTY5NyA1MC40MjdDMTguODc5MyA1MS42NDY4IDE4LjY0NjkgNTIuOTI0NiAxOC42NDY5IDU0LjE0NDRDMTguNjQ2OSA2Mi4zMzQ1IDI1LjMyNjcgNjguNDkxNSAzMi45OTQgNjguNDkxNUMzNC41NjIzIDY4LjQ5MTUgMzYuMTMwNiA2OC4yMDExIDM3LjY0MDkgNjcuNjc4M0M0MC4yNTQ3IDcwLjI5MjIgNDMuNzk3OSA3MS45MTg2IDQ3Ljc0NzcgNzEuOTE4NloiIGZpbGw9ImJsYWNrIi8+CiAgICA8L2c+CiAgICA8ZGVmcz4KICAgICAgICA8Y2xpcFBhdGggaWQ9ImNsaXAwXzQyMzdfNDQ2NzUiPgogICAgICAgICAgICA8cmVjdCB4PSIwLjM2MTMyOCIgeT0iMC4wNDk4MDQ3IiB3aWR0aD0iODYuNjM4NyIgaGVpZ2h0PSI4Ni42Mzg3IiByeD0iNDMuMzE5MyIgZmlsbD0id2hpdGUiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgPC9kZWZzPgo8L3N2Zz4="); --vbnICON-URL-OpenAI-Dark: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTMwNy4yIDBoNDA5LjZRMTAyNCAwIDEwMjQgMzA3LjJ2NDA5LjZxMCAzMDcuMi0zMDcuMiAzMDcuMkgzMDcuMlEwIDEwMjQgMCA3MTYuOFYzMDcuMlEwIDAgMzA3LjIgMCIvPjxwYXRoIGQ9Ik04NDkuNzE1IDQ5NC40MzhhMTgwLjY5IDE4MC42OSAwIDAgMS04LjcwNCAxNjQuMjUgMTc4LjYgMTc4LjYgMCAwIDEtMTE5LjI5NiA4Ni41MjggMTc5LjUgMTc5LjUgMCAwIDEtNjUuNjkgOTAuNjI0IDE4MC40MyAxODAuNDMgMCAwIDEtMTA2LjQ5NSAzNC41MDkgMTgzIDE4MyAwIDAgMS0zNy43MzUtMy44NCAxODAuNyAxODAuNyAwIDAgMS02OC43NjEtMzAuNzIgMTc3LjUgMTc3LjUgMCAwIDEtMjcuOTU2LTI1LjYgMTgwLjc4NyAxODAuNzg3IDAgMCAxLTIxMC4xNzYtMTIxLjI0MiAxNzguOTQgMTc4Ljk0IDAgMCAxIC4yNTYtMTExLjg3MiAxODEuMjUgMTgxLjI1IDAgMCAxLTIyLjE3LTIxMS43MTIgMTc5LjUgMTc5LjUgMCAwIDEgNTAuMjI4LTU2LjIxNyAxNzUuMiAxNzUuMiAwIDAgMSA2OS4wMTgtMzAuMzYyQTE4MC4yMiAxODAuMjIgMCAwIDEgNDc0LjQ3IDE1My43MDJhMTc4LjA3IDE3OC4wNyAwIDAgMSAxMzQuNTU0IDYwLjAwNyAxODIuNDMgMTgyLjQzIDAgMCAxIDExMS4zNiAxMS42NzMgMTgxLjI1IDE4MS4yNSAwIDAgMSA4My4wOTggNzQuOTU3IDE3OS44NyAxNzkuODcgMCAwIDEgMjMuMzk4IDEwOS41NjhjLTEuMzMxIDEyLjY0Ny00LjA5NiAyNS4wMzctOC4wOSAzNy4wNjkgMTIuOCAxNC4wOCAyMy4xOTQgMzAuMDU0IDMwLjkyNSA0Ny40NjJNNjAwLjg4MyA4MTMuMjYxYTEzMy45NCAxMzMuOTQgMCAwIDAgNzIuNzA0LTcyLjcwNGM2LjY1Ni0xNi4zMzMgMTAuMjQtMzMuNzkyIDEwLjI0LTUxLjQwNVY1MjIuNTk4YTcgNyAwIDAgMS0uMjA1LS41MTIgMS44IDEuOCAwIDAgMC0uMjA0LS40NiAxLjQgMS40IDAgMCAwLS4zNTktLjM1OSAxLjIgMS4yIDAgMCAwLS41MTItLjMwN2wtNjAuMjExLTM0LjgxNlY2ODcuMzZhMjMuNjUgMjMuNjUgMCAwIDEtMTEuNzc2IDIwLjMyNmwtMTQyLjY0MyA4Mi4zM2MtMS4xNzguNzE3LTMuMTc1IDEuNzkyLTQuMjUgMi4zNTUgNS44ODggNS4wMTggMTIuMjg4IDkuNDIxIDE5LjA0NyAxMy4zMTIgNi44MSAzLjg5MSAxMy44MjQgNy4xNjggMjEuMTQ1IDkuODNhMTM4LjEgMTM4LjEgMCAwIDAgNDUuNzIyIDcuOTg4YzE3LjYxMyAwIDM1LjA3Mi0zLjQ4MiA1MS4zNTMtMTAuMjR6TTI2MS4wMTggNzAwLjIxYTEzNS4zMiAxMzUuMzIgMCAwIDAgODEuNTYxIDYyLjQ2NCAxMzQuMTQgMTM0LjE0IDAgMCAwIDEwMS44ODgtMTMuMzEybDE0NC4yMy04My4zMDIuNDEtLjM1OWEuOS45IDAgMCAwIC4yMDUtLjQ2IDEuOCAxLjggMCAwIDAgLjIwNS0uNDYxdi03MC4xNDRsLTE3NC4xMzEgMTAwLjY2YTI2LjUgMjYuNSAwIDAgMS01LjYzMiAyLjQwNiAyNC4xNyAyNC4xNyAwIDAgMS0xNy44MTgtMi40MDZMMjQ5LjE5IDYxMi44NjRhMTU4IDE1OCAwIDAgMS00LjE0Ny0yLjU2IDEzNC45IDEzNC45IDAgMCAwIC4wNTEgNDYuNDM4IDEzNS4yIDEzNS4yIDAgMCAwIDE1Ljg3MiA0My41MnYtLjEwMnptLTM3LjQ3OS0zMTEuNDVhMTM1LjA3IDEzNS4wNyAwIDAgMC0xMy4zNjMgMTAxLjk0IDEzNC4xNCAxMzQuMTQgMCAwIDAgNjIuNDY0IDgxLjUxbDE0NC4yMyA4My4zNTQuNTEyLjEwMmguNTEyYS45LjkgMCAwIDAgLjUxMi0uMTAyIDIgMiAwIDAgMCAuNTEyLS4yNTZsNjAuNDE2LTM0LjkxOS0xNzQuMDgtMTAwLjU1NmEyNCAyNCAwIDAgMS0xMC45MDUtMTQuMjg1IDIwLjQgMjAuNCAwIDAgMS0uNzY4LTYuMDQyVjMyOS45MzNhMTM2IDEzNiAwIDAgMC0yMS4xNDYgOS44MyAxMzcuMiAxMzcuMiAwIDAgMC00OC43NDIgNDguOTk5ek03MTguOSA1MDQuMDY1YTIzLjcgMjMuNyAwIDAgMSA4LjY1MyA4LjYwMiAyNi43IDI2LjcgMCAwIDEgMi4zMDQgNS42ODMgMjQgMjQgMCAwIDEgLjY2NiA2LjE0NHYxNjkuNTc0YTEzMy44IDEzMy44IDAgMCAwIDYwLjM2NC00NC41NDRBMTM0LjQ1IDEzNC40NSAwIDAgMCA3NTEuMzEgNDUxLjg0bC0xNDQuMjMtODMuMzU0YTcgNyAwIDAgMC0uNTEzLS4xNTNoLS41MTJhOSA5IDAgMCAxLS41MTIuMTUzIDEuOCAxLjggMCAwIDAtLjUxMi4yMDVsLTYwLjE2IDM0LjgxNiAxNzQuMTgzIDEwMC41NTd6bTYwLjEwOS05MC4zMTdoLS4xMDJ2LjA1MWwuMTAyLS4xMDJ6bS0uMTAyLS4xMDJhMTM0LjI5OCAxMzQuMjk4IDAgMCAwLTE5OS40MjQtMTM5LjA2bC0xNDQuMTI4IDgzLjMwM2ExLjMgMS4zIDAgMCAwLS4zNTkuNDFsLS4zMDcuNDFhNyA3IDAgMCAwLS4yMDUgMS4wMjN2NjkuNjMybDE3NC4xMzEtMTAwLjU1N2EyNyAyNyAwIDAgMSA1LjY4NC0yLjQwNiAyMy45NiAyMy45NiAwIDAgMSAxNy43NjYgMi40MDZsMTQyLjc0NiA4Mi40MzIgNC4xOTggMi40NTh6TTQwMS41NjMgMzM2LjU5YTI0LjA2IDI0LjA2IDAgMCAxIDYuODYtMTYuNTg5IDIxLjMgMjEuMyAwIDAgMSA0Ljg2NC0zLjY4NmwxNDIuNzQ2LTgyLjMzYzEuMzMxLS44MiAzLjE3NC0xLjg5NCA0LjI1LTIuNDA2YTEzMy44NCAxMzMuODQgMCAwIDAtMTQyLjg0OC0xOC40MzIgMTM0LjI1IDEzNC4yNSAwIDAgMC03Ny4zMTIgMTIxLjY1djE2Ni40NTJhNyA3IDAgMCAwIC4xMDIuNTEyIDEuOSAxLjkgMCAwIDAgLjI1Ni41MTIgMyAzIDAgMCAwIC4zNTguNDEgMS43IDEuNyAwIDAgMCAuNDYxLjMwN2w2MC4yNjMgMzQuODE2em0zMi43MTYgMjIwLjA1NyA3Ny41NjggNDQuODUyIDc3LjYyLTQ0Ljg1MnYtODkuNTQ4bC03Ny41MTctNDQuOC03Ny42MiA0NC44LS4wNSA4OS42eiIgZmlsbD0iI0ZGRiIvPjwvc3ZnPg=="); --vbnICON-URL-Gemini-Vint: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iLTAuMDMyIDAgMTAxNi4wNTMgMTAyMC43MzYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPjxwYXRoIGQ9Im00NDMuNzA2IDc3OS4wMTEgNDAuNzY4LTkzLjMxYTM1OS41NSAzNTkuNTUgMCAwIDEgMTgyLjk3NC0xODUuMzQybDExMi4xOS00OS43OTJjMzUuNjQ4LTE1Ljg3MiAzNS42NDgtNjcuNzc1IDAtODMuNTgzbC0xMDguNjctNDguMjU1YTM1OS44IDM1OS44IDAgMCAxLTE4NS42NjItMTkxLjU1bC00MS4yOC05OS41MTlhNDMuOTY3IDQzLjk2NyAwIDAgMC04MS42NjMgMGwtNDEuMjc5IDk5LjUyYTM1OS43NCAzNTkuNzQgMCAwIDEtMTg1LjY2MiAxOTEuNTQ5bC0xMDguNjcgNDguMjU1Yy0zNS43MTIgMTUuODA4LTM1LjcxMiA2Ny43MTEgMCA4My41ODNsMTEyLjE5IDQ5Ljc5MkEzNTkuNTUgMzU5LjU1IDAgMCAxIDMyMS45OCA2ODUuN2w0MC43MDMgOTMuMzExYTQzLjkwMyA0My45MDMgMCAwIDAgODEuMDIzIDBtNDA4LjEyMyAyMjcuMzI1IDExLjM5Mi0yNi4yNGEyMDIuNyAyMDIuNyAwIDAgMSAxMDMuMTY3LTEwNC41NzRsMzUuMzI3LTE1LjY4YTI0LjY0IDI0LjY0IDAgMCAwIDAtNDQuNzM1bC0zMy4yOC0xNC43ODRhMjAyLjg4IDIwMi44OCAwIDAgMS0xMDQuNzAyLTEwOC4wM2wtMTEuNzc2LTI4LjQxNmEyMy41NTIgMjMuNTUyIDAgMCAwLTQzLjc3NSAwbC0xMS43NzYgMjguNDE1YTIwMi44OCAyMDIuODggMCAwIDEtMTA0LjYzOSAxMDguMDNsLTMzLjI4IDE0Ljc4NWEyNC42NCAyNC42NCAwIDAgMCAwIDQ0LjhsMzUuMjY0IDE1LjYxNWEyMDIuNjIgMjAyLjYyIDAgMCAxIDEwMy4xNjcgMTA0LjU3NWwxMS41MiAyNi4yNGM4LjMyIDE5LjE5OSAzNC45NDMgMTkuMTk5IDQzLjMyNyAweiIgZmlsbD0iIzAyMDIwMiIvPjwvc3ZnPg=="); --vbnICON-URL-Gemini-Fill: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkdlbWluaSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTAwIDUwMCI+PHBhdGggZGF0YS1uYW1lPSItIiBkPSJNNDQ1LjgyIDIyMy41MmMtMzguNTItMTYuNTktNzIuMjItMzkuMzItMTAxLjE0LTY4LjIxLTI4Ljg5LTI4Ljg5LTUxLjY1LTYyLjYxLTY4LjIxLTEwMS4xNGEzMDEgMzAxIDAgMCAxLTE1LjQtNDUuNTFDMjU5Ljc5IDMuNTcgMjU1LjI1IDAgMjQ5Ljk5IDBzLTkuOCAzLjU4LTExLjA4IDguNjZhMzAwIDMwMCAwIDAgMS0xNS40IDQ1LjUxYy0xNi41OSAzOC41Mi0zOS4zMiA3Mi4yNC02OC4yMSAxMDEuMTQtMjguODkgMjguODYtNjIuNjEgNTEuNjItMTAxLjE0IDY4LjIxYTMwMSAzMDEgMCAwIDEtNDUuNTEgMTUuNEMzLjU2IDI0MC4yLS4wMSAyNDQuNzQtLjAxIDI1MHMzLjU4IDkuOCA4LjY2IDExLjA4YTMwMCAzMDAgMCAwIDEgNDUuNTEgMTUuNGMzOC41MiAxNi41OSA3Mi4yMiAzOS4zMiAxMDEuMTQgNjguMjEgMjguODkgMjguODkgNTEuNjUgNjIuNjEgNjguMjEgMTAxLjE0YTMwMCAzMDAgMCAwIDEgMTUuNCA0NS41MWMxLjI3IDUuMDggNS44NCA4LjY1IDExLjA4IDguNjYgNS4yNiAwIDkuOC0zLjU4IDExLjA4LTguNjZhMzAwIDMwMCAwIDAgMSAxNS40LTQ1LjUxYzE2LjU5LTM4LjUyIDM5LjMyLTcyLjIyIDY4LjIxLTEwMS4xNCAyOC44OS0yOC44OSA2Mi42MS01MS42NSAxMDEuMTQtNjguMjFhMzAwIDMwMCAwIDAgMSA0NS41MS0xNS40YzUuMDgtMS4yNyA4LjY1LTUuODQgOC42Ni0xMS4wOCAwLTUuMjYtMy41OC05LjgtOC42Ni0xMS4wOGEzMDAgMzAwIDAgMCAxLTQ1LjUxLTE1LjQiLz48L3N2Zz4="); --vbnICON-URL-Gemini-Line: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iNDYuNDY0IDQ2LjUyOCA5MzAuOTQ0IDkzMC45NDQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPjxwYXRoIGQ9Ik00NzQuNjI0IDQ2LjUyOGg3NC42ODhsMi4xNzYgMzYuNDhhNDE1LjY4IDQxNS42OCAwIDAgMCAzODkuNDQgMzg5LjQ0bDM2LjQ4IDIuMTc2djc0Ljc1MmwtMzYuNDggMi4xNzZhNDE1LjY4IDQxNS42OCAwIDAgMC0zODkuNDQgMzg5LjQ0bC0yLjE3NiAzNi40OGgtNzQuNjg4bC0yLjI0LTM2LjQ4YTQxNS42OCA0MTUuNjggMCAwIDAtMzg5LjQ0LTM4OS40NGwtMzYuNDgtMi4xNzZ2LTc0Ljc1MmwzNi40OC0yLjE3NmE0MTUuNjggNDE1LjY4IDAgMCAwIDM4OS40NC0zODkuNDR6TTUxMS45MzYgMjQ5LjZBNDk0LjkgNDk0LjkgMCAwIDEgMjQ5LjYgNTEyIDQ5NC45IDQ5NC45IDAgMCAxIDUxMiA3NzQuNCA0OTQuOSA0OTQuOSAwIDAgMSA3NzQuNCA1MTIgNDk0Ljg1IDQ5NC44NSAwIDAgMSA1MTIgMjQ5LjZ6Ii8+PC9zdmc+"); --vbnICON-URL-Liblib: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI1NjAgMjU2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTIxNjQuNSAyNTYwaC0xNzY5QzE3NyAyNTYwIDAgMjM4MyAwIDIxNjQuNXYtMTc2OUMwIDE3NyAxNzcgMCAzOTUuNSAwaDE3NjlDMjM4MyAwIDI1NjAgMTc3IDI1NjAgMzk1LjV2MTc2OWMwIDIxOC41LTE3NyAzOTUuNS0zOTUuNSAzOTUuNSIgZmlsbD0iI0ZGRiIgb3BhY2l0eT0iLjE1Ii8+PHBhdGggZD0iTTQyOS41IDE4OWMxNDYgMTU4LjUgMzAyIDMwOSA0NTQuNSA0NjEuNSAxMi41IDI0NC41LTEuNSA0OTAgNy41IDczNSAzIDM4IDQ3IDQ3LjUgNzguNSA0Ni41cTM0OCAuNzUgNjk2IDBjMTU2IDE1My41IDMwNyAzMTIgNDY0LjUgNDYzLTQ3NC04LTk0OC0xLTE0MjIuNS0zLjUtNjguNS0yLjUtMTM4IDYtMjA2LTQuNS00Mi03LjUtNzEuNS00Ny41LTcwLTg5LjUtMi01MzUuNSAyLjUtMTA3Mi0yLjUtMTYwOC41IiBmaWxsPSIjMjY1QkZGIi8+PHBhdGggZD0iTTQyOS41IDIwMDAuNWMyMCAyMS41IDQwIDQzIDYxIDYzLjUgNC41IDczLjUgMCAxNDcgMiAyMjEgLjUgMTQuNSAxNC41IDIyLjUgMjcuNSAyMy41IDIzIDEgNDUuNS0xIDY4LjUgMSAyMS41IDE3LjUgMzkuNSA0MCA2MC41IDU4LjUtNjItMS0xMjQgMC0xODYuNS0uNS0xNy41LjUtMzQtMTUtMzMtMzMgMC0xMTIgMS0yMjMgMC0zMzRtMzk5LjUgMzY2YzE4LS41IDM3LjUgMi41IDU0LTYgMi02IDQtMTEuNSA1LjUtMTcuNSAyLjUgMSA3IDIuNSA5LjUgMyAxNS41IDE5IDQyIDIyIDY0LjUgMjUgMjctMSA1NS05IDczLjUtMjkuNSAzNy00Mi41IDQwLjUtMTA0IDI4LTE1Ni41LTgtMzIuNS0zMC02MC41LTYwLTc1LTM5LTE0LTg2LTYtMTE1IDI0LjUtMi00NCAuNS04OC41LTEuNS0xMzIuNS0xOS41LTEtMzkuNS0xLTU5IC41LjUgMTIwLjUuNSAyNDIgLjUgMzY0bTE2MC0xOTNjMTggMTcgMjAuNSA0My41IDIxIDY3LS41IDIyLjUtNS41IDQ5LTI1LjUgNjIuNS0zMS41IDIyLjUtODQuNSA4LjUtOTQuNS0zMS0xMy0zOS41LTUuNS05Ny41IDQwLjUtMTExIDE5LjUtNSA0My41LTMuNSA1OC41IDEyLjVtNTM5LjUgMTkzYzE3LjUtMS41IDM4IDQuNSA1My03IDUtNCA0LjUtMTEgNi41LTE3IDIuNSAxIDcuNSAyLjUgMTAgMy41IDE1LjUgMTkgNDIgMjIgNjQuNSAyNSAyNy0xIDU1LTkgNzMuNS0yOS41IDM3LTQyLjUgNDAuNS0xMDQgMjgtMTU2LjUtNy41LTMyLjUtMzAtNjAuNS02MC03NS41LTM5LjUtMTQuNS04NS01LTExNiAyNC0uNS00NCAuNS04OC0uNS0xMzItMTkuNS0xLTM5LjUtMi01OS41IDEgMSAxMjEgLjUgMjQyLjUuNSAzNjRtMTU4LTE5NS41YzE3LjUgMTQgMjIgMzggMjMgNTkgMSAyMi41LTIgNDgtMTcuNSA2NS41LTI5LjUgMzEuNS05MS41IDE5LTEwMi41LTI0LTEzLTM5LjUtNS41LTk4IDQwLjUtMTExLjUgMTktMy41IDQxLjUtMyA1Ni41IDExbTE2MS0xM2MtOC41IDE5LjUtMTguNSAzOS0yNS41IDU5LjVoNTdjMTItMzIgMjQuNS02NCAzNi41LTk2IDExLTIwLjUgMTIuNS00NyAyOS02My41IDMuNSAxNSA5LjUgMjkuNSAxNS41IDQ0IDEzIDM0LjUgMjYgNjguNSAzOS41IDEwMyAxIDMgMy41IDkuNSA0LjUgMTMgMTkuNSAwIDM5LS41IDU4LjUgMC0zLjUtNy03LTEzLjUtMTAtMjAuNUMyMDI1IDIxMzIgMTk5NSAyMDY3IDE5NjggMjAwMWMtMTcuNS41LTM1IC41LTUyIDAtMjMgNTIuNS00NiAxMDUtNjguNSAxNTdtMjI2IDYwcTI4LjUtLjc1IDU3IDBjMC03Mi41LS41LTE0NC41IDAtMjE3LTE5IC41LTM4LjUuNS01Ny41IDAgMSA3Mi41LjUgMTQ0LjUuNSAyMTdtLTk0MiAxMDUuNWMwIDcuNSAxIDE1LjUgMiAyMyA2IDEyLjUgMTkuNSAxOSAzMy41IDE5LjUgNjAuNS41IDEyMS41LS41IDE4Mi41LjUtMTkuNS0xOC41LTM4LjUtMzcuNS01Ni41LTU3LTI5LTUuNS01OSAxLjUtODgtNS0zLTMuNS02LTctOS0xMC01LTc2LjUgMS0xNTQtMy0yMzAuNS0xOS41LTIxLjUtNDEuNS00MS02MS02Mi41IDAgMTA3LjUtMSAyMTUtLjUgMzIyTTY5MiAyMzY2aDYwcS0uNzUtMTMyIDAtMjY0aC02MHptNzAwIDBoNjBxLS43NS0xMzIgMC0yNjRoLTU5LjVjLS41IDg4LS41IDE3Ni0uNSAyNjQiLz48L3N2Zz4="); --vbnICON-URL-Prompt: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIxNzAuNjY3IDIzOC45MzMgNjgyLjY2MSA1NDYuMTMzIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTY1OC41MzQgMjM4LjkzM2MxMi44IDAgMjMuOTk2IDExLjUzNyAyMy45OTYgMjQuNzQ3djE4MS40ODdoMTQ3LjE1YzQuODEzIDAgOS42MjYgMS42NzIgMTIuOCA0Ljk1IDExLjE5NiA4LjI2IDE0LjQwNCAyMy4xMDggNi40MTcgMzQuNjQ1TDY2MS43NDMgNzczLjUzYTIyLjA4IDIyLjA4IDAgMCAxLTE5LjE4MyAxMS41MzdjLTEyLjggMC0yMy45OTYtMTEuNTM3LTIzLjk5Ni0yNC43NDdWNTc4LjgzM0g0NzEuMzgxYTE3Ljg1IDE3Ljg1IDAgMCAxLTEyLjgtNC45NWMtMTEuMTk1LTguMjYtMTQuMzctMjMuMTA4LTYuMzgzLTM0LjY0NUw2MzkuMzUxIDI1MC40N2EyMi4wOCAyMi4wOCAwIDAgMSAxOS4xODMtMTEuNTM3TTQ0Mi42MDcgNjc2LjE4MWMyNy4xNyAwIDQ3Ljk5MSAyMS40MzYgNDcuOTkxIDQ5LjQ5NHMtMjAuODIgNDkuNDkzLTQ3Ljk5MSA0OS40OTNIMjgyLjYyNGMtMjcuMTcgMC00Ny45NTctMjEuNDM2LTQ3Ljk1Ny00OS40OTNzMjAuNzg3LTQ5LjQ5NCA0Ny45NTctNDkuNDk0em0tOTUuOTgzLTE5Ny45NzNjMjcuMjA0IDAgNDcuOTkxIDIxLjQwMiA0Ny45OTEgNDkuNDkzIDAgMjguMDI0LTIwLjgyIDQ5LjQ5NC00Ny45OTEgNDkuNDk0aC0xMjhjLTI3LjEzNiAwLTQ3Ljk1Ny0yMS41MDQtNDcuOTU3LTQ5LjQ5NCAwLTI4LjA5MSAyMC44MjEtNDkuNDkzIDQ3Ljk5MS00OS40OTN6bTk1Ljk4My0xOTguMDQyYzI3LjE3IDAgNDcuOTkxIDIxLjQ3IDQ3Ljk5MSA0OS40OTQgMCAyOC4wNTctMjAuODIgNDkuNDkzLTQ3Ljk5MSA0OS40OTNIMjgyLjYyNGMtMjcuMTcgMC00Ny45NTctMjEuNDM2LTQ3Ljk1Ny00OS40OTMgMC0yOC4wMjQgMjAuNzg3LTQ5LjQ5NCA0Ny45NTctNDkuNDk0eiIgZmlsbD0iIzExNzRFRiIvPjwvc3ZnPg=="); --vbnICON-URL-Workflow: url("data:image/svg+xml;base64,PHN2ZyB0PSIxNzUzNTM2MDE3MjEyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMjIuMzY1NDQ3OTk4MDQ2ODc1IDAuMTczMzc3OTkwNzIyNjU2MjUgOTc5LjMwNTI5Nzg1MTU2MjUgMTAyMy44MjY2NTI1MjY4NTU1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgcC1pZD0iNDU0NCIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPjxwYXRoIGQ9Ik05MzkuNDU5ODIxIDY1Ni4zODA5MTdjLTQ5LjQ1NDkzMy0yOC45NTYyODYtMTExLjc1MjEyNC0xOS41ODYxMTItMTUxLjAxMzM3NSAyMi43NDY1OTktMzkuMjYxMjUyIDQyLjMzMjcxLTQ1LjM4MTkxMiAxMDYuNjk5Nzk3LTE0LjgwMDg2OSAxNTYuMDIxMTg4LTEyMi4zOTA5NDQgMTE4LjUxODIzNS0zMDUuOTIxNzE3IDE0MC43MDg0MS00NTEuNzQ5MjI0IDU0LjU3NDAzMWEzOS4zMDU3NjYgMzkuMzA1NzY2IDAgMCAwLTU0LjQ4NTAwMyAxNS4wMDExODFjLTEwLjk5NDkzMSAxOS41ODYxMTItNC40NTEzODkgNDQuNjQ3NDMzIDE0LjYyMjgxMyA1NS45NTM5NjFhNDU4LjUxNTMzNiA0NTguNTE1MzM2IDAgMCAwIDg3LjQyNTI4MiA0MC4xMjkyNzNBNDQ0LjU2MDIzMSA0NDQuNTYwMjMxIDAgMCAwIDUxMS4zNjk3MyAxMDIzLjk5ODg4N2MxMjIuMDU3MDkgMC4yNjcwODMgMjM5LjM1MTE5My00OC43NDI3MTEgMzI2LjU3NjE2My0xMzYuNDU3MzMzIDYwLjI0OTU1MiAyMC44MzI1MDEgMTI2LjA2MzM0LTguNDU3NjM5IDE1Mi40ODIzMzQtNjcuODM5MTcgMjYuNDE4OTk0LTU5LjM4MTUzMSA0Ljg3NDI3MS0xMjkuNjQ2NzA4LTQ5LjkyMjMyOS0xNjIuNzY1MDQzbC0xLjA0NjA3Ny0wLjU1NjQyNHogbS0yMy42NTkxMzMgMTMzLjE4NTU2MmE0NC40NDcxMiA0NC40NDcxMiAwIDAgMS0zOC41MjY3NzMgMjIuOTI0NjU0IDQyLjcxMTA3OSA0Mi43MTEwNzkgMCAwIDEtMjIuMDU2NjMzLTYuMDA5Mzc1IDQ2LjA3MTg3NyA0Ni4wNzE4NzcgMCAwIDEtMjAuODMyNTAxLTUxLjQxMzU0NGM1LjIzMDM4Mi0yMC4wMzEyNTEgMjIuOTY5MTY4LTMzLjg3NTA3MSA0My4xNTYyMTgtMzMuNzQxNTMgNy43NDU0MTctMC4wNDQ1MTQgMTUuMzU3MjkyIDIuMDI1MzgyIDIyLjAzNDM3NiA2LjAwOTM3NiAyMS4yMTA4NjkgMTIuNTk3NDMxIDI4LjQ2NjYzMyA0MC40NDA4NyAxNi4yNDc1NyA2Mi4yMzA0MTl6IG0tNjYxLjkyMTU2MS04Ni41MTI3NDdjLTIyLjE2NzkxOC0zOS41MjgzMzUtNjMuMjA5NzI1LTYzLjg3NzQzNC0xMDcuNjM0NTg5LTYzLjg3NzQzNGgtNi4zODc3NDNDMTAxLjM3NDUzNiA0NzAuODQ3MDE5IDE3NC44ODkyMjcgMjk2LjQ2Mzg1IDMyMC44MjgwMTkgMjEwLjE5NTkyOWMxOS4wNzQyMDItMTEuMzA2NTI4IDI1LjYxNzc0NC0zNi4zNjc4NDkgMTQuNjIyODEzLTU1Ljk1Mzk2MWEzOS4zMDU3NjYgMzkuMzA1NzY2IDAgMCAwLTU0LjQ4NTAwMi0xNS4wMDExODFjLTE4MC44MTU0MjYgMTA2Ljg1NTU5Ni0yNjkuMzA5MDQxIDMyNS4wODQ5NDctMjE1Ljc1ODgzMSA1MzIuMTYzNTY4LTQ5LjQ5OTQ0NyA0NC4wNjg3NTItNTcuMTU1ODM2IDEyMC4wMzE3MDctMTcuNDcxNzAyIDE3My41NTk2NjIgMzkuNjg0MTM0IDUzLjUwNTY5NyAxMTMuMDQzMDI3IDY2LjEyNTM4NSAxNjcuNTUwMjg2IDI4LjgyMjc0NSA1NC40ODUwMDMtMzcuMzAyNjQxIDcxLjQwMDI4MS0xMTEuNjg1MzUzIDM4LjU3MTI4Ny0xNjkuODg3MjY2di0wLjgyMzUwN3ogbS04NS4zMTA4NzIgMTAzLjE2MDk0M2MtMjEuMjEwODY5IDEyLjU3NTE3NC00OC4zMTk4MjkgNS4xMTkwOTctNjAuNTgzNDA2LTE2LjY0ODE5NmE0Ni42MjgzMDEgNDYuNjI4MzAxIDAgMCAxLTUuMDk2ODQxLTM1LjM0NDAyOSA0NS40MDQxNjkgNDUuNDA0MTY5IDAgMCAxIDIxLjI5OTg5Ny0yOC4yNjYzMjFjMjEuMjEwODY5LTEyLjU1MjkxNyA0OC4zMTk4MjktNS4xMTkwOTcgNjAuNTgzNDA2IDE2LjY3MDQ1MiA2LjM4Nzc0MyAxMC41OTQzMDYgOC4yNzk1ODQgMjMuNDM2NTY0IDUuMjMwMzgyIDM1LjQ5OTgyOGE0NS40MDQxNjkgNDUuNDA0MTY5IDAgMCAxLTIxLjQzMzQzOCAyOC4zNTUzNDl2LTAuMjY3MDgzeiIgZmlsbD0iIzM1M0E1MyIgcC1pZD0iNDU0NSIvPjxwYXRoIGQ9Ik01MjMuNDMyOTk1IDI1NC42MjA3OTNjNDUuOTYwNTkzLTAuMTU1Nzk5IDg3LjkzNzE5Mi0yNy4xMDg5NiAxMDguNjEzODk0LTY5LjczMTAxMSAxNTkuNzE1ODQxIDQ5LjU2NjIxOCAyNjkuMDE5NzAxIDIwMi4yOTMzNzggMjY4LjY0MTMzMyAzNzUuMzYzMzg3IDAgMjIuNTY4NTQzIDE3LjYyNzUwMSA0MC44NjM3NTIgMzkuMzcyNTM3IDQwLjg2Mzc1MiAyMS43MjI3NzkgMCAzOS4zNTAyOC0xOC4yOTUyMDkgMzkuMzUwMjgtNDAuODYzNzUyIDAuMjIyNTY5LTIxMy41MzMxMzYtMTM3LjM5MjEyNS00MDAuNzM2MzA1LTMzNS44MzUwNTItNDU2LjgyMzgwOC0xMi4xNzQ1NDktNjUuOTQ3MzMtNzEuNjY3MzY1LTExMC43MDYwNDctMTM1LjgxMTg4Mi0xMDIuMjI2MTUxLTY0LjE2Njc3NCA4LjUwMjE1My0xMTAuOTI4NjE3IDY3LjMyNzI2LTEwNi43ODg4MjUgMTM0LjM0MjkyNCA0LjE2MjA0OSA2Ny4wMzc5MiA1Ny43NTY3NzQgMTE5LjE2MzY4NyAxMjIuNDU3NzE1IDExOS4wNzQ2NTl6IiBmaWxsPSIjMjU1Q0ZGIiBwLWlkPSI0NTQ2IiBkYXRhLXNwbS1hbmNob3ItaWQ9ImEzMTN4LnNlYXJjaF9pbmRleC4wLmkxLjcxZGYzYTgxSUR2Y3RBIiBjbGFzcz0ic2VsZWN0ZWQiLz48cGF0aCBkPSJNNTEyLjAxNTE4MiA4OS4yMDcxNzNhNDQuNTEzODkxIDQ0LjUxMzg5MSAwIDEgMSAwIDg5LjAyNzc4MyA0NC41MTM4OTEgNDQuNTEzODkxIDAgMCAxIDAtODkuMDI3NzgzeiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iNDU0NyIvPjwvc3ZnPg=="); --vbnICON-URL-Tick: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiB2aWV3Qm94PSIxOS41MzE5OTk1ODgwMTI2OTUgMTkuNTMxOTk5NTg4MDEyNjk1IDg3LjUxOTAwNDgyMTc3NzM0IDg3LjUxOTAwNDgyMTc3NzM0IiBjbGFzcz0icHJvZHVjdExvZ29fXzFMUkgiPjxwYXRoIGQ9Im01MC4xMTcgNTIuNjQyIC03LjI5NyA4Ljg4NiAxNy4yODggMTQuMTc3YTUuNzU5IDUuNzU5IDAgMCAwIDguMTM2IC0wLjg1MWwzMS4wMDkgLTM4LjcxOCAtOC45NzggLTcuMTg3IC0yNy4zNjcgMzQuMTc0eiIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSIjRkZCMDAwIi8+PHBhdGggZD0iTTYzLjI5MSA5Ny4yMDZjLTE4LjcwMyAwIC0zMy45MTUgLTE1LjIxNSAtMzMuOTE1IC0zMy45MTVTNDQuNTkyIDI5LjM3NyA2My4yOTEgMjkuMzc3VjE5LjUzMkMzOS4xNjEgMTkuNTMyIDE5LjUzMiAzOS4xNjEgMTkuNTMyIDYzLjI5MVMzOS4xNjEgMTA3LjA1MSA2My4yOTEgMTA3LjA1MSAxMDcuMDUxIDg3LjQyMSAxMDcuMDUxIDYzLjI5MWgtOS44NDVjMCAxOC43MDMgLTE1LjIxNSAzMy45MTUgLTMzLjkxNSAzMy45MTUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzQ3NzJGQSIvPjwvc3ZnPg=="); --vbnICON-URL-Tick-Vint: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiB2aWV3Qm94PSI3Ny4xNTAwMDE1MjU4Nzg5IDc3LjE1MDAwMTUyNTg3ODkgMzQ1LjcwMDAxMjIwNzAzMTI1IDM0NS43MDAwMTIyMDcwMzEyNSIgY2xhc3M9InByb2R1Y3RMb2dvX18xTFJIIj48cGF0aCBkPSJtMTk3Ljk2MyAyMDcuOTM4IC0yOC44MjUgMzUuMSA2OC4yODcgNTZhMjIuNzUgMjIuNzUgMCAwIDAgMzIuMTM4IC0zLjM2M2wxMjIuNDg3IC0xNTIuOTM4IC0zNS40NjMgLTI4LjM4NyAtMTA4LjEgMTM0Ljk4N3oiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzM1Q0M3QiIvPjxwYXRoIGQ9Ik0yNTAgMzgzLjk2MmMtNzMuODc1IDAgLTEzMy45NjMgLTYwLjEgLTEzMy45NjMgLTEzMy45NjNTMTc2LjEzNyAxMTYuMDM3IDI1MCAxMTYuMDM3Vjc3LjE1QzE1NC42ODggNzcuMTUgNzcuMTUgMTU0LjY4OCA3Ny4xNSAyNTBTMTU0LjY4OCA0MjIuODUgMjUwIDQyMi44NSA0MjIuODUgMzQ1LjMxMyA0MjIuODUgMjUwaC0zOC44ODhjMCA3My44NzUgLTYwLjEgMTMzLjk2MyAtMTMzLjk2MyAxMzMuOTYzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiM0NzcyRkEiLz48L3N2Zz4="); --vbnICON-URL-YUQUE: url("data:image/svg+xml;base64,PHN2ZyB0PSIxNzQzOTQ5MDMzNTU4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iOC43NzgxMjU3NjI5Mzk0NTMgOC43Nzg5NTI1OTg1NzE3NzcgMTA5OS4yNDAwMzIxOTYwNDUgMTAwNi4xNjUzODMzMzg5MjgyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgcC1pZD0iNjAyMCIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPjxwYXRoIGQ9Ik0xMTA4LjAxODE1MDE5IDE1Mi4yMzM3MDgzOGwtODkuNzI2ODE5MDQtNC44OTA2ODc1OVM5ODQuMzU1MzA2MDEgMjUuODU0MjUyMzYgODI4LjYwNTE4NzM0IDE0Ljk1NDM4Nzk0QzY3Mi44NTYwNTE1NSA0LjA1NzQ3MjA4IDU3MC45NDc3MjQ4NyAxMC44OTkxMjcyOCA1NzAuOTQ3NzI0ODcgMTAuODk5MTI3MjhzMTE1LjUzMjY2NTc4IDc1LjA0Njg5MzQyIDY5LjIzMjMyMTkyIDIwOC45NjE5MDA0NWMtMzQuNDAxODk4NTIgNzIuMjI3MDgxNzktODguODI4NDg5MzYgMTMxLjI0MDY1Nzk1LTE0Ni44NTgyMjc0NSAxOTkuMDYzNTY1NDlsLTM4My43MTY1MDc3IDQ0Ni44MzU0NzAxM2MzNTcuMTk2MTI1MjEtNS4zNDM3ODM4NSA1NjcuNzg0NjUxMDQtOC4wMTcxNTAwNiA2MzEuNzY4NTI2MDctOC4wMTcxNTAwNiAxNzkuNDMzOTgwOTcgMCAzMzEuMDc3NzMwNTEtMTU4Ljc3NzMxMjc0IDMyNC44NzI5NjU0OS0zMzUuNDM3Njc2MjctNC4yNjY1NzQ1Mi0xMjEuNDEzMDg4NTgtNDIuMTQ5NzQ2MjUtMTQ4Ljg0NTU2MDcyLTU1LjE3MTU5NTEtMjAyLjAxOTk5NDAxLTEzLjAxNjkzNDU3LTUzLjE3NTQxNjE1IDEzLjA0MjQ4ODgyLTEzNy45NzQxOTkwOSA5Ni45NDI5NDIwOS0xNjguMDUxNTM0NjN6IiBmaWxsPSIjMzFDQzc5IiBwLWlkPSI2MDIxIi8+PHBhdGggZD0iTTQ5MS43NTUxNDgxMSA0MjAuMzY4NDA3NTRDMzAzLjk0MTM0MzUgNjM2Ljc5ODA0MTk3IDguNzc4MTI1NzEgOTgxLjE1MTE5Nzk3IDguNzc4MTI1NzEgOTgxLjE1MTE5Nzk3YzUzMS4wMDMyNjAwMyAxNDIuMjA4MzM5MzkgNzc1LjY1NjU2NTA1LTIwMi45MzExMDA3OSA4MTMuOTY3Mjc4OC0zMjIuNDE1ODI3NDIgNTEuMzYyMDQ4MjUtMTYwLjE5ODUyMTQtMjEuMjEwMDE1NzItMjM4LjM2ODkyODcyLTYyLjI4MzUzNTUtMjYzLjg2MjIyNzUxLTEzOS4yNjI3MjIyOS04Ni40MzgxODU0Ny0yNDIuNTg5MzA5MDUtNC42MDM2OTM4Ny0yNjguNzA2NzIwOSAyNS40OTMyOTg3OXoiIGZpbGw9IiM5M0U2NUMiIHAtaWQ9IjYwMjIiLz48cGF0aCBkPSJNNDk0LjM2MjY2MzAyIDQxNS4zNzM1MzczYzI5Ljc5MzI5MDM4LTMyLjE0OTE5NDM1IDEzMS4wNzg0ODY4NC0xMDYuOTI4NzUxMTUgMjY2LjE3ODgxNzI3LTIyLjc0MTMwNDE3IDQxLjA3NzQ1MTE5IDI1LjU5MzU1MDAxIDExMy42NTM0NDY1OSAxMDQuMDc5NDUzODYgNjIuMjg3NDY2OTEgMjY0LjkzMTU3NC0xNC44ODA0MjgwOCA0Ni42MDUwMjg5OC02MC45MDI2MjM5IDEyNy4zOTQ3NDU0Ny0xNDIuNzUyODQxMTkgMjAwLjQwNzEyODU3LTg0Ljg3NDQ2MjggMC41ODI4MzMxNC0yNzUuMzY2NTQ3ODkgMy4wOTAwOTY4MS01NzEuNDg1MTAwOTYgNy41MzE2MTk1OEw0NzQuNjEyMTg3MzEgNDM4LjMxNzMwOTYyYTg0MDUuNzMzNjYyNTYgODQwNS43MzM2NjI1NiAwIDAgMSAxOC45MzQ3MDU4OC0yMi4wNjIxNTExOXoiIGZpbGw9IiM2MERCNjkiIHAtaWQ9IjYwMjMiLz48L3N2Zz4="); --vbnICON-URL-YUQUE-Line: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTUxMS40MDcgMjEuMTU1aDEwLjAxMmw5LjkwNS4wNiAxNC41MzQuMTE3IDE0LjEwNC4xMTkgOS4yMDQuMTE4IDkuMDQ0LjExOCAxMy4yOTYuMjM2IDEyLjkyLjI5NiAxMi41OTUuMjk1IDEyLjIyLjQxNCAxMS44NDIuNDE0IDcuNjk4LjI5NSA3LjUzNi4zNTUgMTEuMDM1LjU5MSA3LjE2LjM1NSA2Ljk5Ny40MTMgNi44MzcuNDE0IDYuNjc1LjQ3MyA2LjU2Ny40NzMgOS40NzQuNzY4IDYuMTkuNTkxIDUuOTc2LjU5MSA1Ljg2Ny41OTEgNS43MDYuNTkxIDUuNTQ0LjU5MSA1LjM4My43MSAyLjY5Mi4zNTQgNy42NDQgMS4wNjQgNy4zNzQgMS4wNjQgNC43MzguODI3IDQuNTc1Ljc2OSA0LjQ2OC44MjcgNC4zMDYuODg3IDQuMDkxLjgyNyA0LjAzOC45NDYgMy44MjIuOTQ1IDMuNzY4Ljk0NmM5LjY4OSAyLjU0MSAxNy43NjMgNS40MzggMjQuNDkyIDguNjMgMzcuNDY2IDE3LjczIDY4LjA0MSA1MC43MSA5Mi4wNSA5Ny40MDFsLjY0NSAxLjM2aDM2LjkyOGM0MS42MSAwIDU3LjcwNSA1OS4xMDMgMjMuNjg1IDg0LjM0bC0zLjUgMi40ODNjLTEyLjkxOCA5LjQ1Ni0yNS44MzggMjEuNjktMzguNTk1IDM2Ljg4bC0xLjQgMS42NTVjLTcuMzIgOS4xNjEtMTEuMDM1IDE4LjMyMi0xMi43NTggMzMuNTdsLS4yNjkgMi44MzgtLjI2OSAyLjk1NS0uMTA3IDEuNTk2LS4xNjIgMy4yNS0uMTYxIDMuMzd2MS43NzJsLS4xNjIgMy42NjV2My44NDFsLS4wNTQgNC4wMnYyLjcxOGwuMTA4LjU5MS4yMTUuODg3LjQzIDEuNDE4LjY0NyAxLjg5Mi45NjkgMi40MjMgMS41MDcgMy42NjQgMi4wNDYgNC43MjggNC4wOSA5LjI4IDcuMzc1IDE2LjE5NGMyMi4wNyA0OC43NiAzMy4wNTIgODguMzYgMzMuMDUyIDEzOS45NTcgMCA5OC4xNy0yNS42MjMgMTc1LjM2LTc2LjAwOCAyNDIuMDg3LTUxLjY3NyA2OC41Ni0xNDcuMjI1IDEyMi42NC0yMjkuMzY5IDEyMi42NGgtNzIuMjRjLTM5LjE4OCAyOC45Ni04MS44NzUgNTMuOTYtMTI2LjMzOCA3My4xNy0xMTAuNDYgNDcuNjk2LTI0MC42MiA1My4xOTItMzg5Ljg5IDE3LjczQTU4Ljg5IDY0LjY2IDAgMCAxIDQyLjQ0IDg2Ny44MWw0NS4wMDItNTYuMzg0YTQ0LjM1NiA0OC43MDEgMCAwIDEgMy43NjgtNS40MzhsMTI1LjkxLTE1Ni42ODMgNjkuMTcyLTg2LjUyN0wzODkuNTkgNDMzLjkzM2wzMS41OTgtMzkuMzA0IDE1LjA3My0xOC44NTQgMTMuNDU3LTE3LjAyMiAyMi45ODUtMjkuMzE1IDUuMTY4LTYuNzM4IDMuMzM3LTQuMzE0IDMuMjMtNC4yNTYgMy4wNjktNC4xMzcgMy4wMTQtNC4wNzggMi45MDctMy45NiAyLjc5OS0zLjkgMi42OTItMy44NDMgMS4yOTEtMS44OSAzLjIzLTQuNjEgMi45Ni00LjU1MiAyLjMxNi0zLjU0NiAyLjIwNy0zLjQ4NyAxLjA3Ni0xLjcxNCAyLjA0Ni0zLjM3IDEuOTkxLTMuMzY4IDEuODg0LTMuMjUgMS43NzctMy4yNTFhMTQ1IDE0NSAwIDAgMCA0Ljg0NS05LjQ1N2wxLjUwNy0yLjk1NSAxLjM0NS0zLjA3My42NDYtMS40NzggMS4yMzktMi45NTVhMTAyLjI3NyAxMTIuMjk2IDAgMCAwIDkuNDc0LTQ3LjA0NmMwLTMxLjY4LTE1LjI4OC02MC4xNjgtNDkuOS04Ny43NjlsLTIuOC0yLjI0NmMtMzIuMDI5LTI2LjQxOS0xNS4xOC04My4wNCAyNS4zNTQtODMuMDRtMTAzLjY3NiAzNzQuNTk3Yy00MS4wNzItOC42ODgtODIuNjI4Ljk0Ni05OC4yOTMgMTkuOGwtMS44ODQgMi4yNDYtMTYuNTI2IDIwLjM5LTI5LjQ0NSAzNi41ODUtNDUuOTE3IDU3LjIxMkwyNjQuMjIgNzMwLjI3NyAxMzQuNzA2IDg5Mi4zMzhsMy4xMjIuNTkxYzExMi45MzUgMjAuNDUgMjEwLjMxMyAxMy4wMDMgMjkyLjU2NS0yMS43NWwyLjk2LTEuMjRDNTg3LjA5MyA4MDMuNTA1IDcxNS44IDY1NS45MjQgNzE1LjggNTUxLjA3NWMwLTQ4LjQ2NS0xMy40NTctODYuMjMyLTM2LjkyNy0xMTQuMDctMTguNjI1LTIyLjE2NC00My4wMS0zNi44OC02My43MzUtNDEuMjU0em0tOS40Mi0yODEuMDk1LjUzOCAxLjA2M2MxMC45ODIgMjQuMzUxIDE2LjY4OCA1MC41OTMgMTYuNjg4IDc4LjQ5IDAgMzYuODIxLTkuNDIgNzEuNTE1LTI2LjgwOCAxMDYuMjA4YTIzNCAyMzQgMCAwIDEgMzQuODgyIDQuNjFjMzguMjIgOC4wOTggNzguNzUzIDMyLjUwNyAxMDkuNjUyIDY5LjI3IDM3Ljc4OCA0NC45MTggNTkuMjEyIDEwNS4wMjYgNTkuMjEyIDE3Ni43NzggMCA3Ny4xODktNDAuNTMzIDE2MS4xNzQtMTA0LjY5OSAyMzUuMjkgNDguMzQtMTEuMjMgMTAwLjk4NS00NC45MTkgMTMwLjg2LTgzLjUxM2wxLjI5My0xLjcxNGMzNy45NS01MC4yMzggNTYuNjgzLTEwNi42MjIgNTYuNjgzLTE4My4yMiAwLTM0Ljc1My03LjUzNy02MS43MDQtMjQuMjI0LTk4LjcwM2wtMS42NjktMy42NjQtNC41NzUtOS44Ny00LjE5OS05LjI4LTEuODMtNC4xMzdhMjk0Ljg4IDMyMy43NjggMCAwIDEtMS42NjktNC4wMmwtMS41Ni0zLjcyM2EyMDUuMDkyIDIyNS4xODQgMCAwIDEtMS40NTQtMy42NjQgMTAyLjQzOCAxMTIuNDc0IDAgMCAxLTkuMzEzLTQ0LjU2NHYtMi43NzhsLjA1NC01LjQzNy4wNTQtMi43Mi4xNjEtNS4yNmMxLjE4NC0zOC45NDggNy4zNzUtNjYuNjY4IDIzLjg0Ny05Mi42NzNsLjc1My0xLjE4Mi0uNTM4LS41MzJhNDEuOTg3IDQ2LjEgMCAwIDEtNi45OTgtMTEuMjNsLS41MzgtMS4xODJjLTE3LjYwMi00Mi41NTQtMzguNDM0LTY4LjIwNS02MS45MDQtNzkuMzE3bC0xLjYxNS0uNzY4LTEuODg0LS43MS0xLjYxNS0uNTktLjgwOC0uMjk2LTEuNzc2LS41OS0xLjgzLS41OTItMS45OTItLjQ3My0yLjA0NS0uNTktMi4xNTQtLjUzMy0zLjQ5OS0uNzY4LTMuNjYtLjgyNy0zLjkzLS43MS00LjE5OC0uNzY4LTQuMzYtLjcxLTQuNjMtLjcwOS00Ljg0NS0uNjUtMy4zOS0uNDczLTYuOTk5LS44ODYtNy40MjgtLjgyOC03Ljg2LS43NjgtNi4xMzYtLjU5LTQuMTk5LS4zNTUtOC43NzQtLjcxLTYuNzgzLS40NzMtOS40Mi0uNjUtOS44NS0uNTktNy42NDUtLjQxNC0xMy4xODgtLjY1LTEwLjk4MS0uNDczLTE0LjI2NS0uNTkxLTExLjg0My0uMzU1eiIvPjwvc3ZnPg=="); --vbnICON-URL-Markdown-Line: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDI1NjAgMjU2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTIyOS45NzUgNDgwQzEwNS42IDQ4MCAwIDU4MC4yNjggMCA3MDUuMDY3djExNDkuODY1QzAgMTk3OS43MzMgMTA1LjYgMjA4MCAyMjkuOTc1IDIwODBoMjEwMC4wNUMyNDU0LjQgMjA4MCAyNTYwIDE5NzkuNzMzIDI1NjAgMTg1NC45MzNWNzA1LjA2N0MyNTYwIDU4MC4yNjcgMjQ1NC40IDQ4MCAyMzMwLjAyNSA0ODB6bTAgMTYwaDIxMDAuMDVjNDEuMTc1IDAgNjkuOTc1IDMwLjYxMiA2OS45NzUgNjUuMDY3djExNDkuODY1YzAgMzQuNDU2LTI4LjggNjUuMDY4LTY5Ljk3NSA2NS4wNjhIMjI5Ljk3NUMxODguOCAxOTIwIDE2MCAxODg5LjM4OCAxNjAgMTg1NC45MzJWNzA1LjA2N0MxNjAgNjcwLjYxMiAxODguOCA2NDAgMjI5Ljk3NSA2NDBNNDAwIDg4MHY4MDBoMjQwdi01MzIuNDhsMjQwIDMxNy40NCAyNDAtMzE3LjQ0VjE2ODBoMjQwVjg4MGgtMjQwbC0yNDAgMzIwLTI0MC0zMjB6bTEzNjAgMHY0MDBoLTI0MGwzNjAgNDAwIDM2MC00MDBoLTI0MFY4ODB6Ii8+PC9zdmc+"); --vbnICON-URL-Markdown-Fill: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNzQzNzU3Mzg3OTY3IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEyODAgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEyMDE2IiB3aWR0aD0iNjI1IiBoZWlnaHQ9IjUwMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Ik0xMTg3LjcgOTA1Ljg0SDkyLjNDNDEuNCA5MDUuODQgMCA4NjQuNDQgMCA4MTMuNTRWMjEwLjQ2YzAtNTAuOSA0MS40LTkyLjMgOTIuMy05Mi4zaDEwOTUuMzhjNTAuOSAwIDkyLjMgNDEuNCA5Mi4zIDkyLjN2NjAzLjA4YzAuMDIgNTAuOS00MS4zOCA5Mi4zLTkyLjI4IDkyLjN6IG0tODgwLTE4NC42di0yNDBsMTIzLjA4IDE1My44NCAxMjMuMDgtMTUzLjg0djI0MGgxMjMuMDhWMzAyLjc2aC0xMjMuMDhsLTEyMy4wOCAxNTMuODQtMTIzLjA4LTE1My44NEgxODQuNjJ2NDE4LjQ2aDEyMy4wOHpNMTEzMi4zIDUxMmgtMTIzLjA4VjMwMi43NmgtMTIzLjA4VjUxMmgtMTIzLjA4bDE4NC42MiAyMTUuMzhMMTEzMi4zIDUxMnoiIGZpbGw9IiMwMDAwMDAiIHAtaWQ9IjEyMDE3Ij48L3BhdGg+PC9zdmc+"); --vbnICON-URL-Twitter: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMTMzLjc2IDI0MCAyMzAxLjEyIDIwODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPjxwYXRoIGQ9Ik0xOTQ2LjAyNSAyNDBoMzUyLjg1NUwxNTI4IDExMjEuMDY4IDI0MzQuODggMjMyMEgxNzI0LjhsLTU1Ni4xNi03MjcuMTQ4TDUzMi4yNjUgMjMyMEgxNzkuMmw4MjQuNTMzLTk0Mi40TDEzMy43NiAyNDBoNzI4LjEwN2w1MDIuNzIgNjY0LjY0em0tMTIzLjgzNyAxODY4LjhoMTk1LjUyTDc1NS42MjUgNDQwLjEwOEg1NDUuODF6Ii8+PC9zdmc+"); --vbnICON-URL-Dict: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAuMDA1IDEwMjMuOTk2IDEwMjMuODY3IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTkzNC4xODMgMTc5Ljg4Nkg1NjEuMDIybDc4LjAzNyA2MjUuMTA3YTkzLjg3IDkzLjg3IDAgMCAxLTIyLjUyOCA2OC4yNjZsLTEzMS40NTYgMTUwLjYxM0g5MzQuMTRhOTAuMjQgOTAuMjQgMCAwIDAgODkuODU2LTg5Ljk0MVYyNzIuNDcyYTkyLjU4NiA5Mi41ODYgMCAwIDAtODkuNi05MC40NTJ2LTIuMTc2eiIgZmlsbD0iIzMxMzU0MyIgZGF0YS1zcG0tYW5jaG9yLWlkPSJhMzEzeC5zZWFyY2hfaW5kZXguMC5pMjcuM2Y5ODNhODFxa1RqcEkiLz48cGF0aCBkPSJNNDg4LjE0NyA3OS4xNUE5MC40OTYgOTAuNDk2IDAgMCAwIDM5OC4yOTIuMDA1SDkwLjMyNUE5MC4yOCA5MC4yOCAwIDAgMCAwIDkwLjIwMXY2NjguNTQxYTkwLjQ5NiA5MC40OTYgMCAwIDAgOTAuMzI1IDg5Ljk0MWg0NzMuM2M4LjUzMy05LjcyOCAxNi4zODMtMTYuNDI2IDE2LjM4My0yOS4yNjl6IiBmaWxsPSIjNEI4QkY1IiBkYXRhLXNwbS1hbmNob3ItaWQ9ImEzMTN4LnNlYXJjaF9pbmRleC4wLmkyMy4zZjk4M2E4MXFrVGpwSSIvPjxwYXRoIGQ9Im0zNTAuMDc5IDkwNi4yODMgNS4xMiA0MS4xM2E5MC41OCA5MC41OCAwIDAgMCA1MS4yIDY5Ljg4OGwxMDIuNjU1LTExMC45MzNIMzUwLjA3OXoiIGZpbGw9IiMzMTM1NDMiIGRhdGEtc3BtLWFuY2hvci1pZD0iYTMxM3guc2VhcmNoX2luZGV4LjAuaTI4LjNmOTgzYTgxcWtUanBJIi8+PHBhdGggZD0iTTMzMS4wOTIgMjM5LjAyMmEzMC4yMSAzMC4yMSAwIDAgMC0yOS44NjctMjQuMTkyaC02MS45OTRhMjkuMjcgMjkuMjcgMCAwIDAtMjkuMjcgMjQuMTkyTDE0OS44NDYgNTM5LjgyYTMwLjI5MyAzMC4yOTMgMCAxIDAgNTkuMDkzIDExLjc3NmwxOC45NDQtOTYuMTI4aDg0Ljc3OGwxOS40NTYgOTYuMTI4YTMwLjI1IDMwLjI1IDAgMCAwIDM1LjQxMyAyMy42Mzd2LTIuNTZhMzAuOTMgMzAuOTMgMCAwIDAgMjMuNjM3LTMyLjkzOXptLTkxLjg2MSAxNTMuNiAyNC42MTktMTIwLjMyaDEyLjhsMjMuNjM3IDEyMC4zMnptNjk2LjQ4OCA2MC4yNDRoLTkyLjQxNnYtMzAuMjkzYTMwLjI5MyAzMC4yOTMgMCAwIDAtNjAuMDMyIDB2MzAuMjkzaC04OS42YTI5Ljg3IDI5Ljg3IDAgMCAwLTIxLjMzMiA4LjUzNCAzMC4yMDggMzAuMjA4IDAgMCAwIDIxLjMzMyA1MS41ODNoNy42OGEzODguMyAzODguMyAwIDAgMCA3MC4zNTcgMTMxLjU4NGMtMjIuMDU5IDIwLjA1My00My42MDUgMzYuNTIyLTY2Ljc3MyA1NS40NjZhMjkuNCAyOS40IDAgMCAwLTExLjMwNyAyMC4wNTQgMzAuMjA4IDMwLjIwOCAwIDAgMCA0OC43NjggMjYuNjY2YzI1LjIxNi0yMC4wMSA0Ny4yMzItMzYuOTkyIDcxLjM4LTU5LjA5M2E3NjYgNzY2IDAgMCAwIDczLjM0NSA1OS4wOTMgMzAuMDM3IDMwLjAzNyAwIDAgMCAzNy40Ni00Ni45MzNjLTIzLjU5NC0xOS4wMy00Ny4yMzEtMzUuNDk5LTY5LjI5LTU1LjQ2NmEzODIuMyAzODIuMyAwIDAgMCA3MC44Ny0xMzEuNTg0aDguMTkxYTMwLjM4IDMwLjM4IDAgMCAwIDI4Ljg4Ni0xOC40NzQgMjkuMSAyOS4xIDAgMCAwIDIuNDc0LTExLjk5IDI5Ljg2NyAyOS44NjcgMCAwIDAtMjkuODY2LTI5Ljg2Nk04MTQuMjA1IDU5OS41MWEzMTIuMyAzMTIuMyAwIDAgMS01MS4yLTg2LjkxMkg4NjUuNjZhMzI4LjggMzI4LjggMCAwIDEtNTEuMiA4Ni45MTIiIGZpbGw9IiNGRkYiIG9wYWNpdHk9Ii42Ii8+PC9zdmc+"); --vbnICON-URL-AIGC: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjQuMDAwMiA0NUMyNy4yMjA4IDQ1IDMyLjcyNzYgNDAuOCAzMi43Mjc2IDI0QzMyLjcyNzYgNy4yIDI3LjIyMDggMyAyNC4wMDAyIDNDMjAuNzc5NyAzIDE1LjI3MjkgNy40ODMwMiAxNS4yNzI5IDI0QzE1LjI3MjkgNDAuNTE3IDIwLjc3OTcgNDUgMjQuMDAwMiA0NVoiIHN0cm9rZT0iIzFmYWNhZiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUuMTA1MTUgMzUuMDAwMUM2LjcxNTQ1IDM3LjgxMjQgMTMuMjQ3OSA0MC40MjExIDI4LjM2NCAzMS42MjExQzQzLjQ4IDIyLjgyMTEgNDQuNTA1NyAxNS44MTI0IDQyLjg5NTQgMTMuMDAwMUM0MS4yODUxIDEwLjE4NzggMzQuNDk4MSA3LjcyNzI4IDE5LjYzNjcgMTYuMzc5MUM0Ljc3NTIxIDI1LjAzMDggMy40OTQ4OSAzMi4xODc4IDUuMTA1MTUgMzUuMDAwMVoiIHN0cm9rZT0iIzFmYWNhZiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUuMTA1MDYgMTMuMDAwMUMzLjQ5NDggMTUuODEyNCA0LjUyMDQ2IDIyLjgyMTEgMTkuNjM2NiAzMS42MjExQzM0Ljc1MjcgNDAuNDIxMSA0MS4yODUgMzcuODEyNCA0Mi44OTUzIDM1LjAwMDFDNDQuNTA1NiAzMi4xODc4IDQzLjIyNTMgMjUuMDMwOCAyOC4zNjM4IDE2LjM3OTFDMTMuNTAyNCA3LjcyNzI4IDYuNzE1MzcgMTAuMTg3OCA1LjEwNTA2IDEzLjAwMDFaIiBzdHJva2U9IiMxZmFjYWYiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+"); --vbnICON-URL-Character: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwLjA3OSAxMTM4LjM5NiAxMDIzLjkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtc3BtLWFuY2hvci1pZD0iYTMxM3guc2VhcmNoX2luZGV4LjAuaTQzLjNmOTgzYTgxcWtUanBJIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTU2OS4wMTcgODAwLjU3Yy01Ljc5My4xODItMTEuNDA2LTEuMDg2LTE2LjY1Ni0zLjQ0TDIxNC4zNTQgNjU1LjE5NGE0My41MSA0My41MSAwIDAgMS0yNy4xNTYtNDAuMzcyVjQzLjk5M2MwLTE0LjY2NCA3LjI0Mi0yOC40MjMgMTkuMTktMzYuNzUxIDEyLjMxMi04LjE0NyAyNy43LTkuNDE1IDQxLjA5Ny0zLjQ0bDE4NS41NjkgNzguMDNhNDMuNjEzIDQzLjYxMyAwIDEgMS0zMy4zMTIgODAuNTYzbC0xMjUuMS01Mi41MDJ2NDc1LjU5OWwyNTAuMzgyIDEwNS4wMDVWMTg1Ljc1YTQzLjUxIDQzLjUxIDAgMCAxIDI3LjE1Ni00MC4zNzNMODkwLjM2OCAzLjYyMWMxMy41NzgtNS40MzEgMjguNzg1LTQuMTY0IDQxLjA5NiAzLjQ0IDEyLjMxMSA4LjE0NyAxOS41NTMgMjIuMDg3IDE5LjE5IDM2Ljc1MVY2MTQuNjRhNDMuNTEgNDMuNTEgMCAwIDEtMjcuMTU1IDQwLjM3MmwtMTg0Ljg0NSA3Ny4xMjRjLTIxLjkwNiA4LjE0Ny00Ni4zNDctMi43MTUtNTUuNC0yNC4yNi04Ljg3LTIxLjcyNC43MjUtNDYuNTI3IDIyLjA4OC01Ni4zMDRMODYzLjAzIDU4NC45NVYxMDkuNTNMNjEyLjQ2NyAyMTQuNTM2djU0MS4xMzZjMCAxNC42NjQtNy4yNDEgMjguNDI0LTE5LjE5IDM2Ljc1Mi03LjA2IDUuMjUtMTUuNzUxIDcuOTY2LTI0LjQ0MSA3Ljk2NnoiIGZpbGw9IiMzQTgzOUIiIGRhdGEtc3BtLWFuY2hvci1pZD0iYTMxM3guc2VhcmNoX2luZGV4LjAuaTM3LjNmOTgzYTgxcWtUanBJIiBjbGFzcz0ic2VsZWN0ZWQiLz48cGF0aCBkPSJNNTY5LjAxNyAxMDIzLjk3N2MtNS4yNSAwLTEwLjMyLS45MDUtMTUuMjA4LTIuNTM0TDI3LjE1NiA4MTcuNDA4QzEwLjY4MiA4MTAuODkgMCA3OTQuNzc4IDAgNzc2Ljg1NFYyNjUuNTljMC0yMy41MzYgMTkuMDEtNDIuNTQ1IDQyLjU0NS00Mi41NDVTODUuMDkgMjQyLjA1NCA4NS4wOSAyNjUuNTlWNzQ2LjhsNDg0LjEwOCAxODcuNzQyIDQ4NC4xMDgtMTg3Ljc0MVYyOTkuOTg4YzAtMjMuNTM2IDE5LjAxLTQyLjU0NSA0Mi41NDUtNDIuNTQ1czQyLjU0NSAxOS4wMSA0Mi41NDUgNDIuNTQ1djQ3Ni44NjZjMCAxNy43NDItMTAuODYyIDMzLjY3NC0yNy4xNTYgNDAuNTU0bC01MjYuNDcyIDIwNC4wMzVjLTQuODg4IDEuODEtMTAuMTM5IDIuNzE1LTE1LjIwOCAyLjUzNHoiIGZpbGw9IiMzQTgzOUIiIGRhdGEtc3BtLWFuY2hvci1pZD0iYTMxM3guc2VhcmNoX2luZGV4LjAuaTM4LjNmOTgzYTgxcWtUanBJIiBjbGFzcz0ic2VsZWN0ZWQiLz48L3N2Zz4="); --vbnICON-URL-Network: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOCAxMkMxMC4yMDkxIDEyIDEyIDEwLjIwOTEgMTIgOEMxMiA1Ljc5MDg2IDEwLjIwOTEgNCA4IDRDNS43OTA4NiA0IDQgNS43OTA4NiA0IDhDNCAxMC4yMDkxIDUuNzkwODYgMTIgOCAxMloiIGZpbGw9IiMxM0VDOTkiIHN0cm9rZT0iIzJDMkYzNSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDQyQzEzLjMxMzcgNDIgMTYgMzkuMzEzNyAxNiAzNkMxNiAzMi42ODYzIDEzLjMxMzcgMzAgMTAgMzBDNi42ODYyOSAzMCA0IDMyLjY4NjMgNCAzNkM0IDM5LjMxMzcgNi42ODYyOSA0MiAxMCA0MloiIGZpbGw9IiMxM0VDOTkiIHN0cm9rZT0iIzJDMkYzNSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM4IDQ0QzQxLjMxMzcgNDQgNDQgNDEuMzEzNyA0NCAzOEM0NCAzNC42ODYzIDQxLjMxMzcgMzIgMzggMzJDMzQuNjg2MyAzMiAzMiAzNC42ODYzIDMyIDM4QzMyIDQxLjMxMzcgMzQuNjg2MyA0NCAzOCA0NFoiIGZpbGw9IiMxM0VDOTkiIHN0cm9rZT0iIzJDMkYzNSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIyIDI4QzI2LjQxODMgMjggMzAgMjQuNDE4MyAzMCAyMEMzMCAxNS41ODE3IDI2LjQxODMgMTIgMjIgMTJDMTcuNTgxNyAxMiAxNCAxNS41ODE3IDE0IDIwQzE0IDI0LjQxODMgMTcuNTgxNyAyOCAyMiAyOFoiIGZpbGw9IiMxM0VDOTkiIHN0cm9rZT0iIzJDMkYzNSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM0IDEyQzM2LjIwOTEgMTIgMzggMTAuMjA5MSAzOCA4QzM4IDUuNzkwODYgMzYuMjA5MSA0IDM0IDRDMzEuNzkwOSA0IDMwIDUuNzkwODYgMzAgOEMzMCAxMC4yMDkxIDMxLjc5MDkgMTIgMzQgMTJaIiBmaWxsPSIjMTNFQzk5IiBzdHJva2U9IiMyQzJGMzUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTExIDExTDE1IDE1IiBzdHJva2U9IiMyQzJGMzUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTMwIDEyTDI4IDE0IiBzdHJva2U9IiMyQzJGMzUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTM0IDMzLjVMMjggMjYiIHN0cm9rZT0iIzJDMkYzNSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBkPSJNMTQgMzFMMTggMjciIHN0cm9rZT0iIzJDMkYzNSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4="); --vbnICON-URL-SVG: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiB2aWV3Qm94PSIwIDAgNjAwIDYwMCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE5My43NSAxMTIuNSA4Ny41IDE3NXYyNTBsMTA2LjI1IDYyLjVMMzAwIDU1MGwxMDYuMjUtNjIuNUw1MTIuNSA0MjVWMTc1bC0xMDYuMjUtNjIuNUwzMDAgNTB6TTMwMCA1MHYyNTBtMjEyLjUgMTI1TDMwMCAzMDBNODcuNSA0MjUgMzAwIDMwMG0wIDI1MFY0MjVtMjEyLjUtMjUwLTEwMCA2Mi41TTg3LjUgMTc1bDEwMCA2Mi41IiBzdHJva2U9IiMwOEUwQUQiIHN0cm9rZS13aWR0aD0iNTAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg=="); --vbnICON-URL-Mecha: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00MSAxMy45OTk3TDI0IDRMNyAxMy45OTk3VjMzLjk5OThMMjQgNDRMNDEgMzMuOTk5OFYxMy45OTk3WiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSIjMzMzIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBkPSJNMTYgMTguOTk3NkwyMy45OTMyIDI0LjAwMDJMMzEuOTk1MSAxOC45OTc2IiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTI0IDI0VjMzIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+"); --vbnICON-URL-Music: url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMjQyLjUgNjI0LjUgMjA3NC43NSAxMzExLjI1IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIj48cGF0aCBkPSJNNDg3LjI1IDE5MzUuNzVIMjA3Mi41YzEzNC43NSAwIDI0NC43NS0xMTAuMjUgMjQ0Ljc1LTI0NC43NVY4NjkuMjVjMC0xMzQuNzUtMTEwLjI1LTI0NC43NS0yNDQuNzUtMjQ0Ljc1SDQ4Ny4yNWMtMTM0Ljc1IDAtMjQ0Ljc1IDExMC4yNS0yNDQuNzUgMjQ0Ljc1VjE2OTFjMCAxMzQuNSAxMTAuMjUgMjQ0Ljc1IDI0NC43NSAyNDQuNzUiIGZpbGw9IiMyNDIyMkQiLz48cGF0aCBkPSJNNDgzLjc1IDE5MzUuNzVIMjA2OWMxMy43NSAwIDI3LjUtMSA0MC43NS0yLjc1LTQxLTEyNy41LTE1Ny41LTIxOS41LTM0Mi0yMTkuNUg4NTEuNWMtMTg0Ljc1IDAtMzQzIDkyLjI1LTQwMS4yNSAyMjAuMjUgMTEgMS4yNSAyMi4yNSAyIDMzLjUgMm0zLjUtMzc5SDIwNzIuNWM2NS4yNSAwIDExOS01My43NSAxMTktMTE5di01NjguNWMwLTY1LjI1LTUzLjc1LTExOS0xMTktMTE5SDQ4Ny4yNWMtNjUuMjUgMC0xMTkgNTMuNzUtMTE5IDExOVYxNDM4Yy4yNSA2NSA1NCAxMTguNzUgMTE5IDExOC43NSIgZmlsbD0iI0Y2NiIvPjxwYXRoIGQ9Ik04NTEuNSAxMDQxLjVoODU3Yzk3LjI1IDAgMTc2Ljc1IDc5LjUgMTc2Ljc1IDE3Ni43NXMtNzkuNSAxNzYuNS0xNzYuNzUgMTc2LjVoLTg1N2MtOTcuMjUgMC0xNzYuNS03OS41LTE3Ni41LTE3Ni41IDAtOTcuMjUgNzkuNS0xNzYuNzUgMTc2LjUtMTc2Ljc1IiBmaWxsPSIjMjQyMjJEIi8+PHBhdGggZD0iTTE3MDguNSAxMDk2YzY3LjUgMCAxMjIgNTQuNzUgMTIyIDEyMiAwIDY3LjUtNTQuNzUgMTIyLTEyMiAxMjItNjcuNSAwLTEyMi01NC43NS0xMjItMTIyIDAtNjcuNSA1NC41LTEyMiAxMjItMTIybS04NTcgMGM2Ny41IDAgMTIyIDU0Ljc1IDEyMiAxMjIgMCA2Ny41LTU0Ljc1IDEyMi0xMjIgMTIyLTY3LjUgMC0xMjItNTQuNzUtMTIyLTEyMiAwLTY3LjUgNTQuNzUtMTIyIDEyMi0xMjJNNDczLjI1IDgxMWMyNCAwIDQzLjUgMTkuNSA0My41IDQzLjVzLTE5LjUgNDMuNS00My41IDQzLjUtNDMuNS0xOS41LTQzLjUtNDMuNSAxOS41LTQzLjUgNDMuNS00My41bTE2MTMuNS0yLjc1YzI0IDAgNDMuNSAxOS41IDQzLjUgNDMuNXMtMTkuNSA0My41LTQzLjUgNDMuNS00My41LTE5LjUtNDMuNS00My41IDE5LjUtNDMuNSA0My41LTQzLjVtNzcuNSA5MDUuMjVjMjYuMjUgMCA0Ny43NSAyMS41IDQ3Ljc1IDQ3Ljc1cy0yMS4yNSA0Ny43NS00Ny43NSA0Ny43NWMtMjYuMjUgMC00Ny43NS0yMS41LTQ3Ljc1LTQ3Ljc1czIxLjI1LTQ3Ljc1IDQ3Ljc1LTQ3Ljc1bS0xNzY4LjUgMGMyNi4yNSAwIDQ3Ljc1IDIxLjUgNDcuNzUgNDcuNzVTNDIyLjI1IDE4MDkgMzk1Ljc1IDE4MDljLTI2LjI1IDAtNDcuNzUtMjEuNS00Ny43NS00Ny43NS4yNS0yNi4yNSAyMS41LTQ3Ljc1IDQ3Ljc1LTQ3Ljc1IiBmaWxsPSIjRkZGIi8+PC9zdmc+"); --vbnICON-URL-VideoPlay: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9InZpZGVvUGxheSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTAwIDUwMCIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPjxwYXRoIGQ9Ik0yNTAgMGM3Ny42OS43IDE0NCAyMC4xOSAxODYuNTUgNjMuNDVDNDc5LjgxIDEwNS45OSA0OTkuMyAxNzIuMzEgNTAwIDI1MGMtLjcgNzcuNjktMjAuMTkgMTQ0LTYzLjQ1IDE4Ni41NUMzOTQgNDc5LjgxIDMyNy42OSA0OTkuMyAyNTAgNTAwYy03Ny42OS0uNy0xNDQtMjAuMTktMTg2LjU1LTYzLjQ1QzIwLjE5IDM5NCAuNyAzMjcuNjkgMCAyNTBjLjctNzcuNjkgMjAuMTktMTQ0IDYzLjQ1LTE4Ni41NUMxMDYgMjAuMTkgMTcyLjMxLjcgMjUwIDAiIGZpbGw9IiM1MzVkZjciLz48cGF0aCBkPSJNMTkwLjk3IDE3OC4zMmMzLjE5LTIxLjY5IDE4LjgzLTM1LjAxIDM1LjczLTI0LjE1IDI5LjkxIDE5LjAyIDY0LjkyIDQ3LjI4IDEwMC4xIDcxLjg2IDIwLjU3IDE0LjQxIDIwLjU3IDMzLjU0IDAgNDcuOTUtMzUuMTggMjQuNTgtNzAuMTkgNTIuODMtMTAwLjEgNzEuODYtMTYuOTEgMTAuODYtMzIuNTQtMi40Ny0zNS43My0yNC4xNWE1ODYuNyA1ODYuNyAwIDAgMSAwLTE0My4zNiIgZmlsbD0iI2ZmZiIgb3BhY2l0eT0iLjgiLz48L3N2Zz4="); --vbnICON-URL-VideoStop: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9InZpZGVvU3RvcCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTAwIDUwMCIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPjxwYXRoIGQ9Ik0yNTAgMGM3Ny42OS43IDE0NCAyMC4xOSAxODYuNTUgNjMuNDVDNDc5LjgxIDEwNS45OSA0OTkuMyAxNzIuMzEgNTAwIDI1MGMtLjcgNzcuNjktMjAuMTkgMTQ0LTYzLjQ1IDE4Ni41NUMzOTQgNDc5LjgxIDMyNy42OSA0OTkuMyAyNTAgNTAwYy03Ny42OS0uNy0xNDQtMjAuMTktMTg2LjU1LTYzLjQ1QzIwLjE5IDM5NCAuNyAzMjcuNjkgMCAyNTBjLjctNzcuNjkgMjAuMTktMTQ0IDYzLjQ1LTE4Ni41NUMxMDYgMjAuMTkgMTcyLjMxLjcgMjUwIDAiIGZpbGw9IiNmZjZiNmIiLz48cGF0aCBkPSJNMjQyLjMxIDM0Ni4xOGMtNTguOTkgMC04OC40OC0yOS40OS04OC40OC04OC40OHYtMTUuMzljMC01OC45OSAyOS40OS04OC40OCA4OC40OC04OC40OGgxNS4zOWM1OC45OSAwIDg4LjQ4IDI5LjQ5IDg4LjQ4IDg4LjQ4djE1LjM5YzAgNTguOTktMjkuNDkgODguNDgtODguNDggODguNDh6IiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuOCIvPjwvc3ZnPg=="); --vbnICON-URL-Correct: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iQ29ycmVjdCIgdmlld0JveD0iMCAwIDUwMCA1MDAiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIj48cGF0aCBkPSJNMjUwIDBjNzcuNjkuNyAxNDQgMjAuMTkgMTg2LjU1IDYzLjQ1QzQ3OS44MSAxMDUuOTkgNDk5LjMgMTcyLjMxIDUwMCAyNTBjLS43IDc3LjY5LTIwLjE5IDE0NC02My40NSAxODYuNTVDMzk0IDQ3OS44MSAzMjcuNjkgNDk5LjMgMjUwIDUwMGMtNzcuNjktLjctMTQ0LTIwLjE5LTE4Ni41NS02My40NUMyMC4xOSAzOTQgLjcgMzI3LjY5IDAgMjUwYy43LTc3LjY5IDIwLjE5LTE0NCA2My40NS0xODYuNTVDMTA2IDIwLjE5IDE3Mi4zMS43IDI1MCAwIiBmaWxsPSIjMWZlNDdlIi8+PHBhdGggZD0iTTIyNy4xMzEgMzQ4LjM3M2EyMy45OCAyMy45OCAwIDAgMS0xNy4wMDYtNy4wNGwtODMuMTI3LTgzLjEyN2MtOS4zOTQtOS4zOTQtOS4zOTQtMjQuNjE4IDAtMzQuMDAxIDkuMzk0LTkuMzk0IDI0LjYxOC05LjM5NCAzNC4wMDEgMGw2Ni4xMzIgNjYuMTMyTDM1NC4zOSAxNjMuMDc4YzkuMzk0LTkuMzk0IDI0LjYxOC05LjM5NCAzNC4wMDEgMCA5LjM5NCA5LjM5NCA5LjM5NCAyNC42MTggMCAzNC4wMDFMMjQ0LjEyNiAzNDEuMzQ0Yy00LjY5NyA0LjY5Ny0xMC44NDYgNy4wNC0xNy4wMDYgNy4wNFoiIGZpbGw9IiNmZmYiIG9wYWNpdHk9Ii44Ii8+PC9zdmc+"); --vbnICON-URL-Error: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iRXJyb3IiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+PHBhdGggZD0iTTI1MCAwYzc3LjY5LjcgMTQ0IDIwLjE5IDE4Ni41NSA2My40NUM0NzkuODEgMTA1Ljk5IDQ5OS4zIDE3Mi4zMSA1MDAgMjUwYy0uNyA3Ny42OS0yMC4xOSAxNDQtNjMuNDUgMTg2LjU1QzM5NCA0NzkuODEgMzI3LjY5IDQ5OS4zIDI1MCA1MDBjLTc3LjY5LS43LTE0NC0yMC4xOS0xODYuNTUtNjMuNDVDMjAuMTkgMzk0IC43IDMyNy42OSAwIDI1MGMuNy03Ny42OSAyMC4xOS0xNDQgNjMuNDUtMTg2LjU1QzEwNiAyMC4xOSAxNzIuMzEuNyAyNTAgMCIgZmlsbD0iI2ZmNzE0ZCIvPjxwYXRoIGQ9Ik0zNDcuNDI3IDMxMi42MzQgMjg0Ljc5MyAyNTBsNjIuNjIzLTYyLjYyM2M5LjYxNC05LjYwMyA5LjYxNC0yNS4xOSAwLTM0Ljc5My05LjYxNC05LjYxNC0yNS4xOS05LjYxNC0zNC43OTMgMEwyNTAgMjE1LjIwN2wtNjIuNjIzLTYyLjYyM2MtOS42MTQtOS42MTQtMjUuMTktOS42MTQtMzQuNzkzIDAtOS42MTQgOS42MDMtOS42MTQgMjUuMTkgMCAzNC43OTNMMjE1LjIwNyAyNTBsLTYyLjYzNCA2Mi42MzRjLTkuNjE0IDkuNjAzLTkuNjE0IDI1LjE5IDAgMzQuNzkzIDQuODA3IDQuODA3IDExLjA5OSA3LjIwNSAxNy40MDIgNy4yMDVzMTIuNTk1LTIuMzk4IDE3LjQwMi03LjIwNWw2Mi42MzQtNjIuNjM0IDYyLjYzNCA2Mi42MzRjNC44MDcgNC44MDcgMTEuMDk5IDcuMjA1IDE3LjQwMiA3LjIwNXMxMi41OTUtMi4zOTggMTcuNDAyLTcuMjA1YzkuNjE0LTkuNjAzIDkuNjE0LTI1LjE5IDAtMzQuNzkzWiIgZmlsbD0iI2ZmZiIgb3BhY2l0eT0iLjgiLz48L3N2Zz4="); --vbnICON-URL-Transition: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iVHJhbnNpdGlvbiIgdmlld0JveD0iMCAwIDUwMCA1MDAiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIj4KICA8cGF0aCBkPSJNMjUwIDBjNzcuNjkuNyAxNDQgMjAuMTkgMTg2LjU1IDYzLjQ1QzQ3OS44MSAxMDUuOTkgNDk5LjMgMTcyLjMxIDUwMCAyNTBjLS43IDc3LjY5LTIwLjE5IDE0NC02My40NSAxODYuNTVDMzk0IDQ3OS44MSAzMjcuNjkgNDk5LjMgMjUwIDUwMGMtNzcuNjktLjctMTQ0LTIwLjE5LTE4Ni41NS02My40NUMyMC4xOSAzOTQgLjcgMzI3LjY5IDAgMjUwYy43LTc3LjY5IDIwLjE5LTE0NCA2My40NS0xODYuNTVDMTA2IDIwLjE5IDE3Mi4zMS43IDI1MCAwIiBmaWxsPSIjNzM3ZGY0Ii8+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUwIDI1MCkgc2NhbGUoMS4zKSB0cmFuc2xhdGUoLTI1MCAtMjUwKSI+CiAgICA8cGF0aCBkPSJNMjUwIDE0Ni42M2MyMi4yOSAwIDQzLjUgNi45OCA2MS4zNyAyMC4xOCAzLjExLTYuOTggMTAuMS0xMS44NCAxOC4yMy0xMS44NCAxMS4wMiAwIDE5Ljk1IDguOTMgMTkuOTUgMTkuOTV2NTAuMDVjMCA5Ljg1LTcuMTkgMTguMjItMTYuOTIgMTkuNzItOS43MyAxLjQ5LTE5LjEtNC4zNC0yMi4wNS0xMy43NC04LjM1LTI2LjU3LTMyLjY5LTQ0LjQzLTYwLjU3LTQ0LjQzcy01Mi4yMyAxNy44NS02MC41NyA0NC40M2MtMy4zIDEwLjUxLTE0LjUgMTYuMzUtMjUuMDEgMTMuMDVzLTE2LjM1LTE0LjUtMTMuMDUtMjUuMDFjNi41NS0yMC44NCAxOS4zLTM4Ljc5IDM2Ljg5LTUxLjkgMTcuOTUtMTMuMzkgMzkuMy0yMC40NiA2MS43NS0yMC40NlptNzkuNiAxMDguNDVjMS45OCAwIDMuOTkuMyA1Ljk4LjkyIDEwLjUxIDMuMyAxNi4zNSAxNC41IDEzLjA1IDI1LjAxLTYuNTUgMjAuODQtMTkuMyAzOC43OS0zNi44OSA1MS45LTE3Ljk1IDEzLjM5LTM5LjMgMjAuNDYtNjEuNzUgMjAuNDZzLTQzLjUtNi45OC02MS4zNy0yMC4xOGMtMy4xMSA2Ljk4LTEwLjEgMTEuODQtMTguMjMgMTEuODQtMTEuMDIgMC0xOS45NS04LjkzLTE5Ljk1LTE5Ljk1di01MC4wNWMwLTkuODUgNy4xOS0xOC4yMiAxNi45Mi0xOS43MiA5Ljc0LTEuNDkgMTkuMSA0LjM0IDIyLjA1IDEzLjc0IDguMzUgMjYuNTcgMzIuNjkgNDQuNDMgNjAuNTcgNDQuNDNzNTIuMjMtMTcuODUgNjAuNTctNDQuNDNjMi42OC04LjUyIDEwLjU0LTEzLjk3IDE5LjAyLTEzLjk3WiIgZmlsbD0iI2Y1ZjRmZiIgb3BhY2l0eT0iLjgiLz4KICA8L2c+Cjwvc3ZnPgo="); --vbnICON-URL-Info: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iSW5mbyIgdmlld0JveD0iMCAwIDUwMCA1MDAiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIj48cGF0aCBkPSJNMjUwIDBjNzcuNjkuNyAxNDQgMjAuMTkgMTg2LjU1IDYzLjQ1QzQ3OS44MSAxMDUuOTkgNDk5LjMgMTcyLjMxIDUwMCAyNTBjLS43IDc3LjY5LTIwLjE5IDE0NC02My40NSAxODYuNTVDMzk0IDQ3OS44MSAzMjcuNjkgNDk5LjMgMjUwIDUwMGMtNzcuNjktLjctMTQ0LTIwLjE5LTE4Ni41NS02My40NUMyMC4xOSAzOTQgLjcgMzI3LjY5IDAgMjUwYy43LTc3LjY5IDIwLjE5LTE0NCA2My40NS0xODYuNTVDMTA2IDIwLjE5IDE3Mi4zMS43IDI1MCAwIiBmaWxsPSIjM2Q5NmE2Ii8+PHBhdGggZD0iTTI0Ny4wMDggMTA5LjIxMmMxNi4xMjggMCAyOS4xOTYgMTMuMDY4IDI5LjE5NiAyOS4xOTZzLTEzLjA2OCAyOS4xOTYtMjkuMTk2IDI5LjE5Ni0yOS4xOTYtMTMuMDY4LTI5LjE5Ni0yOS4xOTYgMTMuMDY4LTI5LjE5NiAyOS4xOTYtMjkuMTk2bTQ0LjcxMiAyMzIuMjk2aC0xNS40OFYyMDguNjhjMC0xMy4wNTYtMTAuNTg0LTIzLjY0LTIzLjY0LTIzLjY0aC0yMi4zNTZjLTEzLjA1NiAwLTIzLjY0IDEwLjU4NC0yMy42NCAyMy42NHM5LjkgMjIuOTMyIDIyLjM1NiAyMy42MDR2MTA5LjIyNGgtMTUuNDhjLTEzLjA1NiAwLTIzLjY0IDEwLjU4NC0yMy42NCAyMy42NHMxMC41ODQgMjMuNjQgMjMuNjQgMjMuNjRoNzguMjI4YzEzLjA1NiAwIDIzLjY0LTEwLjU4NCAyMy42NC0yMy42NHMtMTAuNTg0LTIzLjY0LTIzLjY0LTIzLjY0WiIgZmlsbD0iI2ZmZiIgb3BhY2l0eT0iLjgiLz48L3N2Zz4="); --vbnICON-URL-Safety: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iU2FmZXR5IiB2aWV3Qm94PSIwIDAgNTAwIDUwMCIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiPgogIDxwYXRoIGQ9Ik0yNTAgMGM3Ny42OS43IDE0NCAyMC4xOSAxODYuNTUgNjMuNDVDNDc5LjgxIDEwNS45OSA0OTkuMyAxNzIuMzEgNTAwIDI1MGMtLjcgNzcuNjktMjAuMTkgMTQ0LTYzLjQ1IDE4Ni41NUMzOTQgNDc5LjgxIDMyNy42OSA0OTkuMyAyNTAgNTAwYy03Ny42OS0uNy0xNDQtMjAuMTktMTg2LjU1LTYzLjQ1QzIwLjE5IDM5NCAuNyAzMjcuNjkgMCAyNTBjLjctNzcuNjkgMjAuMTktMTQ0IDYzLjQ1LTE4Ni41NUMxMDYgMjAuMTkgMTcyLjMxLjcgMjUwIDAiIGZpbGw9IiMzZDk2YTYiLz4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNTAgMjUwKSBzY2FsZSgxLjMpIHRyYW5zbGF0ZSgtMjUwIC0yNTApIj4KICA8cGF0aCBkPSJtMzMyLjY2IDE2NC4zOS03My41My0yMS43NWgtLjAzYTMyLjI0IDMyLjI0IDAgMCAwLTE4LjExIDBoLS4wM2wtNzMuNjIgMjEuNzZjLTguNTQgMi41MS0xNC41MSAxMC40Ny0xNC41MSAxOS4zOHY0NC40OWMwIDI4LjM2IDguNTkgNTUuNjMgMjQuODUgNzguODcgMTYuMjMgMjMuMTkgMzguODQgNDAuNTkgNjUuNCA1MC4zMmEyMC4yIDIwLjIgMCAwIDAgMTMuODggMGMyNi41NS05LjczIDQ5LjE2LTI3LjEzIDY1LjM4LTUwLjMyIDE2LjI1LTIzLjIzIDI0Ljg0LTUwLjUgMjQuODQtNzguODV2LTQ0LjUxYzAtOC45MS01Ljk2LTE2Ljg3LTE0LjUxLTE5LjM4Wm0tMTkuNTkgNTcuODgtNjMuMjggNjMuMjhjLTIuMDYgMi4wNi00Ljc2IDMuMDktNy40NiAzLjA5cy01LjQtMS4wMy03LjQ2LTMuMDlsLTM2LjQ2LTM2LjQ2Yy00LjEyLTQuMTItNC4xMi0xMC44IDAtMTQuOTEgNC4xMi00LjEyIDEwLjgtNC4xMiAxNC45MSAwbDI5LjAxIDI5LjAxIDU1LjgyLTU1LjgyYzQuMTItNC4xMiAxMC44LTQuMTIgMTQuOTEgMCA0LjEyIDQuMTIgNC4xMiAxMC44IDAgMTQuOTFaIiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuOCIvPgogIDwvZz4KPC9zdmc+Cg=="); } .vbnThemeDark { --vbnAccentHEX: #4C525E; --vbnAccentHSL: 220, 011%, 033%; --vbnAccentHSL-H: 220; --vbnAccentHSL-S: 11%; --vbnAccentHSL-L: 33%; --vbnAccentAltXXX: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 000%), calc(var(--vbnAccentHSL-L) - 000%); --vbnAccentPickXX: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 002%), calc(var(--vbnAccentHSL-L) - 010%); --vbnAccentBorder: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 000%), calc(var(--vbnAccentHSL-L) + 020%); --vbnAccentShadow: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 000%), calc(var(--vbnAccentHSL-L) - 000%); --vbnSecondaryHEX: #2D3139; --vbnSecondaryHSL: 220, 012%, 020%; --vbnSecondaryHSL-H: 220; --vbnSecondaryHSL-S: 12%; --vbnSecondaryHSL-L: 20%; --vbnSecondaryAltXXX: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) - 000%); --vbnSecondaryPickXX: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) - 010%); --vbnSecondaryBorder: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) + 020%); --vbnSecondaryShadow: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) - 000%); --vbnPrimaryHEX: #1D1E20; --vbnPrimaryHSL: 220, 005%, 012%; --vbnPrimaryHSL-H: 220; --vbnPrimaryHSL-S: 05%; --vbnPrimaryHSL-L: 12%; --vbnPrimaryAltXXX: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) - 000%); --vbnPrimaryPickXX: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) - 010%); --vbnPrimaryBorder: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) + 020%); --vbnPrimaryShadow: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) - 010%); --vbnGrid-S: hsla(0, 0%, 50%, 0.07); --vbnGrid-L: hsla(0, 0%, 50%, 0.09); } .vbnThemeLight { --vbnAccentHEX: #75839F; --vbnAccentHSL: 220, 018%, 054%; --vbnAccentHSL-H: 220; --vbnAccentHSL-S: 18%; --vbnAccentHSL-L: 54%; --vbnAccentAltXXX: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 000%), calc(var(--vbnAccentHSL-L) - 000%); --vbnAccentPickXX: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 002%), calc(var(--vbnAccentHSL-L) - 010%); --vbnAccentBorder: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 000%), calc(var(--vbnAccentHSL-L) + 020%); --vbnAccentShadow: var(--vbnAccentHSL-H), calc(var(--vbnAccentHSL-S) - 000%), calc(var(--vbnAccentHSL-L) - 000%); --vbnSecondaryHEX: #454A54; --vbnSecondaryHSL: 220, 010%, 030%; --vbnSecondaryHSL-H: 220; --vbnSecondaryHSL-S: 10%; --vbnSecondaryHSL-L: 30%; --vbnSecondaryAltXXX: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) - 000%); --vbnSecondaryPickXX: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) - 010%); --vbnSecondaryBorder: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) + 020%); --vbnSecondaryShadow: var(--vbnSecondaryHSL-H), calc(var(--vbnSecondaryHSL-S) - 000%), calc(var(--vbnSecondaryHSL-L) - 000%); --vbnPrimaryHEX: #2C2F35; --vbnPrimaryHSL: 220, 009%, 019%; --vbnPrimaryHSL-H: 220; --vbnPrimaryHSL-S: 09%; --vbnPrimaryHSL-L: 19%; --vbnPrimaryAltXXX: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) - 000%); --vbnPrimaryPickXX: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) - 010%); --vbnPrimaryBorder: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) + 020%); --vbnPrimaryShadow: var(--vbnPrimaryHSL-H), calc(var(--vbnPrimaryHSL-S) - 000%), calc(var(--vbnPrimaryHSL-L) - 010%); --vbnGrid-S: hsla(0, 0%, 50%, 0.05); --vbnGrid-L: hsla(0, 0%, 50%, 0.07); } #vbnDOM { z-index: var(--vbnPriority09); pointer-events: none; padding: 0; margin: 0; font-size: var(--vbnBaseSize); } #vbnDOM, #vbnDOM *, #vbnDOM ::before, #vbnDOM ::after { box-sizing: border-box; outline: none; } /* ================================================== ↓ VBN */ /* ========== ↓ Animation */ @keyframes vbnSlideIn { 000% { transform: scale(0.00); opacity: 0; } 020% { transform: scale(0.40); opacity: 0.5; } 030% { transform: scale(0.80); opacity: 1.0; } 085% { transform: scale(1.03); opacity: 1.0; } 100% { transform: scale(1.00); opacity: 1.0; } } @keyframes vbnSlideOut { 000% { transform: translateX(-200%) scale(0.90); opacity: 0; } 020% { transform: translateX(010px) scale(1.02); opacity: 1; } 030% { transform: translateX(000px) scale(1.00); opacity: 1; } 085% { transform: translateX(000px) scale(1.00); opacity: 1; } 100% { transform: translateX(-100%) scale(0.95); opacity: 0; } } @keyframes vbnLoaderUnknown { 000% { left: -10%; width: 10%; } 020% { left: 010%; width: 30%; } 040% { left: 040%; width: 50%; } 060% { left: 070%; width: 30%; } 100% { left: 100%; width: 10%; } } /* ========== ↓ LoaderBar */ #vbnLoaderBar { opacity: .92; z-index: var(--vbnPriority09); position: fixed; top: 0; left: 0; width: 0%; height: 2px; background: linear-gradient( 90deg, hsla(var(--vbnGlow05HSL), 1), hsla(var(--vbnGlow05HSL), 1), hsla(var(--vbnGlow03HSL), 1)); box-shadow: 0 2px 05px 0px hsla(var(--vbnGlow05HSL), .6), 0 2px 15px 0px hsla(var(--vbnGlow05HSL), .6), 0 2px 25px 2px hsla(var(--vbnGlow03HSL), .6); border-radius: 100vmax; will-change: left, width; transition: width .4s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity .26s ease-out; } #vbnLoaderBar[data-state="loading"] { animation: vbnLoaderUnknown 2.4s infinite cubic-bezier(0.4, 0.0, 0.6, 1); } /* ========== ↓ Panel */ #vbnOptionsPanel { --vbnHeightHead: 35px; --vbnHeightRow: 32px; --vbnRowPadding: 15px; --vbnGap: 12px; } .vbnPanelBase { pointer-events: auto; opacity: 0; will-change: opacity, transform; padding: 20px; border: var(--vbnOftenPanelBorderBase); font-family: var(--vbnBaseFont); color: var(--vbnBase06HEX); background: hsla(var(--vbnBase00HSL-H), 60%, 6%, .8); box-shadow: var(--vbnSurfaceShadow) hsla(var(--vbnAccentShadow), .8); border-radius: var(--vbnSurfaceRadius); backdrop-filter: var(--vbnPanelFilter); transition: all .526s var(--vbnTransitionElastic), opacity .26s ease; } .vbnPanelBase.show { opacity: 1; transform: translate(0, -50%); } .vbnPanelBase.hide { opacity: 0; transform: translate(120%, -50%); } .vbnOptionBase { z-index: var(--vbnPriority09); overflow-y: auto; display: flex; flex-direction: column; gap: var(--vbnGap); width: calc(260px + 40px); } .vbnFixed { position: fixed; top: 50%; right: var(--vbnSpaceAxialX); transform: translate(120%, -50%); } .vbnRelative { position: relative; top: 20px; right: 20px; } .vbnOptionBase h2 { margin-top: 0; margin: calc(var(--vbnGap) / 2) 0 calc(var(--vbnGap) / 2 + 5px) 0; color: var(--vbnGlow04HEX); font-size: 1.7em; font-weight: var(--vbnTitleWeight); text-align: center; text-shadow: 0 0 5px var(--vbnGlow04HEX); } .vbnPanelGroup { display: flex; flex-direction: column; gap: 0; width: 100%; } /* ========== ↓ 功能模块 > 子功能样式 */ .vbnBodyRow, .vbnPanelGroup.Sub .vbnHeaderRow { font-size: .82em; font-weight: normal; } .vbnBodyRow, .vbnPanelGroup.Sub .vbnHeaderRow, .vbnPanelGroup.Sub .vbnFoldBox { height: var(--vbnHeightRow); background: hsla(var(--vbnBase00HSL), .4); transition: background-color .26s, opacity 0.26s; } .vbnBodyRow:hover, .vbnPanelGroup.Sub .vbnHeaderRow:hover { background: hsla(var(--vbnBase00HSL), .8); } .vbnPanelGroup.Sub { vbn { top: var(); } .vbnGroupBody { margin: 0 0 0 calc(var(--vbnGap) - 2px); } .vbnFoldBox { opacity: .4; width: calc(var(--vbnHeightRow) - 5px); color: hsla(var(--vbnBase00HSL), .8); background: transparent; box-shadow: none; margin: 0 0 0 calc(var(--vbnGap) - 28px); } .vbnHeaderRow { padding: 9px var(--vbnRowPadding); } .vbnHeaderRow, .vbnFoldBox { border-radius: var(--vbnUIRadius); box-shadow: 0 10px 20px hsla(var(--vbnBase00HSL), .2); } } /* ========== ↓ Header */ .vbnGroupHeader { display: flex; align-items: center; width: 100%; } .vbnHeaderRow, .vbnFoldBox { background: hsla(var(--vbnBase00HSL), .6); box-shadow: 0 10px 20px hsla(var(--vbnBase00HSL), .4); transition: background-color .26s; } .vbnHeaderRow:hover, .vbnFoldBox:hover { background: hsla(var(--vbnBase00HSL), .8); } .vbnHeaderRow { cursor: pointer; padding: 5px var(--vbnRowPadding) 5px 5px; height: var(--vbnHeightHead); display: flex; flex: 1 1 auto; align-items: center; justify-content: flex-start; gap: 0; font-size: .85em; font-weight: var(--vbnTitleWeight); border-radius: 0 var(--vbnUIRadius) var(--vbnUIRadius) 0; } .vbnHeaderRow > span { flex-grow: 0; margin-right: auto; user-select: none; } .vbnFoldBox { cursor: pointer; flex: 0 0 auto; width: calc(var(--vbnHeightHead) - 5px); height: var(--vbnHeightHead); font-size: 18px; user-select: none; transition: transform 0.4s ease; display: flex; align-items: center; justify-content: center; border-radius: var(--vbnUIRadius) 0 0 var(--vbnUIRadius); } .vbnArrow { margin: -1px -4px 0 0; font-size: 16px; transform: rotate(0deg); transition: transform .4s ease; } .vbnArrow.rotated { transform: rotate(90deg); } /* ========== ↓ Body */ .vbnGroupBody { display: flex; flex-direction: column; gap: calc(var(--vbnGap) / 2 - 1px); opacity: 1; height: auto; transition: all .526s var(--vbnTransitionSmooth); } .vbnGroupBody.open { overflow: hidden; } .vbnGroupBody.close { overflow: hidden; opacity: 0; height: 0 !important; } .vbnBodyRow { cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 9px var(--vbnRowPadding); margin: 0 0 0 calc(var(--vbnGap) - 2px); border-radius: var(--vbnUIRadius); } .vbnBodyRow:first-of-type { margin: calc(var(--vbnGap) / 2) 0 0 calc(var(--vbnGap) - 2px); } .vbnBodyRow:last-of-type { margin: 0 0 calc(var(--vbnGap) / 4) calc(var(--vbnGap) - 2px); } /* ========== ↓ Other */ .vbnOptionBase input[type="checkbox"] { cursor: pointer; position: relative; appearance: none; width: .6em; height: .6em; margin: 0; background: var(--vbnBase04HEX); border: none; border-radius: 50%; transition: background-color .26s ease; box-shadow: 0 0 2px hsla(0, 0%, 0%, .3); } .vbnOptionBase input[type="checkbox"].correct:checked { background: var(--vbnStateCorrect); box-shadow: 0 0 10px var(--vbnStateCorrect); } .vbnOptionBase input[type="checkbox"].warn:checked { background: var(--vbnStateWarn); box-shadow: 0 0 10px var(--vbnStateWarn); } .vbnOptionBase input[type="checkbox"].error:checked { background: var(--vbnStateError); box-shadow: 0 0 10px var(--vbnStateError); } /* ========== ↓ Other */ /* ========== ↓ ItemBlock */ .vbnItemBlock { box-sizing: border-box; position: relative; padding: var(--vbnSpacePadding); margin: var(--vbnSpaceMargin); border: none; width: 100%; font-size: 12px; background: #FFFFFF; box-shadow: var(--vbnOftenSurfaceShadowBase); border-radius: var(--vbnSurfaceRadius); transition: var(--vbnOftenTransition); } .vbnItemBlock:hover { z-index: var(--vbnPriority00); box-shadow: inset 0 0 2px hsla(0, 0%, 92%, .6), var(--vbnOftenSurfaceShadowHover); transform: var(--vbnSurfaceZoomIn); } /* ========== ↓ Button */ .vbnButtonBase { cursor: pointer; user-select: none; border: var(--vbnUIBorder) var(--vbnAccentBorder); font-size: 1em; font-weight: var(--vbnTitleWeight); color: var(--vbnBase00HEX); background: var(--vbnAccentHEX); box-shadow: var(--vbnUIShadow) var(--vbnAccentShadow); border-radius: var(--vbnPanelRadius); transition: transform .26s var(--vbnTransitionSoft); } .vbnButtonBase:hover { transform: var(--vbnSurfaceZoomIn); } .vbnButtonBase:first-of-type { margin-top: calc(var(--vbnGap) - 2px); } .vbnButtonBase.fill { cursor: pointer; } .vbnButtonBase.outline { cursor: pointer; } .vbnButtonBase.text { cursor: pointer; } .vbnButtonBase.ICON { cursor: pointer; } .vbnButtonBase.open { border: none; color: var(--vbnBase00HEX); background: linear-gradient( 90deg, var(--vbnGreen001), var(--vbnBlue0001) ); box-shadow: inset 0 0 20px hsla(var(--vbnGlow06HSL), .6), 0 0 10px hsla(var(--vbnGlow04HSL), .4); } .vbnButtonBase.close { border: none; color: var(--vbnBase00HEX); background: linear-gradient( 90deg, var(--vbnGreen001), var(--vbnBlue0001) ); box-shadow: inset 0 0 20px hsla(var(--vbnGlow06HSL), .6), 0 0 10px hsla(var(--vbnGlow04HSL), .4); } .vbnButtonFixed { padding: 5px 10px; width: var(--vbnButtonWidth); height: var(--vbnButtonHeight); } .vbnButtonAdapt { padding: 10px 0; width: 100%; } /* ========== ↓ State */ .vbnCurrentRow::after { content: ""; position: absolute; top: 50%; left: 1.2%; transform: translateY(-50%); height: 1.2em; width: .26rem; background: var(--vbnGlow01HEX); box-shadow: 4px 0 14px 1px hsla(var(--vbnGlow01HSL), .92); border-radius: 1em; } .vbnTipsInside { position: absolute; top: 2%; left: 50%; width: 80%; padding: 5px 12px; text-align: center; font-size: 12px; font-weight: var(--vbnTitleWeight); color: var(--vbnBase00HEX); background: var(--vbnAccentHEX); border-radius: var(--vbnPanelRadius); transform: translateX(-50%); } .vbnTipsHover { pointer-events: none; opacity: 0; z-index: calc(var(--vbnPriority09) + 1); position: fixed; padding: 5px 15px; width: max-content; /* max-width: 260px; */ min-height: 12px; border: var(--vbnUIBorder) hsla(var(--vbnAccentHSL), .2); text-align: justify; font-size: 12px; line-height: 1.5; color: var(--vbnGlow04HEX); background: hsla(var(--vbnBase00HSL), .8); box-shadow: var(--vbnUIShadow) hsla(var(--vbnBase00HSL), .4); border-radius: calc(var(--vbnPanelRadius) - 2.6px); transition: opacity .2s ease; } .vbnTipsHover.show { opacity: 1; } .vbnTips { z-index: var(--vbnPriority09); position: fixed; top: 2.26em; left: 2em; padding: .6em 1.26em; border: 1.52px solid hsla(var(--vbnBase09HSL), .526); font-size: 15px; font-weight: 526; line-height: 1.5; color: hsla(var(--vbnBase00HSL), .8); background: var(--vbnBase08HEX); box-shadow: var(--vbnTipsShadow-S) hsla(var(--vbnBase09HSL), .226), var(--vbnTipsShadow-M) hsla(var(--vbnAccentHSL), .120), var(--vbnTipsShadow-L) hsla(var(--vbnAccentHSL), .092); border-radius: .92em; animation: vbnSlideOut 2s cubic-bezier(0.25, 1.4, 0.5, 1) forwards; transition: var(--vbnOftenTransition); } .vbnTips.remind { background: var(--vbnBase09HEX); box-shadow: var(--vbnTipsShadow-S) hsla(var(--vbnBase09HSL), .226), var(--vbnTipsShadow-M) hsla(var(--vbnAccentHSL), .120), var(--vbnTipsShadow-L) hsla(var(--vbnAccentHSL), .092); } .vbnTips.correct { background: var(--vbnBase09HEX); box-shadow: var(--vbnTipsShadow-S) hsla(var(--vbnBase09HSL), .226), var(--vbnTipsShadow-M) hsla(var(--vbnAccentHSL), .120), var(--vbnTipsShadow-L) hsla(var(--vbnAccentHSL), .092); } .vbnTips.warn { background: var(--vbnStateWarn); box-shadow: var(--vbnTipsShadow-S) hsla(var(--vbnBase09HSL), .226), var(--vbnTipsShadow-M) hsla(20, 85%, 55%, .120), var(--vbnTipsShadow-L) hsla(20, 85%, 55%, .092); } .vbnTips.error { background: var(--vbnStateError); box-shadow: var(--vbnTipsShadow-S) hsla(var(--vbnBase09HSL), .226), var(--vbnTipsShadow-M) hsla(0, 85%, 55%, .120), var(--vbnTipsShadow-L) hsla(0, 85%, 55%, .092); } /* ========== ↓ Link */ .vbnLink { position: relative !important; text-decoration: none !important; } .vbnLink::before, .vbnLink::after { content: "" !important; position: absolute !important; top: calc(100% + 0px) !important; left: 0 !important; width: 100% !important; border-bottom: dashed .0926em currentColor !important; } .vbnLink:hover::before, .vbnLink:hover::after { border-bottom: solid .0926em currentColor !important; } /* ========== ↓ Load */ .vbnFadeInLoad { opacity: 0; transform: translateY(100px); transition: opacity .5s var(--vbnTransitionSmooth), transform .9s var(--vbnTransitionSmooth); } .vbnFadeInLoad.loaded { opacity: 1; transform: translateY(0); } /* ========== ↓ Focal */ .vbnFocal { --height: 2px; --time: .526s; --offset: -2px; --base: var(--vbnAccentHEX); --radius: var(--vbnBaseRadius); --bezier: var(--vbnTransitionSoft); position: relative; width: max-content; text-decoration: none; } .vbnFocal.CT::after { content: ""; position: absolute; left: 50%; bottom: var(--offset); width: 100%; height: var(--height); background: var(--base); border-radius: var(--radius); transform: translateX(-50%) scaleX(0); transform-origin: center; transition: transform var(--time) var(--bezier); } .vbnFocal.CT:hover::after { transform: translateX(-50%) scaleX(1);} .vbnFocal.LR::after { content: ""; position: absolute; left: 0; bottom: var(--offset); width: 100%; height: var(--height); background: var(--base); border-radius: var(--radius); transform: scaleX(0); transform-origin: left; transition: transform var(--time) var(--bezier); } .vbnFocal.LR:hover::after { transform: scaleX(1); } /* ========== ↓ Grid */ .vbnGridSolid { background-attachment: fixed; background-image: linear-gradient(00deg, var(--vbnGrid-S) 1px, transparent 0), linear-gradient(90deg, var(--vbnGrid-S) 1px, transparent 0), linear-gradient(00deg, var(--vbnGrid-L) 1px, transparent 0), linear-gradient(90deg, var(--vbnGrid-L) 1px, transparent 0); background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px; } /* ========== ↓ Table */ .vbnTableBox { display: flex; justify-content: center; padding: 15px; } .vbnTable { overflow: hidden !important; border-collapse: collapse !important; background: transparent !important; box-shadow: 0 0 0 1px hsla(0, 0%, 5%, .02), 0 2px 10px hsla(0, 0%, 0%, .04), 0 10px 10px hsla(0, 0%, 0%, .02) !important; border-radius: var(--vbnSurfaceRadius) !important; } .vbnTable :is(thead) { font-weight: var(--vbnTitleWeight) !important; background: #FFF !important; } .vbnTable :is(tr):hover { background: #FAFAFA !important; } /* ========== ↓ 首行 */ .vbnTable :is(tr):first-child :is(td):not(:first-child, :last-child) { border-left: 1px solid #00000006 !important; border-right: 1px solid #00000006 !important; } /* ========== ↓ 尾行 */ .vbnTable tbody tr:last-child :is(td) { border-bottom: none !important;} /* ========== ↓ 含代码 */ .vbnTable :is(code) { padding: 2px 5px !important; font-family: var(--vbnCodeFont) !important; color: var(--vbnCodeColor) !important; background: #F2F2F2 !important; border-radius: var(--vbnBaseRadius) !important; } /* ========== ↓ 单元格 */ .vbnTable :is(th), .vbnTable :is(td) { border-style: solid !important; border-width: 0 0 1px 0 !important; border-color: transparent transparent #FAFAFA transparent !important; text-align: left !important; } .vbnTable :is(th)[style*="padding: 0px"], .vbnTable :is(td):not([style*="padding"]) { padding: 5px 10px !important; } .vbnTable :is(th) { color: #4D4D4D !important;} .vbnTable :is(td) { color: #444 !important;} `) })(); (function VBN_GlobalCustom() { 'use strict'; // $ ================================================== ↓ Global const vbnMatchURL = window.location.href; const vbnMatchHost = window.location.hostname; document.documentElement.classList.add('vbn'); // #region Config const VBN_SITE_GROUP = { AIGC: [ "*127.0.0.1:8188/*", "*localhost:8188/*", "*127.0.0.1:7860/*", "*localhost:7860/*", "*127.0.0.1:9222/*", "*localhost:9222/*", ], Chat: [ "*deepseek.com/*", "*chatgpt.com/*", ], ProgDev: [ "*github.com/*", "*huggingface.co/*", ], Manage: [ "*yuque.com/*", "*ticktick.com/*", "*dida365.com/*", "*workona.com/*", ], Search: [ "*google.com/*", "*baidu.com/*", "*bing.com/*", ], Media: [ "*youtube.com/*", "*bilibili.com/*", "*weibo.com/*", ], Font: [ "*fonts.google.com/*", "*cp.baidu.com/*", ], }; /** * @type {Object} * @property {boolean} debug - 全局调试 | 开启后控制台将输出 当前站点各功能的运行状态 * @property {Object} siteBlock - 站点阻塞 | 功能若与原始站点产生冲突 可在相应功能组内添加站点进行屏蔽 紧急阻塞 */ const VBN_GLOBAL_CONFIG = { debug: false, siteBlock: { Global: [ ], Assign: [ ], Micro: [ ], }, }; // #endregion // #region Modules const VBN_GLOBAL_MODULES = { Global: { fold: false, ScrollBar: { feature: "原生滚动条样式 个性化", match: { include: [ "*" ], exclude: [ ] }, }, LoaderBar: { name: "顶部加载条", feature: "全局顶部植入 加载状态条 => 进度条", state: true, default: true, debug: false, match: { include: [ "*" ], exclude: [ ] }, }, CustomICON: { feature: "站点 ICO 替换 | 书签栏 > DeepSeek > HUA! 黑鲸", }, FontStyle: { feature: "字体样式 | 可去 FontStyle 重定义所需站点/变更应用已安装的某款字体", }, Selection: { feature: "原生鼠标选取样式 个性化", match: { include: [ "*" ], exclude: [ "*yuque.com/*" ] }, }, }, Assign: { fold: false, Search: { feature: " ", }, Chat: { fold: true, DeepSeek: { feature: "聊天窗格 宽度增加", }, ChatGPT: { feature: "聊天窗格 宽度增加", }, }, ComfyUI: { feature: "YOYOYO", fold: true, manager: { }, crystools: { }, rgthree: { }, }, YUQUE: { fold: true, vbnTable: { feature: "表格样式", }, vbnGrid: { feature: "背景网格", } }, TickTick: { feature: " ", }, Youtube: { feature: " ", }, Bilibili: { feature: " ", }, NetDisk_Check: { feature: " ", match: { include: [ "*" ], exclude: [ ] }, }, }, Micro: { fold: true, }, }; // #endregion // #region Basics const VBN_GLOBAL_DEBUG = (() => { const Prefix = "[==👽VBN==]"; const logRecord = Object.create(null); const mapError = Object.create(null); const mapTime = Object.create(null); function logFormat({ icon, key, time, msg }) { return `${Prefix}[${icon}][${time?.toFixed?.(1) || "-"}ms][${key}] | ${msg}`; } function logStore(key, msg) { if (!logRecord[key]) logRecord[key] = []; logRecord[key].push({ msg, time: Date.now() }); } function log(key, msg = "DONE", time = 0) { const icon = "🚀"; const text = logFormat({ icon, key, time, msg }); console.log(text); logStore(key, text); } function warn(key, msg = "DEBUG", time = 0) { const icon = "🛠️"; const text = logFormat({ icon, key, time, msg }); console.warn(text); logStore(key, text); errorMark(key, msg, false); } function error(key, msg = "ERROR", time = 0) { const icon = "👾"; const text = logFormat({ icon, key, time, msg }); console.error(text); logStore(key, text); errorMark(key, msg, true); } function errorMark(key, msg = "Unknown", isFatal = true) { const mod = VBN_GLOBAL_LOGIC.get(key); if (!mod) return; mod.error = isFatal; mod.errorMSG = msg; } function infoTotal() { const all = VBN_GLOBAL_LOGIC.getAllModules?.() || {}; for (const [key, mod] of Object.entries(all)) { const icon = mod.error ? "👾" : mod.debug ? "🛠️" : mod.state ? "🚀" : "🏁"; const msg = mod.errorMSG || (mod.error ? "ERROR" : "DONE"); const time = mod.timeCost || 0; console.log(logFormat({ icon, key, time, msg })); } } return { log, warn, error, errorMark, infoTotal }; })(); // const VBN_GLOBAL_CACHE.valueStorage // const VBN_VALUE_STORE = (() => { const VBN_GLOBAL_CACHE = (() => { const regex = new Map(); const group = new Map(); const chain = new Map(); const match = new Map(); const value = new Map(); function clear(type, key) { if (type && key) { if (VBN_GLOBAL_CACHE.hasOwnProperty(type) && VBN_GLOBAL_CACHE[type] instanceof Map) { VBN_GLOBAL_CACHE[type].delete(key); } } else if (type) { if (VBN_GLOBAL_CACHE[type]) { VBN_GLOBAL_CACHE[type].clear(); } } else { regex.clear(); group.clear(); chain.clear(); match.clear(); value.clear(); } } return { regex, group, chain, match, value, clear, }; })(); const VBN_MATCH_RULE = (() => { function toRegex(pattern) { if (VBN_GLOBAL_CACHE.regex.has(pattern)) return VBN_GLOBAL_CACHE.regex.get(pattern); const escaped = pattern .replace(/([.+^${}()|[\]\\])/g, '\\$1') .replace(/\*/g, '.*') .replace(/^https?:/, 'https?:'); const regex = new RegExp('^' + escaped + '$', 'i'); VBN_GLOBAL_CACHE.regex.set(pattern, regex); return regex; } function check(pattern, target) { return toRegex(pattern).test(target); } function match({ include = [], exclude = [], url = vbnMatchURL } = {}) { if (include.length === 1 && include[0] === "*" && exclude.length === 0) { return true; } return ( include.some(rule => check(rule, url)) && !exclude.some(rule => check(rule, url)) ); } return { toRegex, check, match }; })(); const VBN_MODULE_STORE = (() => { const flat = {}; const tree = {}; function moduleBase(key, raw, parentKey = null) { return { key, parent: parentKey ?? null, fold: raw.fold ?? false, name: " ", feature: " ", state: true, default: true, debug: false, match: raw.match ?? {}, ...raw, }; } for (const [groupName, groupData] of Object.entries(VBN_GLOBAL_MODULES)) { const groupNode = {}; const groupFold = groupData.fold ?? false; for (const [modKey, modRaw] of Object.entries(groupData)) { if (modKey === "fold") continue; const mod = moduleBase(modKey, modRaw); flat[modKey] = mod; groupNode[modKey] = mod; for (const [subKey, subRaw] of Object.entries(modRaw)) { if ( ["match", "state", "default", "feature", "debug", "name", "fold"].includes(subKey) || typeof subRaw !== "object" ) continue; const subMod = moduleBase(subKey, subRaw, modKey); flat[subKey] = subMod; if (!groupNode[modKey].subs) groupNode[modKey].subs = {}; groupNode[modKey].subs[subKey] = subMod; } } tree[groupName] = { ...groupNode, fold: groupFold, }; } function getGroup(key) { if (VBN_GLOBAL_CACHE.group.has(key)) return VBN_GLOBAL_CACHE.group.get(key); for (const [groupName, modules] of Object.entries(tree)) { if (key in modules) { VBN_GLOBAL_CACHE.group.set(key, groupName); return groupName; } for (const mod of Object.values(modules)) { if (mod && mod.subs && key in mod.subs) { VBN_GLOBAL_CACHE.group.set(key, groupName); return groupName; } } } VBN_GLOBAL_CACHE.group.set(key, null); return null; } function getChain(key, { includeGroup = false } = {}) { if (VBN_GLOBAL_CACHE.chain.has(key)) return VBN_GLOBAL_CACHE.chain.get(key); const chain = []; let current = flat[key]; while (current) { chain.unshift(current.key); current = current.parent ? flat[current.parent] : null; } if (includeGroup) { const group = getGroup(key); if (group) chain.unshift(group); } VBN_GLOBAL_CACHE.chain.set(key, chain); return chain; } return { get: key => flat[key], getFlat: () => flat, getTree: () => tree, getGroup, getChain, }; })(); const VBN_ACTIVATION = (() => { const defaultMatch = { include: ["*"], exclude: [] }; function findMatch(mod) { if (!mod) return defaultMatch; if (VBN_GLOBAL_CACHE.match.has(mod.key)) return VBN_GLOBAL_CACHE.match.get(mod.key); let result; if (mod.match?.include?.length || mod.match?.exclude?.length) { result = mod.match; } else if (mod.parent) { result = findMatch(VBN_MODULE_STORE.get(mod.parent)); } else { result = defaultMatch; } VBN_GLOBAL_CACHE.match.set(mod.key, result); return result; } function getValue(key, fallback = true) { if (VBN_GLOBAL_CACHE.value.has(key)) return VBN_GLOBAL_CACHE.value.get(key); const val = GM_getValue(key, fallback); VBN_GLOBAL_CACHE.value.set(key, val); return val; } function clearCache(key) { if (key) { VBN_GLOBAL_CACHE.value.delete(key); VBN_GLOBAL_CACHE.match.delete(key); } else { VBN_GLOBAL_CACHE.value.clear(); VBN_GLOBAL_CACHE.match.clear(); } } function isBlocked(module, url = vbnMatchURL) { const blockList = VBN_GLOBAL_CONFIG.siteBlock?.[module.group]; if (!blockList?.length) return false; return blockList.some(pattern => VBN_MATCH_RULE.check(pattern, url)); } function isActive(module, options = {}) { const url = options.url ?? vbnMatchURL; const matchRule = options.matchSubjoin || findMatch(module); const matched = VBN_MATCH_RULE.match({ include: matchRule.include, exclude: matchRule.exclude, url }); if (!matched) return false; const keyChain = VBN_MODULE_STORE.getChain(module.key, { includeGroup: true }); return keyChain.every(key => getValue(key, true)); } return { isActive, isBlocked, clearCache }; })(); const VBN_GLOBAL_LOGIC = (() => { let hasPreheated = false; function preheat() { if (hasPreheated) return; hasPreheated = true; const all = VBN_MODULE_STORE.getFlat(); for (const key in all) { const mod = all[key]; VBN_MODULE_STORE.getGroup(key); VBN_MODULE_STORE.getChain(key, { includeGroup: true }); VBN_ACTIVATION.isActive(mod); } } function activate(key, rule, logic) { let options = {}; if (typeof rule === "function") { logic = rule; } else if (typeof rule === "object") { options = rule; } const mod = VBN_MODULE_STORE.get(key); if (!mod || mod.state === false) return false; if (VBN_ACTIVATION.isBlocked(mod, options.url)) { if (VBN_GLOBAL_CONFIG.debug) VBN_GLOBAL_DEBUG.warn(key, `siteBlock - ${VBN_MODULE_STORE.getGroup(key)}`); return false; } const active = VBN_ACTIVATION.isActive(mod, options); if (typeof logic !== "function") return active; if (active) { const start = performance.now(); try { logic(); mod.timeCost = performance.now() - start; if (VBN_GLOBAL_CONFIG.debug || mod.debug) VBN_GLOBAL_DEBUG.log(key, "DONE", mod.timeCost); } catch (e) { mod.timeCost = performance.now() - start; VBN_GLOBAL_DEBUG.error(key, e?.message || "ERROR", mod.timeCost); } } return active; } return { get: VBN_MODULE_STORE.get, getAllModules: VBN_MODULE_STORE.getFlat, activate, preheat, }; })(); // #endregion // #region Manager const VBN_OBSERVER_CENTER = (() => { const observerAnonym = new Set(); const observerKey = new Map(); let observerTarget = new WeakMap(); function observe(target, options = { childList: true, subtree: true }, callback, config = {}) { if (!(target instanceof Node)) return null; if (config.preventDuplicate && observerTarget.has(target)) return null; const observerBase = new MutationObserver((mutations, observerInstance) => { try { callback(mutations, observerInstance); } catch (err) { document.documentElement.classList.add("vbnTips", "correct"); } if (config.autoDisconnect || (typeof config.onceWhen === "function" && config.onceWhen(mutations))) { disconnectTarget(target, observerBase); } }); observerBase.observe(target, options); observerAnonym.add(observerBase); _addToTargetMap(target, observerBase); return observerBase; } function observeWithKey(key, target, options = { childList: true, subtree: true }, callback, config = {}) { if (!key || typeof key !== "string" || !(target instanceof Node)) return null; if (observerKey.has(key)) { observerKey.get(key).disconnect(); observerKey.delete(key); } const observerBase = new MutationObserver((mutations, observerInstance) => { try { callback(mutations, observerInstance); } catch (err) { document.documentElement.classList.add("vbnTips", "error"); } if (config.autoDisconnect || (typeof config.onceWhen === "function" && config.onceWhen(mutations))) { disconnectKey(key); _removeFromTargetMap(target, observerBase); } }); observerBase.observe(target, options); observerKey.set(key, observerBase); _addToTargetMap(target, observerBase); return observerBase; } function disconnect(target) { const observerSet = observerTarget.get(target); if (observerSet) { observerSet.forEach(observerBase => { observerBase.disconnect(); observerAnonym.delete(observerBase); }); observerTarget.delete(target); } } function disconnectTarget(target, observerBase) { observerBase.disconnect(); observerAnonym.delete(observerBase); _removeFromTargetMap(target, observerBase); } function disconnectKey(key) { const observerBase = observerKey.get(key); if (observerBase) { observerBase.disconnect(); observerKey.delete(key); } } function disconnectAll() { observerAnonym.forEach(observerBase => observerBase.disconnect()); observerKey.forEach(observerBase => observerBase.disconnect()); observerAnonym.clear(); observerKey.clear(); observerTarget = new WeakMap(); } function hasKey(key) { return observerKey.has(key); } function getActiveCount() { let totalTargeted = 0; observerTarget.forEach(set => totalTargeted += set.size); return { anonymous: observerAnonym.size, keyed: observerKey.size, byTarget: totalTargeted }; } function _addToTargetMap(target, observerBase) { if (!observerTarget.has(target)) { observerTarget.set(target, new Set()); } observerTarget.get(target).add(observerBase); } function _removeFromTargetMap(target, observerBase) { const set = observerTarget.get(target); if (set) { set.delete(observerBase); if (set.size === 0) observerTarget.delete(target); } } return { observe, observeWithKey, disconnect, disconnectKey, disconnectAll, hasKey, getActiveCount }; })(); // #endregion // #region Builder const VBN_GLOBAL_DOM = (() => { let instance = null; const callbacks = []; function init() { if (instance) return; const div = document.createElement('div'); div.id = 'vbnDOM'; document.body.insertBefore(div, document.body.firstChild); instance = div; } function ensureReady(callback) { if (callback) callbacks.push(callback); if (instance) { while (callbacks.length) { try { callbacks.shift()(instance); } catch (e) { console.error(e); } } return instance; } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { init(); ensureReady(); }); } else { init(); ensureReady(); } } return { load(callback) { if (callback) { ensureReady(callback); } else { return new Promise(resolve => ensureReady(resolve)); } }, get() { return instance || document.querySelector('#vbnDOM'); } }; })(); // #endregion // #region Utils /** * 类名添加 | 在定位的 DOM 结构上 添加自定义类名 「支持检测链接已访问后添加」 * @param {Object} options * @param {number} [options.delay=0] - 进入页面后 延迟多久执行 「毫秒」 * @param {string|string[]} options.target - 需添加类名的目标DOM 「选择器」 「支持多个」 * @param {string|string[]} options.subjoin - 需添加的类名 「支持多个」 * @param {boolean} [options.trace=false] - 是否启用 已访问的链接痕迹 * @param {string} [options.traceQuery="a[href]"] - 需查询的链接类型 「选择器」 * @param {string[]|function} [options.traceJudge] - 增强判定 检测链接中需包含的关键词 */ const VBN_ADD_CLASS = (() => { const storageKey = 'vbnVisitedLinks'; const attrMark = 'data-vbn-trace'; function apply({ delay = 0, target, subjoin, trace = false, traceQuery = "a[href]", traceJudge, }) { const packSelector = Array.isArray(target) ? target : [target]; const packClass = Array.isArray(subjoin) ? subjoin : [subjoin]; const visitedSet = new Set(JSON.parse(localStorage.getItem(storageKey) || '[]')); const observerKey = `subjoin_${packSelector.join('_')}_${packClass.join('_')}`; function defaultShouldApply(el) { const links = el.querySelectorAll(traceQuery); return [...links].some(link => { const href = link.getAttribute("href"); if (!href) return false; const isTraceTarget = typeof traceJudge === "function" ? traceJudge(href) : Array.isArray(traceJudge) ? traceJudge.every(keyword => href.includes(keyword)) : true; return isTraceTarget && visitedSet.has(href); }); } function applyClass(el) { packClass.forEach(cls => { if (!el.classList.contains(cls)) { el.classList.add(cls); } }); el.setAttribute(attrMark, "true"); } function processDOM() { packSelector.forEach(sel => { document.querySelectorAll(sel).forEach(el => { if (el.hasAttribute(attrMark)) return; if (trace) { if (defaultShouldApply(el)) applyClass(el); } else { applyClass(el); } }); }); } function setupClickTracking() { if (!trace || window._VBN_CLICK_TRACK_INITED) return; window._VBN_CLICK_TRACK_INITED = true; document.body.addEventListener("click", e => { const anchor = e.target.closest(traceQuery); if (!anchor) return; const href = anchor.getAttribute("href"); if (!href) return; const isTraceTarget = typeof traceJudge === "function" ? traceJudge(href) : Array.isArray(traceJudge) ? traceJudge.every(keyword => href.includes(keyword)) : true; if (!isTraceTarget) return; visitedSet.add(href); localStorage.setItem(storageKey, JSON.stringify([...visitedSet])); packSelector.forEach(sel => { const el = anchor.closest(sel); if (el) applyClass(el); }); }); } function startObserve() { processDOM(); setupClickTracking(); VBN_OBSERVER_CENTER.observeWithKey( observerKey, document.body, { childList: true, subtree: true }, processDOM, { preventDuplicate: true, autoDisconnect: false } ); } if (delay > 0) setTimeout(startObserve, delay); else startObserve(); } return { apply }; })(); /** * 自动执行 | 进入页面后 自动执行一系列操作 「最多可支持10个步骤」 * @param {Object} options * @param {number} [options.delay=200] - 延迟 起始执行 「毫秒」 * @param {number} [options.delayStep=20] - 延迟 每个执行步骤间 「毫秒」 * @param {boolean} [options.backstage=false] - 后台执行 页面未激活/未在前台时 是否执行 * @param {boolean} [options.strict=false] - 严格模式 若某步骤执行失败 是否中断后续步骤 * @param {boolean} [options.debug=false] - 调试输出 * @param {Object} [options.step1.step10] - 定义每个步骤的目标及操作类型 * - target:目标选择器 * - action:执行类型 "click" | "focus" | "hover" */ const VBN_AUTO_EXECUTE = (() => { const maxAutoStep = 10; const moduleMark = "AUTO_EXECUTE"; function runAction(el, action = "click") { if (!el) return false; switch (action) { case "click": el.click(); break; case "focus": el.focus(); break; case "hover": const event = new MouseEvent("mouseover", { bubbles: true }); el.dispatchEvent(event); break; } return true; } function apply(options = {}) { const { delay = 200, delayStep = 20, backstage = false, strict = false, debug = false } = options; const steps = []; for (let i = 1; i <= maxAutoStep; i++) { const key = `step${i}`; if (options[key]) steps.push(options[key]); } if (!steps.length) return; let executed = false; const run = () => { if (executed) return; executed = true; let shouldBreak = false; setTimeout(() => { steps.forEach((step, i) => { const { target, action = "click" } = step; const delayEach = delayStep * i; setTimeout(() => { if (shouldBreak) return; try { const el = document.querySelector(target); if (el) { runAction(el, action); VBN_GLOBAL_DEBUG.log(moduleMark, `Step${i + 1} ✅ ${action} - ${target}`, { debug }); } else { VBN_GLOBAL_DEBUG.warn(moduleMark, `Step${i + 1} ❓ None - ${target}`, { debug }); if (strict) { shouldBreak = true; VBN_GLOBAL_DEBUG.error(moduleMark, `Step${i + 1} ❌ Break`, { debug }); } } } catch (e) { VBN_GLOBAL_DEBUG.error(moduleMark, `Step${i + 1} ❌ Error - ${e.message}`, { debug }); } }, delayEach); }); }, delay); }; const tryRun = () => { if (executed) return; if (!backstage && document.visibilityState !== "visible") return; run(); }; document.addEventListener("DOMContentLoaded", tryRun); document.addEventListener("visibilitychange", tryRun); } return { apply }; })(); /** * 自动加载 | 支持两种模式 无限滚动加载/每次加载多页 * @param {Object} options * @param {boolean} [options.loadInfinite=false] - 无限滚动加载 是否启用 * @param {number} [options.loadPage=9] - 加载页数 「仅在非无限滚动模式下生效」 * @param {string} [options.itemTarget="#container .c-container"] - 内容所在容器 「父选择器」 * @param {string|HTMLElement} [options.itemWrapper="#container"] - 将新加载内容插入至何处 「选择器」 * @param {string} [options.buttonPrev=".page-prev"] - 上一页按钮 「选择器」 * @param {string} [options.buttonNext=".page-next"] - 下一页按钮 「选择器」 * @param {boolean} [options.fragment=false] - 统一加载 是否启用 「加载每页的完整内容后统一插入」 * @param {boolean} [options.throttle=true] - 动态加载 是否启用 「可防止性能及其他问题」 * @param {number} [options.throttleBase=10] - 动态加载 延迟 基础 * @param {number} [options.throttleJitter=50] - 动态加载 延迟 随机波动 */ const VBN_AUTO_LOAD = (() => { function apply({ loadInfinite = false, loadPage = 9, itemTarget = "#container .c-container", itemWrapper = "#container", buttonPrev = ".page-prev", buttonNext = ".page-next", fragment = false, throttle = true, throttleBase = 10, throttleJitter = 50, } = {}) { const currentPage = getCurrentPage(); const wrapperEl = typeof itemWrapper === "string" ? document.querySelector(itemWrapper) : itemWrapper; if (!wrapperEl) return; let loading = false; let loadedPage = currentPage; // 节流加载单页函数 function loadSinglePage(pageNum) { return new Promise(resolve => { setTimeout(() => { $.get(buildPageUrl(pageNum), html => { const temp = document.createElement("div"); temp.innerHTML = html; const items = temp.querySelectorAll(itemTarget); const mount = fragment ? document.createDocumentFragment() : wrapperEl; items.forEach(el => { el.classList.add("vbnFadeInLoad"); mount.appendChild(el); }); if (fragment) wrapperEl.appendChild(mount); requestAnimationFrame(() => { wrapperEl.querySelectorAll(".vbnFadeInLoad:not(.loaded)").forEach(el => { el.classList.add("loaded"); }); }); resolve(); }); }, throttle ? (pageNum * throttleBase + Math.random() * throttleJitter) : 0); }); } // 非无限滚动 按页数加载 if (!loadInfinite) { const nextBtn = document.querySelector(buttonNext); if (nextBtn) { nextBtn.href = buildPageUrl(currentPage + loadPage + 1); nextBtn.textContent = `Next ${loadPage + 1}`; } const promises = []; for (let i = 1; i <= loadPage; i++) { const pageNum = currentPage + i; promises.push(loadSinglePage(pageNum)); } return Promise.all(promises); } // 无限滚动加载 const observer = new IntersectionObserver(entries => { const entry = entries[0]; if (!entry.isIntersecting || loading) return; loading = true; loadedPage += 1; observer.unobserve(entry.target); loadSinglePage(loadedPage).then(() => { const url = new URL(location.href); url.searchParams.set("page", loadedPage); history.replaceState(null, "", url.toString()); observeLastItem(); }).finally(() => { loading = false; }); }, { rootMargin: "500px" }); function observeLastItem() { const items = wrapperEl.querySelectorAll(itemTarget); const lastItem = items[items.length - 1]; if (lastItem) observer.observe(lastItem); } observeLastItem(); } function getCurrentPage() { const match = location.href.match(/page=(\d+)/); return match ? parseInt(match[1]) : 1; } function buildPageUrl(page) { const url = new URL(location.href); url.searchParams.set("page", page); return url.toString(); } return { apply }; })(); // #endregion // #region Derive const VBN = { SITE: VBN_SITE_GROUP, CONFIG: VBN_GLOBAL_CONFIG, MODULE: VBN_GLOBAL_MODULES, DEBUG: VBN_GLOBAL_DEBUG, CACHE: VBN_GLOBAL_CACHE, MATCH: VBN_MATCH_RULE, STORE: VBN_MODULE_STORE, ACTIVATION: VBN_ACTIVATION, LOGIC: VBN_GLOBAL_LOGIC, OBSERVER: VBN_OBSERVER_CENTER, DOM: VBN_GLOBAL_DOM, CLASS: VBN_ADD_CLASS, EXECUTE: VBN_AUTO_EXECUTE, LOAD: VBN_AUTO_LOAD, }; VBN.LOGIC.preheat(); // #endregion // #region Options (function VBN_Options() { const pendingChanges = {}; const hoverTimeoutMap = new WeakMap(); const hoverTipMap = new WeakMap(); const easterEggAttachedSet = new WeakSet(); function showTip(msg, type = "", timeout = 4126) { const tip = document.createElement("div"); tip.className = `vbnTips${type ? " " + type : ""}`; tip.textContent = msg; VBN_GLOBAL_DOM.load(dom => { dom.appendChild(tip); setTimeout(() => tip.remove(), timeout); }); } function createFoldAnimation(container, body, arrow, foldKey, initiallyFolded) { let folded = initiallyFolded; const toggleFold = () => { const isCollapsed = folded; body.classList.add("open"); if (isCollapsed) { body.classList.remove("close"); const scrollHeight = body.scrollHeight + "px"; body.style.height = "0px"; requestAnimationFrame(() => { body.style.height = scrollHeight; }); body.addEventListener("transitionend", function onEnd() { body.style.height = "auto"; body.classList.remove("open"); body.removeEventListener("transitionend", onEnd); }, { once: true }); arrow.classList.add("rotated"); GM_setValue(foldKey, false); folded = false; } else { const height = body.scrollHeight + "px"; body.style.height = height; requestAnimationFrame(() => { body.style.height = "0px"; }); setTimeout(() => { body.classList.add("close"); body.classList.remove("open"); body.style.height = "auto"; }, 226); arrow.classList.remove("rotated"); GM_setValue(foldKey, true); folded = true; } }; if (folded) { body.classList.add("close"); body.style.height = "0px"; arrow.classList.remove("rotated"); } else { body.style.height = "auto"; arrow.classList.add("rotated"); } container.addEventListener("click", e => { e.stopPropagation(); toggleFold(); }); } function attachHoverTip(element, text, onceOnly = false, afterShow = () => {}) { if (!text || text.trim() === "") return; const onEnter = e => { const timeout = setTimeout(() => { const tip = document.createElement("div"); tip.className = "vbnTipsHover"; tip.textContent = text; document.body.appendChild(tip); tip.classList.add("show"); const { clientX: x, clientY: y } = e; const { offsetWidth: w, offsetHeight: h } = tip; tip.style.left = `${Math.max(20, Math.min(x - w / 2, window.innerWidth - w - 20))}px`; tip.style.top = `${Math.max(20, y - h - 20)}px`; hoverTipMap.set(element, tip); if (typeof afterShow === "function") afterShow(); }, 500); hoverTimeoutMap.set(element, timeout); }; const onLeave = () => { const timeout = hoverTimeoutMap.get(element); if (typeof timeout === "number") { clearTimeout(timeout); hoverTimeoutMap.delete(element); } const tip = hoverTipMap.get(element); if (tip) { tip.remove(); hoverTipMap.delete(element); } if (onceOnly) { element.removeEventListener("mouseenter", onEnter); element.removeEventListener("mouseleave", onLeave); } }; element.addEventListener("mouseenter", onEnter); element.addEventListener("mouseleave", onLeave); } function attachEasterEggTip(toggleElement) { if (easterEggAttachedSet.has(toggleElement)) return; const shownCount = GM_getValue("vbn_EasterEgg_Shown_Count", 0); if (shownCount < 2) { const onceOnly = shownCount >= 1; attachHoverTip(toggleElement, "HEIHEI 彩蛋 | ClickClick", onceOnly, () => { GM_setValue("vbn_EasterEgg_Shown_Count", shownCount + 1); }); easterEggAttachedSet.add(toggleElement); } } function createToggleElement(key, value, enabled, meta) { const row = document.createElement("label"); row.className = "vbnBodyRow"; row.style.opacity = enabled ? 0.9 : 0.4; const span = document.createElement("span"); span.textContent = key; span.style.userSelect = "none"; const toggle = document.createElement("input"); toggle.type = "checkbox"; toggle.checked = value; toggle.id = `vbnChild_${key}`; toggle.disabled = !enabled; toggle.classList.add("vbnStatusDot"); if (meta.error) toggle.classList.add("error"); else if (meta.debug) toggle.classList.add("warn"); else if (toggle.checked) toggle.classList.add("correct"); toggle.addEventListener("change", () => { pendingChanges[key] = toggle.checked; toggle.classList.toggle("correct", toggle.checked); }); row.appendChild(span); row.appendChild(toggle); const hoverText = meta.error ? meta.errorMSG : (meta.feature || ""); if (hoverText) attachHoverTip(row, hoverText); return { row, toggle }; } function renderModuleEntry(modKey, mod, groupBody, groupEnabled) { if (modKey === "fold" || typeof mod.state !== "boolean") return; const currentVal = Boolean(GM_getValue(modKey, mod.default ?? true)); const foldedKey = `vbnFold_${modKey}`; const foldedRaw = GM_getValue(foldedKey, null); const folded = foldedRaw === null ? !!mod.fold : (foldedRaw === true || foldedRaw === "true"); if (mod.subs || mod.fold) { const container = document.createElement("div"); container.className = "vbnPanelGroup Sub"; const header = document.createElement("div"); header.className = "vbnGroupHeader"; const toggleSubs = document.createElement("div"); toggleSubs.className = "vbnFoldBox"; toggleSubs.style.cursor = "pointer"; attachEasterEggTip(toggleSubs); const arrow = document.createElement("div"); arrow.className = "vbnArrow"; arrow.textContent = "›"; if (!folded) arrow.classList.add("rotated"); toggleSubs.appendChild(arrow); const label = document.createElement("label"); label.className = "vbnHeaderRow"; const span = document.createElement("span"); span.textContent = modKey; span.style.marginRight = "auto"; span.style.userSelect = "none"; const toggle = document.createElement("input"); toggle.type = "checkbox"; toggle.checked = currentVal; toggle.id = `vbnChild_${modKey}`; toggle.disabled = !groupEnabled; toggle.classList.add("vbnStatusDot"); label.style.opacity = groupEnabled && currentVal ? 0.9 : 0.4; if (mod.error) toggle.classList.add("error"); else if (mod.debug) toggle.classList.add("warn"); else if (toggle.checked) toggle.classList.add("correct"); toggle.addEventListener("change", () => { pendingChanges[modKey] = toggle.checked; toggle.classList.toggle("correct", toggle.checked); label.style.opacity = groupEnabled && toggle.checked ? 0.9 : 0.4; if (mod.subs) { for (const [subKey, subMod] of Object.entries(mod.subs)) { const subCheckbox = document.querySelector(`#vbnChild_${subKey}`); if (subCheckbox) { subCheckbox.disabled = !toggle.checked; const isChecked = subCheckbox.checked; const parent = subCheckbox.closest(".vbnBodyRow"); if (parent) { parent.style.opacity = toggle.checked && isChecked ? 0.9 : 0.4; } } } } }); label.appendChild(span); label.appendChild(toggle); header.appendChild(toggleSubs); header.appendChild(label); const hoverText = mod.error ? mod.errorMSG : (mod.feature || ""); if (hoverText) attachHoverTip(header, hoverText); const body = document.createElement("div"); body.className = "vbnGroupBody"; container.appendChild(header); container.appendChild(body); createFoldAnimation(toggleSubs, body, arrow, foldedKey, folded); if (mod.subs) { for (const [subKey, subMod] of Object.entries(mod.subs)) { if (typeof subMod.state !== "boolean") continue; const curVal = Boolean(GM_getValue(subKey, subMod.default ?? true)); const enabled = groupEnabled && currentVal; const { row } = createToggleElement(subKey, curVal, enabled, subMod); row.style.opacity = enabled && curVal ? 0.9 : 0.4; body.appendChild(row); } } groupBody.appendChild(container); } else { const { row } = createToggleElement(modKey, currentVal, groupEnabled, mod); groupBody.appendChild(row); } } function onGroupToggleChange(groupKey, groupData, groupToggle) { pendingChanges[groupKey] = groupToggle.checked; groupToggle.classList.toggle("correct", groupToggle.checked); for (const [modKey, mod] of Object.entries(groupData)) { if (modKey === "fold") continue; const allKeys = [modKey]; if (mod.subs) allKeys.push(...Object.keys(mod.subs)); allKeys.forEach(k => { const checkbox = document.querySelector(`#vbnChild_${k}`); if (checkbox) { checkbox.disabled = !groupToggle.checked; const isEnabled = groupToggle.checked; const isChecked = checkbox.checked; const parent = checkbox.closest(".vbnBodyRow, .vbnHeaderRow"); if (parent) parent.style.opacity = isEnabled && isChecked ? 0.9 : 0.4; } }); } } function buildPanel() { if (document.querySelector("#vbnOptionsPanel")) return; const panel = document.createElement("div"); panel.id = "vbnOptionsPanel"; panel.className = "vbnPanelBase vbnOptionBase vbnFixed"; const title = document.createElement("h2"); title.textContent = "Options"; panel.appendChild(title); const allModules = VBN_MODULE_STORE.getTree(); for (const [groupName, groupData] of Object.entries(allModules)) { const groupKey = groupName; const groupEnabled = GM_getValue(groupKey, true); const groupContainer = document.createElement("div"); groupContainer.className = "vbnPanelGroup"; const groupHeaderWrapper = document.createElement("div"); groupHeaderWrapper.className = "vbnGroupHeader"; const arrowBox = document.createElement("div"); arrowBox.className = "vbnFoldBox"; const toggleIcon = document.createElement("div"); toggleIcon.textContent = "›"; toggleIcon.className = "vbnArrow"; const foldedRaw = GM_getValue(`vbnFold_${groupKey}`, null); const folded = foldedRaw === null ? !!groupData.fold : (foldedRaw === true || foldedRaw === "true"); arrowBox.appendChild(toggleIcon); const groupHeader = document.createElement("label"); groupHeader.className = "vbnHeaderRow"; const groupTitle = document.createElement("span"); groupTitle.textContent = groupName; groupTitle.style.marginRight = "auto"; const groupToggle = document.createElement("input"); groupToggle.type = "checkbox"; groupToggle.checked = groupEnabled; if (groupEnabled) groupToggle.classList.add("correct"); groupHeader.appendChild(groupTitle); groupHeader.appendChild(groupToggle); groupHeaderWrapper.appendChild(arrowBox); groupHeaderWrapper.appendChild(groupHeader); groupContainer.appendChild(groupHeaderWrapper); const groupBody = document.createElement("div"); groupBody.className = "vbnGroupBody"; groupContainer.appendChild(groupBody); createFoldAnimation(arrowBox, groupBody, toggleIcon, `vbnFold_${groupKey}`, folded); groupToggle.addEventListener("change", () => { onGroupToggleChange(groupKey, groupData, groupToggle); }); for (const [modKey, mod] of Object.entries(groupData)) { if (modKey === "fold") continue; renderModuleEntry(modKey, mod, groupBody, groupEnabled); } panel.appendChild(groupContainer); } const applyBtn = document.createElement("button"); applyBtn.textContent = "Apply"; applyBtn.className = "vbnButtonBase vbnButtonAdapt open"; applyBtn.addEventListener("click", () => { for (const [key, value] of Object.entries(pendingChanges)) { GM_setValue(key, !!value); } showTip("✔ 已应用", "correct"); setTimeout(() => location.reload(), 260); // 应用后 刷新页面的延迟 }); const resetBtn = document.createElement("button"); resetBtn.textContent = "Reset"; resetBtn.className = "vbnButtonBase vbnButtonAdapt close"; resetBtn.addEventListener("click", () => { const allModules = VBN_MODULE_STORE.getTree(); for (const [groupKey, groupData] of Object.entries(allModules)) { GM_setValue(groupKey, true); // 模块组默认开启 for (const [modKey, mod] of Object.entries(groupData)) { if (modKey === "fold") continue; GM_setValue(modKey, mod.default ?? true); // 功能模块 采用默认值 if (mod.subs) { for (const [subKey, subMod] of Object.entries(mod.subs)) { GM_setValue(subKey, subMod.default ?? true); // 子功能 采用默认值 } } } } for (const [groupKey, groupData] of Object.entries(allModules)) { GM_deleteValue(`vbnFold_${groupKey}`); for (const [modKey, mod] of Object.entries(groupData)) { GM_deleteValue(`vbnFold_${modKey}`); if (mod.subs) { for (const subKey of Object.keys(mod.subs)) { GM_deleteValue(`vbnFold_${subKey}`); } } } } if (typeof VBN_GLOBAL_CACHE?.clear === "function") { VBN_GLOBAL_CACHE.clear(); } showTip("✔ 已重置为默认配置", "correct"); setTimeout(() => location.reload(), 520); // 重置后 刷新页面的延迟 }); panel.appendChild(applyBtn); panel.appendChild(resetBtn); VBN_GLOBAL_DOM.load(dom => dom.appendChild(panel)); setTimeout(() => panel.classList.add("show"), 20); // 延迟 XXXXX 显示面板 setTimeout(() => { function handleClickOutside(e) { if (!panel.contains(e.target)) { panel.classList.add("hide"); setTimeout(() => { // 延迟 XXXXX 移除面板 panel.remove(); document.removeEventListener("click", handleClickOutside); }, 526); } } document.addEventListener("click", handleClickOutside); }, 100); // 延迟 XXXXX 绑定外部点击事件 } GM_registerMenuCommand("👽 Options Panel", buildPanel); })(); // #endregion // #region Theme (function VBN_Theme() { const ruleBase = { light: [ "light", "light-theme", "theme-light" ], dark: [ "dark", "dark-theme", "theme-dark" ] }; const ruleAntonym = { light: [ "darker-dark-theme-deprecate", ], dark: [ ] }; let currentTheme = null; function themeSystem() { const dark = window.matchMedia("(prefers-color-scheme: dark)").matches; const light = window.matchMedia("(prefers-color-scheme: light)").matches; return dark ? "dark" : light ? "light" : null; } function matchCount(target, keywords) { if (!target) return 0; const items = [...target.classList, ...target.getAttributeNames?.() || []].map(i => i.toLowerCase()); return keywords.reduce((count, key) => count + (items.includes(key) ? 1 : 0), 0); } function themeWebsite() { const html = document.documentElement, body = document.body; let score = 0; score += matchCount(html, ruleAntonym.dark) - matchCount(html, ruleAntonym.light); score += matchCount(body, ruleAntonym.dark) - matchCount(body, ruleAntonym.light); if (score !== 0) return score > 0 ? "dark" : "light"; score = 0; score += matchCount(html, ruleBase.dark) - matchCount(html, ruleBase.light); score += matchCount(body, ruleBase.dark) - matchCount(body, ruleBase.light); if (score !== 0) return score > 0 ? "dark" : "light"; return null; } function subjoinClass() { const html = document.documentElement; let newTheme = themeWebsite() || themeSystem(); if (!newTheme) newTheme = "light"; if (newTheme === currentTheme) return; html.classList.remove("vbnThemeLight", "vbnThemeDark"); html.classList.add(newTheme === "light" ? "vbnThemeLight" : "vbnThemeDark"); currentTheme = newTheme; } function debounce(fn, delay = 20) { let timer; return () => { clearTimeout(timer); timer = setTimeout(fn, delay); }; } function observeTargets() { const targets = [document.documentElement]; if (document.body) targets.push(document.body); const observerOptions = { attributes: true }; const handler = debounce(subjoinClass, 20); targets.forEach((target, i) => { VBN_OBSERVER_CENTER.observeWithKey( `vbnTheme_${i}`, target, observerOptions, handler, { preventDuplicate: true, autoDisconnect: false } ); }); } function init() { const start = () => { subjoinClass(); observeTargets(); window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", subjoinClass); window.matchMedia("(prefers-color-scheme: light)").addEventListener("change", subjoinClass); }; if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", start); } else { start(); } } init(); })(); // #endregion // #region LoaderBar VBN_GLOBAL_LOGIC.activate("LoaderBar", () => { (function VBN_LoaderBar() { function progressBarCreate() { let loaderBar = document.createElement('div'); loaderBar.id = 'vbnLoaderBar'; VBN_GLOBAL_DOM.load(dom => dom.appendChild(loaderBar)); function loaderBarUpdate() { let progress = (document.readyState === 'interactive') ? 80 : (document.readyState === 'complete' ? 100 : 0); loaderBar.style.width = progress + '%'; if (progress === 100) { setTimeout(() => { loaderBar.dataset.state = "vbnScrollBar"; loaderBar.style.animation = "none"; scrollBarUpdate(); if (document.documentElement.scrollHeight > window.innerHeight) { window.addEventListener('scroll', scrollBarUpdate); loaderBar.style.display = 'block'; } else { loaderBar.style.display = 'none'; } }, 260); } } function scrollBarUpdate() { let scrollTop = document.documentElement.scrollTop || document.body.scrollTop; let scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; let scrollProgress = (scrollTop / scrollHeight) * 100; loaderBar.style.width = scrollProgress + '%'; } document.addEventListener('readystatechange', loaderBarUpdate); } if (document.body) { progressBarCreate(); } else { VBN_OBSERVER_CENTER.observe( document.documentElement, { childList: true, subtree: true }, (mutations, observer) => { if (document.body) { observer.disconnect(); progressBarCreate(); } }, { onceWhen: () => document.body !== null } ); } })(); }); // #endregion // #region ICON (function VBN_CustomICON() { // 配置映射关系 "网址" => "变量" 「可转至350行左右配置对应变量 支持格式 JPG PNG SVG base64...」 const vbnICON_Map = { "chat.deepseek.com": "--vbnICON-URL-Deepseek", "chatgpt.com": "--vbnICON-URL-OpenAI", "gemini.google.com": "--vbnICON-URL-Gemini-Vint", "liblib.art": "--vbnICON-URL-Liblib", "prompts.chat": "--vbnICON-URL-Prompt", "comfyworkflows.com": "--vbnICON-URL-Workflow", "ticktick.com": "--vbnICON-URL-Tick-Vint", "dida365.com": "--vbnICON-URL-Tick-Vint", "yuque.com": "--vbnICON-URL-YUQUE", "dillinger.io": "--vbnICON-URL-Markdown-Line", "m.ssone.io": "--vbnICON-URL-Network", "my.ssonegames.com": "--vbnICON-URL-Network", "ip.skk.moe": "--vbnICON-URL-Mecha", "convertio.co": "--vbnICON-URL-Transition", "bigjpg.com": "--vbnICON-URL-AIGC", "abbreviationfinder.org": "--vbnICON-URL-Character", "dict.cn": "--vbnICON-URL-Dict", "svgviewer.dev": "--vbnICON-URL-SVG", "2yu7z0.smartapps.baidu.com": "--vbnICON-URL-Music", }; const vbnICON_Matched = Object.keys(vbnICON_Map).find(site => vbnMatchHost.includes(site)); if ( VBN_GLOBAL_LOGIC.activate("CustomICON") && vbnICON_Matched ) { const vbnICON_CssVarName = vbnICON_Map[vbnICON_Matched]; const vbnICON_URL = getComputedStyle(document.documentElement) .getPropertyValue(vbnICON_CssVarName) .trim() .replace(/^url\(["']?(.*?)["']?\)$/i, '$1') .replace(/["']/g, ''); const vbnICON_TagLink = document.querySelector("link[rel*='icon']") || document.createElement('link'); if ( vbnICON_URL.startsWith('data:image/svg+xml;base64,') || vbnICON_URL.endsWith('.svg') ) { vbnICON_TagLink.type = 'image/svg+xml'; } else if ( vbnICON_URL.endsWith('.png') || vbnICON_URL.endsWith('.jpg') || vbnICON_URL.endsWith('.jpeg') || vbnICON_URL.startsWith('data:image/png;base64,') || vbnICON_URL.startsWith('data:image/jpeg;base64,') ) { vbnICON_TagLink.type = 'image/png'; } else { vbnICON_TagLink.type = 'image/x-icon'; } vbnICON_TagLink.rel = 'icon'; vbnICON_TagLink.href = vbnICON_URL; const head = document.head; head.appendChild(vbnICON_TagLink); } })(); // #endregion // #region FontStyle VBN_GLOBAL_LOGIC.activate("FontStyle", { matchSubjoin: { include: [ "file:///*", "*iconfont.cn/*", "*emojiall.com/*", "*greasyfork.org/*", "*juejin.cn/*", "*prompts.chat/*", ...VBN_SITE_GROUP.AIGC, ...VBN_SITE_GROUP.Chat, ...VBN_SITE_GROUP.ProgDev, ...VBN_SITE_GROUP.Manage, ...VBN_SITE_GROUP.Search, ...VBN_SITE_GROUP.Media, ], exclude: [ "*youtube.com/*", ...VBN_SITE_GROUP.Font, ] } }, () => { GM_addStyle( /* css */ ` *:not( .code, .pre, .inline-code, .md-code, .blob-code, .blob-code-inner, .js-file-line, .code-block, .code-container, .language-css, .cm-line, .cm-line span, ne-code, ne-text, .icon, .icon-wrap, .fa, .DPvwYc, path, svg, i, .block-pagination ul *, #sslct, .markdown-body pre, .markdown-body code, code, pre, kbd, samp, textarea, [class^="language-"], [class*="-code"], [class$="-language"], [class*="editor"], [class*="icon"], [class*="emoji"] ) { font-family: var(--vbnBaseFont) !important; } .code, .pre, .inline-code, .md-code, .blob-code, .blob-code-inner, .js-file-line, .code-block, .code-container, .language-css, .cm-line, .cm-line span, ne-code, ne-text, .Box-sc-g0xbh4-0.iJOeCH *, .markdown-body pre, .markdown-body code, code, pre, kbd, samp, textarea, [class^="language-"], [class*="-code"] { font-family: var(--vbnCodeFont) !important; } .inline-code, .ds-markdown code, .prose :where(code):not(:where([class~=not-prose] *), pre *) { padding: .126em .4em !important; font-weight: 526 !important; text-shadow: 0 0 .126em currentColor !important; } `); }); // #endregion // #region Selection VBN_GLOBAL_LOGIC.activate("Selection", () => { GM_addStyle(` ::selection { color: #E2E2E2 !important; background: var(--vbnBase04HEX) !important; } `); }); // #endregion // #region ScrollBar VBN_GLOBAL_LOGIC.activate("ScrollBar", () => { GM_addStyle( /* css */ ` ::-webkit-scrollbar { width: 5px !important; height: 5px !important; scroll-behavior: smooth !important; border-radius: 100vmax !important; } /* ========== 滑块 */ ::-webkit-scrollbar-thumb { background: hsla(var(--vbnBase05HSL), 0.4) !important; border-radius: 100vmax !important; } ::-webkit-scrollbar-thumb:vertical { background-image: "" !important;} ::-webkit-scrollbar-thumb:horizontal { background-image: "" !important;} ::-webkit-scrollbar-thumb:hover { background: linear-gradient( 90deg, hsla(var(--vbnGlow05HSL), 1), hsla(var(--vbnGlow05HSL), 1), hsla(var(--vbnGlow03HSL), 1)) !important; } /* ========== 背景 */ ::-webkit-scrollbar-track { background: transparent !important; border-radius: 100vmax !important; } /* ========== 上下按钮 */ ::-webkit-scrollbar-button { display: none !important;} /* ========== 滑块以外 */ ::-webkit-scrollbar-track-piece { display: none !important;} /* ========== 滚动条交界处角落区域 */ ::-webkit-scrollbar-corner { display: none !important;} ::-webkit-resizer { display: none !important;} `); }); // #endregion // $ ================================================== ↓ Assign // #region Baidu VBN_GLOBAL_LOGIC.activate("Search", { matchSubjoin: { include: [ "*baidu.com/*" ], exclude: [] } }, () => { GM_addStyle( /* css */ ` html #wrapper #wrapper_wrapper #container #content_left .c-container[tpl="XXXXX"] { vbn { top: var(); } } /* ============================== ↓ Global */ html #wrapper { --colorKeyWord: #3978d0; --SearchWidth: calc(var(--vbnSpaceWidthVW) / 2 ); --bgRepair: -6px; } html .wrapper_new { background: var(--vbnBase09HEX);} /* ========== ↓ 隐藏模块 */ html #searchTag, /* 顶部 - 搜索关联词 */ html #rs_new .c-color-t.rs-label_ihUhK, /* 底部 - 相关搜索 标题 */ html #wrapper #container #content_right, /* 内容区 - 右侧板块 */ html #wrapper #container .c-container[tpl="note_lead"], /* 内容区 - 模块 精选笔记 */ html #wrapper #container .c-container[tpl="yl_vd_generic_new"], /* 内容区 - 模块 电影 */ html #wrapper #container .c-container[tpl="recommend_list"] .c-color-t.title_Zinx- /* 内容区 - 大家还搜索了 标题 */ { display: none; } /* ========== ↓ 移除下划线 */ html .doc-title_3Jos6 a:hover, html .doc-title_3Jos6 a:hover em { text-decoration: none !important; } html a, html em, html :link, html a:hover, html em:hover, a:hover em, html a.cos-link:hover, html #wrapper #container .c-container .t *, html #wrapper #container .c-container .c-title *, html #wrapper #container .c-container .cosc-title-a :hover, html #wrapper #container .c-container .cosc-title-a :hover em, html #wrapper #container .c-container .cosc-title-slot, html #wrapper #container .c-container .cosc-title-slot *, html #wrapper #container .c-container .cosc-title-slot:hover, html #wrapper #container .c-container .cosc-title-slot:hover *, html #wrapper #container .c-container .title_7Iz74 .cos-link, html #wrapper #container .c-container ._sc-title_1g9za_66 *, html #wrapper #container .c-container ._sc-title_1g9za_66 :hover, html #wrapper #container .c-container ._sc-title_1g9za_66 :hover *, html #wrapper #container .c-container .video-main-title_S_LlQ:hover .title-default_518ig, html #wrapper #container .c-container .site-link_1JEbM .custom-underline a .cosc-title-slot:hover, html #wrapper #container .c-container ._head-title_1ml43_142 ._link_1ml43_146:hover ._paragraph_1ml43_156 { text-decoration: none; } /* ========== ↓ 内容区图片尺寸 */ html .c-container[tpl="ai_ecology"] .cos-row-col-12 > .cos-col-6, /* 轻秒图片转换器 */ html .c-container .cos-swiper-list .cos-swiper-item[style*="width: calc(33% - 5px)"], /* 百度有驾 */ html .c-container .video-wrap_7yrJ0 .cos-swiper-list .cos-swiper-item[style*="width: 34%;"] /* 百度翻译 */ { width: 15% !important; } html .c-container .cos-row > .cos-col[style*="width:25%"], /* 百度百科 */ html #wrapper #container .c-container[tpl="sg_kg_entity_san"] .cos-row.cos-gutter > .cos-col-3, /* 百度百科 */ html .c-container[tpl="nvl_bookstore_san"] .cos-row-col-12 > .cos-col-3, /* 在线阅读 */ html .c-container .cos-row.bottom-gap_2aWpR.single-image_6zdhC > .cos-col[style*="width:24.5%"] /* 电影 封面 */ { width: 10% !important; } /* ========== ↓ 原生模块边框 */ html .pc-fresh-smooth .c-group-wrapper::after, html .pc-fresh-smooth .cosc-card-shadow:after, html .pc-fresh-smooth .new-pmd .c-border::after, html .pc-fresh-smooth .cu-border._content-border_1ml43_4:after { border: transparent; } /* ========== ↓ 原生模块阴影 */ html .cu-border, html .new-pmd .c-border, html .cosc-card-shadow, html .re-box-shadow_3l74t, html .re-box-shadow_1FfgR, html .pc-first-style_4Jcx0 { box-shadow: none; } /* ========== ↓ 标题 */ html #wrapper #container h3:not( .cos-space-mt-md h3, .card-title_2GtKe h3, .exta-links-pc_2sXPl h3, .exta-link-pc_3aUAb h3, .c-container[tpl="wenda_generate"] h3, ) { padding: var(--vbnSpacePadding); margin: -10px -20px 10px -20px; width: 100%; background: var(--vbnBase09HEX); border-radius: var(--vbnSurfaceRadius) var(--vbnSurfaceRadius) 5px 5px; } html .cos-pc .title-box_4YBsj { width: 100%; } html .cos-pc .title-wrapper_6E6PV { margin-top: -10px; } html .cos-pc .title-wrapper_6E6PV .pre-text_6ulGP { z-index: 1; } html ._link_1iyz5_2 { margin-bottom: 0; } /* ========== ↓ 标题文字 */ html a, html a:hover, html a.cos-link, html a.cos-link:hover { color: var(--colorKeyWord); } html ._paragraph_1g9za_2.md, html .cosc-title-md, html #wrapper #container.sam_newgrid .c-container .t, html #wrapper #container.sam_newgrid .c-container .c-title { color: var(--colorKeyWord); font-size: 15px; font-weight: bold; line-height: 1.5; } /* ========== ↓ 官方标 */ html .cos-pc .title-wrapper_6E6PV .suffix-icon_3Ox2w { position: absolute; top: -.55em; right: -1em; } html .cos-pc .title-wrapper_6E6PV .suffix-icon_3Ox2w .www-tag-fill-blue_3n0y3 { border-radius: var(--vbnUIRadius); } /* ========== ↓ 标题 icon */ html .front-icon_7wpfB { z-index: 999;} /* ========== ↓ 模块 通用 */ html #wrapper #container .new-pmd.c-container, html #wrapper #container .new-pmd[tpl="app/rs"] { box-sizing: border-box; position: relative; padding: var(--vbnSpacePadding); margin: var(--vbnSpaceMargin); width: 100%; font-size: 12px; background: #FFFFFF; box-shadow: var(--vbnOftenSurfaceShadowBase); border-radius: var(--vbnSurfaceRadius); transition: var(--vbnOftenTransition); } html #wrapper #container .new-pmd.c-container:hover, html #wrapper #container .new-pmd[tpl="app/rs"]:hover { z-index: 2; box-shadow: inset 0 0 2px hsla(0, 0%, 92%, .6), var(--vbnOftenSurfaceShadowHover); transform: var(--vbnSurfaceZoomIn); } html #wrapper #container #content_left > :first-of-type:hover, /* 内容区 首个 */ html #wrapper #container .new-pmd[tpl="app/rs"]:hover, /* 相关搜索 */ html #wrapper #container .new-pmd.c-container[tpl="jr_stock"]:hover, /* 百度股市通 */ html #wrapper #container .new-pmd.c-container[tpl="jr_exchange_rate"]:hover, /* 百度股市通 */ html #wrapper #container .new-pmd.c-container[tpl="wenda_generate"]:hover, /* AI 问答生成 */ html #wrapper #container .new-pmd.c-container[tpl="ai_ask"]:hover, /* AI 提问 */ html #wrapper #container .new-pmd.c-container[tpl="image_grid_san"]:hover, /* 百度图片 */ html #wrapper #container .new-pmd.c-container[tpl="ai_agent_qa_recommend"]:hover /* 聊一下更多精彩 */ { transform: none; } /* ---------- ↓ 内容块 -> 内容 距离 */ html ._content-border_1ml43_4:not([tpl="jy_hy_zi_accu_san"] ._content-border_1ml43_4) { padding: var(--vbnSpacePadding); margin: 0 -20px; } /* ---------- ↓ 内容块 -> 内容 宽度 */ html #wrapper #container .c-container[tpl="www_index"] { vbn { top: var(); } .cos-row .cos-col.content-space-between_44mGk[style*="width:75%;"] { width: 89% !important; } } /* ========== ↓ Markdown AI 问答区 「预计更改」 */ html .cosd-markdown .marklang h3 { font-size: 14px; } html .cosd-markdown .marklang, html .cosd-markdown .marklang .marklang-paragraph { font-size: 14px; } /* ============================== ↓ Head */ html .wrapper_new #head { top: 0; width: 100%; background: var(--vbnGlassLight); backdrop-filter: var(--vbnPanelFilter); transition: var(--vbnOftenTransition); } html .wrapper_new #head.peak-down { background: transparent; } html .wrapper_new #head.no-box-shadow, html .wrapper_new #head.no-box-shadow.s_down { box-shadow: var(--vbnGlassShadow); } html #wrapper #head:not(.s-manhattan-index div, .s_form_nologin div) { vbn { top: var(); } .head_wrapper { display: flex; justify-content: space-around; transform: translate3d(-15px, 0 , 1px); width: 100%; } /* ========== ↓ 用户中心 */ .head_wrapper #u { position: fixed; right: 40px; padding: 0; } /* ========== ↓ 搜索框 */ .s_form { display: flex; justify-content: center; padding: 0; width: auto; } .s_ipt_wr { width: var(--SearchWidth); } .s_form_fresh { width: inherit; padding: 0; } .bdsug-new { width: var(--SearchWidth); } .soutu-env-new .soutu-layer .soutu-url-wrap, .soutu-env-new .soutu-layer #soutu-url-kw { width: var(--SearchWidth); } #kw.s_ipt { width: 87%; } } /* ========== ↓ 分类 */ html .result-molecule.new-pmd:has(#s_tab) { --container-left-gap: auto; display: flex; justify-content: center; } html #wrapper .new-pmd[tpl="app/head-tab"] { vbn { top: var(); } #s_tab { display: flex; justify-content: center; border: none; padding-top: 70px; padding-left: 0; } #s_tab .s_tab_inner { display: flex; justify-content: space-between; width: calc(var(--vbnSpaceWidthVW) / 2 + 260px); min-width: 920px; padding-left: 0; } } /* ========== ↓ 检索信息 搜索框下 */ html #rs_top_new, html .hit-toptip, html .hit_top_new { opacity: .6; display: flex; justify-content: center; margin-top: calc(-1.2em + -2.6px); width: auto; } html #wrapper .new-pmd[tpl="app/search-tool"] { vbn { top: var(); } br { display: none; } /* ========== ↓ 筛选信息 */ .outer_wqJjM { margin: 10px 0 -10px 0;} .options_2Vntk { opacity: .8; width: 90%; margin: 0 auto;} } html #wrapper .new-pmd[tpl="app/toptip"] { vbn { top: var(); } br { display: none; } } html #wrapper .new-pmd[tpl="app/hit-top-new"] { vbn { top: var(); } br { display: none; } .c-icon-bear-circle { transform: scale(.8); } } /* ============================== ↓ Content */ html #wrapper #wrapper_wrapper { margin: 0 auto; width: var(--vbnSpaceWidthVW); } html #wrapper #container { width: 100%; padding: 0; margin: 0 auto; } html #wrapper #container #content_left { width: 100%; padding: 0 !important; margin: 0 auto !important; } /* ========== ↓ 组件 */ /* ========== ↓ 计算器 */ html #wrapper #container .c-container[tpl="ms_new_calc"] { vbn { top: var(); } .new-pmd { width: 60%; margin: 20px auto; } .calc-oprate_24c8k { display: flex; justify-content: space-evenly; } .calc-oprate_24c8k .func-calc_3t0OK { width: 60%;} .calc-box_1qoea { box-shadow: inset 1px 1px 1px 0px rgba(255, 255, 255, 0.8), inset -1px -1px 1px 0px rgba(40, 49, 85, 0.3), 1px 1px 3px 0px rgba(40, 49, 85, 0.1); } } /* ========== ↓ 日历 */ html #wrapper #container .c-container[tpl="ms_calendar_san"] { vbn { top: var(); } &.new-pmd { width: 60%; min-width: 600px; margin: 20px auto; } ._bg-header_1ml43_46 { width: 99%; top: -5px; left: 5px; } } /* ========== ↓ 汇率换算 */ html #wrapper #container .c-container[tpl="jr_exrate_san"] { vbn { top: var(); } .aladdin_3Tvaz .bg-header_G63NE { top: var(--bgRepair); } } /* ========== ↓ 单位换算 */ html #wrapper #container .c-container[tpl="ms_measures_san"] { vbn { top: var(); } .cosc-card-light-bg { top: -18px; } .cosc-card-horizontal-gradient { width: 110%; background-position: center; } } /* ========== ↓ 模块 百度AI */ html #wrapper .c-group-wrapper { padding: 0; margin: 0; background: transparent; box-shadow: none; } html #wrapper .c-group-wrapper .result-op { width: 100% !important; } html #wrapper #container .new-pmd.c-container[tpl="wenda_generate"] { padding-top: 20px; } /* ========== ↓ 问答生成 */ html #wrapper #container .c-container[tpl="ai_index"], html #wrapper #container .c-container[tpl="wenda_generate"], html #wrapper #container .c-container[tpl="new_baikan_index"] { overflow: auto; max-height: 526px; &::-webkit-scrollbar { display: none; } /* .cosc-card-content { margin-top: var(--bgRepair); } */ .cosc-card-light-bg:not([tpl="wenda_generate"] div) { top: var(--bgRepair); } .cosd-markdown .marklang .marklang-paragraph { line-height: 1.5; } } html #wrapper #container .c-container[tpl="ai_index"] { vbn { top: var(); } div[class*="_aladdin"] { width: 97%; margin: 0 auto; padding: 0; } .swiper-box_33dzT { width: 102.6%; margin: -10px auto; margin-left: -20px; box-shadow: none; border-radius: var(--vbnPanelRadius); } ._bg-header_1ml43_46 { overflow: visible; } ._horizontal-gradient_1ml43_56 { width: 102.6%; margin: 3px auto; margin-left: -20px; background-size: 110% 100% !important; background-position: top center !important; border-radius: var(--vbnPanelRadius); } } html #wrapper #container .c-container[tpl="wenda_generate"] { vbn { top: var(); } /* ---------- ↓ ICON 听 */ .audio_63a7U { margin-top: 0; } } html #wrapper #container .c-container[tpl="new_baikan_index"] { vbn { top: var(); } } html #wrapper #container .c-container[tpl="ai_ask"] { vbn { top: var(); } } /* ========== ↓ 模块 百度健康 */ html #wrapper #container .c-container[tpl="med_aigc_guru_san"] { vbn { top: var(); } .medAigcPcCard_29xxv { margin-top: -5px; } } /* ========== ↓ 模块 百度翻译 */ html #wrapper #container .c-container[tpl="fy_fanyi_ai_san"], html #wrapper #container .c-container[tpl="fy_sg_dictwisenew_san"] { vbn { top: var(); } h3 { /* margin: -10px -20px -5px -20px; */ background: transparent; } .dict-card_Pbfer .cosc-card { padding-top: 0 !important; } .daoliu-con_3mmBo { margin-top: 15px; } .footer_6VBOp { margin-top: -5px; } .cosc-card-content { margin-top: var(--bgRepair); } .cosc-card-light-bg:not([tpl="wenda_generate"] div) { top: var(--bgRepair); } } /* ========== ↓ 模块 百度贴吧 */ html #wrapper #container .c-container[tpl="tieba_general"] { vbn { top: var(); } .cos-space-mt-md { width: 96%; } } /* ========== ↓ 模块 百度图片 */ html #wrapper #container .c-container[tpl="image_grid_san"] { vbn { top: var(); } h3 { margin: 0px -20px; background: transparent; } .image-container_7qr7Y.image-container-pc_57ELg { display: flex; gap: 40px; } .image-container_7qr7Y .row-border-list_50f1g { gap: 20px; } } /* ========== ↓ 模块 百度百科 */ html #wrapper #container .c-container[tpl="bk_polysemy"] { vbn { top: var(); } .c-span9 { width: calc(100% - 128px - 20px); } .c-span12 { width: 100%; } } html #wrapper #container .c-container[tpl="sg_kg_entity_san"] { vbn { top: var(); } .button_sx9Ei .content_7L4g2 { color: var(--colorKeyWord); } .c-span9 { width: 85%; } /* ========== ↓ 演员列表 */ .cos-swiper-list { justify-content: space-around; } } /* ========== ↓ 模块 百度文库 */ /* html #wrapper #container .c-container[tpl="www_index"][mu*="https://wenku.baidu.com/"] { vbn { top: var(); } */ html #wrapper #container .c-container[tpl="jy_wenku_wenshu"] { vbn { top: var(); } h3 { padding: 10px 45px; margin: -10px -20px 10px -43px; } .title-wrapper_6E6PV .front-icon_7wpfB { z-index: 1; font-size: 15px; } /* ========== ↓ 修复标题 */ .doc-title_3Jos6 { background: transparent; } } /* ========== ↓ 模块 百度汉语 */ html #wrapper #container .c-container[tpl="jy_hy_zi_attr_san"], html #wrapper #container .c-container[tpl="jy_hy_zi_accu_san"] { vbn { top: var(); } .bg-header_2y46S._bg-header_1ml43_46, .bg-header_5SZvD { width: 102%; top: -6px; left: -15px; right: 0; } h3 { background: transparent; } } /* ========== ↓ 模块 百度天气 */ html #wrapper #container .c-container[tpl="weather_forecast_san"] { vbn { top: var(); } --width: 10px; .content-border_2OSp3 { box-shadow: none; } /* ========== ↓ 按钮 左右翻页 */ .load_4cwYw.back_5ndVv { left: var(--width); } .load_4cwYw.more_3kyUW { right: var(--width); } } /* ========== ↓ 模块 百度有驾 */ html #wrapper #container .c-container[tpl="car_kg2_san"] { vbn { top: var(); } } /* ========== ↓ 模块 AI 工具箱 */ html #wrapper #container .c-container[tpl="ai_ecology"] { vbn { top: var(); } --width: 12%; .cos-row-col-12 > .cos-col-3 { width: var(--width); } .card-footer-normal_nPWGd { left: calc(var(--width) - 15px/4); } } /* ========== ↓ 模块 音乐 */ html #wrapper #container .c-container[tpl="yl_music_song"] { vbn { top: var(); } --width: 1260px; .table-container_39X6k .table-thead_2yUCX .th-num_390pb, .table-container_39X6k .table-tbody_3exJd .td-num_evVor { width: var(--width); } } /* ========== ↓ 模块 百家号 */ /* ========== ↓ 模块 全网热卖 */ html #wrapper #container .c-container[tpl="sp_purc_pc"] { vbn { top: var(); } h3 { margin: -22px -20px 10px -20px; } .content-wrap_2UG9e > div[style*="display: block"] { display: flex !important; justify-content: space-evenly; } .row_IIB9a { margin: 0; } .sp_purc_pc-sku-item_3KDHq { margin: 15px 40px 15px 0; } } /* ========== ↓ 模块 在线阅读 */ /* ========== ↓ 模块 在线观看 */ html #wrapper #container .c-container[tpl="yl-vd-basis"] { vbn { top: var(); } .c-span9 { width: max-content; } } /* ========== ↓ 模块 高清在线观看 */ html #wrapper #container .c-container[tpl="short_video"] { vbn { top: var(); } .content_LHXYt > div { display: flex; gap: 20px; } .content_LHXYt .c-row { display: flex; gap: 20px; } .c-gap-top-large, .c-span4 { margin: 0; } } /* ========== ↓ 模块 聊一下更多精彩 */ html #wrapper #container .c-container[tpl="ai_agent_distribute"] { vbn { top: var(); } .card-title_6qPL6 { width: 100%; } .content_EbWw1 .common-content_4dXMi { width: 95%; } } /* ========== ↓ 模块 实时智能回复 */ html #wrapper #container .c-container[tpl="ai_agent_qa_recommend"] { vbn { top: var(); } /* ========== ↓ 标题 */ .cos-space-mt-lg { margin-top: 0; } .agent-qa-card_3V5cX .card-title_2GtKe { margin: 10px 0; } } /* ========== ↓ 模块 最新信息 */ html #wrapper #container .c-container[tpl="news-realtime"] { vbn { top: var(); } .single-card-wrapper_2nlg9 { display: flex; justify-content: flex-start; border-radius: var(--vbnSurfaceRadius); box-shadow: none; } .single-card-wrapper_2nlg9 > .c-row { display: flex; } .single-card-wrapper_2nlg9 > .c-row:last-of-type { display: none; } } /* ========== ↓ 模块 最新相关信息 */ html #wrapper #container .c-container[tpl="rel_base_realtime"] { vbn { top: var(); } img { border-radius: var(--vbnBaseRadius); } .cos-image-3-2 { padding-bottom: 25%; } .cos-image-fit-cover .cos-image-background { background-size: contain; } } /* ========== ↓ 模块 最新相关信息 */ html #wrapper #container .c-container[mu*="https://wenku.baidu.com/"] { vbn { top: var(); } ._image_14uts_1 { background-size: contain !important; padding-bottom: 25% !important; } } /* ========== ↓ 模块 相关搜索 */ html #wrapper #container .c-container[tpl="recommend_list"] { vbn { top: var(); } .pc-rg-upgrade_2X3zi .item_3WKCf { margin: 5px !important; color: var(--colorKeyWord); } } html #wrapper .new-pmd[tpl="app/rs"] { vbn { top: var(); } padding: var(--vbnSpacePadding) !important; margin: var(--vbnSpaceMargin) !important; #rs_new { margin: 0; width: 100%; } #rs_new table { margin: 20px auto; } #rs_new table tr { display: flex; gap: 40px; } #rs_new table tr .rs-link_2DE3Q { color: var(--vbnBaseColor);} } /* ========== ↓ Other */ html #wrapper #container .c-container { vbn { top: var(); } .recommend-none-border { display: flex; gap: 20px; } .c-gap-top-middle { margin-top: 0; } } /* ============================== ↓ Bottom */ html #wrapper .new-pmd[tpl="app/page"] { vbn { top: var(); } #page { width: 100% !important; background: transparent; } .page_2muyV a { color: var(--colorKeyWord); } #page a:hover .pc, #page .n:hover, .page_2muyV a:hover { filter: none; color: var(--colorKeyWord); background: transparent; box-shadow: var(--vbnSurfaceShadow) hsla(var(--vbnAccentHSL), .200); } .page_2muyV .page-inner_2jZi2 { padding: 0 !important; margin: 10px auto !important; width: max-content !important; } } html #wrapper .new-pmd[tpl="app/footer"] { vbn { top: var(); } .foot-container_2X1Nt { visibility: hidden;} } `); /* ========== vbnFocal */ (function VBN_Baidu_vbnFocal() { VBN_ADD_CLASS.apply({ delay: 260, target: [ ".c-container [data-module='title']", ".c-container [class^='title_']", ".c-container h3[class*='title'] a", ], subjoin: [ "vbnFocal", "LR", ], }); })(); }); // #endregion // // #region Google // VBN_GLOBAL_LOGIC.activate("Search", { // matchSubjoin: { // include: [ "*Google.com/*" ], // exclude: [] // } }, () => { // GM_addStyle( /* css */ ` // html .main { background: var(--vbnBase09HEX);} // html .sfbg, html .Lu57id { background: transparent;} // /* ========== ↓ 隐藏模块 */ // html .b_footer, /* 底部 - XXXXX */ // html #search .dURPMd > .ULSxyf /* 内容区 - 图片模块 */ { // display: none; // } // /* ============================== ↓ Head */ // html #searchform { margin: 10px 0;} // html .minidiv .logo { top: 2px;} // html .minidiv .RNNXgb { margin: 12px 0 0;} // /* ========== ↓ Head 粘性定位 */ // html .minidiv .sfbg { // height: 90px; // background: hsla(0, 0%, 100%, 0.4); // backdrop-filter: var(--vbnPanelFilter); // box-shadow: // inset 0px -1px 3px #FFFFFF50, // var(--vbnPanelShadow) hsla(var(--vbnBase04HSL), 0.05); // } // /* ========== ↓ NAV */ // html .ym1pid.qS9jbf.KLEmSd {border: none;} // /* ---------- ↓ NAV 修正 */ // @media (max-width: 1920px) {html #hdtb-sc {margin: 0 0 0 -14vw;}} // @media (min-width: 1920px) {html #hdtb-sc {margin: 0 0 0 -5vw;}} // /* ============================== ↓ Content */ // html #main #cnt {margin: 0 auto; width: var(--vbnSpaceWidthVW);} // html div[two-father] {width: var(--vbnSpaceWidthVW) !important;} // /* ---------- ↓ 内容区 修正 */ // @media (max-width: 1920px) {html #center_col { margin: 0px 0 0 -29vw;}} // @media (min-width: 1920px) {html #center_col { margin: 0px 0 0 -21vw;}} // /* ---------- ↓ 什么 NT 玩意 */ // @media (min-width: 1675px) { // html .YNk70c { grid-template-columns: 400px repeat(20,36px) minmax(0,1fr); } // } // /* ========== ↓ 通用模块 */ // html .MjjYud, // html #rso div[two-father] div[two-child] { // width: 100% !important; // padding: var(--vbnSpacePadding) !important; // margin: var(--vbnSpaceMargin) !important; // border: none !important; // border-radius: var(--vbnSurfaceRadius) !important; // background: #FFF !important; // box-shadow: var(--vbnSurfaceShadow) hsla(var(--vbnBase04HSL), 0.050) !important; // transition: all .526s var(--vbnTransitionSoft) !important; // } // html .MjjYud:hover, // html #rso div[two-father] div[two-child]:hover { // position: relative !important; // z-index: 9 !important; // border: none !important; // box-shadow: var(--vbnSurfaceShadow) hsla(var(--vbnAccentHSL), 0.260) !important; // transition: all .6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; // transform: var(--vbnSurfaceZoomIn) !important; // } // /* ---------- ↓ 通用模块 修正 */ // html div[two-father] div[two-child] > div {background: transparent;} // /* ========== ↓ 标题动画 */ // html #rcnt #res h3:visited, // html #rcnt #extrares h3:visited, // html div[two-child] h3:visited, // html div[two-father] div[two-child] a h3:visited { // display: inline-block; // width: max-content; // font-weight: bold; // } // html #rcnt #res h3:after, // html #rcnt #extrares h3:after, // html div[two-child] h3:after, // html div[two-father] div[two-child] a h3:after { // content: ""; // position: absolute; // left: 100%; // bottom: -2px; // width: 0; // border-bottom: 2px solid var(--vbnAccentHEX); // transition: transform 350ms, left 350ms; // } // html #rcnt #res h3:hover:after, // html #rcnt #extrares h3:hover:after, // html div[two-child] h3:hover:after, // html div[two-father] div[two-child] a h3:hover:after { // left: 0; // width: 100%; // transition: transform .26s; // } // /* ========== ↓ 模块 用户还搜索了 */ // html #bres > .ULSxyf { width: calc(var(--vbnSpaceWidthVW) - 40px );} // html .b2Rnsc:hover { color: var(--vbnAccentHEX); text-decoration: none;} // /* ---------- ↓ 通用模块 修正 */ // #rso div[two-father] div[two-child] { width: calc(var(--vbnSpaceWidthVW) - 40px) !important;} // html .IiOSLb .rsGxI.Ww4FFb, .Ww4FFb {background-color: transparent;} // html .eqAnXb {margin: -20px 0 0 0; width: var(--vbnSpaceWidthVW);} // /* ============================== ↓ Bottom */ // html .f6F9Be.TrMVnc {border-radius: var(--vbnSurfaceRadius) var(--vbnSurfaceRadius) 0 0;} // html .b2hzT {border-bottom: none;} // /* ---------- ↓ Bottom 修正 */ // @media (max-width: 1920px) { html .SLPe5b {margin: 10px 0 0 -18vw;} } // @media (min-width: 1920px) { html .SLPe5b {margin: 10px 0 0 -12vw;} } // /* ============================== ↓ 修正 */ // /* ---------- ↓ NAV */ // html .XtQzZd {padding: 0 0 5px 0;} // /* ---------- ↓ 通用模块 第一个 */ // html .tF2Cxc.asEBEc {margin: var(--vbnSpaceMargin);} // /* ---------- ↓ 模块 用户还搜索了 */ // html .ULSxyf > .MjjYud .oIk2Cb {padding: 15px 20px;} // `); // }); // // #endregion // // #region Bing // VBN_GLOBAL_LOGIC.activate("Search", { // matchSubjoin: { // include: [ "*bing.com/*" ], // exclude: [] // } }, () => { // GM_addStyle( /* css */ ` // html body, html #b_header { background: var(--vbnBase09HEX) !important;} // /* ========== ↓ 隐藏模块 */ // html .mfa_btn, /* Head 背景 */ // html #b_mcw > #b_topw.b_results_eml, /* 内容区 - 第一个 国际版 */ // html #b_results>.b_ans.b_top, /* 内容区 - 第一个 */ // html #b_results>.b_ans.b_mop, /* 内容区 - 影片模块 & 问了以下问题 */ // html #b_results>.b_ans.b_mop.b_vidAns /* 内容区 - 影片模块 */ { // display: none; // } // /* ============================== ↓ Head */ // /* ========== ↓ 用户中心 */ // html #b_header.as_rsform #id_h, #b_header #id_h { position: fixed !important; top: 2% !important; right: 1% !important;} // /* ========== ↓ 按钮 国内版 国际版 */ // html body #b_header #est_switch { margin: 25px auto; padding: 0;} // html body #est_switch #est_cn {margin: 0 20px;} // html #est_switch .est_selected, // #est_switch .est_unselected { // width: 50px; // height: 20px; // padding: 2px 2px 2px 15px; // font-size: 14px; // font-weight: bold; // line-height: 8px; // text-align: center; // color: white; // } // #est_switch .est_selected::after { // border: none !important; // background: #007AFF; // box-shadow: none !important; // } // /* ========== ↓ Head 粘性定位 */ // html body.b_pinhead #b_header { // height: calc(20px + var(--vbnSpace4X)) !important; // background: hsla(0, 0%, 100%, 0.4) !important; // backdrop-filter: var(--vbnPanelFilter) !important; // box-shadow: // inset 0px -1px 3px #FFFFFF50, // var(--vbnPanelShadow) hsla(var(--vbnBase04HSL), 0.05) !important; // } // /* ========== ↓ 搜索框 */ // html #b_header #sb_form { margin: 12px auto;} // html .b_searchboxForm { // box-shadow: // 0px 0px 00px 1px hsla(0, 0%, 0%, .02), // 2px 5px 10px 1px hsla(0, 0%, 0%, .06); // } // /* ============================== ↓ Content */ // #b_content #b_results { width: var(--vbnSpaceWidthVW) !important; max-width: 100% !important;} // /* ---------- ↓ 通用模块 */ // html #b_content #b_results > li:not(#mfa_root) { // padding: var(--vbnSpacePadding) !important; // margin: 8px 0 !important; // border: none !important; // border-radius: var(--vbnSurfaceRadius) !important; // box-shadow: var(--vbnSurfaceShadow) hsla(var(--vbnBase04HSL), 0.050) !important; // transition: all .526s var(--vbnTransitionSoft) !important; // } // /* ========== ↓ 通用模块 Hover */ // html #b_content #b_results > li:not(#mfa_root):hover { // box-shadow: var(--vbnSurfaceShadow) hsla(var(--vbnAccentHSL), 0.260) !important; // transform: var(--vbnSurfaceZoomIn) !important; // } // /* ========== ↓ 标题动画 */ // html body #b_content #b_results a:after, // #b_content #b_results h2 a:after { // bottom: -2px; // border-bottom: 2px solid var(--vbnAccentHEX); // transition: transform .26s, left .26s; // } // /* ============================== ↓ Bottom */ // /* ============================== ↓ 修正 */ // /* ========== ↓ Head 背景 */ // html body.b_respl.bing.b_sbText.b_pinhead header#b_header {background-color: transparent !important;} // #b_results .b_ans #brsv3 { width: calc(var(--vbnSpaceWidthVW) - 100px) !important; margin: 10px auto !important;} // #b_results .b_ans #brsv3 .b_vList { padding: 0 !important;} // #b_results #brsv3 .b_vList li { width: 300px !important; padding: 0 !important; margin: 5px !important;} // #b_header .b_topbar, #b_header .b_scopebar { margin: 20px 0 0px 0 !important;} // #b_header .b_searchbox { width: 861px !important;} // `); // }); // // #endregion // #region ComfyUI VBN_GLOBAL_LOGIC.activate("ComfyUI", { matchSubjoin: { include: [ ...VBN_SITE_GROUP.AIGC ], exclude: [] } }, () => { GM_addStyle( /* css */ ` :root { --themeColor: 220, 90%, 60%; --navHeight: 50px; --rgHeight: 10px; } #vue-app { --bar-shadow: 0 0 1.5rem #00000060; } html .comfyui-menu[data-v-1545ebd4] { height: var(--navHeight); } html .comfyui-body-left[data-v-0e9641c8] { z-index: 999; } html .side-tool-bar-container[data-v-44002598], html .comfyui-menu[data-v-1545ebd4] { background: var(--vbnGlassShadow); backdrop-filter: var(--vbnSurfaceFilter); } /* ========== ↓ 右键菜单 */ html .litegraph.litecontextmenu { padding: 5px; width: max-content; min-width: 150px; max-width: 260px; border-radius: var(--vbnUIRadius); box-shadow: var(--vbnUIShadow) #00000060 !important; } /* ========== ↓ 菜单选项 */ html .litegraph.litecontextmenu .litemenu-entry:not(.separator) { display: flex; align-items: center; padding: 2px; margin: 4px 0px; height: 25px; } html .litegraph.litecontextmenu .litemenu-entry.submenu:not(.separator), html .litegraph.litecontextmenu.dark .litemenu-entry.submenu { padding: 0 8px; line-height: 1.92; border-radius: var(--vbnUIRadius); } html .litegraph .litemenu-entry.separator { border-bottom: .1em dashed #00000040; } /* ========== ↓ 箭头图标 */ html .litemenu-entry.has_submenu::after { content: ""; position: absolute; top: 50%; right: 5px; transform: translateY(-50%); height: 1.2em; width: .2rem; background: hsla(var(--themeColor), 1); box-shadow: 2px 0 6px 0px hsla(var(--themeColor), .6); border-radius: 1em; } html .litegraph .litemenu-entry.has_submenu { border-right: none;} /* ========== ↓ 取值输入框 */ html .litegraph .graphdialog { padding: 7px 10px 7px 15px; border: var(--vbnUIBorder) var(--border-color); border-radius: var(--vbnPanelRadius); } html .graphdialog { box-shadow: var(--bar-shadow); } html .graphdialog input, html .graphdialog textarea, html .graphdialog select { border-radius: var(--vbnUIRadius); } `); (function VBN_ComfyUI_manager() { if (!VBN_GLOBAL_LOGIC.activate("manager")) return; GM_addStyle( /* css */ ` html #cm-manager-dialog { --vbnColumnH: 40px; --vbnRadiusS: var(--vbnUIRadius); --vbnRadiusM: var(--vbnPanelRadius); --vbnRadiusL: var(--vbnSurfaceRadius); --vbnFont: var(--vbnCodeFont); --vbnMappingText: var(--p-text-muted-color, #FFFFFFCC); --vbnMappingBase: var(--p-dialog-background, #00000040); --vbnMappingButtonBase: var(--p-listbox-option-focus-background, #00000050); --vbnMappingInputBase: var(--p-inputtext-background, #00000050); --vbnMappingBorder: 1px solid var(--p-select-border-color, #FFFFFF20); --vbnMappingBorderColor: var(--p-dialog-border-color, #FFFFFF20); width: 50vw; height: 50vh; } html .comfy-modal { padding: 40px 20px; padding-bottom: 20px; border: 2px solid var(--vbnMappingBorderColor); background-color: var(--vbnMappingBase); box-shadow: none; border-radius: var(--vbnRadiusL); font-family: var(--vbnFont); } html .comfy-modal-content { display: flex; flex-direction: column; align-items: center; } html .cm-title, html #cm-close-button { width: calc(100% - 40px); height: calc(var(--vbnColumnH) * 2); background-color: var(--vbnMappingButtonBase); border-radius: var(--vbnRadiusM); } html body #cm-close-button { position: sticky; bottom: 0; overflow: visible; flex-shrink: 0; height: calc(var(--vbnColumnH) + 20px); box-shadow: 0 10px 25px 0 #00000020; border-radius: var(--vbnRadiusM); } html .cm-title > font { color: var(--vbnMappingText); } html .cm-menu-container { display: flex; justify-content: space-around; gap: 20px; width: calc(100% - 40px); padding: 10px 0; } html .cm-menu-column { display: flex; flex-direction: column; align-items: center; justify-content: space-between; width: auto; } html .cm-menu-column > br:first-of-type { display: none; } html .comfy-modal input, html .comfy-modal select { height: var(--vbnColumnH); padding-left: 8px; border: var(--vbnMappingBorder); font-family: var(--vbnFont); font-size: .9em; color: var(--vbnMappingText); background-color: var(--vbnMappingInputBase); border-radius: var(--vbnRadiusS); } html .comfy-btn, html .comfy-menu > button, html .comfy-menu-btns button, html .comfy-menu .comfy-list button, html .comfy-modal button { margin-top: 4px; height: var(--vbnColumnH); border: var(--vbnMappingBorder); color: var(--vbnMappingText); font-family: var(--vbnFont); background-color: var(--vbnMappingButtonBase); border-radius: var(--vbnRadiusS); } html .comfy-btn:hover:not(:disabled), html .comfy-menu > button:hover, html .comfy-menu-btns button:hover, html .comfy-menu .comfy-list button:hover, html .comfy-modal button:hover, html .comfy-menu-actions button:hover { border: var(--vbnMappingBorder); background-color: var(--vbnMappingButtonBase); will-change: auto; } html #cm-manual-button, html #cm-nodeinfo-button { height: var(--vbnColumnH); } html #workflowgallery-button {height: calc(var(--vbnColumnH) + 20px); } html .cm-notice-board { border: var(--vbnMappingBorder); color: #626262; font-size: 14px; border-radius: var(--vbnRadiusM); } html .cm-experimental { border: var(--vbnMappingBorder); } html .cm-experimental-legend { line-height: 1.7;} html .cm-experimental-legend, html .cm-button-red { background-color: #B52121 !important;} html .comfy-modal p { color: var(--vbnMappingText) !important; } html .comfy-modal p, html .cm-experimental-button, html .cm-button, html #cm-nodeinfo-button { font-size: .9em !important; } `); })(); (function VBN_ComfyUI_crystools() { if (!VBN_GLOBAL_LOGIC.activate("crystools")) return; GM_addStyle( /* css */ ` /* html .comfyui-menu-right > .flex > .comfyui-button-group:nth-child(2) { order: 1; flex-shrink: 0; } html .comfyui-menu-right > .flex > .comfyui-button-group { order: 2; flex-shrink: 0; } html .comfyui-menu #crystools-monitors-root { vbn { top: var(); } --vbnRadiusS: var(--vbnBaseRadius); order: 0; margin: 0 auto; flex: 0 1 auto; */ html .comfyui-menu #crystools-monitors-root { vbn { top: var(); } --vbnFontSize: 8px; --vbnRadiusS: 3px; position: fixed; top: calc( var(--navHeight) + var(--rgHeight) + 5px ); left: 50%; transform: translateX(-50%); width: max-content; .crystools-monitor { /* display: flex !important; */ align-content: center; justify-content: center; border-radius: var(--vbnRadiusS); background: transparent; } .crystools-monitor[class*="Crystools.ShowRam"] { order: 1 !important; .crystools-slider { background: #ef5f19 !important; } } .crystools-monitor[class*="Crystools.ShowCpu"] { order: 2 !important; .crystools-slider { background: #b5e70d !important; } /* #ff3cac */ } .crystools-monitor[class*="Crystools.ShowGpuUsageZero"] { order: 3 !important; .crystools-slider { background: #45d911 !important; } } .crystools-monitor[class*="Crystools.ShowGpuVramZero"] { order: 4 !important; .crystools-slider { background: #00F29C !important; } } .crystools-monitor[class*="Crystools.ShowGpuTemperatureZero"] { order: 5 !important; .crystools-slider { background: #8576f7 !important; } } .crystools-monitor[class*="Crystools.ShowHdd"] { order: 6 !important; .crystools-slider { background: #475295 !important; } } .crystools-slider { border-radius: var(--vbnRadiusS); } /* .crystools-monitor .crystools-content { display: flex; width: 8vw; max-width: 260px; height: 12px; } */ .crystools-monitor .crystools-content { display: flex; width: calc( 100vw / 5 - 126px); height: var(--vbnFontSize); background: #0d0f1499 !important; } .crystools-monitor .crystools-text { bottom: auto; margin-left: 0; color: #FFF; font-size: var(--vbnFontSize); font-weight: 700; } .crystools-label { top: 0; right: 10px; font-size: var(--vbnFontSize); font-weight: 700; } } `); })(); (function VBN_ComfyUI_rgthree() { if (!VBN_GLOBAL_LOGIC.activate("rgthree")) return; GM_addStyle( /* css */ ` html rgthree-progress-bar { height: var(--rgHeight) !important; } html rgthree-progress-bar { --rgthree-progress-bg-color: #171717cc; --rgthree-progress-nodes-bg-color: #524AF7cc; --rgthree-progress-steps-bg-color: #1dffb7cc; --rgthree-progress-error-bg-color: #e3520ccc; } `); })(); }); // #endregion // #region DeepSeek VBN_GLOBAL_LOGIC.activate("Chat", { matchSubjoin: { include: [ "*deepseek.com/*" ], exclude: [] } }, () => { if (!VBN_GLOBAL_LOGIC.activate("DeepSeek")) return; GM_addStyle( /* css */ ` :root { --vbnCustomWidth: calc(var(--vbnSpaceWidth02) + 24vw); --message-list-max-width: var(--vbnSpaceWidth02) !important; transition: all .526s var(--vbnTransitionSoft); } html ._9a2f8e4 { max-width: var(--vbnSpaceWidth02); } @media (max-width: 1600px){ :root { --message-list-max-width: var(--vbnCustomWidth) !important;} html ._9a2f8e4 { max-width: var(--vbnCustomWidth); } } html ._62b4800 {background: none;} `); }); // #endregion // #region ChatGPT VBN_GLOBAL_LOGIC.activate("Chat", { matchSubjoin: { include: [ "*chatgpt.com/*" ], exclude: [] } }, () => { if (!VBN_GLOBAL_LOGIC.activate("ChatGPT")) return; GM_addStyle( /* css */ ` * { --thread-content-max-width: var(--vbnSpaceWidth02) !important; } @media (max-width: 1600px){ * { --thread-content-max-width: calc(var(--vbnSpaceWidth02) + 24vw) !important;} } `); }); // #endregion // #region YUQUE VBN_GLOBAL_LOGIC.activate("YUQUE", { matchSubjoin: { include: [ "*yuque.com/*" ], exclude: [] } }, () => { GM_addStyle( /* css */ ` /* ========== ↓ 右侧边栏 文档导航 */ html .sidePanel-module_panel_Vr-DC, html .ne-toc-sidebar .ne-toc-view { background-color: transparent; } /* ========== ↓ 内容宽度 */ #main, #commonEditPage { --vbnWidth: 260px; /* 实际内容宽度为 原 750px + 设置的宽度 */ --vbnWidthOffset: -60px; /* 因原有左右侧边栏宽度不一 可设置向右偏移 调整至视觉居中 */ } @media (max-width: 2460px) { #main, #commonEditPage { --vbnWidth: 260px; --vbnWidthOffset: 0px; } } @media (max-width: 1920px) { #main, #commonEditPage { --vbnWidth: 100px; --vbnWidthOffset: 0px; } } @media (max-width: 1202px) { #main, #commonEditPage { --vbnWidth: 000px; --vbnWidthOffset: 0px; } } html .ne-viewer-body > *, html .DocReader-module_header_xAOtU { transition: all .92s var(--vbnTransitionSoft) } /* ========== ↓ 阅读模式 */ /* ========== ↓ 标题 */ html .DocReader-module_comment_eDglS, html .DocReader-module_header_xAOtU, html .DocReader-module_info_yXA4e { max-width: calc(850px + var(--vbnWidth) / 2 + var(--vbnWidthOffset)); } /* ========== ↓ 内容 */ html .ne-doc-major-viewer .ne-viewer-layout-mode-fixed .ne-viewer-body > * { max-width: calc(750px + var(--vbnWidth)); } html .article-content .ne-doc-major-viewer .ne-viewer-layout-mode-adapt .ne-viewer-body > *, html .article-content .ne-doc-major-viewer .ne-viewer-layout-mode-fixed .ne-viewer-body > * { margin-right: calc(var(--viewer-center-align-right) - var(--vbnWidth) / 2 + var(--vbnWidthOffset)) !important; } /* ========== ↓ 代码块 */ html .article-content .ne-doc-major-viewer .ne-viewer-layout-mode-fixed .ne-viewer-body > ne-alert-hole, html .article-content .ne-doc-major-viewer .ne-viewer-layout-mode-fixed .ne-viewer-body > ne-container-hole, html .article-content .ne-doc-major-viewer .ne-viewer-layout-mode-fixed .ne-viewer-body > ne-hole { width: calc(100% - var(--viewer-center-align-value) + var(--vbnWidth)); } /* ========== ↓ 编辑模式 */ /* ========== ↓ 标题 */ html .ne-doc-major-editor .ne-editor.layout-read-write:not(.ne-layout-mode-adapt) .ne-editor-extra-box { max-width: calc(890px + var(--vbnWidth) / 2 + var(--vbnWidthOffset)); } /* ========== ↓ 内容 */ html .ne-doc-major-editor .ne-editor.layout-read-write:not(.ne-layout-mode-adapt) .ne-engine>:not(.ne-full-width) { margin-right: calc(var(--center-editor-margin-right) - var(--vbnWidth) / 2 + var(--vbnWidthOffset)) !important; max-width: calc(750px + var(--vbnWidth)); } /* ========== ↓ 表格 */ html .ne-doc-major-editor .ne-layout-mode-fixed.ne-normal-toc:not(.ne-ui-sidebar-visible).ne-viewport-size-toc-XXL .ne-engine ne-table-hole { max-width: calc(752px + var(--vbnWidth)); } /* ========== ↓ Font */ /* ---------- ↓ 代码 */ html .ͼg .cm-scroller { font-family: var(--vbnCodeFont); font-size: var(--vbnCodeSize); } /* ---------- ↓ 行内代码 */ html ne-code-content { font-family: var(--vbnCodeFont); } html ne-code ne-text { font-size: var(--vbnCodeSize); } /* ========== ↓ Picture */ html .ne-image-wrap .ne-image-box { overflow: visible; background: transparent; } html .ne-image-wrap, html .ne-viewer ne-card[data-card-type=inline][data-card-name=image], /* 预览模式 */ html .ne-editor ne-card[data-card-type=inline][data-card-name=image] /* 编辑模式 */ { display: flex; justify-content: center; align-items: center; } html .ne-paragraph-spacing-relax.ne-typography-classic ne-card[data-card-name=image] img { border-radius: var(--vbnPanelRadius); filter: drop-shadow(0 20px 30px hsla(var(--vbnBase04HSL), 0.050)); transition: all .526s var(--vbnTransitionSoft); } html .ne-paragraph-spacing-relax.ne-typography-classic ne-card[data-card-name=image] img:hover { filter: drop-shadow(0 20px 30px hsla(var(--vbnAccentHSL), 0.260)); transform: var(--vbnSurfaceZoomIn); } /* ---------- ↓ 默认样式 */ /* ---------- ↓ Hover */ html .ne-editor ne-card[data-card-type=inline][data-card-name=image].ne-card-hovered .ne-image-wrap, html .ne-editor ne-card[data-card-type=inline][data-card-name=image].ne-focused .ne-image-wrap { border-color: transparent; } /* ---------- ↓ 选中图片的默认边框 */ html .ne-active .ne-ui-image-resizer-box { display: none; } /* ========== ↓ Table 「下方功能添加 vbnTable样式 此处仅作修复显示」 */ html ne-table-wrap.ne-ui-table-right-shadow:after { display: none; } /* ---------- ↓ table 外层容器 */ html .ne-table-hole > ne-table-wrap > ne-table-inner-wrap { overflow: visible !important; } /* ---------- ↓ 标题 */ html table[ne-table-row-head=true]:not([ne-table-head-text-gradient=true]) tr:first-child td .ne-td-content>.ne-b-filler, html table[ne-table-row-head=true]:not([ne-table-head-text-gradient=true]) tr:first-child td ne-text { font-weight: 700 !important; color: #4D4D4D !important; } /* ---------- ↓ 标题 背景及边框 */ html table[ne-table-row-head=true]:not([ne-table-head-text-gradient=true]) tr:first-child td { background-color: #FAFAFA !important; border-color: #00000000 !important; } html table[ne-table-row-head=true]:not([ne-table-head-text-gradient=true]) tr:first-child td:not(:first-child, :last-child) { border-left: 1px solid #00000010 !important; border-right: 1px solid #00000010 !important; } /* ---------- ↓ Sticky */ html ne-table-hole[class="ne-table-hole"] > ne-table-wrap > div[style*="top: 0px"] { top: -27px !important; } html tr.ne-tr.ne-tr-sticky { top: calc(79px - 27px) !important; border-radius: 0 0 var(--vbnSurfaceRadius) var(--vbnSurfaceRadius); } /* ========== ↓ 标题 */ html #article-title, html ant-input lake-title, html .ne-viewer ne-h1 ne-text, html .ne-engine ne-h1 ne-text { color: var(--vbnMarkdownH1);} html .ne-viewer ne-h2 ne-text, html .ne-engine ne-h2 ne-text { color: var(--vbnMarkdownH2);} html .ne-viewer ne-h3 ne-text, html .ne-engine ne-h3 ne-text { color: var(--vbnMarkdownH3);} html .ne-viewer ne-h4 ne-text, html .ne-engine ne-h4 ne-text { color: var(--vbnMarkdownH4);} html .ne-viewer ne-h5 ne-text, html .ne-engine ne-h5 ne-text { color: var(--vbnMarkdownH5);} html .ne-viewer ne-h6 ne-text, html .ne-engine ne-h6 ne-text { color: var(--vbnMarkdownH6);} html .lake-title-editor .lake-title { background-color: transparent; } /* ========== ↓ 工具栏 */ /* ---------- ↓ 选中图片 */ html .ne-card-toolbar { magic: 10px 0 0; border-radius: var(--vbnPanelRadius); } `); (function VBN_YUQUE_vbnTable() { if (!VBN_GLOBAL_LOGIC.activate("vbnTable")) return; VBN_ADD_CLASS.apply({ delay: 260, target: [ "#main.BookReader-module_content_BGKYX table", ], subjoin: [ "vbnTable", ], }); })(); (function VBN_YUQUE_vbnGrid() { if (!VBN_GLOBAL_LOGIC.activate("vbnGrid")) return; VBN_ADD_CLASS.apply({ delay: 260, target: [ ".BookReader-module_wrapper_s6Jdt", ".ne-layout-mode-adapt .ne-editor-wrap-box", ".ne-layout-mode-fixed .ne-editor-wrap-box", ], subjoin: [ "vbnGridSolid", ], }); })(); }); // #endregion // #region TickTick VBN_GLOBAL_LOGIC.activate("TickTick", { matchSubjoin: { include: [ "*dida365.com/*", "*ticktick.com/*", ], exclude: [ ] } }, () => { GM_addStyle( /* css */ ` /* ---------- ↓ 默认阴影 */ html .shadow-default, html .shadow-md { box-shadow: var(--vbnUIShadow) hsla(var(--vbnBase04HSL), .12); } /* ---------- ↓ 左下角 小日历 */ html .bg-sidebar-bg-color { background: transparent; } /* ---------- ↓ 看板 各列 */ html #column-list-inner > article { width: var(--vbnSpace4Y) !important; } `); }); // #endregion // #region Youtube VBN_GLOBAL_LOGIC.activate("Youtube", { matchSubjoin: { include: [ "*youtube.com/*" ], exclude: [ ] } }, () => { GM_addStyle( /* css */ ` @media (min-width: 1500px) { /* ---------- ↓ Video */ html ytd-rich-grid-renderer[is-default-grid] ytd-rich-item-renderer[rendered-from-rich-grid] { --ytd-rich-grid-items-per-row: 6 !important; } /* ---------- ↓ Shots */ html ytd-rich-shelf-renderer[is-shorts] ytd-rich-item-renderer[items-per-row][is-slim-media] { --ytd-rich-grid-items-per-row: 8 !important; } /* ---------- ↓ News */ html ytd-rich-shelf-renderer[elements-per-row] ytd-rich-item-renderer[is-shelf-item] { --ytd-rich-grid-items-per-row: 6 !important; } } `); }); // #endregion // #region Bilibili VBN_GLOBAL_LOGIC.activate("Bilibili", { matchSubjoin: { include: [ "*Bilibili.com/*" ], exclude: [ ] } }, () => { GM_addStyle( /* css */ ` /* ---------- ↓ 默认小按钮 */ html.vbn .video-pod .video-pod__header .header-bottom .right .subscribe-btn { border-radius: var(--vbnBaseRadius); } /* ---------- ↓ 播放列表高度 */ html.vbn .video-container-v1 .video-pod .video-pod__body { max-height: 43vh; } `); }); // #endregion // #region Other /* ========== Greasyfork */ if ( VBN_MATCH_RULE.match({ include: [ "*greasyfork.org/*", ], exclude: [ ] }) ) { GM_addStyle( /* css */ ` /* html .install-help-link { font-size: 1.08em; } html .install-link[data-ping-url] { font-size: 1.08em; } */ `); /* ========== vbnLink */ (function VBN_Greasyfork_vbnLink() { VBN_ADD_CLASS.apply({ delay: 260, target: [ "body a[href]:not(#script-links [href], #install-area [href], #script-list-option-groups [href], #main-header [href]):not(:has(img))", "#main-header a[href]:not(#site-name [href])", ".browser-list-selector:not(.browser-list-selector-active)", ], subjoin: [ "vbnLink", ], }); })(); } /* ========== Dillinger */ if ( VBN_MATCH_RULE.match({ include: [ "*dillinger.io/*" ], exclude: [ ] }) ) { GM_addStyle( /* css */ ` .vbn { & html, body { font-family: var(--vbnBaseFont); } } `); } /* ========== Bigjpg */ if ( VBN_MATCH_RULE.match({ include: [ "*bigjpg.com/*" ], exclude: [ ] }) ) { GM_addStyle( /* css */ ` @media (min-width: 768px) { html .container { max-width: none; } html .jumbotron { padding-top: 80px; padding-bottom: 80px; } } `); } /* ========== 115 */ if ( VBN_MATCH_RULE.match({ include: [ "*://115.com/*" ], exclude: [ ] }) ) { GM_addStyle( /* css */ ` /* ========== 云下载 弹窗 */ html .offline-box { position: fixed !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%); width: 43vw !important; height: 50vh; border-radius: var(--vbnSurfaceRadius); transition: all .43s var(--vbnTransitionSoft); } /* ---------- 云下载 输入框 */ html .dialog-input.input-offline textarea { height: 32vh; border-radius: var(--vbnSurfaceRadius); } @media (max-width: 1200px) { html .offline-box { width: 59vw !important; height: 92vh;} html .dialog-input.input-offline textarea { height: 70vh;} } `); } /* ========== XXXXX */ if ( VBN_MATCH_RULE.match({ include: [ "*mp.weixin.qq.com/*" ], exclude: [ ] }) ) { GM_addStyle( /* css */ ` html .pages_skin_pc.wx_wap_desktop_fontsize_2 .rich_media_area_primary_inner { max-width: var(--vbnSpaceWidth02); } `); } /* ========== XXXXX */ if ( VBN_MATCH_RULE.match({ include: [ "*douyin.com/*" ], exclude: [ ] }) ) { GM_addStyle( /* css */ ` html.vbn, html body, html body > div:first-child { height: auto; } `); } /* ========== XXXXX */ if ( VBN_MATCH_RULE.match({ include: [ "*periodic-table-tags-mu-six.vercel.app/*" ], exclude: [ ] }) ) { GM_addStyle( /* css */ ` html .title h1 { display: none; } html .star { margin: 100px 0; } html .intro { margin: 24vh 0 14vh 20vw; } html .elements[data-v-ff33deea] { border-radius: var(--vbnUIRadius); transition: all .526s var(--vbnTransitionSoft); width: 5rem; font-family: var(--vbnCodeFont); font-size: var(--vbnCodeSize); } html .elements:hover { z-index: var(--vbnPriority00); box-shadow: var(--vbnPanelShadow) hsla(var(--vbnBase02HSL), 0.8), 0 0 0 2px #00000080 !important; transform: var(--vbnUIZoomIn); } html .elements .info[data-v-ff33deea] { z-index: var(--vbnPriority00); border-radius: var(--vbnPanelRadius); } `); } // #endregion // $ ================================================== ↓ Micro // #region NetDisk.Check VBN_GLOBAL_LOGIC.activate("NetDisk_Check", () => { GM_addStyle( /* css */ ` /* ========== 连接正确 */ html .one-pan-tip { text-decoration: none;} html .one-pan-tip::before { height: .95em; width: .95em; margin: 0 .15em .15em; background-image: var(--vbnICON-URL-Correct); } /* ========== 连接错误 */ html .one-pan-tip-error { text-decoration: none;} html .one-pan-tip-error::before { background-image: var(--vbnICON-URL-Error); } /* ========== 带提取码 */ html .one-pan-tip-lock::before { background-image: var(--vbnICON-URL-Safety); } /* ========== 夸克 */ html .one-pan-tip-partial::before { background-image: var(--vbnICON-URL-Info); } `); }); // #endregion })();