正在生成您的专属代码...


import { connect } from "cloudflare:sockets";

const _aMvnUkYs = "3b4d4cd8-cb92-4421-bf86-fb51570fc038";
const _PKhAkozK = ["UpstreamAddress.SG.CMLiussss.net"];

const _gZktKaFQ = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _YBwOennV = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _VrqZwkxf = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90';
const _bHyDzkan = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9C%B0%E5%8C%BA%E5%90%8D%E7%A7%B0';

function _wuyrgzEY(_QgjxXDNU) {
    if (Array.isArray(_QgjxXDNU)) {
        try {
            return String.fromCharCode.apply(null, _QgjxXDNU);
        } catch (_AYpGQMns) {
            return '';
        }
    }
    return _QgjxXDNU;
}

function _CZHnZWfy(_vdjrcNre) {
    return /^[0-9a-_BJKeNJGb]{8}-[0-9a-_BJKeNJGb]{4}-[4][0-9a-_BJKeNJGb]{3}-[89ab][0-9a-_BJKeNJGb]{3}-[0-9a-_BJKeNJGb]{12}$/_KvOstDnB.test(_vdjrcNre);
}

const _etgXLlJL = "optimized_ips_v4";
const _CZfuROLI = "global_config_v4";
const _JkEKcuvo = "admin_password_v4";
const _OUZNQLtB = "live_results_temp_v1";
const _aUDgDnHA = "latest_sub_id_v1";

export default {
  async fetch(_VKZoucbO, _fTzuFQXV, _QAsWicmN) {
    try {
      if (!_fTzuFQXV.DB) {
          const _goUVFGZe = _FGZiMWEn("D1 数据库 'DB' 未绑定。");
          return new Response(_goUVFGZe, { status: 503, _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/html;_VVVVrTRb=UTF-8' }});
      }

      _QAsWicmN.waitUntil(
          _fTzuFQXV.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_JmerAoNL TEXT PRIMARY KEY, _QgjxXDNU TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_vdjrcNre TEXT PRIMARY KEY, _gEylmZbU TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_AYpGQMns => console.error("DB Init Error:", _AYpGQMns._hHFIgjMu))
      );

      const _JOTGTLwo = new URL(_VKZoucbO._JOTGTLwo);
      const _DLZqRmBf = _JOTGTLwo.pathname;
      const _DRoXtLey = _VKZoucbO._aluSVNtE.get("Upgrade");
      const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);
      
      if (_sbNKUEir.websocketStreamer && _sbNKUEir.websocketStreamer._fixYDcZO && _DRoXtLey && _DRoXtLey.toLowerCase() === "websocket") {
          const _MNNQJdTW = _sbNKUEir.websocketStreamer._JOTGTLwo;
          if (_MNNQJdTW && _MNNQJdTW.trim().startsWith('https://')) {
              try {
                  const _zSecvmDK = new Request(_MNNQJdTW.trim() + _JOTGTLwo.pathname + _JOTGTLwo.search, _VKZoucbO);
                  return await fetch(_zSecvmDK);
              } catch (_AYpGQMns) {
                  return new Response(`Upstream WebSocket gateway failed: ${_AYpGQMns._hHFIgjMu}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_DRoXtLey && _DRoXtLey.toLowerCase() === "websocket") {
          return await _UmFuwjnf(_VKZoucbO, _fTzuFQXV, _sbNKUEir);
      }
      
      const _QgMiHbJG = _DLZqRmBf._uuDYiJVH(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_QgMiHbJG) {
          const [, _IFchpDME, typeSuffix] = _QgMiHbJG;
          const _jKzRIgtB = _sbNKUEir._jKzRIgtB;
          if (!_jKzRIgtB || _jKzRIgtB.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' } });
          }
          const _IOhiveeZ = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _VwoYBqdT = _IOhiveeZ[typeSuffix];
          const _AcUltfBv = _jKzRIgtB.replace(/\/$/, '');
          const _bwFghFEc = `${_JOTGTLwo.origin}/${_IFchpDME}`;
          const _aqhyPXNi = `${_AcUltfBv}/${_VwoYBqdT}?_sbNKUEir=${encodeURIComponent(_bwFghFEc)}`;
          try {
              const _ycwFNCUu = await fetch(_aqhyPXNi, { _aluSVNtE: { 'User-Agent': _VKZoucbO._aluSVNtE.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _QyTnmqqt = new Headers(_ycwFNCUu._aluSVNtE);
              _QyTnmqqt._GUmzEavQ('Access-Control-Allow-Origin', '*');
              return new Response(_ycwFNCUu._PVFUdepj, { status: _ycwFNCUu.status, statusText: _ycwFNCUu.statusText, _aluSVNtE: _QyTnmqqt });
          } catch (_AYpGQMns) {
              return new Response(`获取上游订阅失败: ${_AYpGQMns._hHFIgjMu}`, { status: 502, _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' } });
          }
      }

      if (_DLZqRmBf.startsWith('/https:/') || _DLZqRmBf.startsWith('/http:/')) {
          return _XIpYMaQl(_VKZoucbO, _sbNKUEir);
      }
      
      if (_sbNKUEir.customSubPath && _sbNKUEir.customSubPath._fixYDcZO && _sbNKUEir.customSubPath._DLZqRmBf && _DLZqRmBf === '/' + _sbNKUEir.customSubPath._DLZqRmBf.trim()) {
          const _RmNhbqOj = _fTzuFQXV.DB.prepare("SELECT _QgjxXDNU FROM kv_data WHERE _JmerAoNL = ?").bind(_aUDgDnHA);
          const { _PlktmswB } = await _RmNhbqOj.all();
          const _iCWBqLPR = _PlktmswB._HbQNqGXH > 0 ? _PlktmswB[0]._QgjxXDNU : null;
          if (_iCWBqLPR) {
              return _ZqelvWxM({ _KrFlDnBL: { _vdjrcNre: _iCWBqLPR }, _JOTGTLwo: _VKZoucbO._JOTGTLwo }, _fTzuFQXV);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' } });
          }
      }
      
      const _HcHFXFKE = _DLZqRmBf.split('/').filter(Boolean);
      if (_HcHFXFKE._HbQNqGXH === 1 && !_DLZqRmBf.startsWith('/api/')) {
          const _IFchpDME = _HcHFXFKE[0];
          return _ZqelvWxM({ _KrFlDnBL: { _vdjrcNre: _IFchpDME }, _JOTGTLwo: _VKZoucbO._JOTGTLwo }, _fTzuFQXV);
      }

      if (_DLZqRmBf.startsWith('/api/')) {
          if (_DLZqRmBf === '/api/_sbNKUEir' && _VKZoucbO.method === 'POST') return _MIOhOqOk(_VKZoucbO, _fTzuFQXV, _QAsWicmN);
          if (_DLZqRmBf === '/api/_GUmzEavQ-_RyMheNdx') return _sqPofCTt(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/change-_RyMheNdx') return _DjLPUgnK(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/verify-_RyMheNdx') return _HcooiecI(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/verify-visitor-_RyMheNdx' && _VKZoucbO.method === 'POST') return _vfzrBWVH(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/cache-live-_PlktmswB' && _VKZoucbO.method === 'POST') return _ysmttold(_VKZoucbO, _fTzuFQXV, _QAsWicmN);
          if (_DLZqRmBf === '/api/get-_AbjkthOZ' && _VKZoucbO.method === 'POST') return _vmfdvOZg(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/get-cached-_iPsJCAAK') return _LkPaaohW(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/save-_iPsJCAAK') return _ETDrNMjS(_VKZoucbO, _fTzuFQXV, _QAsWicmN);
          if (_DLZqRmBf === '/api/save-and-get-sub-_vdjrcNre' && _VKZoucbO.method === 'POST') return _PLULiRQg(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf.startsWith('/api/get-_BEgPBLQR/')) {
              const _IFchpDME = _DLZqRmBf.split('/').pop();
              return _ZqelvWxM({ _KrFlDnBL: { _vdjrcNre: _IFchpDME }, _JOTGTLwo: _VKZoucbO._JOTGTLwo }, _fTzuFQXV);
          }
          if (_DLZqRmBf === '/api/_sbNKUEir' && _VKZoucbO.method === 'GET') return _EfGrzlUN(_fTzuFQXV);
          if (_DLZqRmBf === '/api/get-resolved-_iPsJCAAK') return _MTLBYhDB(_VKZoucbO);
          if (_DLZqRmBf === '/api/parse-_iPsJCAAK-from-_EZwYvCVI' && _VKZoucbO.method === 'POST') return _mnDSPUYI(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/endpoints') return _GuFQKhgv(_VKZoucbO, _fTzuFQXV);
          if (_DLZqRmBf === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_DLZqRmBf === '/_YrmoNQCm') return _CNAJktOU(_VKZoucbO, _fTzuFQXV);
      if (_DLZqRmBf === '/bing-wallpaper') return _MpyLdIPa();

      return _iKQXnpOu(_VKZoucbO, _fTzuFQXV, _QAsWicmN);
    } catch (err) {
      let _AYpGQMns = err;
      return new Response(_AYpGQMns.toString(), { status: 500 });
    }
  }
};

const _vBgbSmke = { 'Accept': '_ZmYcSgBh/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' };

async function _pUYmowIz(_JOTGTLwo, _rDjoRRDJ) {
    const _CgjWpKUq = await fetch(_JOTGTLwo, { _aluSVNtE: { ..._vBgbSmke, 'Referer': _rDjoRRDJ.referer } });
    if (_CgjWpKUq.ok) return _CgjWpKUq._ZmYcSgBh();
    return null;
}

async function _rttpCYqG(_JOTGTLwo, _rDjoRRDJ) {
    const _svIGyHyL = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_JOTGTLwo)}`;
    const _CgjWpKUq = await fetch(_svIGyHyL, { _aluSVNtE: { ..._vBgbSmke, 'Referer': _rDjoRRDJ.referer } });
    if (!_CgjWpKUq.ok) return null;
    const _PVFUdepj = await _CgjWpKUq._ZmYcSgBh();
    const _uuDYiJVH = _PVFUdepj._uuDYiJVH(/<pre[^>]*>([\s\S]*?)<\/pre>/_KvOstDnB);
    return _uuDYiJVH && _uuDYiJVH[1] ? _uuDYiJVH[1].replace(/&amp;/g, '&') : null;
}

function _oWxFrIGy(_IBLQQsrr) {
    let _xOUlGZez;
    try {
        _xOUlGZez = atob(_IBLQQsrr.replace(/\s/g, ''));
    } catch (_AYpGQMns) {
        _xOUlGZez = _IBLQQsrr;
    }

    const _BEgPBLQR = _xOUlGZez.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _cdOGfczD = new Set();
    const _HLfRZnyw = /@([^?#]+?):(\d+)/;

    for (const _XDrSdPBI of _BEgPBLQR) {
        let _ttVuNTKr = '';
        let _MYhKfdhm = '';

        try {
            if (_XDrSdPBI.startsWith('vmess://')) {
                const _xPZPzjbr = atob(_XDrSdPBI.substring(8));
                const _sbNKUEir = JSON.parse(_xPZPzjbr);
                _ttVuNTKr = _sbNKUEir.add;
                _MYhKfdhm = _sbNKUEir._MYhKfdhm;
            } else {
                const _uuDYiJVH = _XDrSdPBI._uuDYiJVH(_HLfRZnyw);
                if (_uuDYiJVH && _uuDYiJVH[1] && _uuDYiJVH[2]) {
                    _ttVuNTKr = _uuDYiJVH[1].replace(/[\[\]]/g, '');
                    _MYhKfdhm = _uuDYiJVH[2];
                }
            }
        } catch (_AYpGQMns) {
            console.warn(`Could not parse _XDrSdPBI: ${_XDrSdPBI}`);
        }

        if (_ttVuNTKr && _MYhKfdhm) {
            _cdOGfczD.add(`${_ttVuNTKr}:${_MYhKfdhm}`);
        }
    }
    return Array.from(_cdOGfczD);
}

async function _tTZUICck(_ESKkxAAV) {
    try {
        const _CgjWpKUq = await fetch(_ESKkxAAV, { _aluSVNtE: _vBgbSmke });
        if (!_CgjWpKUq.ok) {
            console.error(`Failed to fetch subscription: ${_CgjWpKUq.status}`);
            return [];
        }
        const _IBLQQsrr = await _CgjWpKUq._ZmYcSgBh();
        return _oWxFrIGy(_IBLQQsrr);
    } catch (error) {
        console.error(`Error processing subscription ${_ESKkxAAV}:`, error);
        return [];
    }
}

async function _vkbsWWFo(_VYmsCWlV) {
    const _WkRTvxtp = _VYmsCWlV.trim();
    const _NxpYcYRd = /^(vless|vmess|trojan|ss):\/\//.test(_WkRTvxtp);
    const _WroKAbzQ = (() => {
        if (_WkRTvxtp._HbQNqGXH < 20 || _WkRTvxtp.startsWith('http')) return false;
        const _VvnISPXk = _WkRTvxtp.replace(/\s/g, '');
        if (_VvnISPXk._HbQNqGXH % 4 !== 0 && !_VvnISPXk.includes('=')) return false;
        try {
            atob(_VvnISPXk);
            return true;
        } catch (_AYpGQMns) {
            return false;
        }
    })();

    if (_NxpYcYRd || _WroKAbzQ) {
        return _oWxFrIGy(_WkRTvxtp).join('\n');
    }

    const _eVaIXNOk = [
        'https://ipdb.api.030101.xyz/?_XvhFCJpx=bestcf&_MiNrmaqr=true',
        'https://ipdb.api.030101.xyz/?_XvhFCJpx=bestproxy&_MiNrmaqr=true'
    ];
    const _WUPehtaF = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_KvOstDnB.test(_VYmsCWlV) || _VYmsCWlV.includes('?_UoSlQDtR=');

    if (_WUPehtaF) {
        const _iPsJCAAK = await _tTZUICck(_VYmsCWlV);
        return _iPsJCAAK.join('\n');
    }

    let _IBLQQsrr = '';
    if (_eVaIXNOk.includes(_VYmsCWlV)) {
        _IBLQQsrr = await _pUYmowIz(_VYmsCWlV, { referer: _VYmsCWlV });
        if (!_IBLQQsrr || _IBLQQsrr._HbQNqGXH < 8) {
            _IBLQQsrr = await _rttpCYqG(_VYmsCWlV, { referer: _VYmsCWlV });
        }
    } else {
        try {
            const _MUbLRjEI = await fetch(_VYmsCWlV, { _aluSVNtE: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_MUbLRjEI.ok) {
                _IBLQQsrr = await _MUbLRjEI._ZmYcSgBh();
            } else {
                console.warn(`Failed to fetch URL ${_VYmsCWlV}: ${_MUbLRjEI.status}`);
            }
        } catch (_AYpGQMns) {
            console.error(`Error fetching URL ${_VYmsCWlV}:`, _AYpGQMns);
        }
    }

    const _nDlwSawZ = _oWxFrIGy(_IBLQQsrr);
    if (_nDlwSawZ._HbQNqGXH > 0) {
        return _nDlwSawZ.join('\n');
    }

    return _IBLQQsrr || '';
}

async function _XIpYMaQl(_VKZoucbO, _sbNKUEir) {
    if (!_sbNKUEir.streamer._fixYDcZO) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _JOTGTLwo = new URL(_VKZoucbO._JOTGTLwo);
    const _QGziiHWV = _JOTGTLwo.pathname.substring(1).replace(':/', '://');
    try {
        const _aqhyPXNi = new URL(_QGziiHWV);
        const _wdsfStGn = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_wdsfStGn.some(domain => _aqhyPXNi._ttVuNTKr.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _dEwjBQki = new Headers(_VKZoucbO._aluSVNtE);
        _dEwjBQki._GUmzEavQ('Host', _aqhyPXNi._ttVuNTKr);
        _dEwjBQki._GUmzEavQ('User-Agent', 'CF-Worker-Streamer/1.0');
        const _bElvjiMf = await fetch(_aqhyPXNi.toString(), {
            method: _VKZoucbO.method,
            _aluSVNtE: _dEwjBQki,
            _PVFUdepj: _VKZoucbO._PVFUdepj,
        });
        const _QyTnmqqt = new Headers(_bElvjiMf._aluSVNtE);
        _QyTnmqqt._GUmzEavQ('Access-Control-Allow-Origin', '*');
        _QyTnmqqt._GUmzEavQ('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _QyTnmqqt._GUmzEavQ('Access-Control-Allow-Headers', '*');
        _QyTnmqqt._GUmzEavQ('Cache-Control', 'public, max-age=86400');
        _QyTnmqqt._GUmzEavQ('X-Streamer-Source', 'CF-Worker');
        _QyTnmqqt.delete('_IBLQQsrr-security-policy');
        _QyTnmqqt.delete('x-_IBLQQsrr-security-policy');
        _QyTnmqqt.delete('x-webkit-csp');
        return new Response(_bElvjiMf._PVFUdepj, {
            status: _bElvjiMf.status,
            statusText: _bElvjiMf.statusText,
            _aluSVNtE: _QyTnmqqt,
        });
    } catch (_AYpGQMns) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _UmFuwjnf(_VKZoucbO, _fTzuFQXV, _sbNKUEir) {
    try {
        const _oXYZBYXY = _sbNKUEir || await _hqWINZbA(_fTzuFQXV);
        const _pWUtCwqZ = (_oXYZBYXY.itemLink._EsgQZQSt && _oXYZBYXY.itemLink._EsgQZQSt[0]) || {};
        const _ZcSfciey = _pWUtCwqZ['_UoSlQDtR'] || _wuyrgzEY(_aMvnUkYs);

        if (!_CZHnZWfy(_ZcSfciey)) {
            throw new Error("Configured user _GgrNOVsf is not valid.");
        }

        const _rJQOSops = _oXYZBYXY.dataFeeds.universalFallbackAddress;
        let _kDUwKUFN = {};
        
        const _mqLTDmRL = _wuyrgzEY(_PKhAkozK[0] || "");

        if (_rJQOSops) {
            const [_gkPyfdIq, _MYhKfdhm = '443'] = _rJQOSops.split(':');
            _kDUwKUFN = { _gkPyfdIq, _MYhKfdhm };
        } else {
            const [_gkPyfdIq, _MYhKfdhm = '443'] = _mqLTDmRL.split(':');
            _kDUwKUFN = { _gkPyfdIq, _MYhKfdhm };
        }

        const _JOTGTLwo = new URL(_VKZoucbO._JOTGTLwo);
        const _DLZqRmBf = _JOTGTLwo.pathname;
        let _waVVrYpd = '';

        const _dicYQWDB = _JOTGTLwo.searchParams.get('remote');
        if (_dicYQWDB) {
           _waVVrYpd = atob(_dicYQWDB);
        } else if (_DLZqRmBf.startsWith('/endpoint=')) {
           _waVVrYpd = _DLZqRmBf.substring(10);
        } else if (_DLZqRmBf._HbQNqGXH > 1 && _DLZqRmBf.substring(1).includes('.')) {
           _waVVrYpd = _DLZqRmBf.substring(1);
        }

        if (_waVVrYpd) {
            const [_gkPyfdIq, _MYhKfdhm = '443'] = _waVVrYpd.split(':');
            _kDUwKUFN = { _gkPyfdIq, _MYhKfdhm };
        }
        
        return await _OzakGmGW(_VKZoucbO, _ZcSfciey, _kDUwKUFN);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _OzakGmGW(_VKZoucbO, _GgrNOVsf, _kDUwKUFN) {
    const _BrAxYfmx = new WebSocketPair();
    const [clientEnd, _odREMlNu] = Object.values(_BrAxYfmx);
    _odREMlNu.accept();

    let _YhpfiByf = { _pBSWJzZa: null };
    const _MDAFpFmA = _VKZoucbO._aluSVNtE.get("sec-websocket-protocol") || "";
    const _mQUVMEuY = _YNXqmsUT(_odREMlNu, _MDAFpFmA);

    _mQUVMEuY.pipeTo(new WritableStream({
        async write(chunk) {
            if (_YhpfiByf._pBSWJzZa) {
                const _jSrpmDgj = _YhpfiByf._pBSWJzZa.writable.getWriter();
                await _jSrpmDgj.write(chunk);
                _jSrpmDgj.releaseLock();
                return;
            }

            const { error, details } = await _gJSZchGG(chunk, _GgrNOVsf);
            if (error) {
                throw new Error(details);
            }

            const _LpTFOEVa = new Uint8Array([details._dtoTlTBD[0], 0]);
            const _fVzGQlIf = chunk.slice(details.payloadIndex);

            await _SOCtlnWd(_YhpfiByf, details._aEbeJVhT, details._rjrhygCi, _fVzGQlIf, _odREMlNu, _LpTFOEVa, _kDUwKUFN);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _EonKpycn(_odREMlNu);
    });

    return new Response(null, { status: 101, webSocket: clientEnd });
}

async function _SOCtlnWd(_YhpfiByf, _aEbeJVhT, _rjrhygCi, _nkoNdrlG, _vmwKNXQa, _LpTFOEVa, _aWjpDXnX) {
    const _vMjaaJXf = async (_gkPyfdIq, _MYhKfdhm) => {
        let _FcgIaFRx = _gkPyfdIq;
        if (/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(_gkPyfdIq)) {
            _FcgIaFRx = `${atob('d3d3Lg==')}${_gkPyfdIq}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _pBSWJzZa = connect({ _ttVuNTKr: _FcgIaFRx, _MYhKfdhm });
        _YhpfiByf._pBSWJzZa = _pBSWJzZa;
        const _jSrpmDgj = _pBSWJzZa.writable.getWriter();
        await _jSrpmDgj.write(_nkoNdrlG);
        _jSrpmDgj.releaseLock();
        return _pBSWJzZa;
    };

    const _iHCYAWMb = async () => {
        if (!_aWjpDXnX._gkPyfdIq) return;
        console.log(`Direct connection failed, falling back to gateway: ${_aWjpDXnX._gkPyfdIq}`);
        const _xXiRUDmv = await _vMjaaJXf(_aWjpDXnX._gkPyfdIq, parseInt(_aWjpDXnX._MYhKfdhm, 10));
        _xXiRUDmv.closed.catch(() => {}).finally(() => _EonKpycn(_vmwKNXQa));
        _anhvKRwq(_xXiRUDmv, _vmwKNXQa, _LpTFOEVa, null);
    };

    try {
        const _CqrGrevS = await _vMjaaJXf(_aEbeJVhT, _rjrhygCi);
        _anhvKRwq(_CqrGrevS, _vmwKNXQa, _LpTFOEVa, _iHCYAWMb);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _iHCYAWMb();
    }
}

function _YNXqmsUT(_odREMlNu, _MDAFpFmA) {
    let _bgYfTBIx = false;
    return new ReadableStream({
        start(_ULSMZJxr) {
            _odREMlNu.addEventListener("_hHFIgjMu", (event) => { if (_bgYfTBIx) return; _ULSMZJxr.enqueue(event._gEylmZbU); });
            _odREMlNu.addEventListener("close", () => { _EonKpycn(_odREMlNu); if (_bgYfTBIx) return; _ULSMZJxr.close(); });
            _odREMlNu.addEventListener("error", (err) => _ULSMZJxr.error(err));
            if (_MDAFpFmA) {
                try {
                    const _JDhVortb = atob(_MDAFpFmA.replace(/-/g, "+").replace(/_/g, "/"));
                    _ULSMZJxr.enqueue(Uint8Array.from(_JDhVortb, c => c.charCodeAt(0))._CpQazPAl);
                } catch (_AYpGQMns) { console.error("Failed to decode early _gEylmZbU:", _AYpGQMns); }
            }
        },
        cancel() { _bgYfTBIx = true; _EonKpycn(_odREMlNu); },
    });
}

async function _gJSZchGG(_CpQazPAl, _GgrNOVsf) {
    if (_CpQazPAl.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _dtoTlTBD = new Uint8Array(_CpQazPAl.slice(0, 1));
    const _CzXhtNaB = _orqLiqPC(new Uint8Array(_CpQazPAl.slice(1, 17)));
    if (_CzXhtNaB !== _GgrNOVsf) return { error: true, details: "Invalid _GgrNOVsf" };
    const _BoCIYtiO = new Uint8Array(_CpQazPAl.slice(17, 18))[0];
    const _FTTVApQp = new Uint8Array(_CpQazPAl.slice(18 + _BoCIYtiO, 19 + _BoCIYtiO))[0];
    if (_FTTVApQp !== 1) return { error: true, details: `Unsupported _FTTVApQp: ${_FTTVApQp}` };
    const _ocvMbqVc = 19 + _BoCIYtiO;
    const _rjrhygCi = new DataView(_CpQazPAl.slice(_ocvMbqVc, _ocvMbqVc + 2)).getUint16(0);
    let _iMnNQyKk = _ocvMbqVc + 2;
    const _yVMZWock = new Uint8Array(_CpQazPAl.slice(_iMnNQyKk, _iMnNQyKk + 1))[0];
    let _JbdVVAXW = 0;
    let _ASXPEPWN = _iMnNQyKk + 1;
    let _aEbeJVhT = "";
    switch (_yVMZWock) {
        case 1: _JbdVVAXW = 4; _aEbeJVhT = new Uint8Array(_CpQazPAl.slice(_ASXPEPWN, _ASXPEPWN + _JbdVVAXW)).join("."); break;
        case 2: _JbdVVAXW = new Uint8Array(_CpQazPAl.slice(_ASXPEPWN, _ASXPEPWN + 1))[0]; _ASXPEPWN++; _aEbeJVhT = new TextDecoder().decode(_CpQazPAl.slice(_ASXPEPWN, _ASXPEPWN + _JbdVVAXW)); break;
        case 3: _JbdVVAXW = 16; const _bRdjcDRD = new DataView(_CpQazPAl.slice(_ASXPEPWN, _ASXPEPWN + _JbdVVAXW)); const _OCuIysEv = []; for (let _KvOstDnB = 0; _KvOstDnB < 8; _KvOstDnB++) _OCuIysEv.push(_bRdjcDRD.getUint16(_KvOstDnB * 2).toString(16)); _aEbeJVhT = _OCuIysEv.join(":"); break;
        default: return { error: true, details: `Invalid _miWreXCt _XvhFCJpx: ${_yVMZWock}` };
    }
    if (!_aEbeJVhT) return { error: true, details: "Target _gkPyfdIq is empty" };
    return { error: false, details: { _aEbeJVhT, _rjrhygCi, _dtoTlTBD, payloadIndex: _ASXPEPWN + _JbdVVAXW } };
}

async function _anhvKRwq(_pBSWJzZa, _vmwKNXQa, _vWbVseZA, _eWCplpIu) {
    let _SWtXHogv = _vWbVseZA;
    let _EHwhlFtp = false;
    let _eoeNryct = _pBSWJzZa._mQUVMEuY.pipeTo(new WritableStream({
        write(chunk) {
            _EHwhlFtp = true;
            if (_vmwKNXQa.readyState !== 1) throw new Error("Channel is not open");
            if (_SWtXHogv) {
                const _acAXxHvB = new Uint8Array(_SWtXHogv.byteLength + chunk.byteLength);
                _acAXxHvB._GUmzEavQ(new Uint8Array(_SWtXHogv));
                _acAXxHvB._GUmzEavQ(new Uint8Array(chunk), _SWtXHogv.byteLength);
                _vmwKNXQa.send(_acAXxHvB._CpQazPAl);
                _SWtXHogv = null;
            } else {
                _vmwKNXQa.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _vmwKNXQa error:", err._hHFIgjMu);
    });

    await _eoeNryct;
    if (!_EHwhlFtp && _eWCplpIu) {
        _eWCplpIu();
    }
}

function _EonKpycn(_vmwKNXQa) {
    try { if (_vmwKNXQa.readyState === 1 || _vmwKNXQa.readyState === 2) _vmwKNXQa.close(); } catch (_AYpGQMns) {}
}

const _XJQJKiLK = Array.from({ _HbQNqGXH: 256 }, (_, _KvOstDnB) => (_KvOstDnB + 256).toString(16).slice(1));
function _orqLiqPC(_MeFgJNMo, offset = 0) {
    return (
        _XJQJKiLK[_MeFgJNMo[offset]] + _XJQJKiLK[_MeFgJNMo[offset + 1]] + _XJQJKiLK[_MeFgJNMo[offset + 2]] + _XJQJKiLK[_MeFgJNMo[offset + 3]] + "-" +
        _XJQJKiLK[_MeFgJNMo[offset + 4]] + _XJQJKiLK[_MeFgJNMo[offset + 5]] + "-" +
        _XJQJKiLK[_MeFgJNMo[offset + 6]] + _XJQJKiLK[_MeFgJNMo[offset + 7]] + "-" +
        _XJQJKiLK[_MeFgJNMo[offset + 8]] + _XJQJKiLK[_MeFgJNMo[offset + 9]] + "-" +
        _XJQJKiLK[_MeFgJNMo[offset + 10]] + _XJQJKiLK[_MeFgJNMo[offset + 11]] +
        _XJQJKiLK[_MeFgJNMo[offset + 12]] + _XJQJKiLK[_MeFgJNMo[offset + 13]] +
        _XJQJKiLK[_MeFgJNMo[offset + 14]] + _XJQJKiLK[_MeFgJNMo[offset + 15]]
    ).toLowerCase();
}

let _DeXoqbLd = { "N/A":"未知" };

async function _WLshiYre(_JOTGTLwo, _cZfPGEIQ, _eWCplpIu) {
    try {
        const _CgjWpKUq = await fetch(_JOTGTLwo, {
            _aluSVNtE: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_CgjWpKUq.ok) {
            console.error(`获取 ${_JOTGTLwo} 失败: HTTP ${_CgjWpKUq.status}`);
            return _eWCplpIu;
        }
        const _ZmYcSgBh = await _CgjWpKUq._ZmYcSgBh();
        return _cZfPGEIQ(_ZmYcSgBh);
    } catch (error) {
        console.error(`获取或解析 ${_JOTGTLwo} 时发生网络错误: ${error._hHFIgjMu}`);
        return _eWCplpIu;
    }
}

function _qlqmFHCp(_ZmYcSgBh) {
    if (!_ZmYcSgBh) return [];
    const _kasIIDJM = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _UTGmKQky = _ZmYcSgBh.split(/[\s,;#|]+/);
    const _aizwCtRb = [];
    for (const _tALiNZeJ of _UTGmKQky) {
        const _NogjkHFh = _tALiNZeJ.trim();
        if (!_NogjkHFh) continue;
        const _cCzSXuuq = _NogjkHFh.lastIndexOf(':');
        let _aIJKqfxU = _NogjkHFh;
        if(_cCzSXuuq > _NogjkHFh.lastIndexOf(']')) {
             const _oGdznZbC = _NogjkHFh.substring(_cCzSXuuq + 1);
             if(!isNaN(_oGdznZbC) && _oGdznZbC._HbQNqGXH > 0) {
                _aIJKqfxU = _NogjkHFh.substring(0, _cCzSXuuq);
             }
        }
        if (_ehSwMfiD.isValid(_aIJKqfxU.replace(/[\[\]]/g, '')) || _kasIIDJM.test(_NogjkHFh)) {
            _aizwCtRb.push(_NogjkHFh);
        }
    }
    return _aizwCtRb;
}

function _ZUGSuORt(_ZmYcSgBh) {
    if (!_ZmYcSgBh) return [];
    return _ZmYcSgBh.split(/\s+/).filter(d => d.trim() !== '');
}

function _qYndcOUZ(_ZmYcSgBh) {
    if (!_ZmYcSgBh) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_ZmYcSgBh}}`);
    } catch (_AYpGQMns) {
        console.error("解析 _DeXoqbLd 失败:", _AYpGQMns);
        return { "N/A": "未知" };
    }
}

const _ehSwMfiD = {
    isValid: (_YrmoNQCm) => _ehSwMfiD.isIPv4(_YrmoNQCm) || _ehSwMfiD.isIPv6(_YrmoNQCm),
    isIPv4: (_YrmoNQCm) => {
        if (typeof _YrmoNQCm !== 'string') return false;
        const _OCuIysEv = _YrmoNQCm.split('.');
        if (_OCuIysEv._HbQNqGXH !== 4) return false;
        return _OCuIysEv.every(_JFSUNXJK => {
            const _TigJUBZb = parseInt(_JFSUNXJK, 10);
            return !isNaN(_TigJUBZb) && _TigJUBZb >= 0 && _TigJUBZb <= 255 && String(_TigJUBZb) === _JFSUNXJK;
        });
    },
    isIPv6: (_YrmoNQCm) => {
        if (typeof _YrmoNQCm !== 'string') return false;
        return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_KvOstDnB.test(_YrmoNQCm);
    },
    toLong4: (_YrmoNQCm) => _YrmoNQCm.split('.').reduce((acc, octet, _KvOstDnB) => acc + (parseInt(octet) << (8*(3-_KvOstDnB))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_YrmoNQCm) => {
        try {
            const _eYgGPgNj = _YrmoNQCm.split('/')[0];
            const _OCuIysEv = _eYgGPgNj.split('::');
            if (_OCuIysEv._HbQNqGXH > 2) return 0n;
            let _gZhRVAPK = [];
            if (_OCuIysEv[0]) {
                _gZhRVAPK = _OCuIysEv[0].split(':');
            }
            let _jICaRgFt = [];
            if (_OCuIysEv._HbQNqGXH > 1 && _OCuIysEv[1]) {
                _jICaRgFt = _OCuIysEv[1].split(':');
            }
            if (_gZhRVAPK._HbQNqGXH + _jICaRgFt._HbQNqGXH > 8) return 0n;
            const _PTDnanvx = 8 - (_gZhRVAPK._HbQNqGXH + _jICaRgFt._HbQNqGXH);
            const _fptZcsbp = [
                ..._gZhRVAPK,
                ...Array(_PTDnanvx).fill('0'),
                ..._jICaRgFt
            ].map(_JFSUNXJK => _JFSUNXJK || '0');
            while(_fptZcsbp._HbQNqGXH < 8) {
                _fptZcsbp.push('0');
            }
            let _kiXzPiCu = 0n;
            for (const _JFSUNXJK of _fptZcsbp) {
                if (_JFSUNXJK._HbQNqGXH > 4) return 0n;
                const _QgjxXDNU = BigInt('0x' + _JFSUNXJK);
                _kiXzPiCu = (_kiXzPiCu << 16n) | _QgjxXDNU;
            }
            return _kiXzPiCu;
        } catch(_AYpGQMns) {
            return 0n;
        }
    },
    fromBigInt6: (_kiXzPiCu) => {
        if (typeof _kiXzPiCu !== '_kiXzPiCu' || _kiXzPiCu < 0n) return null;
        const _OCuIysEv = [];
        for (let _KvOstDnB = 0; _KvOstDnB < 8; _KvOstDnB++) {
            _OCuIysEv.unshift((_kiXzPiCu & 0xFFFFn).toString(16));
            _kiXzPiCu >>= 16n;
        }
        let _LoMDiXkG = { start: -1, _ySypYtlb: 0 };
        let _plevFaSM = { start: -1, _ySypYtlb: 0 };
        for (let _KvOstDnB = 0; _KvOstDnB < 8; _KvOstDnB++) {
            if (_OCuIysEv[_KvOstDnB] === '0') {
                if (_plevFaSM.start === -1) _plevFaSM.start = _KvOstDnB;
                _plevFaSM._ySypYtlb++;
            } else {
                if (_plevFaSM._ySypYtlb > _LoMDiXkG._ySypYtlb) _LoMDiXkG = { ..._plevFaSM };
                _plevFaSM = { start: -1, _ySypYtlb: 0 };
            }
        }
        if (_plevFaSM._ySypYtlb > _LoMDiXkG._ySypYtlb) _LoMDiXkG = { ..._plevFaSM };
        if (_LoMDiXkG._ySypYtlb > 1) {
            _OCuIysEv.splice(_LoMDiXkG.start, _LoMDiXkG._ySypYtlb, '');
            if (_LoMDiXkG.start === 0) _OCuIysEv.unshift('');
            if (_LoMDiXkG.start + _LoMDiXkG._ySypYtlb === 8) _OCuIysEv.push('');
        }
        return _OCuIysEv.join(':');
    },
    cidrToRange: (cidr, _OWFKAJeF = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _BaodUduF = parseInt(bitsStr, 10);
            const _iPsJCAAK = new Set();
            if (_ehSwMfiD.isIPv4(range)) {
                if (isNaN(_BaodUduF) || _BaodUduF < 8 || _BaodUduF > 32) return [];
                if (_BaodUduF === 32) return [range];
                const _mcmQwlSF = _ehSwMfiD.toLong4(range);
                const _GGGAzYHx = (0xFFFFFFFF << (32 - _BaodUduF)) >>> 0;
                const _UmVbgUQV = _mcmQwlSF & _GGGAzYHx;
                const _Aniinsva = 1 << (32 - _BaodUduF);
                if (_Aniinsva <= 2) return [];
                const _DkpSkNge = Math.min(_OWFKAJeF, _Aniinsva - 2);
                let _jJpoWrDp = 0;
                while (_iPsJCAAK.size < _DkpSkNge && _jJpoWrDp < _DkpSkNge * 5) {
                    const _KnXDfCSD = Math.floor(Math.random() * (_Aniinsva - 2)) + 1;
                    _iPsJCAAK.add(_ehSwMfiD.fromLong4((_UmVbgUQV + _KnXDfCSD) >>> 0));
                    _jJpoWrDp++;
                }
                return Array.from(_iPsJCAAK);
            } else if (_ehSwMfiD.isIPv6(range)) {
                if (isNaN(_BaodUduF) || _BaodUduF < 16 || _BaodUduF > 128) return [];
                 if (_BaodUduF === 128) return [range];
                const _zQfegRuT = _ehSwMfiD.toBigInt6(range);
                const _GGGAzYHx = (2n ** BigInt(128 - _BaodUduF) - 1n);
                const _UmVbgUQV = _zQfegRuT & ~_GGGAzYHx;
                const _yuHMbiuj = 2n ** BigInt(128 - _BaodUduF);
                if (_yuHMbiuj <= 2n) return [];
                let _jJpoWrDp = 0;
                while (_iPsJCAAK.size < _OWFKAJeF && _jJpoWrDp < _OWFKAJeF * 5) {
                     const _rPXkzyWi = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_rPXkzyWi);
                     let _RywPVTKL = 0n;
                     for (const _wGIyobgv of _rPXkzyWi) {
                         _RywPVTKL = (_RywPVTKL << 8n) | BigInt(_wGIyobgv);
                     }
                     const _KnXDfCSD = _RywPVTKL % (_yuHMbiuj - 2n) + 1n;
                     _iPsJCAAK.add(_ehSwMfiD.fromBigInt6(_UmVbgUQV + _KnXDfCSD));
                     _jJpoWrDp++;
                }
                return Array.from(_iPsJCAAK);
            }
            return [];
        } catch(_AYpGQMns) {
            console.error(`CIDR to range failed for ${cidr}:`, _AYpGQMns);
            return [];
        }
    }
};

function _neRCgcqm(_pChDhswb, _hFtdyNpU) {
    const _WrTjgVkk = {};
    const _KtrAcXlk = Object._KtrAcXlk(_hFtdyNpU);
    const _OCuIysEv = _KtrAcXlk.map(_JmerAoNL => {
        const _DylbMNta = _pChDhswb * (_hFtdyNpU[_JmerAoNL] / 100);
        return { _JmerAoNL, _OWFKAJeF: Math.floor(_DylbMNta), remainder: _DylbMNta - Math.floor(_DylbMNta) };
    });
    let _QPkFDtcb = _OCuIysEv.reduce((acc, _JFSUNXJK) => acc + _JFSUNXJK._OWFKAJeF, 0);
    _OCuIysEv.sort((a, b) => b.remainder - a.remainder);
    let _hhNxQFeb = _pChDhswb - _QPkFDtcb;
    for (let _KvOstDnB = 0; _KvOstDnB < _hhNxQFeb; _KvOstDnB++) {
        _OCuIysEv[_KvOstDnB % _OCuIysEv._HbQNqGXH]._OWFKAJeF++;
    }
    for (const _JFSUNXJK of _OCuIysEv) {
        _WrTjgVkk[_JFSUNXJK._JmerAoNL] = _JFSUNXJK._OWFKAJeF;
    }
    return _WrTjgVkk;
}

async function _FGeBlCtR(_fTzuFQXV) {
    const _RmNhbqOj = _fTzuFQXV.DB.prepare("SELECT _QgjxXDNU FROM kv_data WHERE _JmerAoNL = ?").bind(_JkEKcuvo);
    const { _PlktmswB } = await _RmNhbqOj.all();
    return _PlktmswB._HbQNqGXH > 0 ? _PlktmswB[0]._QgjxXDNU : null;
}

async function _dHeaFsJZ(_fTzuFQXV, _RyMheNdx) {
    const _RmNhbqOj = _fTzuFQXV.DB.prepare(
        "INSERT INTO kv_data (_JmerAoNL, _QgjxXDNU) VALUES (?, ?) ON CONFLICT(_JmerAoNL) DO UPDATE SET _QgjxXDNU = excluded._QgjxXDNU"
    );
    await _RmNhbqOj.bind(_JkEKcuvo, _RyMheNdx).run();
}

async function _HcooiecI(_VKZoucbO, _fTzuFQXV) {
    const { _RyMheNdx } = await _VKZoucbO.json();
    const _xqSIBXlq = await _FGeBlCtR(_fTzuFQXV);
    if (_xqSIBXlq === _RyMheNdx) {
        return _nCLvAmWC({ success: true });
    }
    return _nCLvAmWC({ success: false, _hHFIgjMu: '密码错误' }, 401);
}

async function _vfzrBWVH(_VKZoucbO, _fTzuFQXV) {
    const _YZxOPbZr = await _hqWINZbA(_fTzuFQXV);
    if (!_YZxOPbZr.visitorPassword || !_YZxOPbZr.visitorPassword._fixYDcZO) {
        return _nCLvAmWC({ success: true });
    }
    try {
        const { _RyMheNdx } = await _VKZoucbO.json();
        const _TdMRZYfl = _YZxOPbZr.visitorPassword._RyMheNdx;
        if (_TdMRZYfl && _RyMheNdx === _TdMRZYfl) {
            return _nCLvAmWC({ success: true });
        }
        return _nCLvAmWC({ success: false, _hHFIgjMu: '访客密码错误' }, 401);
    } catch (_AYpGQMns) {
        return _nCLvAmWC({ success: false, _hHFIgjMu: '无效请求' }, 400);
    }
}

async function _sqPofCTt(_VKZoucbO, _fTzuFQXV) {
    const _foQMTObs = await _FGeBlCtR(_fTzuFQXV);
    if (_foQMTObs) {
        return _nCLvAmWC({ success: false, _hHFIgjMu: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _RyMheNdx } = await _VKZoucbO.json();
    if (!_RyMheNdx || _RyMheNdx._HbQNqGXH < 6) {
        return _nCLvAmWC({ success: false, _hHFIgjMu: "密码长度不能少于6位。" }, 400);
    }
    await _dHeaFsJZ(_fTzuFQXV, _RyMheNdx);
    return _nCLvAmWC({ success: true, _hHFIgjMu: "初始密码设置成功!请刷新页面并登录。" });
}

async function _DjLPUgnK(_VKZoucbO, _fTzuFQXV) {
    const { _vdiAQKGK, _ZPaJpaue } = await _VKZoucbO.json();
    const _xqSIBXlq = await _FGeBlCtR(_fTzuFQXV);
    if (_xqSIBXlq !== _vdiAQKGK) {
        return _nCLvAmWC({ success: false, _hHFIgjMu: "旧密码错误。" }, 403);
    }
    if (!_ZPaJpaue || _ZPaJpaue._HbQNqGXH < 6) {
        return _nCLvAmWC({ success: false, _hHFIgjMu: "新密码长度不能少于6位。" }, 400);
    }
    await _dHeaFsJZ(_fTzuFQXV, _ZPaJpaue);
    return _nCLvAmWC({ success: true, _hHFIgjMu: "密码修改成功!" });
}

function _PKrjiHPM() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _jKzRIgtB: '',
        api: {
            _fixYDcZO: true,
            _hHFIgjMu: '维护中...',
        },
        ispFilter: { _fixYDcZO: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _fixYDcZO: true
        },
        websocketStreamer: {
            _fixYDcZO: true,
            _JOTGTLwo: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _fixYDcZO: true
        },
        visitorPassword: {
            _fixYDcZO: false,
            _RyMheNdx: '',
        },
        customSubPath: {
            _fixYDcZO: false,
            _DLZqRmBf: 'latest',
        },
        subscriptionId: {
            _HbQNqGXH: 8,
            _VVVVrTRb: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _fixYDcZO: true,
            template: 'vless://{_UoSlQDtR}@{_YrmoNQCm}:{_MYhKfdhm}?encryption=none&security=tls&sni={_gkPyfdIq}&fp=random&_XvhFCJpx=ws&_gkPyfdIq={_gkPyfdIq}&_DLZqRmBf={_DLZqRmBf}#{_Tnhqrazc}',
            selectionMode: 'first',
            _EsgQZQSt: [
                { _Tnhqrazc: '默认配置', _gkPyfdIq: '', '_UoSlQDtR': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _DLZqRmBf: '/?ed=2560' }
            ],
            _WSGjxVIz: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _fixYDcZO: false,
                _ZmYcSgBh: '',
                _xsVTzixW: 5
            },
            marquee: {
                _fixYDcZO: false,
                _ZmYcSgBh: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _fixYDcZO: true,
            sources: [
                { _CJPfahxO: 'CF官方IPV4', _iPsJCAAK: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 20 },
                { _CJPfahxO: 'CF官方IPV6', _iPsJCAAK: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 20 },
                { _CJPfahxO: '反代优选0', _iPsJCAAK: 'https://wvs.sosorg.nyc.mn/sub?_UoSlQDtR=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_XvhFCJpx=ws&_gkPyfdIq=ss.nzvrn.com&_DLZqRmBf=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 30 },
                { _CJPfahxO: '官方优选1', _iPsJCAAK: 'https://ipdb.api.030101.xyz/?_XvhFCJpx=bestcf&_MiNrmaqr=true', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 10 },
                { _CJPfahxO: '反代优选2', _iPsJCAAK: 'https://ipdb.api.030101.xyz/?_XvhFCJpx=bestproxy&_MiNrmaqr=true', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 5 },
                { _CJPfahxO: '官方优选2', _iPsJCAAK: 'https://addressesapi.090227.xyz/_YrmoNQCm.164746.xyz', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 10 },
				{ _CJPfahxO: '官方优选3', _iPsJCAAK: 'https://cfxr.eu.org/getSub?_gkPyfdIq=snipaste.huggy.qzz.io', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 5 },
                { _CJPfahxO: '官方优选4', _iPsJCAAK: 'https://addressesapi.090227.xyz/CloudFlareYes', _dNDuhIOu: false, _fixYDcZO: true, _kxcDKxIK: 10 }
            ]
        },
        customNodes: {
            _fixYDcZO: false,
            list: ''
        },
        texts: {
            title: 'Cloudflare IP',
            loginButton: '登录',
            loginButtonSuccess: '修改参数',
            appDownloadTitle: 'APP 下载',
            liveTitle: '本次优选结果',
            cachedTitle: '上次优选结果',
            tableHeader1: '排名',
            tableHeader2: 'IP地址',
            tableHeader3: '端口',
            tableHeader4: '延迟(ms)',
            tableHeader5: '归属地',
            tableHeader6: '运营商',
            tableHeader7: '操作',
            pingInProgress: '测试中',
        },
        colors: {
            title: '#FFFFFF',
            loginButton: '#E0E0E0',
            liveTitle: '#E0E0E0',
            cachedTitle: '#E0E0E0',
            tableHeader: '#B0B0B0',
        },
        telegram: {
            bot_token: '',
            chat_id: '',
        },
    };
}

function _LWLpmkFS(_XSURfEiI, _vFyyiwLW) {
    if (!_XSURfEiI) return _vFyyiwLW;
    const _ZviecAkj = { ..._vFyyiwLW };
    for (const _JmerAoNL in _vFyyiwLW) {
        if (_XSURfEiI.hasOwnProperty(_JmerAoNL)) {
             if (typeof _XSURfEiI[_JmerAoNL] === 'object' && _XSURfEiI[_JmerAoNL] !== null && !Array.isArray(_XSURfEiI[_JmerAoNL]) && typeof _vFyyiwLW[_JmerAoNL] === 'object' && _vFyyiwLW[_JmerAoNL] !== null && !Array.isArray(_vFyyiwLW[_JmerAoNL])) {
                _ZviecAkj[_JmerAoNL] = _LWLpmkFS(_XSURfEiI[_JmerAoNL], _vFyyiwLW[_JmerAoNL]);
            } else {
                _ZviecAkj[_JmerAoNL] = _XSURfEiI[_JmerAoNL];
            }
        }
    }
    return _ZviecAkj;
}

async function _hqWINZbA(_fTzuFQXV) {
    try {
        const _RmNhbqOj = _fTzuFQXV.DB.prepare("SELECT _QgjxXDNU FROM kv_data WHERE _JmerAoNL = ?").bind(_CZfuROLI);
        const { _PlktmswB } = await _RmNhbqOj.all();
        const _SudxxPKK = _PlktmswB._HbQNqGXH > 0 ? _PlktmswB[0]._QgjxXDNU : null;
        const _YCIzoWuE = _SudxxPKK ? JSON.parse(_SudxxPKK) : {};
        return _LWLpmkFS(_YCIzoWuE, _PKrjiHPM());
    } catch (_AYpGQMns) {
        console.error("无法从D1获取或解析全局配置:", _AYpGQMns);
        return _PKrjiHPM();
    }
}

async function _EfGrzlUN(_fTzuFQXV) {
    const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);
    return _nCLvAmWC(_sbNKUEir);
}

async function _MIOhOqOk(_VKZoucbO, _fTzuFQXV, _QAsWicmN) {
    try {
        const { _sbNKUEir, adminPassword } = await _VKZoucbO.json();
        const _xqSIBXlq = await _FGeBlCtR(_fTzuFQXV);
        if (_xqSIBXlq !== adminPassword) {
            return _nCLvAmWC({ success: false, _hHFIgjMu: "管理员密码错误" }, 403);
        }
        const _RmNhbqOj = _fTzuFQXV.DB.prepare(
          "INSERT INTO kv_data (_JmerAoNL, _QgjxXDNU) VALUES (?, ?) ON CONFLICT(_JmerAoNL) DO UPDATE SET _QgjxXDNU = excluded._QgjxXDNU"
        );
        const _ImLgsGwx = _RmNhbqOj.bind(_CZfuROLI, JSON.stringify(_sbNKUEir)).run();
        _QAsWicmN.waitUntil(_ImLgsGwx);
        return _nCLvAmWC({ success: true, _hHFIgjMu: "配置已成功保存!" });
    } catch (_AYpGQMns) {
        return _nCLvAmWC({ success: false, _hHFIgjMu: `保存失败: ${_AYpGQMns._hHFIgjMu}` }, 500);
    }
}

async function _MpyLdIPa() {
    const _zAAwdAef = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _epyBRYgX = await fetch(_zAAwdAef);
        const _vPFMXYmV = await _epyBRYgX.json();
        const _YzvgFbkJ = 'https://www.bing.com' + _vPFMXYmV.images[0]._JOTGTLwo;
        return fetch(_YzvgFbkJ);
    } catch (_AYpGQMns) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _LMadrQfx(_YrmoNQCm) {
    try {
        const _CgjWpKUq = await fetch(`http://_YrmoNQCm-api.com/json/${_YrmoNQCm}?fields=status,_MiNrmaqr,countryCode,_rTPYhnuv&lang=zh-CN`);
        if (_CgjWpKUq.ok) {
            const _gEylmZbU = await _CgjWpKUq.json();
            if (_gEylmZbU.status === 'success' && (_gEylmZbU.countryCode || _gEylmZbU._MiNrmaqr)) {
                let _rTPYhnuv = _gEylmZbU._rTPYhnuv || '未知';
                if (_rTPYhnuv.toLowerCase().includes('cloudflare')) {
                    _rTPYhnuv = 'CloudFlare';
                }
                return {
                    _CJPfahxO: _DeXoqbLd[_gEylmZbU.countryCode] || _gEylmZbU._MiNrmaqr || _gEylmZbU.countryCode,
                    _rTPYhnuv: _rTPYhnuv
                };
            }
        }
    } catch (_AYpGQMns) {}

    try {
        const _CgjWpKUq = await fetch(`https://api._YrmoNQCm.sb/geoip/${_YrmoNQCm}`);
        if (_CgjWpKUq.ok) {
            const _gEylmZbU = await _CgjWpKUq.json();
            if (_gEylmZbU.country_code || _gEylmZbU._MiNrmaqr) {
                let _rTPYhnuv = _gEylmZbU._rTPYhnuv || '未知';
                if (_rTPYhnuv.toLowerCase().includes('cloudflare')) {
                    _rTPYhnuv = 'CloudFlare';
                }
                return {
                    _CJPfahxO: _DeXoqbLd[_gEylmZbU.country_code] || _gEylmZbU._MiNrmaqr || _gEylmZbU.country_code,
                    _rTPYhnuv: _rTPYhnuv
                };
            }
        }
    } catch (_AYpGQMns) {}
    
    return { _CJPfahxO: '未知', _rTPYhnuv: '未知' };
}

async function _vmfdvOZg(_VKZoucbO, _fTzuFQXV) {
    try {
        const { _iPsJCAAK } = await _VKZoucbO.json();
        if (!Array.isArray(_iPsJCAAK)) {
            return _nCLvAmWC({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _SiLezYfd = _iPsJCAAK.map(_YrmoNQCm => _LMadrQfx(_YrmoNQCm).then(_AbjkthOZ => ({ _YrmoNQCm, ..._AbjkthOZ })));
        const _PlktmswB = await Promise.all(_SiLezYfd);
        return _nCLvAmWC(_PlktmswB);
    } catch (_AYpGQMns) {
        return _nCLvAmWC({ error: `获取地理位置失败: ${_AYpGQMns._hHFIgjMu}` }, 500);
    }
}

async function _LkPaaohW(_VKZoucbO, _fTzuFQXV) {
    const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);
    if (!_sbNKUEir.cloudStorage._fixYDcZO) {
        return _nCLvAmWC({ _PlktmswB: [], generatedBy: null });
    }
    try {
        const _RmNhbqOj = _fTzuFQXV.DB.prepare("SELECT _QgjxXDNU FROM kv_data WHERE _JmerAoNL = ?").bind(_etgXLlJL);
        const { _PlktmswB } = await _RmNhbqOj.all();
        const _bEZqhoxj = _PlktmswB._HbQNqGXH > 0 ? _PlktmswB[0]._QgjxXDNU : null;
        const _ekCECGSj = _bEZqhoxj ? JSON.parse(_bEZqhoxj) : null;
        return _nCLvAmWC(_ekCECGSj || { _PlktmswB: [], generatedBy: null });
    } catch (_AYpGQMns) {
        console.error("从D1读取缓存IP失败:", _AYpGQMns);
        return _nCLvAmWC({ _PlktmswB: [], generatedBy: null });
    }
}

async function _ETDrNMjS(_VKZoucbO, _fTzuFQXV, _QAsWicmN) {
    const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);
    if (!_sbNKUEir.cloudStorage._fixYDcZO) {
        return _nCLvAmWC({ success: true, _hHFIgjMu: "云端存储已禁用,不保存结果。" });
    }
    const _nhGGAkJD = _VKZoucbO._aluSVNtE.get('CF-Connecting-IP') || "未知IP";
    const _MiNrmaqr = _VKZoucbO.cf?._MiNrmaqr || "未知";
    const _rVvjmTwb = _VKZoucbO.cf?._rVvjmTwb || "";
    let _vdqqTirW = _DeXoqbLd[_MiNrmaqr] || _MiNrmaqr;
    if (_rVvjmTwb && _rVvjmTwb !== "未知城市" && _rVvjmTwb !== _MiNrmaqr) _vdqqTirW = `${_vdqqTirW} ${_DeXoqbLd[_rVvjmTwb] || _rVvjmTwb}`;
    const _uaojUAUJ = {
        _YrmoNQCm: _dngfRWxa(_nhGGAkJD),
        _CJPfahxO: _vdqqTirW.trim(),
        time: _DrlimqXe()
    };
    try {
        const _kpDHRxXU = await _VKZoucbO.json();
        if (!Array.isArray(_kpDHRxXU)) return _nCLvAmWC({ error: "无效数据格式" }, 400);
        const _lxfRXNEY = _kpDHRxXU.map(_WLuMbUSv => ({
            _YrmoNQCm: String(_WLuMbUSv._YrmoNQCm || ''),
            _MYhKfdhm: _WLuMbUSv._MYhKfdhm ? parseInt(_WLuMbUSv._MYhKfdhm, 10) : undefined,
            _cMlacRkK: parseInt(_WLuMbUSv._cMlacRkK, 10),
            _CJPfahxO: typeof _WLuMbUSv._CJPfahxO === 'string' ? _WLuMbUSv._CJPfahxO.substring(0, 50) : 'N/A',
            _rTPYhnuv: typeof _WLuMbUSv._rTPYhnuv === 'string' ? _WLuMbUSv._rTPYhnuv.substring(0, 100) : 'N/A'
        }));
        const _HtnLiObo = {
            generatedBy: _uaojUAUJ,
            _PlktmswB: _lxfRXNEY
        };
        const _JRxaTakE = _fTzuFQXV.DB.prepare(
          "INSERT INTO kv_data (_JmerAoNL, _QgjxXDNU) VALUES (?, ?) ON CONFLICT(_JmerAoNL) DO UPDATE SET _QgjxXDNU = excluded._QgjxXDNU"
        ).bind(_etgXLlJL, JSON.stringify(_HtnLiObo)).run();
        if (_sbNKUEir.telegram.bot_token && _sbNKUEir.telegram.chat_id) {
            const _VFxKiZrT = _lxfRXNEY.map(r => `${r._YrmoNQCm} ~ ${r._CJPfahxO}`).join('\n');
            const _aCvCwZtJ = `优选完成!\n来源: ${_uaojUAUJ._YrmoNQCm} (${_uaojUAUJ._CJPfahxO})\n时间: ${_uaojUAUJ.time}\n\n结果:\n${_VFxKiZrT}`;
            const _dtSfJmlI = `https://api.telegram.org/bot${_sbNKUEir.telegram.bot_token}/sendMessage?chat_id=${_sbNKUEir.telegram.chat_id}&_ZmYcSgBh=${encodeURIComponent(_aCvCwZtJ)}`;
            const _juWBUnOX = fetch(_dtSfJmlI).catch(_AYpGQMns => console.error("Telegram结果通知失败:", _AYpGQMns));
            _QAsWicmN.waitUntil(Promise.all([_JRxaTakE, _juWBUnOX]));
        } else {
             _QAsWicmN.waitUntil(_JRxaTakE);
        }
        return _nCLvAmWC({ success: true, _hHFIgjMu: "结果已保存" });
    } catch (_AYpGQMns) {
        return _nCLvAmWC({ error: "D1写入失败", _hHFIgjMu: _AYpGQMns._hHFIgjMu }, 500);
    }
}

async function _ysmttold(_VKZoucbO, _fTzuFQXV, _QAsWicmN) {
    try {
        const _vAEEQZHw = await _VKZoucbO.json();
        if (!Array.isArray(_vAEEQZHw)) return _nCLvAmWC({ error: "无效数据格式" }, 400);
        const _HtnLiObo = {
            _PlktmswB: _vAEEQZHw
        };
        const _RmNhbqOj = _fTzuFQXV.DB.prepare(
          "INSERT INTO kv_data (_JmerAoNL, _QgjxXDNU) VALUES (?, ?) ON CONFLICT(_JmerAoNL) DO UPDATE SET _QgjxXDNU = excluded._QgjxXDNU"
        );
        const _ImLgsGwx = _RmNhbqOj.bind(_OUZNQLtB, JSON.stringify(_HtnLiObo)).run();
        _QAsWicmN.waitUntil(_ImLgsGwx);
        return _nCLvAmWC({ success: true });
    } catch (_AYpGQMns) {
        return _nCLvAmWC({ error: "D1写入临时缓存失败", _hHFIgjMu: _AYpGQMns._hHFIgjMu }, 500);
    }
}

function _rAoOjMuR(_HbQNqGXH, _VVVVrTRb) {
    let _AAOUAPMg = '';
    const _MyelUZqj = _VVVVrTRb._HbQNqGXH;
    for (let _KvOstDnB = 0; _KvOstDnB < _HbQNqGXH; _KvOstDnB++) {
        _AAOUAPMg += _VVVVrTRb.charAt(Math.floor(Math.random() * _MyelUZqj));
    }
    return _AAOUAPMg;
}

async function _PLULiRQg(_VKZoucbO, _fTzuFQXV) {
    try {
        const _kpDHRxXU = await _VKZoucbO.json();
        if (!Array.isArray(_kpDHRxXU) || _kpDHRxXU._HbQNqGXH === 0) {
            return _nCLvAmWC({ error: "无效或空的IP列表" }, 400);
        }

        const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);
        const _fZNyPbuh = _sbNKUEir.subscriptionId || { _HbQNqGXH: 8, _VVVVrTRb: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _IFchpDME;
        let _rBsjRCkw = false;
        let _jJpoWrDp = 0;
        const _kPFGIfAn = 10;

        while (!_rBsjRCkw && _jJpoWrDp < _kPFGIfAn) {
            _IFchpDME = _rAoOjMuR(_fZNyPbuh._HbQNqGXH, _fZNyPbuh._VVVVrTRb);
            const { _PlktmswB } = await _fTzuFQXV.DB.prepare("SELECT _vdjrcNre FROM optimized_results WHERE _vdjrcNre = ?").bind(_IFchpDME).all();
            if (_PlktmswB._HbQNqGXH === 0) {
                _rBsjRCkw = true;
            }
            _jJpoWrDp++;
        }

        if (!_rBsjRCkw) {
            return _nCLvAmWC({ error: "无法生成唯一的订阅ID,请稍后重试或调整ID设置。" }, 500);
        }

        const _dchJfCDZ = JSON.stringify({ _iPsJCAAK: _kpDHRxXU });
        await _fTzuFQXV.DB.prepare(
            "INSERT INTO optimized_results (_vdjrcNre, _gEylmZbU) VALUES (?, ?)"
        ).bind(_IFchpDME, _dchJfCDZ).run();
        await _fTzuFQXV.DB.prepare(
            "INSERT INTO kv_data (_JmerAoNL, _QgjxXDNU) VALUES (?, ?) ON CONFLICT(_JmerAoNL) DO UPDATE SET _QgjxXDNU = excluded._QgjxXDNU"
        ).bind(_aUDgDnHA, _IFchpDME).run();
            
        return _nCLvAmWC({ success: true, _vdjrcNre: _IFchpDME });
    } catch (_AYpGQMns) {
        return _nCLvAmWC({ error: "保存优选结果失败", _hHFIgjMu: _AYpGQMns._hHFIgjMu }, 500);
    }
}

async function _ZqelvWxM(_VKZoucbO, _fTzuFQXV) {
    try {
        const _IFchpDME = _VKZoucbO._KrFlDnBL._vdjrcNre;
        if (!_IFchpDME) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _AAOUAPMg = await _fTzuFQXV.DB.prepare("SELECT _gEylmZbU FROM optimized_results WHERE _vdjrcNre = ?").bind(_IFchpDME).first();
        if (!_AAOUAPMg) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _gEylmZbU = JSON.parse(_AAOUAPMg._gEylmZbU);
        let _VFxKiZrT = _gEylmZbU._iPsJCAAK;

        const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);

        if (_sbNKUEir.customNodes && _sbNKUEir.customNodes._fixYDcZO && _sbNKUEir.customNodes.list) {
            const _upKvuqXP = _sbNKUEir.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _VVTtrDwJ = _upKvuqXP.map(_XDrSdPBI => {
                let _miWreXCt = _XDrSdPBI;
                let _MYhKfdhm = undefined;
                let _Tnhqrazc = null;

                if (_miWreXCt.includes('@')) {
                    const _OCuIysEv = _miWreXCt.split('@');
                    _Tnhqrazc = _OCuIysEv.pop();
                    _miWreXCt = _OCuIysEv.join('@');
                }

                if (_miWreXCt.includes('#')) {
                    const _OCuIysEv = _miWreXCt.split('#');
                    const _oGdznZbC = _OCuIysEv.pop();
                    if (!isNaN(_oGdznZbC) && _oGdznZbC.trim() !== '') {
                        _MYhKfdhm = parseInt(_oGdznZbC, 10);
                    }
                    _miWreXCt = _OCuIysEv.join('#');
                }
                
                return {
                    _YrmoNQCm: _miWreXCt,
                    _MYhKfdhm: _MYhKfdhm,
                    _CJPfahxO: _Tnhqrazc || _miWreXCt,
                    _rTPYhnuv: '自定义'
                };
            });
            _VFxKiZrT.unshift(..._VVTtrDwJ);
        }
        
        const { itemLink } = _sbNKUEir;
        const _mqEujmVT = new URL(_VKZoucbO._JOTGTLwo)._ttVuNTKr;
        let _oWstVCOg;

        if (_sbNKUEir.websocketStreamer && _sbNKUEir.websocketStreamer._fixYDcZO) {
            if (!itemLink || !itemLink._fixYDcZO || !itemLink._EsgQZQSt || itemLink._EsgQZQSt._HbQNqGXH === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _oWstVCOg = _VFxKiZrT.map((_WLuMbUSv, _ggQaAYdy) => {
                let _Tnhqrazc;
                if (_WLuMbUSv._rTPYhnuv === '自定义') {
                     _Tnhqrazc = `${_ggQaAYdy + 1} - ${_WLuMbUSv._CJPfahxO}`;
                } else {
                    _Tnhqrazc = `${_ggQaAYdy + 1} - ${_WLuMbUSv._CJPfahxO || '未知'}`;
                    if (!_WLuMbUSv._rTPYhnuv || !_WLuMbUSv._rTPYhnuv.toLowerCase().includes('cloudflare')) {
                        _Tnhqrazc += '(反代)';
                    }
                }
                const _dnPqbKyI = _ehSwMfiD.isIPv6(_WLuMbUSv._YrmoNQCm) ? `[${_WLuMbUSv._YrmoNQCm}]` : _WLuMbUSv._YrmoNQCm;
                const _MYhKfdhm = _WLuMbUSv._MYhKfdhm || 443;
                const _ltzyROXl = itemLink._EsgQZQSt[0];
                const _hsqEsJjO = _ltzyROXl._UoSlQDtR || '';
                const _UoSlQDtR = (_hsqEsJjO && _CZHnZWfy(_hsqEsJjO)) ? _hsqEsJjO : crypto.randomUUID();
                const _DLZqRmBf = '/snippets?_YrmoNQCm=endpointAddress:_MYhKfdhm(443)&nat64=6to4';
                const _gkPyfdIq = _ltzyROXl._gkPyfdIq || _mqEujmVT;

                const _KrFlDnBL = new URLSearchParams({
                    security: 'tls',
                    _XvhFCJpx: 'ws',
                    _gkPyfdIq: _gkPyfdIq,
                    sni: _gkPyfdIq,
                    fp: 'random'
                });
                return `vless://${_UoSlQDtR}@${_dnPqbKyI}:${_MYhKfdhm}?${_KrFlDnBL.toString()}&_DLZqRmBf=${encodeURIComponent(encodeURIComponent(_DLZqRmBf))}#${encodeURIComponent(_Tnhqrazc)}`;
            });

        } else {
            if (!itemLink || !itemLink._fixYDcZO || !itemLink._EsgQZQSt || itemLink._EsgQZQSt._HbQNqGXH === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _ltzyROXl = itemLink._EsgQZQSt[0];
            const { _gkPyfdIq, _UoSlQDtR, _DLZqRmBf } = _ltzyROXl;
            _oWstVCOg = _VFxKiZrT.map((_WLuMbUSv, _ggQaAYdy) => {
                let _Tnhqrazc;
                if (_WLuMbUSv._rTPYhnuv === '自定义') {
                     _Tnhqrazc = `${_ggQaAYdy + 1} - ${_WLuMbUSv._CJPfahxO}`;
                } else {
                    _Tnhqrazc = `${_ggQaAYdy + 1} - ${_WLuMbUSv._CJPfahxO || '未知'}`;
                    if (!_WLuMbUSv._rTPYhnuv || !_WLuMbUSv._rTPYhnuv.toLowerCase().includes('cloudflare')) {
                        _Tnhqrazc += '(反代)';
                    }
                }
                const _dnPqbKyI = _ehSwMfiD.isIPv6(_WLuMbUSv._YrmoNQCm) ? `[${_WLuMbUSv._YrmoNQCm}]` : _WLuMbUSv._YrmoNQCm;
                const _MYhKfdhm = _WLuMbUSv._MYhKfdhm || 443;
                const _KrFlDnBL = new URLSearchParams({
                    security: 'tls',
                    _XvhFCJpx: 'ws',
                    _gkPyfdIq: _gkPyfdIq || _mqEujmVT,
                    sni: _gkPyfdIq || _mqEujmVT,
                    fp: 'random'
                });
                return `vless://${_UoSlQDtR}@${_dnPqbKyI}:${_MYhKfdhm}?${_KrFlDnBL.toString()}&_DLZqRmBf=${encodeURIComponent(encodeURIComponent(_DLZqRmBf || ''))}#${encodeURIComponent(_Tnhqrazc)}`;
            });
        }
        
        const _llcWuktz = _oWstVCOg.join('\n');
        const _tuAwyKkR = btoa(_llcWuktz);
        return new Response(_tuAwyKkR, {
            _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' }
        });

    } catch (_AYpGQMns) {
        return new Response(`生成节点列表失败: ${_AYpGQMns._hHFIgjMu}`, { status: 500 });
    }
}

async function _MTLBYhDB(_VKZoucbO) {
    try {
        const { _PyNjuMLV, _XvhFCJpx } = await _VKZoucbO.json();
        if (!Array.isArray(_PyNjuMLV)) {
            return new Response('Invalid _PyNjuMLV list', { status: 400 });
        }
        const _dzcSJSqL = _PyNjuMLV.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _JOTGTLwo = `https://cloudflare-dns.com/dns-query?_Tnhqrazc=${encodeURIComponent(domain.trim())}&_XvhFCJpx=${_XvhFCJpx || 'A'}`;
            return fetch(_JOTGTLwo, { _aluSVNtE: { 'Accept': 'application/dns-json' } })
                .then(_CgjWpKUq => _CgjWpKUq.json())
                .then(_gEylmZbU => (_gEylmZbU.Answer ? _gEylmZbU.Answer.map(a => a._gEylmZbU) : []))
                .catch(() => []);
        });
        const _WDSChIhc = (await Promise.all(_dzcSJSqL)).flat();
        const _reDNBDOf = [...new Set(_WDSChIhc)];
        if (_reDNBDOf._HbQNqGXH === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_reDNBDOf.join('\n'), { _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._hHFIgjMu}`, { status: 500 });
    }
}

async function _mnDSPUYI(_VKZoucbO, _fTzuFQXV) {
  try {
      const { _EZwYvCVI } = await _VKZoucbO.json();
      if (!Array.isArray(_EZwYvCVI)) {
          return _nCLvAmWC({ error: "Invalid input, expected an object with a '_EZwYvCVI' array." }, 400);
      }
      
      const _HNBhUPhI = new Set();
      
      const _leLgAfEv = _EZwYvCVI.map(_JOTGTLwo =>
          _vkbsWWFo(_JOTGTLwo)
              .then(_ZmYcSgBh => {
                  if (!_ZmYcSgBh) return;
                  const _UTGmKQky = _ZmYcSgBh.split(/[\s,;|]+/);
                  for (const _tALiNZeJ of _UTGmKQky) {
                      const _NogjkHFh = _tALiNZeJ.trim();
                      if (_NogjkHFh) {
                          _HNBhUPhI.add(_NogjkHFh);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_JOTGTLwo}:`, err);
              })
      );
      await Promise.all(_leLgAfEv);
      return _nCLvAmWC({ _iPsJCAAK: Array.from(_HNBhUPhI) });
  } catch (_AYpGQMns) {
      return _nCLvAmWC({ error: `Failed to process URLs: ${_AYpGQMns._hHFIgjMu}` }, 500);
  }
}

async function _CNAJktOU(_VKZoucbO, _fTzuFQXV) {
    const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);
    if (!_sbNKUEir.api._fixYDcZO) {
        return new Response(_sbNKUEir.api._hHFIgjMu || 'API is disabled.', { status: 503 });
    }
    try {
        const _RmNhbqOj = _fTzuFQXV.DB.prepare("SELECT _QgjxXDNU FROM kv_data WHERE _JmerAoNL = ?").bind(_etgXLlJL);
        const { _PlktmswB: dbResults } = await _RmNhbqOj.all();
        const _bEZqhoxj = dbResults._HbQNqGXH > 0 ? dbResults[0]._QgjxXDNU : null;
        const _ekCECGSj = _bEZqhoxj ? JSON.parse(_bEZqhoxj) : null;
        if (!_ekCECGSj || !_ekCECGSj._PlktmswB || _ekCECGSj._PlktmswB._HbQNqGXH === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' },
            });
        }
        const _iPsJCAAK = _ekCECGSj._PlktmswB.map(r => r._YrmoNQCm);
        return new Response(_iPsJCAAK.join('\n'), {
            _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' },
        });
    } catch (_AYpGQMns) {
        console.error("API /_YrmoNQCm 处理错误:", _AYpGQMns);
        return new Response(`API处理时出错: ${_AYpGQMns._hHFIgjMu}`, { status: 500 });
    }
}

function _UaTAYFcN(_AAOUAPMg, _ggQaAYdy, _sbNKUEir, _mqEujmVT) {
    const { itemLink } = _sbNKUEir;
    if (!itemLink || !itemLink._fixYDcZO) return null;
    const { template, _EsgQZQSt, selectionMode, _WSGjxVIz } = itemLink;
    if (!_EsgQZQSt || _EsgQZQSt._HbQNqGXH === 0) return null;

    let _HlvUdiWh;
    if (selectionMode === 'random') {
        _HlvUdiWh = _EsgQZQSt[_ggQaAYdy % _EsgQZQSt._HbQNqGXH];
    } else if (selectionMode === 'first') {
        _HlvUdiWh = _EsgQZQSt[0];
    } else {
        _HlvUdiWh = _EsgQZQSt.find(s => s._Tnhqrazc === selectionMode) || _EsgQZQSt[0];
    }
    if (!_HlvUdiWh) return null;

    let _yRqEhNDc = template;
    const _PppsiDKT = _AAOUAPMg._MYhKfdhm || 443;
    const _gkcGZhEy = _ehSwMfiD.isIPv6(_AAOUAPMg._YrmoNQCm) ? `[${_AAOUAPMg._YrmoNQCm}]` : _AAOUAPMg._YrmoNQCm;
    let _Tnhqrazc = `${_ggQaAYdy + 1} 、 ${_AAOUAPMg._CJPfahxO || '未知'}`;
    if (!_AAOUAPMg._rTPYhnuv || !_AAOUAPMg._rTPYhnuv.toLowerCase().includes('cloudflare')) {
        _Tnhqrazc += '(反代)';
    }
    let _gkPyfdIq = _HlvUdiWh._gkPyfdIq || _mqEujmVT;

    _yRqEhNDc = _yRqEhNDc.replace(/{_YrmoNQCm}/g, _gkcGZhEy)
               .replace(/{_MYhKfdhm}/g, _PppsiDKT)
               .replace(/{_Tnhqrazc}/g, encodeURIComponent(_Tnhqrazc))
               .replace(/{rank}/g, _ggQaAYdy + 1)
               .replace(/{_CJPfahxO}/g, encodeURIComponent(_AAOUAPMg._CJPfahxO || '未知'))
               .replace(/{_rTPYhnuv}/g, encodeURIComponent(_AAOUAPMg._rTPYhnuv || '未知'))
               .replace(/{_gkPyfdIq}/g, encodeURIComponent(_gkPyfdIq))
               .replace(/{_UoSlQDtR}/g, encodeURIComponent(_HlvUdiWh['_UoSlQDtR'] || ''))
               .replace(/{_DLZqRmBf}/g, encodeURIComponent(encodeURIComponent(_HlvUdiWh._DLZqRmBf || '')));

    if (_WSGjxVIz) {
        _WSGjxVIz.forEach(field => {
            const _VUxoQdxx = new RegExp('{' + field._Tnhqrazc + '}', 'g');
            _yRqEhNDc = _yRqEhNDc.replace(_VUxoQdxx, encodeURIComponent(field._QgjxXDNU));
        });
    }
    return _yRqEhNDc;
}

async function _GuFQKhgv(_VKZoucbO, _fTzuFQXV) {
    const _sbNKUEir = await _hqWINZbA(_fTzuFQXV);
    if (!_sbNKUEir.itemLink._fixYDcZO) {
        return new Response("Item _yRqEhNDc feature is disabled.", { status: 503, _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' } });
    }

    try {
        const _RmNhbqOj = _fTzuFQXV.DB.prepare("SELECT _QgjxXDNU FROM kv_data WHERE _JmerAoNL = ?").bind(_etgXLlJL);
        const { _PlktmswB: dbResults } = await _RmNhbqOj.all();
        const _bEZqhoxj = dbResults._HbQNqGXH > 0 ? dbResults[0]._QgjxXDNU : null;
        const _ekCECGSj = _bEZqhoxj ? JSON.parse(_bEZqhoxj) : null;
        
        if (!_ekCECGSj || !_ekCECGSj._PlktmswB || _ekCECGSj._PlktmswB._HbQNqGXH === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' },
            });
        }
        
        const _mqEujmVT = new URL(_VKZoucbO._JOTGTLwo)._ttVuNTKr;

        const _XKyKxpAz = _ekCECGSj._PlktmswB.map((_AAOUAPMg, _ggQaAYdy) => {
            return _UaTAYFcN(_AAOUAPMg, _ggQaAYdy, _sbNKUEir, _mqEujmVT);
        }).filter(Boolean);

        if (_XKyKxpAz._HbQNqGXH === 0) {
            return new Response("Could not generate any _WLuMbUSv links from the available IPs.", {
                status: 500,
                _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' },
            });
        }

        return new Response(_XKyKxpAz.join('\n'), {
            _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/plain; _VVVVrTRb=utf-8' },
        });

    } catch (_AYpGQMns) {
        console.error("API /api/endpoints error:", _AYpGQMns);
        return new Response(`Error processing API _VKZoucbO: ${_AYpGQMns._hHFIgjMu}`, { status: 500 });
    }
}

async function _iKQXnpOu(_VKZoucbO, _fTzuFQXV, _QAsWicmN) {
    const _nhGGAkJD = _VKZoucbO._aluSVNtE.get('CF-Connecting-IP') || "未知IP";
    const [
        _LSTZFwRe,
        _NiXvwaaM,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _WLshiYre(_gZktKaFQ, _qlqmFHCp, []),
        _WLshiYre(_YBwOennV, _qlqmFHCp, []),
        _WLshiYre(_VrqZwkxf, _ZUGSuORt, []),
        _WLshiYre(_bHyDzkan, _qYndcOUZ, { "N/A": "未知" })
    ]);
    _DeXoqbLd = fetchedCountryMap;
    let _IBPONWct = false;
    let _YZxOPbZr;
    try {
        const _RyMheNdx = await _FGeBlCtR(_fTzuFQXV);
        _IBPONWct = !!_RyMheNdx;
        _YZxOPbZr = await _hqWINZbA(_fTzuFQXV);
    } catch (_AYpGQMns) {
        if (_AYpGQMns._hHFIgjMu && _AYpGQMns._hHFIgjMu.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _mvoHiCsA = "CREATE TABLE IF NOT EXISTS kv_data (_JmerAoNL TEXT PRIMARY KEY, _QgjxXDNU TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_vdjrcNre TEXT PRIMARY KEY, _gEylmZbU TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _fTzuFQXV.DB.exec(_mvoHiCsA);
                console.log("数据表创建成功。");
                _IBPONWct = false;
                _YZxOPbZr = _PKrjiHPM();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._hHFIgjMu}`, {
                    status: 500,
                    _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/html;_VVVVrTRb=UTF-8' }
                });
            }
        } else {
             let _goUVFGZe = _FGZiMWEn(_AYpGQMns._hHFIgjMu);
             return new Response(_goUVFGZe, { _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/html;_VVVVrTRb=UTF-8' } });
        }
    }
    if (_YZxOPbZr.telegram.bot_token && _YZxOPbZr.telegram.chat_id) {
        const _MiNrmaqr = _VKZoucbO.cf?._MiNrmaqr || "未知";
        const _rVvjmTwb = _VKZoucbO.cf?._rVvjmTwb || "";
        let _vdqqTirW = _DeXoqbLd[_MiNrmaqr] || _MiNrmaqr;
        if (_rVvjmTwb && _rVvjmTwb !== "未知城市" && _rVvjmTwb !== _MiNrmaqr) _vdqqTirW = `${_vdqqTirW} ${_DeXoqbLd[_rVvjmTwb] || _rVvjmTwb}`;
        const _DRQzKJUb = _DrlimqXe();
        const _hqDekOLR = _VKZoucbO._JOTGTLwo;
        const _aCvCwZtJ = `访客: ${_nhGGAkJD}\n位置: ${_vdqqTirW.trim()}\n时间: ${_DRQzKJUb}\n来自:${_hqDekOLR}`;
        const _dtSfJmlI = `https://api.telegram.org/bot${_YZxOPbZr.telegram.bot_token}/sendMessage?chat_id=${_YZxOPbZr.telegram.chat_id}&_ZmYcSgBh=${encodeURIComponent(_aCvCwZtJ)}`;
        _QAsWicmN.waitUntil(fetch(_dtSfJmlI).catch(_AYpGQMns => console.error("Telegram通知失败:", _AYpGQMns)));
    }
    let _JUFOexkJ = _pGfIflkS();
    const _qrlRPQqM = {
        _sbNKUEir: _YZxOPbZr,
        status: {
            _IBPONWct: _IBPONWct,
        }
    };
    _JUFOexkJ = _JUFOexkJ.replace('__PAGE_DATA_JSON__', JSON.stringify(_qrlRPQqM));
    _JUFOexkJ = _JUFOexkJ.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_LSTZFwRe));
    _JUFOexkJ = _JUFOexkJ.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_NiXvwaaM));
    _JUFOexkJ = _JUFOexkJ.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _JUFOexkJ = _JUFOexkJ.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_DeXoqbLd));
    return new Response(_JUFOexkJ, {
        _aluSVNtE: { 'Content-Type': '_ZmYcSgBh/html;_VVVVrTRb=UTF-8' },
    });
}

function _nCLvAmWC(_PVFUdepj, status = 200, _aluSVNtE = {}) {
    return new Response(JSON.stringify(_PVFUdepj), {
        status,
        _aluSVNtE: { 'Content-Type': 'application/json;_VVVVrTRb=UTF-8', ..._aluSVNtE }
    });
}

function _DrlimqXe(date = new Date()) {
    return new Intl.DateTimeFormat('zh-CN', {
        timeZone: 'Asia/Shanghai',
        year: 'numeric', month: '2-digit', day: '2-digit',
        hour: '2-digit', minute: '2-digit', second: '2-digit',
        hour12: false
    }).format(date);
}

function _dngfRWxa(_YrmoNQCm) {
    if (!_YrmoNQCm || typeof _YrmoNQCm !== 'string') return "无效IP";
    if(_ehSwMfiD.isIPv4(_YrmoNQCm)){
        const _OCuIysEv = _YrmoNQCm.split('.');
        if (_OCuIysEv._HbQNqGXH === 4) return `${_OCuIysEv[0]}.*.*.${_OCuIysEv[3]}`;
    }
    if(_ehSwMfiD.isIPv6(_YrmoNQCm)){
        const _OCuIysEv = _YrmoNQCm.split(':');
        if (_OCuIysEv._HbQNqGXH > 2) return `${_OCuIysEv[0]}:...:${_OCuIysEv[_OCuIysEv._HbQNqGXH - 1]}`;
    }
    return _YrmoNQCm;
}

function _FGZiMWEn(_FArFOAdL) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _VVVVrTRb="UTF-8"><title>需要设置</title>
    <_bFVtOxkZ>
        _PVFUdepj { font-family: sans-serif; background: #1a1a1a; _HsRKrBro: #e0e0e0; display: flex; justify-_IBLQQsrr: center; align-items: center; height: 100vh; margin: 0; }
        ._NkrNSkBx { max-_dVonDvbr: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _HsRKrBro: #00a0ff; border-bottom: 1px solid #40444c; padding-bottom: 0.5rem; }
        p { line-height: 1.6; }
        code { background: #1a1a1a; padding: 0.2em 0.4em; border-radius: 4px; font-family: monospace; white-space: pre-wrap; word-break: break-all; }
        .error { _HsRKrBro: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_iWVOVtrV: 1rem; }
    </_bFVtOxkZ>
    </head><_PVFUdepj>
    <div class="_NkrNSkBx">
        <h1>部署指南</h1>
        <p>系统检测到 D1 数据库绑定存在问题。请确保您已完成以下步骤:</p>
        <ol>
            <li>进入 Cloudflare Dashbord -> Workers & Pages -> D1。</li>
            <li>创建一个新的D1数据库 (如果还没有)。</li>
            <li>将此数据库绑定到您的Worker:
                <ul>
                    <li>进入Worker设置 -> 变量 -> D1数据库绑定。</li>
                    <li>变量名必须填写 <code>DB</code>。</li>
                    <li>选择您刚创建的数据库。</li>
                    <li>点击“保存并部署”。</li>
                </ul>
            </li>
        </ol>
        <p>完成以上步骤后,请刷新本页面。系统会自动为您创建所需的数据表。</p>
        ${_FArFOAdL ? `<div class="error"><strong>当前错误信息:</strong> ${_FArFOAdL.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_PVFUdepj></html>`;
}

function _pGfIflkS() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _VVVVrTRb="UTF-8"> <meta _Tnhqrazc="viewport" _IBLQQsrr="_dVonDvbr=device-_dVonDvbr, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_yRqEhNDc href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;700&family=Roboto+Mono:wght@400;500&display=swap" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/qrcode-generator/qrcode.js"></script>
  <_bFVtOxkZ>
  :root { --primary-_HsRKrBro: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_HsRKrBro: #8c939d; --light-bg: #1A1C20; --_IBLQQsrr-bg: #25282E; --border-_HsRKrBro: #40444C; --_ZmYcSgBh-_HsRKrBro: #E0E0E0; --_ZmYcSgBh-light: #B0B0B0; --success-_HsRKrBro: #30A46C; --danger-_HsRKrBro: #DA3633; --warning-_HsRKrBro: #DBAB0A; --border-radius-md: 8px; --border-radius-sm: 6px; --font-family-sans: 'Inter', 'Noto Sans SC', sans-serif; --font-family-mono: 'Roboto Mono', monospace; }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { font-size: 16px; }
  _PVFUdepj { font-family: var(--font-family-sans); background-_HsRKrBro: var(--light-bg); _HsRKrBro: var(--_ZmYcSgBh-_HsRKrBro); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_HsRKrBro 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_bFUinqkJ { position: fixed; _iWVOVtrV: 0; _NbZurQIH: 0; _dVonDvbr: 100%; height: 100%; z-_ggQaAYdy: -1; display: none; }
  ._RYvmVXlP-_NkrNSkBx { max-_dVonDvbr: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_ggQaAYdy: 1; }
  #_AVRYyjoP { position: fixed; _iWVOVtrV: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_ggQaAYdy: 10; }
  #marquee-_NkrNSkBx { overflow: hidden; white-space: nowrap; background-_HsRKrBro: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _HsRKrBro: var(--primary-_HsRKrBro); padding: 0.5rem 0; margin-_iWVOVtrV: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_ZmYcSgBh { display: inline-block; padding-_NbZurQIH: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _vWbVseZA { _ZmYcSgBh-align: center; margin-_iWVOVtrV: 1rem; margin-bottom: 2rem; }
  _vWbVseZA h1 { white-space: pre-wrap; font-size: 2.25em; _HsRKrBro: var(--primary-_HsRKrBro); font-weight: 700; _ZmYcSgBh-shadow: 0 0 10px rgba(var(--primary-_HsRKrBro-rgb), 0.3); }
  .card { background-_HsRKrBro: rgba(37, 40, 46, 0.85); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); border-radius: var(--border-radius-md); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25); padding: 1.5rem; margin-bottom: 1.5rem; border: 1px solid var(--border-_HsRKrBro); }
  .progress-section #_PrNKGKjG { _dVonDvbr: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_HsRKrBro: var(--border-_HsRKrBro); overflow: hidden; }
  .progress-section #_PrNKGKjG::-webkit-progress-_QgjxXDNU { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _ZmYcSgBh-align: center; margin-_iWVOVtrV: 0.75em; font-size: 0.95em; _HsRKrBro: var(--_ZmYcSgBh-light); min-height: 1.5em; }
  .section-_vWbVseZA { display: flex; flex-wrap: wrap; justify-_IBLQQsrr: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_HsRKrBro); gap: 1rem; }
  .section-_vWbVseZA h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _HsRKrBro: var(--secondary-_HsRKrBro); _ZmYcSgBh-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _dVonDvbr: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _dVonDvbr: 100%; border-collapse: collapse; margin-_iWVOVtrV: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_HsRKrBro); padding: 0.8em; _ZmYcSgBh-align: _NbZurQIH; vertical-align: middle; white-space: nowrap; }
  th { background-_HsRKrBro: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_HsRKrBro: #30333a; }
  td._YrmoNQCm-_miWreXCt { font-weight: 500; font-family: var(--font-family-mono); _HsRKrBro: var(--primary-_HsRKrBro); }
  td.ping-_QgjxXDNU { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _ZmYcSgBh-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_IBLQQsrr: center; font-weight: 500; _ZmYcSgBh-align: center; cursor: pointer; user-_LlkaQMAH: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _HsRKrBro: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_NbZurQIH: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _HsRKrBro: var(--primary-_HsRKrBro); border: 1px solid var(--primary-_HsRKrBro); }
  .btn-outline:hover { background-_HsRKrBro: var(--primary-_HsRKrBro); _HsRKrBro: var(--_IBLQQsrr-bg); }
  ._RYvmVXlP-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._RYvmVXlP-download-buttons .btn { _dVonDvbr: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _iWVOVtrV: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _HsRKrBro: #fff; font-size: 0.95em; z-_ggQaAYdy: 10002; box-shadow: 0 6px 15px rgba(0, 0, 0, 0.35); opacity: 0; transform: translateY(-20px); transition: all 0.3s ease; pointer-events: none; }
  .tooltip-notification.show { opacity: 1; transform: translateY(0); }
  #_bDHczpac, #_YlAKRWaj, #_wlyySPtE, #_mfMJXZBB, #_OYECmpOV { display: none; position: fixed; z-_ggQaAYdy: 10000; _NbZurQIH: 0; _iWVOVtrV: 0; _dVonDvbr: 100%; height: 100%; background-_HsRKrBro: rgba(0,0,0,0.6); justify-_IBLQQsrr: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_IBLQQsrr, ._RYvmVXlP-modal-_IBLQQsrr { background-_HsRKrBro: var(--_IBLQQsrr-bg); padding: 2rem; border: 1px solid var(--border-_HsRKrBro); border-radius: var(--border-radius-md); _dVonDvbr: 95%; max-_dVonDvbr: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_mfMJXZBB .modal-_IBLQQsrr { max-_dVonDvbr: 500px; }
  .modal-_IBLQQsrr h3, ._RYvmVXlP-modal-_vWbVseZA h3 { margin-_iWVOVtrV: 0; margin-bottom: 1.5rem; _HsRKrBro: var(--primary-_HsRKrBro); _ZmYcSgBh-align: center; }
  .modal-buttons { display: flex; justify-_IBLQQsrr: flex-end; gap: 1rem; margin-_iWVOVtrV: 2rem; border-_iWVOVtrV: 1px solid var(--border-_HsRKrBro); padding-_iWVOVtrV: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_HsRKrBro), rgba(0,0,0,0)); margin: 2rem 0; }
  ._RYvmVXlP-modal-_vWbVseZA { display: flex; justify-_IBLQQsrr: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_HsRKrBro); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _HsRKrBro: var(--_ZmYcSgBh-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._RYvmVXlP-list-_WLuMbUSv { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_HsRKrBro); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._RYvmVXlP-_Tnhqrazc { font-size: 1.1em; font-weight: 600; }
  ._RYvmVXlP-links a { display: block; _HsRKrBro: var(--primary-_HsRKrBro); _ZmYcSgBh-decoration: none; margin-_iWVOVtrV: 0.5rem; word-break: break-all; }
  ._RYvmVXlP-links a:hover { _ZmYcSgBh-decoration: underline; }
  ._RYvmVXlP-links span { _HsRKrBro: var(--_ZmYcSgBh-light); }
  #visitorPasswordPrompt { _ZmYcSgBh-align: center; }
  #visitorPasswordPrompt h3 { _HsRKrBro: var(--primary-_HsRKrBro); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _HsRKrBro: var(--_ZmYcSgBh-light); margin-bottom: 1.5rem; }
  ._RyMheNdx-input-group { display: flex; gap: 10px; max-_dVonDvbr: 400px; margin: 0 auto; }
  ._RyMheNdx-input-group input { flex-grow: 1; _ZmYcSgBh-align: center; }
  ._RyMheNdx-input-group .btn { margin-_NbZurQIH: 0; }
  ._PlktmswB-actions-_NkrNSkBx { _ZmYcSgBh-align: center; margin-bottom: 1.5rem; }
  ._PlktmswB-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._PlktmswB-api-buttons .btn { margin: 0; _dVonDvbr: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_IBLQQsrr 1fr; gap: 1.2rem 1rem; align-items: center; }
  .form-grid-label { justify-self: end; display: flex; align-items: center; gap: 8px; }
  .form-grid-control { display: flex; align-items: center; gap: 10px; }
  .form-grid-control-full { grid-column: 1 / -1; }
  .form-grid-control input, .form-grid-control _LlkaQMAH, .form-grid-control textarea { _dVonDvbr: 100%; background-_HsRKrBro: var(--light-bg); border: 1px solid var(--border-_HsRKrBro); border-radius: var(--border-radius-sm); _HsRKrBro: var(--_ZmYcSgBh-_HsRKrBro); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_HsRKrBro 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _LlkaQMAH:focus, .form-grid-control textarea:focus { border-_HsRKrBro: var(--primary-_HsRKrBro); box-shadow: 0 0 0 2px rgba(var(--primary-_HsRKrBro-rgb), 0.2); outline: none; }
  .form-grid-control input[_XvhFCJpx="_HsRKrBro"] { min-_dVonDvbr: auto; padding: 2px; _dVonDvbr: 2.5em; height: 2.5em; }
  .form-grid-control input[_XvhFCJpx="checkbox"] { _dVonDvbr: auto; flex-shrink: 0; height: 1.2em; _dVonDvbr: 1.2em; }
  .form-grid-control ._kxcDKxIK-input { _dVonDvbr: 80px; _ZmYcSgBh-align: right; }
  .tooltip-_CNUVIViG { display: inline-flex; _dVonDvbr: 16px; height: 16px; align-items: center; justify-_IBLQQsrr: center; background-_HsRKrBro: var(--secondary-_HsRKrBro); _HsRKrBro: var(--_IBLQQsrr-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_LlkaQMAH: none; }
  #tooltip-popup { position: fixed; background-_HsRKrBro: #383c4a; _HsRKrBro: #fff; padding: 10px 15px; border-radius: 6px; z-_ggQaAYdy: 10001; font-size: 0.85em; max-_dVonDvbr: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_HsRKrBro); pointer-events: none; }
  #custom-fields-_NkrNSkBx .form-grid-control { gap: 5px; } #custom-fields-_NkrNSkBx .form-grid-control input { flex: 1; }
  .parameter-_GUmzEavQ-_ssMElFbq { border: 1px solid var(--border-_HsRKrBro); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_GUmzEavQ-_vWbVseZA { display: flex; justify-_IBLQQsrr: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_GUmzEavQ-_vWbVseZA input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_iWVOVtrV: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._ZmYcSgBh-_HsRKrBro-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _dVonDvbr: 100%; }
  ._ZmYcSgBh-_HsRKrBro-grid input[_XvhFCJpx="_HsRKrBro"] { grid-column: 1 / 2; }
  ._ZmYcSgBh-_HsRKrBro-grid input[_XvhFCJpx="_ZmYcSgBh"], ._ZmYcSgBh-_HsRKrBro-grid textarea { grid-column: 2 / 3; }
  #_mfMJXZBB .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_mfMJXZBB .btn-group { display: flex; }
  #_mfMJXZBB .sub-btn { flex-grow: 1; margin: 0; }
  #_mfMJXZBB ._iOLtwVUA-btn { flex-shrink: 0; margin-_NbZurQIH: -1px; border-_iWVOVtrV-_NbZurQIH-radius: 0; border-bottom-_NbZurQIH-radius: 0; }
  #_OYECmpOV .modal-_IBLQQsrr { max-_dVonDvbr: 300px; background: white; padding: 1rem; _ZmYcSgBh-align: center; }
  #qrCodeImg { max-_dVonDvbr: 100%; }
  @media (max-_dVonDvbr: 768px) {
    html { font-size: 15px; } ._RYvmVXlP-_NkrNSkBx { padding: 0 0.8rem; } _vWbVseZA { margin-_iWVOVtrV: 2.5rem; margin-bottom: 1.5rem; } #_AVRYyjoP { _iWVOVtrV: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_bFVtOxkZ>
  <_bFVtOxkZ _vdjrcNre="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_IBLQQsrr-bg: #FFFFFF; --border-_HsRKrBro: #DCDFE6; --_ZmYcSgBh-_HsRKrBro: #303133; --_ZmYcSgBh-light: #606266; }
  .theme-light .card { background-_HsRKrBro: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_HsRKrBro: #F5F7FA; }
  .theme-light tbody tr:hover { background-_HsRKrBro: #ECF5FF; }
  .theme-matrix { --primary-_HsRKrBro: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_IBLQQsrr-bg: #0D0208; --border-_HsRKrBro: #00FF41; --_ZmYcSgBh-_HsRKrBro: #00FF41; --_ZmYcSgBh-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_HsRKrBro: rgba(0, 20, 0, 0.7); _ZmYcSgBh-shadow: 0 0 5px var(--primary-_HsRKrBro); backdrop-filter: none; }
  .theme-matrix th { background-_HsRKrBro: #000; }
  .theme-matrix tbody tr:hover { background-_HsRKrBro: #010; }
  .theme-matrix .btn { _ZmYcSgBh-shadow: none; _HsRKrBro: #000; }
  .theme-matrix .btn-outline { background-_HsRKrBro: transparent; }
  .theme-modern-glass { --primary-_HsRKrBro: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_IBLQQsrr-bg: rgba(30, 30, 40, 0.6); --border-_HsRKrBro: rgba(255, 255, 255, 0.2); --_ZmYcSgBh-_HsRKrBro: #F0F0F0; --_ZmYcSgBh-light: #A0A0B0; --border-radius-md: 12px; }
  _PVFUdepj.theme-modern-glass { background: linear-gradient(-45deg, #000428, #004e92, #1CB5E0, #23D5AB); background-size: 400% 400%; animation: gradientBG 15s ease infinite; }
  @keyframes gradientBG { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
  .theme-particles-glass { --primary-_HsRKrBro: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_IBLQQsrr-bg: rgba(30, 30, 40, 0.6); --border-_HsRKrBro: rgba(255, 255, 255, 0.2); --_ZmYcSgBh-_HsRKrBro: #F0F0F0; --_ZmYcSgBh-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_HsRKrBro: var(--_IBLQQsrr-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_HsRKrBro); }
  .glassy-components .btn { background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid rgba(255, 255, 255, 0.2); border-bottom-_HsRKrBro: rgba(0,0,0,0.3); border-right-_HsRKrBro: rgba(0,0,0,0.3); box-shadow: 0 4px 15px rgba(0,0,0,0.2), inset 0 1px 1px rgba(255,255,255,0.1); _ZmYcSgBh-shadow: 0 1px 2px rgba(0,0,0,0.2); _HsRKrBro: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_HsRKrBro: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _ZmYcSgBh-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_HsRKrBro); border-_HsRKrBro: var(--primary-_HsRKrBro); _HsRKrBro: #fff; }
  .glassy-components _vWbVseZA h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _ZmYcSgBh; -webkit-_ZmYcSgBh-fill-_HsRKrBro: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _HsRKrBro: transparent; }
  .theme-aurora-glass { --primary-_HsRKrBro: #38bdf8; --light-bg: #0c0a09; --_IBLQQsrr-bg: rgba(23, 23, 23, 0.5); --border-_HsRKrBro: rgba(255, 255, 255, 0.15); --_ZmYcSgBh-_HsRKrBro: #f2f2f2; --_ZmYcSgBh-light: #a3a3a3; }
  _PVFUdepj.theme-aurora-glass::before { _IBLQQsrr: ''; position: fixed; _iWVOVtrV: 0; _NbZurQIH: 0; _dVonDvbr: 100%; height: 100%; z-_ggQaAYdy: -2; background: radial-gradient(at 27% 37%, hsla(215, 98%, 61%, 0.4) 0px, transparent 50%), radial-gradient(at 97% 21%, hsla(125, 98%, 72%, 0.2) 0px, transparent 50%), radial-gradient(at 52% 99%, hsla(355, 98%, 76%, 0.3) 0px, transparent 50%), radial-gradient(at 10% 29%, hsla(256, 96%, 68%, 0.3) 0px, transparent 50%), radial-gradient(at 97% 96%, hsla(38, 60%, 74%, 0.2) 0px, transparent 50%), radial-gradient(at 33% 50%, hsla(222, 67%, 73%, 0.3) 0px, transparent 50%), radial-gradient(at 79% 53%, hsla(343, 68%, 73%, 0.2) 0px, transparent 50%); animation: auroraBG 20s ease-in-out infinite alternate; }
  @keyframes auroraBG { from { transform: scale(1); } to { transform: scale(1.5); } }
  .theme-cyberpunk-glass { --primary-_HsRKrBro: #08fdd8; --light-bg: #010409; --_IBLQQsrr-bg: rgba(22, 27, 34, 0.6); --border-_HsRKrBro: rgba(139, 148, 158, 0.3); --_ZmYcSgBh-_HsRKrBro: #e6edf3; --_ZmYcSgBh-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_HsRKrBro), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_HsRKrBro-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_HsRKrBro-rgb), 0.5); }
  .theme-marble-light { --primary-_HsRKrBro: #bfa37c; --light-bg: #f7f5f2; --_IBLQQsrr-bg: #ffffff; --border-_HsRKrBro: #e0dcd5; --_ZmYcSgBh-_HsRKrBro: #3d3a36; --_ZmYcSgBh-light: #6b6661; }
  _PVFUdepj.theme-marble-light { background-image: _JOTGTLwo('_gEylmZbU:image/svg+xml,%3Csvg _dVonDvbr="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%23dcd6ca" fill-opacity="0.2"%3E%3Cpath d="M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E'); }
  .theme-marble-light .card { background-_HsRKrBro: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_bFVtOxkZ>
  </head><_PVFUdepj _vdjrcNre="pageBody">
  <_bFUinqkJ _vdjrcNre="background-_bFUinqkJ"></_bFUinqkJ>
  <div _vdjrcNre="_bDHczpac">
      <div class="modal-_IBLQQsrr">
          <h3>首次使用 - 请设置管理员密码</h3>
          <p>这是您第一次访问本页面,为了保护您的设置,请创建一个管理员密码。</p>
          <div class="form-grid"><div class="form-grid-label"><label for="initialPassword">新密码 (至少6位)</label></div><div class="form-grid-control"><input _XvhFCJpx="_RyMheNdx" _vdjrcNre="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _XvhFCJpx="_RyMheNdx" _vdjrcNre="confirmPassword"></div></div>
          <div class="modal-buttons"><button _vdjrcNre="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_RYvmVXlP-_NkrNSkBx">
    <button _vdjrcNre="_AVRYyjoP" class="btn btn-outline"></button>
    <div _vdjrcNre="marquee-_NkrNSkBx"><div _vdjrcNre="marquee-_ZmYcSgBh"></div></div>
    <_vWbVseZA><h1 _vdjrcNre="pageTitle"></h1></_vWbVseZA>
    <div class="card" _vdjrcNre="visitorPasswordPrompt" _bFVtOxkZ="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_RyMheNdx-input-group">
            <input _XvhFCJpx="_RyMheNdx" _vdjrcNre="visitorPasswordEntry" _VUxoQdxx="访客密码">
            <button _vdjrcNre="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _vdjrcNre="_SlGwlwCe" _bFVtOxkZ="display: block;">
        <div class="card progress-section">
            <div _vdjrcNre="progressDisplay">
                <progress _vdjrcNre="_PrNKGKjG" _QgjxXDNU="0" max="100"></progress>
                <div _vdjrcNre="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _RYvmVXlP-download-section">
          <div class="section-_vWbVseZA"><h2 _vdjrcNre="appDownloadTitleEl"></h2></div>
          <div class="_RYvmVXlP-download-buttons">
            <button class="btn" _gEylmZbU-_WRNzmdaH="android">安卓客户端</button>
            <button class="btn" _gEylmZbU-_WRNzmdaH="ios">苹果客户端</button>
            <button class="btn" _gEylmZbU-_WRNzmdaH="windows">Windows客户端</button>
            <button class="btn" _gEylmZbU-_WRNzmdaH="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _PlktmswB-section" _vdjrcNre="_rnFhCZYZ" _bFVtOxkZ="display:none;">
          <div class="section-_vWbVseZA">
            <h2 _vdjrcNre="liveTitleEl"></h2>
            <div class="generator-info" _vdjrcNre="liveGeneratorInfo"></div>
          </div>
          <div _vdjrcNre="_KRdOkOoJ" class="_PlktmswB-actions-_NkrNSkBx" _bFVtOxkZ="display: none;">
             <div class="_PlktmswB-api-buttons">
                <button _vdjrcNre="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _vdjrcNre="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _vdjrcNre="resultsTable">
              <thead><tr><th _vdjrcNre="tableHeader1El"></th><th _vdjrcNre="tableHeader2El"></th><th _vdjrcNre="tableHeader3El"></th><th _vdjrcNre="tableHeader4El"></th><th _vdjrcNre="tableHeader5El"></th><th _vdjrcNre="tableHeader6El"></th><th _vdjrcNre="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _vdjrcNre="_shMVyWZV" _bFVtOxkZ="display:none;">
          <div class="section-_vWbVseZA"><h2 _vdjrcNre="cachedTitleEl"></h2><div class="generator-info" _vdjrcNre="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _vdjrcNre="cachedResultsTable">
              <thead><tr><th _vdjrcNre="cachedTableHeader1El"></th><th _vdjrcNre="cachedTableHeader2El"></th><th _vdjrcNre="cachedTableHeader3El"></th><th _vdjrcNre="cachedTableHeader4El"></th><th _vdjrcNre="cachedTableHeader5El"></th><th _vdjrcNre="cachedTableHeader6El"></th><th _vdjrcNre="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _vdjrcNre="notificationTooltip" class="tooltip-notification"></div>
  <div _vdjrcNre="_YlAKRWaj">
    <div class="modal-_IBLQQsrr">
      <h3>修改参数</h3>
      <div _bFVtOxkZ="display: flex; border-bottom: 1px solid var(--border-_HsRKrBro); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_epxtGrXq(event, 'general-_UQrjgJCq')">通用设置</button>
          <button class="tab-button" onclick="_epxtGrXq(event, '_yRqEhNDc-_UQrjgJCq')">链接设置</button>
          <button class="tab-button" onclick="_epxtGrXq(event, 'fine-grained-_UQrjgJCq')">IP源设置</button>
          <button class="tab-button" onclick="_epxtGrXq(event, 'advanced-_UQrjgJCq')">高级设置</button>
      </div>
      <div _vdjrcNre="general-_UQrjgJCq" class="tab-_IBLQQsrr" _bFVtOxkZ="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_LlkaQMAH _vdjrcNre="themeSelect">
                    <_DIpUfTso _QgjxXDNU="theme-aurora-glass">极光-玻璃质感</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-particles-glass">粒子-玻璃质感</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-modern-glass">现代-玻璃质感</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-cyberpunk-glass">赛博朋克-玻璃质感</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-dark-particles">暗色-粒子背景</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-dark-bing">暗色-必应壁纸</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-light">亮色-简约</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-light-bing">亮色-必应壁纸</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-marble-light">简约大理石-亮色</_DIpUfTso>
                    <_DIpUfTso _QgjxXDNU="theme-matrix">矩阵-代码雨</_DIpUfTso>
                </_LlkaQMAH>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="primaryColorInput">
                <span _bFVtOxkZ="_dVonDvbr: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _bFVtOxkZ="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_ZmYcSgBh-_HsRKrBro-grid"><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="colorInput_title"><textarea _vdjrcNre="textInput_title" _OoisfhTH="1" _VUxoQdxx="页面主标题"></textarea></div>
                <div class="_ZmYcSgBh-_HsRKrBro-grid"><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="colorInput_loginButton"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="textInput_loginButton" _VUxoQdxx="登录按钮文本"></div>
                <div class="_ZmYcSgBh-_HsRKrBro-grid"><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="colorInput_appDownloadTitle"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="textInput_appDownloadTitle" _VUxoQdxx="APP下载标题"></div>
                <div class="_ZmYcSgBh-_HsRKrBro-grid"><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="colorInput_liveTitle"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="textInput_liveTitle" _VUxoQdxx="本次结果标题"></div>
                <div class="_ZmYcSgBh-_HsRKrBro-grid"><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="colorInput_cachedTitle"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="textInput_cachedTitle" _VUxoQdxx="上次结果标题"></div>
                <div class="_ZmYcSgBh-_HsRKrBro-grid"><input _XvhFCJpx="_HsRKrBro" _vdjrcNre="colorInput_tableHeader"><input _XvhFCJpx="_ZmYcSgBh" _QgjxXDNU="表格头部文本颜色" readonly _bFVtOxkZ="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _bFVtOxkZ="align-self: start;"><label>公告栏设置</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _vdjrcNre="announcementText" _VUxoQdxx="在此输入公告内容" _OoisfhTH="3"></textarea>
                 <div _bFVtOxkZ="display: flex; justify-_IBLQQsrr: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _bFVtOxkZ="display: flex; align-items: center; gap: 5px;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableMarquee"> 顶部走马灯</label>
                    <label _bFVtOxkZ="display: flex; align-items: center; gap: 5px;"><input _XvhFCJpx="checkbox" _vdjrcNre="enablePopup"> 右上角弹窗</label>
                    <div _vdjrcNre="popupDurationContainer" _bFVtOxkZ="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _XvhFCJpx="number" _vdjrcNre="popupDuration" _bFVtOxkZ="_dVonDvbr: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _vdjrcNre="_yRqEhNDc-_UQrjgJCq" class="tab-_IBLQQsrr">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="converterServiceUrlInput" _VUxoQdxx="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _XvhFCJpx="number" _vdjrcNre="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _bFVtOxkZ="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _vdjrcNre="subscriptionIdCharset" _OoisfhTH="3"></textarea></div>
          <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
          <div class="form-grid-label"><label for="enableItemLinkCheckbox">启用"复制节点链接"按钮</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableItemLinkCheckbox"></div>
        </div>
        <div _vdjrcNre="itemLinkConfigGroup" _bFVtOxkZ="display:none; margin-_iWVOVtrV: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _bFVtOxkZ="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="定义分享链接格式。可用占位符: {_YrmoNQCm}, {_MYhKfdhm}, {_Tnhqrazc}, {rank}, {_CJPfahxO}, {_rTPYhnuv}, {_gkPyfdIq}, {_UoSlQDtR}, {_DLZqRmBf}。">?</span></div>
              <div class="form-grid-control"><textarea _vdjrcNre="itemLinkTemplateInput" _OoisfhTH="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_LlkaQMAH _vdjrcNre="parameterSelectionMode"></_LlkaQMAH></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _vdjrcNre="parameter-sets-_NkrNSkBx"></div><button _XvhFCJpx="button" _vdjrcNre="add-parameter-_GUmzEavQ-btn" class="btn btn-outline" _bFVtOxkZ="margin-_iWVOVtrV: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _bFVtOxkZ="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _vdjrcNre="custom-fields-_NkrNSkBx" _bFVtOxkZ="_dVonDvbr: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><button _XvhFCJpx="button" _vdjrcNre="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _vdjrcNre="fine-grained-_UQrjgJCq" class="tab-_IBLQQsrr">
          <div class="form-grid-label" _bFVtOxkZ="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _bFVtOxkZ="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_IBLQQsrr: flex-start;">
              <label><input _XvhFCJpx="checkbox" _vdjrcNre="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _XvhFCJpx="checkbox" _vdjrcNre="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _vdjrcNre="fine-grained-sources-_NkrNSkBx"></div><button _XvhFCJpx="button" _vdjrcNre="add-fine-grained-_VYmsCWlV-btn" class="btn btn-outline" _bFVtOxkZ="margin-_iWVOVtrV: 10px;">添加地区</button></div>
      </div>
      <div _vdjrcNre="advanced-_UQrjgJCq" class="tab-_IBLQQsrr">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _XvhFCJpx="checkbox" _vdjrcNre="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _vdjrcNre="resolvedDomainsGroup" _bFVtOxkZ="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _vdjrcNre="resolvedDomainsInput" _VUxoQdxx="留空则使用内置默认域名" _OoisfhTH="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomNodesCheckbox">启用自定义节点</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _XvhFCJpx="checkbox" _vdjrcNre="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _vdjrcNre="customNodesGroup" _bFVtOxkZ="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _vdjrcNre="customNodesInput" _VUxoQdxx="一行一个地址,支持域名、IPv4、IPv6。" _OoisfhTH="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="sampleSizeInput">测试IP总数</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _XvhFCJpx="number" _vdjrcNre="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _XvhFCJpx="number" _vdjrcNre="topNInput"></div>
            <div class="form-grid-label" _bFVtOxkZ="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="display: none;"><input _XvhFCJpx="number" _vdjrcNre="latencyRangeMinInput" _VUxoQdxx="最小"><span>-</span><input _XvhFCJpx="number" _vdjrcNre="latencyRangeMaxInput" _VUxoQdxx="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableIspFilterCheckbox"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="geoLocationRetriesInput">归属地查询失败复查</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _XvhFCJpx="number" _vdjrcNre="geoLocationRetriesInput" _bFVtOxkZ="_dVonDvbr: 80px;"> <span>次</span>
                <div _bFVtOxkZ="display: flex; align-items: center; gap: 5px; margin-_NbZurQIH: 20px;">
                    <input _XvhFCJpx="checkbox" _vdjrcNre="filterUnknownGeoCheckbox">
                    <label for="filterUnknownGeoCheckbox">过滤未知归属地IP</label>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="universalFallbackAddressInput">备用地址 (上游)</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_gkPyfdIq:_MYhKfdhm' 或 '_gkPyfdIq'。">?</span></div>
            <div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="universalFallbackAddressInput"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableWebsocketStreamerCheckbox">启用 Websocket 转发</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _vdjrcNre="websocketStreamerGroup" _bFVtOxkZ="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="websocketStreamerUrlInput"></div>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableStreamerCheckbox">启用内置内容加速</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="启用 /_YrmoNQCm 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _vdjrcNre="apiConfigGroup" _bFVtOxkZ="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="apiMessageInput"></div></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomSubPathCheckbox">启用自定义订阅路径</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _vdjrcNre="customSubPathGroup" _bFVtOxkZ="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="customSubPathInput" _VUxoQdxx="例如: latest"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableVisitorPasswordCheckbox">启用访客密码</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="justify-_IBLQQsrr: flex-start;"><input _XvhFCJpx="checkbox" _vdjrcNre="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _vdjrcNre="visitorPasswordGroup" _bFVtOxkZ="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _bFVtOxkZ="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_CNUVIViG" _gEylmZbU-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _bFVtOxkZ="flex-direction: column; align-items: stretch; gap: 8px;"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="botTokenInput" _VUxoQdxx="Telegram Bot Token"><input _XvhFCJpx="_ZmYcSgBh" _vdjrcNre="chatIdInput" _VUxoQdxx="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _bFVtOxkZ="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _bFVtOxkZ="flex-direction: column; align-items: stretch; gap: 8px;"><input _XvhFCJpx="_RyMheNdx" _vdjrcNre="oldPasswordInput" _VUxoQdxx="旧密码"><input _XvhFCJpx="_RyMheNdx" _vdjrcNre="newPasswordInput" _VUxoQdxx="新密码 (至少6位)"><button _vdjrcNre="changePasswordBtn" class="btn" _bFVtOxkZ="align-self: flex-start; margin-_NbZurQIH: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _vdjrcNre="closeModalBtn" class="btn btn-outline">关闭</button><button _vdjrcNre="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _vdjrcNre="_wlyySPtE">
      <div class="_RYvmVXlP-modal-_IBLQQsrr">
          <div class="_RYvmVXlP-modal-_vWbVseZA"><h3 _vdjrcNre="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_RYvmVXlP-modal-_PVFUdepj" _vdjrcNre="appModalBody"></div>
      </div>
  </div>
  <div _vdjrcNre="_mfMJXZBB">
      <div class="modal-_IBLQQsrr">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _gEylmZbU-sub-_XvhFCJpx="coreEngine">Xray</button><button class="btn _iOLtwVUA-btn" _gEylmZbU-sub-_XvhFCJpx="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _gEylmZbU-sub-_XvhFCJpx="coreProfile">Sing-Box</button><button class="btn _iOLtwVUA-btn" _gEylmZbU-sub-_XvhFCJpx="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _gEylmZbU-sub-_XvhFCJpx="configProfile">Clash</button><button class="btn _iOLtwVUA-btn" _gEylmZbU-sub-_XvhFCJpx="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _gEylmZbU-sub-_XvhFCJpx="policyProfile">Surge</button><button class="btn _iOLtwVUA-btn" _gEylmZbU-sub-_XvhFCJpx="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _bFVtOxkZ="justify-_IBLQQsrr: center;"><button class="btn btn-outline" _vdjrcNre="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _vdjrcNre="_OYECmpOV">
      <div class="modal-_IBLQQsrr">
          <img _vdjrcNre="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _ehSwMfiD = {
        isValid: (_YrmoNQCm) => _ehSwMfiD.isIPv4(_YrmoNQCm) || _ehSwMfiD.isIPv6(_YrmoNQCm),
        isIPv4: (_YrmoNQCm) => {
            if (typeof _YrmoNQCm !== 'string') return false;
            const _OCuIysEv = _YrmoNQCm.split('.');
            if (_OCuIysEv._HbQNqGXH !== 4) return false;
            return _OCuIysEv.every(_JFSUNXJK => {
                const _TigJUBZb = parseInt(_JFSUNXJK, 10);
                return !isNaN(_TigJUBZb) && _TigJUBZb >= 0 && _TigJUBZb <= 255 && String(_TigJUBZb) === _JFSUNXJK;
            });
        },
        isIPv6: (_YrmoNQCm) => {
            if (typeof _YrmoNQCm !== 'string') return false;
            return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_KvOstDnB.test(_YrmoNQCm);
        },
        toLong4: (_YrmoNQCm) => _YrmoNQCm.split('.').reduce((acc, octet, _KvOstDnB) => acc + (parseInt(octet) << (8*(3-_KvOstDnB))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_YrmoNQCm) => {
            try {
                const _eYgGPgNj = _YrmoNQCm.split('/')[0];
                const _OCuIysEv = _eYgGPgNj.split('::');
                if (_OCuIysEv._HbQNqGXH > 2) return 0n;
                let _gZhRVAPK = [];
                if (_OCuIysEv[0]) {
                    _gZhRVAPK = _OCuIysEv[0].split(':');
                }
                let _jICaRgFt = [];
                if (_OCuIysEv._HbQNqGXH > 1 && _OCuIysEv[1]) {
                    _jICaRgFt = _OCuIysEv[1].split(':');
                }
                if (_gZhRVAPK._HbQNqGXH + _jICaRgFt._HbQNqGXH > 8) return 0n;
                const _PTDnanvx = 8 - (_gZhRVAPK._HbQNqGXH + _jICaRgFt._HbQNqGXH);
                const _fptZcsbp = [
                    ..._gZhRVAPK,
                    ...Array(_PTDnanvx).fill('0'),
                    ..._jICaRgFt
                ].map(_JFSUNXJK => _JFSUNXJK || '0');
                while(_fptZcsbp._HbQNqGXH < 8) {
                    _fptZcsbp.push('0');
                }
                let _kiXzPiCu = 0n;
                for (const _JFSUNXJK of _fptZcsbp) {
                    if (_JFSUNXJK._HbQNqGXH > 4) return 0n;
                    const _QgjxXDNU = BigInt('0x' + _JFSUNXJK);
                    _kiXzPiCu = (_kiXzPiCu << 16n) | _QgjxXDNU;
                }
                return _kiXzPiCu;
            } catch(_AYpGQMns) {
                return 0n;
            }
        },
        fromBigInt6: (_kiXzPiCu) => {
            if (typeof _kiXzPiCu !== '_kiXzPiCu' || _kiXzPiCu < 0n) return null;
            const _OCuIysEv = [];
            for (let _KvOstDnB = 0; _KvOstDnB < 8; _KvOstDnB++) {
                _OCuIysEv.unshift((_kiXzPiCu & 0xFFFFn).toString(16));
                _kiXzPiCu >>= 16n;
            }
            let _LoMDiXkG = { start: -1, _ySypYtlb: 0 };
            let _plevFaSM = { start: -1, _ySypYtlb: 0 };
            for (let _KvOstDnB = 0; _KvOstDnB < 8; _KvOstDnB++) {
                if (_OCuIysEv[_KvOstDnB] === '0') {
                    if (_plevFaSM.start === -1) _plevFaSM.start = _KvOstDnB;
                    _plevFaSM._ySypYtlb++;
                } else {
                    if (_plevFaSM._ySypYtlb > _LoMDiXkG._ySypYtlb) _LoMDiXkG = { ..._plevFaSM };
                    _plevFaSM = { start: -1, _ySypYtlb: 0 };
                }
            }
            if (_plevFaSM._ySypYtlb > _LoMDiXkG._ySypYtlb) _LoMDiXkG = { ..._plevFaSM };
            if (_LoMDiXkG._ySypYtlb > 1) {
                _OCuIysEv.splice(_LoMDiXkG.start, _LoMDiXkG._ySypYtlb, '');
                if (_LoMDiXkG.start === 0) _OCuIysEv.unshift('');
                if (_LoMDiXkG.start + _LoMDiXkG._ySypYtlb === 8) _OCuIysEv.push('');
            }
            return _OCuIysEv.join(':');
        },
        cidrToRange: (cidr, _OWFKAJeF = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _BaodUduF = parseInt(bitsStr, 10);
                const _iPsJCAAK = new Set();
                if (_ehSwMfiD.isIPv4(range)) {
                    if (isNaN(_BaodUduF) || _BaodUduF < 8 || _BaodUduF > 32) return [];
                    if (_BaodUduF === 32) return [range];
                    const _mcmQwlSF = _ehSwMfiD.toLong4(range);
                    const _GGGAzYHx = (0xFFFFFFFF << (32 - _BaodUduF)) >>> 0;
                    const _UmVbgUQV = _mcmQwlSF & _GGGAzYHx;
                    const _Aniinsva = 1 << (32 - _BaodUduF);
                    if (_Aniinsva <= 2) return [];
                    const _DkpSkNge = Math.min(_OWFKAJeF, _Aniinsva - 2);
                    let _jJpoWrDp = 0;
                    while (_iPsJCAAK.size < _DkpSkNge && _jJpoWrDp < _DkpSkNge * 5) {
                        const _KnXDfCSD = Math.floor(Math.random() * (_Aniinsva - 2)) + 1;
                        _iPsJCAAK.add(_ehSwMfiD.fromLong4((_UmVbgUQV + _KnXDfCSD) >>> 0));
                        _jJpoWrDp++;
                    }
                    return Array.from(_iPsJCAAK);
                } else if (_ehSwMfiD.isIPv6(range)) {
                    if (isNaN(_BaodUduF) || _BaodUduF < 16 || _BaodUduF > 128) return [];
                    if (_BaodUduF === 128) return [range];
                    const _zQfegRuT = _ehSwMfiD.toBigInt6(range);
                    const _GGGAzYHx = (2n ** BigInt(128 - _BaodUduF) - 1n);
                    const _UmVbgUQV = _zQfegRuT & ~_GGGAzYHx;
                    const _yuHMbiuj = 2n ** BigInt(128 - _BaodUduF);
                    if (_yuHMbiuj <= 2n) return [];
                    let _jJpoWrDp = 0;
                    while (_iPsJCAAK.size < _OWFKAJeF && _jJpoWrDp < _OWFKAJeF * 5) {
                        const _rPXkzyWi = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_rPXkzyWi);
                        let _RywPVTKL = 0n;
                        for (const _wGIyobgv of _rPXkzyWi) {
                            _RywPVTKL = (_RywPVTKL << 8n) | BigInt(_wGIyobgv);
                        }
                        const _KnXDfCSD = _RywPVTKL % (_yuHMbiuj - 2n) + 1n;
                        _iPsJCAAK.add(_ehSwMfiD.fromBigInt6(_UmVbgUQV + _KnXDfCSD));
                        _jJpoWrDp++;
                    }
                    return Array.from(_iPsJCAAK);
                }
                return [];
            } catch(_AYpGQMns) {
                console.error(`CIDR to range failed for ${cidr}:`, _AYpGQMns);
                return [];
            }
        }
    };
    function _neRCgcqm(_pChDhswb, _hFtdyNpU) {
        const _WrTjgVkk = {};
        const _KtrAcXlk = Object._KtrAcXlk(_hFtdyNpU);
        const _OCuIysEv = _KtrAcXlk.map(_JmerAoNL => {
            const _DylbMNta = _pChDhswb * (_hFtdyNpU[_JmerAoNL] / 100);
            return { _JmerAoNL, _OWFKAJeF: Math.floor(_DylbMNta), remainder: _DylbMNta - Math.floor(_DylbMNta) };
        });
        let _QPkFDtcb = _OCuIysEv.reduce((acc, _JFSUNXJK) => acc + _JFSUNXJK._OWFKAJeF, 0);
        _OCuIysEv.sort((a, b) => b.remainder - a.remainder);
        let _hhNxQFeb = _pChDhswb - _QPkFDtcb;
        for (let _KvOstDnB = 0; _KvOstDnB < _hhNxQFeb; _KvOstDnB++) {
            _OCuIysEv[_KvOstDnB % _OCuIysEv._HbQNqGXH]._OWFKAJeF++;
        }
        for (const _JFSUNXJK of _OCuIysEv) {
            _WrTjgVkk[_JFSUNXJK._JmerAoNL] = _JFSUNXJK._OWFKAJeF;
        }
        return _WrTjgVkk;
    }
    const _qrlRPQqM = __PAGE_DATA_JSON__;
    const _YZxOPbZr = _qrlRPQqM._sbNKUEir;
    const _ocvxvCJv = _qrlRPQqM.status;
    const _LSTZFwRe = __ALL_CF_CIDR_LIST_JSON__;
    const _NiXvwaaM = __BALANCED_CF_CIDR_LIST_JSON__;
    const _IFQOgiPe = __DEFAULT_DOMAINS_LIST_JSON__;
    const _DeXoqbLd = __COUNTRY_MAP_JSON__;
    const _AeKzznCp = _DeXoqbLd;
    const _fjlWxXXp = 2500;
    const _DhdtEIrr = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _SlGwlwCe = document.getElementById('_SlGwlwCe');
    const _PrNKGKjG = document.getElementById('_PrNKGKjG');
    const _LasmfXYm = document.getElementById('status');
    const _rnFhCZYZ = document.getElementById('_rnFhCZYZ');
    const _nMwrExRa = document.getElementById('resultsTable').querySelector('tbody');
    const _shMVyWZV = document.getElementById('_shMVyWZV');
    const _tfboMOCz = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _yfLUXQVc = document.getElementById('notificationTooltip');
    const _AVRYyjoP = document.getElementById('_AVRYyjoP');
    const _YlAKRWaj = document.getElementById('_YlAKRWaj');
    const _wlyySPtE = document.getElementById('_wlyySPtE');
    const _mfMJXZBB = document.getElementById('_mfMJXZBB');
    const _OYECmpOV = document.getElementById('_OYECmpOV');
    const _bDHczpac = document.getElementById('_bDHczpac');
    const _KRdOkOoJ = document.getElementById('_KRdOkOoJ');
    let _YSLEiBYK = null;
    let _cIGxEgZp = null;
    let _iQaVyiHl = [];
    let _IDTuAjfU = false;
    let _IhdKuJfN = null;
    function _uomNLvve(_GbJDUKsA, _EWklwMcj) {
        const _BJKeNJGb=parseInt(_GbJDUKsA.slice(1),16),t=_EWklwMcj<0?0:255,p=_EWklwMcj<0?_EWklwMcj*-1:_EWklwMcj,R=_BJKeNJGb>>16,G=_BJKeNJGb>>8&0x00FF,B=_BJKeNJGb&0x0000FF;
        const _bRcpHZEI = Math.round((t-R)*p)+R;
        const _GKVpFyIV = Math.round((t-G)*p)+G;
        const _PBOzPbFs = Math.round((t-B)*p)+B;
        return `rgb(${_bRcpHZEI.toString()}, ${_GKVpFyIV.toString()}, ${_PBOzPbFs.toString()})`;
    }
    function _NsTNLrEo(_UQrjgJCq) {
        const _zpfZPbAa = _GUBYEqXW(_UQrjgJCq.primaryColor);
        if(_zpfZPbAa) {
            document.documentElement._bFVtOxkZ.setProperty('--primary-_HsRKrBro-rgb', `${_zpfZPbAa.r},${_zpfZPbAa.g},${_zpfZPbAa.b}`);
        }
        document.documentElement._bFVtOxkZ.setProperty('--primary-_HsRKrBro', _UQrjgJCq.primaryColor);
        document.documentElement._bFVtOxkZ.setProperty('--primary-hover', _uomNLvve(_UQrjgJCq.primaryColor, -0.1));
        document.documentElement._bFVtOxkZ.setProperty('--primary-gradient-start', _uomNLvve(_UQrjgJCq.primaryColor, 0.1));
        document.documentElement._bFVtOxkZ.setProperty('--primary-gradient-end', _uomNLvve(_UQrjgJCq.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _UQrjgJCq.texts.title;
        document.title = _UQrjgJCq.texts.title;
        _AVRYyjoP.innerText = _YSLEiBYK ? _UQrjgJCq.texts.loginButtonSuccess : _UQrjgJCq.texts.loginButton;
        _AVRYyjoP._bFVtOxkZ._HsRKrBro = _UQrjgJCq.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _UQrjgJCq.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _UQrjgJCq.texts.liveTitle;
        document.getElementById('liveTitleEl')._bFVtOxkZ._HsRKrBro = _UQrjgJCq.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _UQrjgJCq.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._bFVtOxkZ._HsRKrBro = _UQrjgJCq.colors.cachedTitle;
        const _aluSVNtE = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _aluSVNtE.forEach((_vdjrcNre, _ggQaAYdy) => {
            const _XYrYPaRP = document.getElementById(_vdjrcNre);
            if (_XYrYPaRP) _XYrYPaRP.innerText = _UQrjgJCq.texts[`tableHeader${_ggQaAYdy + 1}`] || '';
        });
        const _tkmIyBgt = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _tkmIyBgt.forEach((_vdjrcNre, _ggQaAYdy) => {
             const _XYrYPaRP = document.getElementById(_vdjrcNre);
             if (_XYrYPaRP) _XYrYPaRP.innerText = _YZxOPbZr.texts[`tableHeader${_ggQaAYdy + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._bFVtOxkZ._HsRKrBro = _UQrjgJCq.colors.tableHeader);
        document._PVFUdepj.className = '';
        document._PVFUdepj.classList.add(_UQrjgJCq.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_UQrjgJCq.theme)) {
            document._PVFUdepj.classList.add('glassy-components');
        }
        document._PVFUdepj._bFVtOxkZ.backgroundImage = '';
        _zeYukwAr();
        if (_UQrjgJCq.theme.includes('particles') || _UQrjgJCq.theme.includes('glass')) {
            _dZRKciDf(_UQrjgJCq.particleColor);
        } else if (_UQrjgJCq.theme.includes('bing')) {
            document._PVFUdepj._bFVtOxkZ.backgroundImage = '_JOTGTLwo(/bing-wallpaper)';
        }
    }
    function _dWACODaL() {
        _YSLEiBYK = null;
        if(_cIGxEgZp) clearTimeout(_cIGxEgZp);
        _NsTNLrEo(_YZxOPbZr);
        _uyIJJAzJ("登录已超时,请重新登录。", "warning");
    }
    async function _qTHHAYRa() {
        if (_YSLEiBYK) {
            _lTouoYXJ();
            return;
        }
        const _aGlaHUev = prompt('请输入管理员密码:');
        if (!_aGlaHUev) return;
        try {
            const _CgjWpKUq = await fetch('/api/verify-_RyMheNdx', {
                method: 'POST',
                _aluSVNtE: { 'Content-Type': 'application/json' },
                _PVFUdepj: JSON.stringify({ _RyMheNdx: _aGlaHUev })
            });
            const _AAOUAPMg = await _CgjWpKUq.json();
            if (_AAOUAPMg.success) {
                _YSLEiBYK = _aGlaHUev;
                _uyIJJAzJ("登录成功!有效期5分钟。", "success");
                if (_cIGxEgZp) clearTimeout(_cIGxEgZp);
                _cIGxEgZp = setTimeout(_dWACODaL, 5 * 60 * 1000);
                _NsTNLrEo(_YZxOPbZr);
                _lTouoYXJ();
            } else {
                throw new Error(_AAOUAPMg._hHFIgjMu || '密码验证失败');
            }
        } catch (_AYpGQMns) {
            _uyIJJAzJ(`登录失败: ${_AYpGQMns._hHFIgjMu}`, "error");
        }
    }
    function _QHexyDtc() {
        if (!_ocvxvCJv._IBPONWct) {
            _bDHczpac._bFVtOxkZ.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _RyMheNdx = document.getElementById('initialPassword')._QgjxXDNU;
                const _YwccbcaE = document.getElementById('confirmPassword')._QgjxXDNU;
                if (_RyMheNdx !== _YwccbcaE) {
                    _uyIJJAzJ("两次输入的密码不一致!", "error");
                    return;
                }
                if (_RyMheNdx._HbQNqGXH < 6) {
                    _uyIJJAzJ("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _CgjWpKUq = await fetch('/api/_GUmzEavQ-_RyMheNdx', {
                        method: 'POST',
                        _aluSVNtE: { 'Content-Type': 'application/json' },
                        _PVFUdepj: JSON.stringify({ _RyMheNdx })
                    });
                    const _AAOUAPMg = await _CgjWpKUq.json();
                    if (_AAOUAPMg.success) {
                        _uyIJJAzJ(_AAOUAPMg._hHFIgjMu, "success");
                        setTimeout(() => _CJPfahxO.reload(), 1500);
                    } else {
                        throw new Error(_AAOUAPMg._hHFIgjMu);
                    }
                } catch(_AYpGQMns) {
                    _uyIJJAzJ(`设置密码失败: ${_AYpGQMns._hHFIgjMu}`, "error");
                }
            });
            return;
        }
        _AVRYyjoP.addEventListener('click', _qTHHAYRa);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _YlAKRWaj._bFVtOxkZ.display = 'none'; });
        _YlAKRWaj.addEventListener('click', (_AYpGQMns) => { if (_AYpGQMns.target === _YlAKRWaj) _YlAKRWaj._bFVtOxkZ.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_NkrNSkBx .fine-grained-_fixYDcZO-cb').forEach(cb => cb.checked = true);
                document.getElementById('disableAllSourcesCheckbox').checked = false;
                this.checked = false; 
            }
        });
        document.getElementById('disableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_NkrNSkBx .fine-grained-_fixYDcZO-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_YSLEiBYK) {
                _uyIJJAzJ("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _WSGjxVIz = [];
            document.querySelectorAll('#custom-fields-_NkrNSkBx .custom-field-_ssMElFbq').forEach(_ssMElFbq => {
                const _Tnhqrazc = _ssMElFbq.querySelector('.custom-field-_Tnhqrazc')._QgjxXDNU.trim();
                const _QgjxXDNU = _ssMElFbq.querySelector('.custom-field-_QgjxXDNU')._QgjxXDNU.trim();
                if (_Tnhqrazc) _WSGjxVIz.push({ _Tnhqrazc, _QgjxXDNU });
            });
            const _EsgQZQSt = [];
            document.querySelectorAll('#parameter-sets-_NkrNSkBx .parameter-_GUmzEavQ-_ssMElFbq').forEach(_ssMElFbq => {
                const _Tnhqrazc = _ssMElFbq.querySelector('.param-_GUmzEavQ-_Tnhqrazc')._QgjxXDNU.trim();
                const _gkPyfdIq = _ssMElFbq.querySelector('.param-_GUmzEavQ-_gkPyfdIq')._QgjxXDNU.trim();
                const _UoSlQDtR = _ssMElFbq.querySelector('.param-_GUmzEavQ-_UoSlQDtR')._QgjxXDNU.trim();
                const _DLZqRmBf = _ssMElFbq.querySelector('.param-_GUmzEavQ-_DLZqRmBf')._QgjxXDNU.trim();
                if(_Tnhqrazc) _EsgQZQSt.push({ _Tnhqrazc, _gkPyfdIq, '_UoSlQDtR': _UoSlQDtR, _DLZqRmBf });
            });
            const _LOQNoamP = [];
            document.querySelectorAll('#fine-grained-sources-_NkrNSkBx .fine-grained-_VYmsCWlV-_ssMElFbq').forEach(_ssMElFbq => {
                const _CJPfahxO = _ssMElFbq.querySelector('.fine-grained-_CJPfahxO')._QgjxXDNU.trim();
                const _iPsJCAAK = _ssMElFbq.querySelector('.fine-grained-_iPsJCAAK')._QgjxXDNU.trim();
                const _fixYDcZO = _ssMElFbq.querySelector('.fine-grained-_fixYDcZO-cb').checked;
                const _kxcDKxIK = parseInt(_ssMElFbq.querySelector('.fine-grained-_kxcDKxIK')._QgjxXDNU, 10) || 0;
                const _dNDuhIOu = _ssMElFbq.querySelector('.use-_Tnhqrazc-as-_CJPfahxO-cb').checked;
                if (_CJPfahxO && _iPsJCAAK) {
                    _LOQNoamP.push({ _CJPfahxO, _iPsJCAAK, _fixYDcZO, _kxcDKxIK, _dNDuhIOu });
                }
            });
            
            let _lUJGtPil = parseInt(document.getElementById('subscriptionIdLength')._QgjxXDNU, 10);
            if (isNaN(_lUJGtPil) || _lUJGtPil < 2) _lUJGtPil = 2;
            if (_lUJGtPil > 128) _lUJGtPil = 128;

            const _uWPxsiqW = {
                theme: document.getElementById('themeSelect')._QgjxXDNU,
                primaryColor: document.getElementById('primaryColorInput')._QgjxXDNU,
                particleColor: document.getElementById('particleColorInput')._QgjxXDNU,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._QgjxXDNU,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._QgjxXDNU, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._QgjxXDNU, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._QgjxXDNU, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._QgjxXDNU, 10) || 0,
                _jKzRIgtB: document.getElementById('converterServiceUrlInput')._QgjxXDNU.trim(),
                subscriptionId: {
                    _HbQNqGXH: _lUJGtPil,
                    _VVVVrTRb: document.getElementById('subscriptionIdCharset')._QgjxXDNU.trim()
                },
                api: {
                    _fixYDcZO: document.getElementById('enableApiCheckbox').checked,
                    _hHFIgjMu: document.getElementById('apiMessageInput')._QgjxXDNU || '维护中...',
                },
                ispFilter: { 
                    _fixYDcZO: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._QgjxXDNU, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _fixYDcZO: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _fixYDcZO: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _JOTGTLwo: document.getElementById('websocketStreamerUrlInput')._QgjxXDNU.trim()
                },
                visitorPassword: {
                    _fixYDcZO: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _RyMheNdx: document.getElementById('visitorPasswordInput')._QgjxXDNU.trim()
                },
                customSubPath: {
                    _fixYDcZO: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _DLZqRmBf: document.getElementById('customSubPathInput')._QgjxXDNU.trim()
                },
                itemLink: {
                    _fixYDcZO: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._QgjxXDNU,
                    selectionMode: document.getElementById('parameterSelectionMode')._QgjxXDNU,
                    _EsgQZQSt: _EsgQZQSt,
                    _WSGjxVIz: _WSGjxVIz,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._QgjxXDNU.trim(),
                },
                announcement: {
                    popup: {
                        _fixYDcZO: document.getElementById('enablePopup').checked,
                        _ZmYcSgBh: document.getElementById('announcementText')._QgjxXDNU,
                        _xsVTzixW: parseInt(document.getElementById('popupDuration')._QgjxXDNU, 10) || 5
                    },
                    marquee: {
                        _fixYDcZO: document.getElementById('enableMarquee').checked,
                        _ZmYcSgBh: document.getElementById('announcementText')._QgjxXDNU
                    }
                },
                fineGrained: {
                    _fixYDcZO: true,
                    sources: _LOQNoamP
                },
                customNodes: {
                    _fixYDcZO: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._QgjxXDNU
                },
                texts: {
                    title: document.getElementById('textInput_title')._QgjxXDNU,
                    loginButton: document.getElementById('textInput_loginButton')._QgjxXDNU,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._QgjxXDNU,
                    liveTitle: document.getElementById('textInput_liveTitle')._QgjxXDNU,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._QgjxXDNU,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._QgjxXDNU,
                    loginButton: document.getElementById('colorInput_loginButton')._QgjxXDNU,
                    liveTitle: document.getElementById('colorInput_liveTitle')._QgjxXDNU,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._QgjxXDNU,
                    tableHeader: document.getElementById('colorInput_tableHeader')._QgjxXDNU,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._QgjxXDNU.trim(),
                    chat_id: document.getElementById('chatIdInput')._QgjxXDNU.trim(),
                },
            };
            try {
                const _CgjWpKUq = await fetch('/api/_sbNKUEir', {
                    method: 'POST',
                    _aluSVNtE: { 'Content-Type': 'application/json' },
                    _PVFUdepj: JSON.stringify({ _sbNKUEir: _uWPxsiqW, adminPassword: _YSLEiBYK })
                });
                const _AAOUAPMg = await _CgjWpKUq.json();
                if (_CgjWpKUq.ok && _AAOUAPMg.success) {
                    _uyIJJAzJ("配置已保存,正在刷新...", "success");
                    setTimeout(() => _CJPfahxO.reload(), 1500);
                } else {
                    throw new Error(_AAOUAPMg._hHFIgjMu || '未知错误');
                }
            } catch (_AYpGQMns) {
                _uyIJJAzJ(`操作失败: ${_AYpGQMns._hHFIgjMu}`, "error");
                if (String(_AYpGQMns._hHFIgjMu).includes("密码错误")) {
                    _dWACODaL();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _vdiAQKGK = document.getElementById('oldPasswordInput')._QgjxXDNU;
            const _ZPaJpaue = document.getElementById('newPasswordInput')._QgjxXDNU;
            if (!_vdiAQKGK || !_ZPaJpaue) {
                _uyIJJAzJ("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _CgjWpKUq = await fetch('/api/change-_RyMheNdx', {
                    method: 'POST',
                    _aluSVNtE: { 'Content-Type': 'application/json' },
                    _PVFUdepj: JSON.stringify({ _vdiAQKGK, _ZPaJpaue })
                });
                const _AAOUAPMg = await _CgjWpKUq.json();
                if (_AAOUAPMg.success) {
                    _uyIJJAzJ(_AAOUAPMg._hHFIgjMu, "success");
                    document.getElementById('oldPasswordInput')._QgjxXDNU = '';
                    document.getElementById('newPasswordInput')._QgjxXDNU = '';
                    _YSLEiBYK = _ZPaJpaue;
                } else {
                    throw new Error(_AAOUAPMg._hHFIgjMu);
                }
            } catch(_AYpGQMns) {
                _uyIJJAzJ(`修改密码失败: ${_AYpGQMns._hHFIgjMu}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('resolvedDomainsGroup')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('customNodesGroup')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('apiConfigGroup')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('itemLinkConfigGroup')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('websocketStreamerGroup')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'block' : 'none';
            const _OpfhLVJh = document.querySelector('#parameter-sets-_NkrNSkBx .param-_GUmzEavQ-_DLZqRmBf');
            if (_OpfhLVJh) {
                if (_AYpGQMns.target.checked) {
                    _OpfhLVJh._QgjxXDNU = '/snippets?_YrmoNQCm=endpointAddress:_MYhKfdhm(443)&nat64=6to4';
                } else {
                    _OpfhLVJh._QgjxXDNU = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _HypuIyrQ('', '');
        });
        document.getElementById('add-parameter-_GUmzEavQ-btn').addEventListener('click', () => {
            const _OWFKAJeF = document.querySelectorAll('.parameter-_GUmzEavQ-_ssMElFbq')._HbQNqGXH + 1;
            _KcGhVGuL({_Tnhqrazc: `配置${_OWFKAJeF}`, _gkPyfdIq: '', _UoSlQDtR: '', _DLZqRmBf: ''});
            _HBKmOBTD();
        });
         document.getElementById('add-fine-grained-_VYmsCWlV-btn').addEventListener('click', () => {
             _cMEGWzeI({ _CJPfahxO: '', _iPsJCAAK: '', _fixYDcZO: true, _kxcDKxIK: 50, _dNDuhIOu: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('visitorPasswordGroup')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('customSubPathGroup')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_AYpGQMns) => {
            document.getElementById('popupDurationContainer')._bFVtOxkZ.display = _AYpGQMns.target.checked ? 'flex' : 'none';
        });
    }
    function _HypuIyrQ(_Tnhqrazc, _QgjxXDNU) {
        const _NkrNSkBx = document.getElementById('custom-fields-_NkrNSkBx');
        const _srEYVPrl = document.createElement('div');
        _srEYVPrl.className = 'form-grid custom-field-_ssMElFbq';
        _srEYVPrl._bFVtOxkZ = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _srEYVPrl.innerHTML = `
            <input _XvhFCJpx="_ZmYcSgBh" class="custom-field-_Tnhqrazc" _VUxoQdxx="占位符名称" _QgjxXDNU="${_Tnhqrazc}">
            <input _XvhFCJpx="_ZmYcSgBh" class="custom-field-_QgjxXDNU" _VUxoQdxx="值" _QgjxXDNU="${_QgjxXDNU}">
            <button _XvhFCJpx="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _NkrNSkBx.appendChild(_srEYVPrl);
    }
    function _KcGhVGuL(_GUmzEavQ) {
        const _NkrNSkBx = document.getElementById('parameter-sets-_NkrNSkBx');
        const _srEYVPrl = document.createElement('div');
        _srEYVPrl.className = 'parameter-_GUmzEavQ-_ssMElFbq';
        _srEYVPrl.innerHTML = `
            <div class="parameter-_GUmzEavQ-_vWbVseZA">
                <input _XvhFCJpx="_ZmYcSgBh" class="param-_GUmzEavQ-_Tnhqrazc" _VUxoQdxx="配置名称" _QgjxXDNU="${_GUmzEavQ._Tnhqrazc}" oninput="_HBKmOBTD()">
                <button _XvhFCJpx="button" class="btn btn-outline" onclick="this.closest('.parameter-_GUmzEavQ-_ssMElFbq').remove(); _HBKmOBTD();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" class="param-_GUmzEavQ-_gkPyfdIq" _QgjxXDNU="${_GUmzEavQ._gkPyfdIq || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" class="param-_GUmzEavQ-_UoSlQDtR" _QgjxXDNU="${_GUmzEavQ['_UoSlQDtR'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _XvhFCJpx="_ZmYcSgBh" class="param-_GUmzEavQ-_DLZqRmBf" _QgjxXDNU="${_GUmzEavQ._DLZqRmBf || ''}"></div>
            </div>
        `;
        _NkrNSkBx.appendChild(_srEYVPrl);
    }
    function _HBKmOBTD() {
        const _LlkaQMAH = document.getElementById('parameterSelectionMode');
        const _hvXYUoOt = _LlkaQMAH._QgjxXDNU;
        _LlkaQMAH.innerHTML = '';
        const _IlfPuBid = document.createElement('_DIpUfTso');
        _IlfPuBid._QgjxXDNU = 'random';
        _IlfPuBid.textContent = '随机轮询';
        _LlkaQMAH.appendChild(_IlfPuBid);
        const _QUfpbfXU = document.createElement('_DIpUfTso');
        _QUfpbfXU._QgjxXDNU = 'first';
        _QUfpbfXU.textContent = '使用第一组';
        _LlkaQMAH.appendChild(_QUfpbfXU);
        document.querySelectorAll('.param-_GUmzEavQ-_Tnhqrazc').forEach(input => {
            const _Tnhqrazc = input._QgjxXDNU.trim();
            if (_Tnhqrazc) {
                const _DIpUfTso = document.createElement('_DIpUfTso');
                _DIpUfTso._QgjxXDNU = _Tnhqrazc;
                _DIpUfTso.textContent = `指定: ${_Tnhqrazc}`;
                _LlkaQMAH.appendChild(_DIpUfTso);
            }
        });
        if (Array.from(_LlkaQMAH.options).some(opt => opt._QgjxXDNU === _hvXYUoOt)) {
            _LlkaQMAH._QgjxXDNU = _hvXYUoOt;
        } else {
            _LlkaQMAH._QgjxXDNU = 'random';
        }
    }
    function _cMEGWzeI(_VYmsCWlV) {
        const _NkrNSkBx = document.getElementById('fine-grained-sources-_NkrNSkBx');
        const _srEYVPrl = document.createElement('div');
        _srEYVPrl.className = 'fine-grained-_VYmsCWlV-_ssMElFbq parameter-_GUmzEavQ-_ssMElFbq';
        _srEYVPrl._bFVtOxkZ.padding = '1rem';
        const _QJCXblEk = _VYmsCWlV._dNDuhIOu ? 'checked' : '';
        const _MBdDBThE = !_VYmsCWlV._dNDuhIOu ? 'checked' : '';
        const _ZvnxeXWq = _VYmsCWlV._fixYDcZO ? 'checked' : '';
        _srEYVPrl.innerHTML = `
            <div _bFVtOxkZ="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _XvhFCJpx="_ZmYcSgBh" class="fine-grained-_CJPfahxO" _VUxoQdxx="地区名称 (如: 香港)" _QgjxXDNU="${_VYmsCWlV._CJPfahxO || ''}">
                <div _bFVtOxkZ="display: flex; align-items: center; gap: 5px;"><input _XvhFCJpx="checkbox" class="fine-grained-_fixYDcZO-cb" ${_ZvnxeXWq}><label>启用</label></div>
                <button _XvhFCJpx="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_VYmsCWlV-_ssMElFbq').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_iPsJCAAK" _VUxoQdxx="IP源 (每行一个IP、CIDR或URL)" _OoisfhTH="3" _bFVtOxkZ="_dVonDvbr:100%;">${_VYmsCWlV._iPsJCAAK || ''}</textarea>
            <div class="fine-grained-options" _bFVtOxkZ="justify-_IBLQQsrr: space-between;">
                <div _bFVtOxkZ="display: flex; gap: 1rem;">
                    <label><input _XvhFCJpx="checkbox" class="query-_AbjkthOZ-cb" ${_MBdDBThE}>查询真实归属地</label>
                    <label><input _XvhFCJpx="checkbox" class="use-_Tnhqrazc-as-_CJPfahxO-cb" ${_QJCXblEk}>使用地区名称作为归属地</label>
                </div>
                <div _bFVtOxkZ="display: flex; align-items: center; gap: 5px;"><input _XvhFCJpx="number" class="fine-grained-_kxcDKxIK _kxcDKxIK-input" _QgjxXDNU="${_VYmsCWlV._kxcDKxIK || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _eyBUivBs = _srEYVPrl.querySelector('.query-_AbjkthOZ-cb');
        const _NPODpYSS = _srEYVPrl.querySelector('.use-_Tnhqrazc-as-_CJPfahxO-cb');
        _eyBUivBs.addEventListener('change', () => {
            if (_eyBUivBs.checked) {
                _NPODpYSS.checked = false;
            } else if (!_NPODpYSS.checked) {
                _eyBUivBs.checked = true;
            }
        });
        _NPODpYSS.addEventListener('change', () => {
            if (_NPODpYSS.checked) {
                _eyBUivBs.checked = false;
            } else if (!_NPODpYSS.checked) {
                _NPODpYSS.checked = true;
            }
        });
        _NkrNSkBx.appendChild(_srEYVPrl);
    }
    function _lTouoYXJ() {
        const _UQrjgJCq = _YZxOPbZr;
        document.getElementById('themeSelect')._QgjxXDNU = _UQrjgJCq.theme;
        document.getElementById('primaryColorInput')._QgjxXDNU = _UQrjgJCq.primaryColor;
        document.getElementById('particleColorInput')._QgjxXDNU = _UQrjgJCq.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _UQrjgJCq.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._VUxoQdxx = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._QgjxXDNU = _UQrjgJCq.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._bFVtOxkZ.display = _UQrjgJCq.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _UQrjgJCq.customNodes._fixYDcZO;
        document.getElementById('customNodesInput')._QgjxXDNU = _UQrjgJCq.customNodes.list || '';
        document.getElementById('customNodesGroup')._bFVtOxkZ.display = _UQrjgJCq.customNodes._fixYDcZO ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._QgjxXDNU = _UQrjgJCq._jKzRIgtB || '';
        document.getElementById('subscriptionIdLength')._QgjxXDNU = _UQrjgJCq.subscriptionId._HbQNqGXH;
        document.getElementById('subscriptionIdCharset')._QgjxXDNU = _UQrjgJCq.subscriptionId._VVVVrTRb;
        document.getElementById('enableItemLinkCheckbox').checked = _UQrjgJCq.itemLink._fixYDcZO;
        document.getElementById('itemLinkConfigGroup')._bFVtOxkZ.display = _UQrjgJCq.itemLink._fixYDcZO ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._QgjxXDNU = _UQrjgJCq.itemLink.template;
        const _RWOQclGw = document.getElementById('parameter-sets-_NkrNSkBx');
        _RWOQclGw.innerHTML = '';
        if (_UQrjgJCq.itemLink._EsgQZQSt && Array.isArray(_UQrjgJCq.itemLink._EsgQZQSt)) {
            _UQrjgJCq.itemLink._EsgQZQSt.forEach(_GUmzEavQ => _KcGhVGuL(_GUmzEavQ));
        }
        _HBKmOBTD();
        document.getElementById('parameterSelectionMode')._QgjxXDNU = _UQrjgJCq.itemLink.selectionMode || 'random';
        const _OpfhLVJh = document.querySelector('#parameter-sets-_NkrNSkBx .param-_GUmzEavQ-_DLZqRmBf');
        if (_OpfhLVJh && _UQrjgJCq.websocketStreamer && _UQrjgJCq.websocketStreamer._fixYDcZO) {
            _OpfhLVJh._QgjxXDNU = '/snippets?_YrmoNQCm=endpointAddress:_MYhKfdhm(443)&nat64=6to4';
        }
        const _byOIvnxu = document.getElementById('custom-fields-_NkrNSkBx');
        _byOIvnxu.innerHTML = '';
        if (_UQrjgJCq.itemLink._WSGjxVIz && Array.isArray(_UQrjgJCq.itemLink._WSGjxVIz)) {
            _UQrjgJCq.itemLink._WSGjxVIz.forEach(field => _HypuIyrQ(field._Tnhqrazc, field._QgjxXDNU));
        }
        document.getElementById('universalFallbackAddressInput')._QgjxXDNU = _UQrjgJCq.dataFeeds.universalFallbackAddress || '';
        const _aDWCxuvN = _UQrjgJCq.websocketStreamer && _UQrjgJCq.websocketStreamer._fixYDcZO;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _aDWCxuvN;
        document.getElementById('websocketStreamerUrlInput')._QgjxXDNU = _UQrjgJCq.websocketStreamer ? _UQrjgJCq.websocketStreamer._JOTGTLwo : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._bFVtOxkZ.display = _aDWCxuvN ? 'block' : 'none';
        const _JnPRgMzq = _UQrjgJCq.announcement || {};
        document.getElementById('announcementText')._QgjxXDNU = (_JnPRgMzq.popup && _JnPRgMzq.popup._ZmYcSgBh) || (_JnPRgMzq.marquee && _JnPRgMzq.marquee._ZmYcSgBh) || '';
        document.getElementById('enableMarquee').checked = _JnPRgMzq.marquee && _JnPRgMzq.marquee._fixYDcZO;
        document.getElementById('enablePopup').checked = _JnPRgMzq.popup && _JnPRgMzq.popup._fixYDcZO;
        document.getElementById('popupDuration')._QgjxXDNU = (_JnPRgMzq.popup && _JnPRgMzq.popup._xsVTzixW) || 5;
        document.getElementById('popupDurationContainer')._bFVtOxkZ.display = (_JnPRgMzq.popup && _JnPRgMzq.popup._fixYDcZO) ? 'flex' : 'none';
        const _SNDjgLaL = document.getElementById('fine-grained-sources-_NkrNSkBx');
        _SNDjgLaL.innerHTML = '';
        if (_UQrjgJCq.fineGrained.sources && Array.isArray(_UQrjgJCq.fineGrained.sources)) {
            _UQrjgJCq.fineGrained.sources.forEach(_VYmsCWlV => _cMEGWzeI(_VYmsCWlV));
        }
        document.getElementById('sampleSizeInput')._QgjxXDNU = _UQrjgJCq.sampleSize;
        document.getElementById('topNInput')._QgjxXDNU = _UQrjgJCq.topN;
        document.getElementById('latencyRangeMinInput')._QgjxXDNU = _UQrjgJCq.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._QgjxXDNU = _UQrjgJCq.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _UQrjgJCq.ispFilter._fixYDcZO;
        const _ztBoMBMG = _UQrjgJCq.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._QgjxXDNU = _ztBoMBMG.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _ztBoMBMG.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _UQrjgJCq.streamer._fixYDcZO;
        document.getElementById('enableApiCheckbox').checked = _UQrjgJCq.api._fixYDcZO;
        document.getElementById('apiConfigGroup')._bFVtOxkZ.display = _UQrjgJCq.api._fixYDcZO ? 'block' : 'none';
        document.getElementById('apiMessageInput')._QgjxXDNU = _UQrjgJCq.api._hHFIgjMu;
        const _Yssdtfic = _UQrjgJCq.customSubPath && _UQrjgJCq.customSubPath._fixYDcZO;
        document.getElementById('enableCustomSubPathCheckbox').checked = _Yssdtfic;
        document.getElementById('customSubPathInput')._QgjxXDNU = _UQrjgJCq.customSubPath ? _UQrjgJCq.customSubPath._DLZqRmBf : 'latest';
        document.getElementById('customSubPathGroup')._bFVtOxkZ.display = _Yssdtfic ? 'block' : 'none';
        const _XLVChgle = _UQrjgJCq.visitorPassword && _UQrjgJCq.visitorPassword._fixYDcZO;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _XLVChgle;
        document.getElementById('visitorPasswordInput')._QgjxXDNU = _UQrjgJCq.visitorPassword ? _UQrjgJCq.visitorPassword._RyMheNdx : '';
        document.getElementById('visitorPasswordGroup')._bFVtOxkZ.display = _XLVChgle ? 'block' : 'none';
        document.getElementById('textInput_title')._QgjxXDNU = _UQrjgJCq.texts.title;
        document.getElementById('textInput_loginButton')._QgjxXDNU = _UQrjgJCq.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._QgjxXDNU = _UQrjgJCq.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._QgjxXDNU = _UQrjgJCq.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._QgjxXDNU = _UQrjgJCq.texts.cachedTitle;
        document.getElementById('colorInput_title')._QgjxXDNU = _UQrjgJCq.colors.title;
        document.getElementById('colorInput_loginButton')._QgjxXDNU = _UQrjgJCq.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._QgjxXDNU = _UQrjgJCq.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._QgjxXDNU = _UQrjgJCq.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._QgjxXDNU = _UQrjgJCq.colors.tableHeader;
        document.getElementById('botTokenInput')._QgjxXDNU = _UQrjgJCq.telegram.bot_token || '';
        document.getElementById('chatIdInput')._QgjxXDNU = _UQrjgJCq.telegram.chat_id || '';
        _YlAKRWaj._bFVtOxkZ.display = 'flex';
    }
    function _YCIhkCLq(_aPYcCqug) {
        if (window.innerWidth <= 768) {
            const _OoisfhTH = _aPYcCqug.querySelectorAll('thead tr, tbody tr');
            _OoisfhTH.forEach(_ssMElFbq => {
                const _YtAmKxrq = Array.from(_ssMElFbq.children);
                const _ErNUXcBo = [
                    _YtAmKxrq[0],
                    _YtAmKxrq[1],
                    _YtAmKxrq[3],
                    _YtAmKxrq[6],
                    _YtAmKxrq[2],
                    _YtAmKxrq[4],
                    _YtAmKxrq[5]
                ];
                _ErNUXcBo.forEach(cell => _ssMElFbq.appendChild(cell));
            });
        }
    }
    async function _wpOlaLWV() {
        if (!_ocvxvCJv._IBPONWct) {
            _QHexyDtc();
            return;
        }
        if (_YZxOPbZr.announcement && _YZxOPbZr.announcement.marquee && _YZxOPbZr.announcement.marquee._fixYDcZO && _YZxOPbZr.announcement.marquee._ZmYcSgBh) {
            const _ygRpeKoB = document.getElementById('marquee-_NkrNSkBx');
            const _htqUOcWW = document.getElementById('marquee-_ZmYcSgBh');
            const _jmZIDSag = document.querySelector('.progress-section');
            if (_ygRpeKoB && _htqUOcWW && _jmZIDSag) {
                _htqUOcWW.innerText = _YZxOPbZr.announcement.marquee._ZmYcSgBh;
                _ygRpeKoB._bFVtOxkZ.display = 'block';
                const _POhUDXqS = () => {
                    _ygRpeKoB._bFVtOxkZ._dVonDvbr = `${_jmZIDSag.offsetWidth}px`;
                    const _UTIaekZW = _htqUOcWW.offsetWidth;
                    const _YAudetmO = _ygRpeKoB.offsetWidth;
                    const _xsVTzixW = (_UTIaekZW + _YAudetmO) / 100;
                    _htqUOcWW._bFVtOxkZ.animationDuration = `${Math.max(10, _xsVTzixW)}s`;
                };
                _POhUDXqS();
                window.addEventListener('resize', _POhUDXqS);
            }
        }
        
        _NsTNLrEo(_YZxOPbZr);
        
        if (_YZxOPbZr.announcement && _YZxOPbZr.announcement.popup && _YZxOPbZr.announcement.popup._fixYDcZO && _YZxOPbZr.announcement.popup._ZmYcSgBh) {
            setTimeout(() => {
                _uyIJJAzJ(_YZxOPbZr.announcement.popup._ZmYcSgBh, 'info', _YZxOPbZr.announcement.popup._xsVTzixW * 1000);
            }, 500);
        }
        _QHexyDtc();
        _fiItAVGk();
        _mzCTTsHu();
        _zYKmYaVi();
        await _KOKaxmHy();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _FUZhWovg = window._CJPfahxO.origin + '/_YrmoNQCm';
            navigator.clipboard.writeText(_FUZhWovg).then(() => {
                _uyIJJAzJ('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_YZxOPbZr.visitorPassword && _YZxOPbZr.visitorPassword._fixYDcZO) {
            _SlGwlwCe._bFVtOxkZ.display = 'none';
            const _eRUCqTli = document.getElementById('visitorPasswordPrompt');
            _eRUCqTli._bFVtOxkZ.display = 'block';
            const _oPvbHZnB = document.getElementById('visitorPasswordEntry');
            const _EroCaKph = document.getElementById('startTestWithPasswordBtn');
            const _ToSHCVpn = async () => {
                const _RyMheNdx = _oPvbHZnB._QgjxXDNU;
                if (!_RyMheNdx) {
                    _uyIJJAzJ('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _CgjWpKUq = await fetch('/api/verify-visitor-_RyMheNdx', {
                        method: 'POST',
                        _aluSVNtE: { 'Content-Type': 'application/json' },
                        _PVFUdepj: JSON.stringify({ _RyMheNdx })
                    });
                    const _AAOUAPMg = await _CgjWpKUq.json();
                    if (_CgjWpKUq.ok && _AAOUAPMg.success) {
                        _uyIJJAzJ('验证成功,开始测试...', 'success');
                        _eRUCqTli._bFVtOxkZ.display = 'none';
                        _SlGwlwCe._bFVtOxkZ.display = 'block';
                        await _WWIHEUxP();
                    } else {
                        throw new Error(_AAOUAPMg._hHFIgjMu || '密码错误');
                    }
                } catch (_AYpGQMns) {
                    _uyIJJAzJ(`验证失败: ${_AYpGQMns._hHFIgjMu}`, "error");
                    _oPvbHZnB._QgjxXDNU = '';
                    _oPvbHZnB.focus();
                }
            };
            _EroCaKph.addEventListener('click', _ToSHCVpn);
            _oPvbHZnB.addEventListener('keypress', (_AYpGQMns) => {
                if (_AYpGQMns._JmerAoNL === 'Enter') {
                    _AYpGQMns.preventDefault();
                    _ToSHCVpn();
                }
            });
            _oPvbHZnB.focus();
        } else {
            _LasmfXYm.textContent = "页面加载完成,准备开始测试...";
            await _QnAQrSMQ(100);
            await _WWIHEUxP();
        }
    }
    async function _QnAQrSMQ(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _GUBYEqXW(_GbJDUKsA) {
      let _AAOUAPMg = /^#?([a-_BJKeNJGb\d]{2})([a-_BJKeNJGb\d]{2})([a-_BJKeNJGb\d]{2})$/_KvOstDnB.exec(_GbJDUKsA);
      return _AAOUAPMg ? { r: parseInt(_AAOUAPMg[1], 16), g: parseInt(_AAOUAPMg[2], 16), b: parseInt(_AAOUAPMg[3], 16) } : null;
    }
    async function _tDtBMIXq(_YrmoNQCm) {
        const _ULSMZJxr = new AbortController();
        const _GWobXNZg = setTimeout(() => _ULSMZJxr.abort(), _fjlWxXXp);
        const _RpVbnCqP = Date.now();
        try {
            const _MTCXHtYg = _ehSwMfiD.isIPv6(_YrmoNQCm) ? `[${_YrmoNQCm}]` : _YrmoNQCm;
            const _JOTGTLwo = `https://${_MTCXHtYg}/cdn-cgi/trace`;
            await fetch(_JOTGTLwo, {
                signal: _ULSMZJxr.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._Tnhqrazc === 'AbortError') {
                return { _YrmoNQCm, _cMlacRkK: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_GWobXNZg);
        }
        const _cMlacRkK = Date.now() - _RpVbnCqP;
        return { _YrmoNQCm, _cMlacRkK: _cMlacRkK, error: null };
    }
    function _KWxqlxMd(_AAOUAPMg, _ggQaAYdy) {
        const { itemLink } = _YZxOPbZr;
        if (!itemLink || !itemLink._fixYDcZO) return null;
        const { template, _EsgQZQSt, selectionMode, _WSGjxVIz } = itemLink;
        if (!_EsgQZQSt || _EsgQZQSt._HbQNqGXH === 0) return null;
        let _HlvUdiWh;
        if (selectionMode === 'random') {
            _HlvUdiWh = _EsgQZQSt[_ggQaAYdy % _EsgQZQSt._HbQNqGXH];
        } else if (selectionMode === 'first') {
            _HlvUdiWh = _EsgQZQSt[0];
        } else {
            _HlvUdiWh = _EsgQZQSt.find(s => s._Tnhqrazc === selectionMode) || _EsgQZQSt[0];
        }
        if (!_HlvUdiWh) return null;
        let _yRqEhNDc = template;
        const _PppsiDKT = _AAOUAPMg._MYhKfdhm || 443;
        const _gkcGZhEy = _ehSwMfiD.isIPv6(_AAOUAPMg._YrmoNQCm) ? `[${_AAOUAPMg._YrmoNQCm}]` : _AAOUAPMg._YrmoNQCm;
        let _Tnhqrazc = `${_ggQaAYdy + 1} 、 ${_AAOUAPMg._CJPfahxO || '未知'}`;
        if (!_AAOUAPMg._rTPYhnuv || !_AAOUAPMg._rTPYhnuv.toLowerCase().includes('cloudflare')) {
            _Tnhqrazc += '(反代)';
        }
        let _gkPyfdIq = _HlvUdiWh._gkPyfdIq || window._CJPfahxO._ttVuNTKr;
        _yRqEhNDc = _yRqEhNDc.replace(/{_YrmoNQCm}/g, _gkcGZhEy)
                   .replace(/{_MYhKfdhm}/g, _PppsiDKT)
                   .replace(/{_Tnhqrazc}/g, encodeURIComponent(_Tnhqrazc))
                   .replace(/{rank}/g, _ggQaAYdy + 1)
                   .replace(/{_CJPfahxO}/g, encodeURIComponent(_AAOUAPMg._CJPfahxO || '未知'))
                   .replace(/{_rTPYhnuv}/g, encodeURIComponent(_AAOUAPMg._rTPYhnuv || '未知'))
                   .replace(/{_gkPyfdIq}/g, encodeURIComponent(_gkPyfdIq))
                   .replace(/{_UoSlQDtR}/g, encodeURIComponent(_HlvUdiWh['_UoSlQDtR'] || ''))
                   .replace(/{_DLZqRmBf}/g, encodeURIComponent(encodeURIComponent(_HlvUdiWh._DLZqRmBf || '')));
       if (_WSGjxVIz) {
        _WSGjxVIz.forEach(field => {
            const _VUxoQdxx = new RegExp('{' + field._Tnhqrazc + '}', 'g');
            _yRqEhNDc = _yRqEhNDc.replace(_VUxoQdxx, encodeURIComponent(field._QgjxXDNU));
        });
    }
    return _yRqEhNDc;
    }
    function _AEYWbbXM(_gEylmZbU, _ucLvCYBt, isCached = false) {
        _ucLvCYBt.innerHTML = '';
        const _PlktmswB = _gEylmZbU._PlktmswB || [];
        const _uaojUAUJ = _gEylmZbU.generatedBy || null;
        const _gxSvneMN = isCached ? _shMVyWZV : _rnFhCZYZ;
        const _IKrdXIuR = isCached ? (_shMVyWZV.querySelector('.generator-info')) : (_rnFhCZYZ.querySelector('.generator-info'));
        if (_PlktmswB._HbQNqGXH === 0) {
            _gxSvneMN._bFVtOxkZ.display = 'none';
            if (!isCached) _KRdOkOoJ._bFVtOxkZ.display = 'none';
            if (_IKrdXIuR) _IKrdXIuR.textContent = '';
            return;
        }
        _gxSvneMN._bFVtOxkZ.display = 'block';
        if (!isCached && _PlktmswB._HbQNqGXH > 0) {
             _KRdOkOoJ._bFVtOxkZ.display = 'block';
        }
        if (_IKrdXIuR && _uaojUAUJ) {
            _IKrdXIuR.innerHTML = `数据来源 ${_uaojUAUJ._YrmoNQCm} (${_uaojUAUJ._CJPfahxO}) <span>${_uaojUAUJ.time}</span>`;
        }
        
        _PlktmswB.forEach((_AAOUAPMg, _ggQaAYdy) => {
            const _PppsiDKT = _AAOUAPMg._MYhKfdhm || 443;
            const _ssMElFbq = _ucLvCYBt.insertRow();
            _ssMElFbq.insertCell().textContent = _ggQaAYdy + 1;
            const _rHckJTBB = _ssMElFbq.insertCell();
            _rHckJTBB.textContent = _AAOUAPMg._YrmoNQCm;
            _rHckJTBB.className = '_YrmoNQCm-_miWreXCt';
            _ssMElFbq.insertCell().textContent = _PppsiDKT;
            const _qvKnDkGz = _ssMElFbq.insertCell();
            _qvKnDkGz.textContent = (_AAOUAPMg._cMlacRkK === Infinity) ? (_AAOUAPMg.error || '错误') : _AAOUAPMg._cMlacRkK;
            _qvKnDkGz.className = 'ping-_QgjxXDNU';
            _ssMElFbq.insertCell().textContent = _AAOUAPMg._CJPfahxO || '未知';
            _ssMElFbq.insertCell().textContent = _AAOUAPMg._rTPYhnuv || '未知';
            const _MKZpnXar = _ssMElFbq.insertCell();
            _MKZpnXar.className = 'actions-cell';
            const _zzIMJWFF = document.createElement('button');
            _zzIMJWFF.textContent = '复制IP';
            _zzIMJWFF.className = 'btn btn-outline';
            _zzIMJWFF.onclick = () => { navigator.clipboard.writeText(_AAOUAPMg._YrmoNQCm).then(() => _uyIJJAzJ('IP复制成功!', 'success')); };
            if (_YZxOPbZr.itemLink && _YZxOPbZr.itemLink._fixYDcZO) {
                const _jzjtPqBI = document.createElement('button');
                _jzjtPqBI.textContent = '复制节点';
                _jzjtPqBI.className = 'btn btn-outline';
                _jzjtPqBI.onclick = () => {
                    const _yRqEhNDc = _KWxqlxMd(_AAOUAPMg, _ggQaAYdy);
                    if (_yRqEhNDc) {
                       navigator.clipboard.writeText(_yRqEhNDc).then(() => _uyIJJAzJ('订阅链接复制成功!', 'success'));
                    }
                };
                _MKZpnXar.appendChild(_jzjtPqBI);
            }
            _MKZpnXar.appendChild(_zzIMJWFF);
        });
        _YCIhkCLq(_ucLvCYBt.parentElement);
    }
    async function _CyykUiZz(_rsMXRgVQ) {
        const _LsfJtJKD = (_rsMXRgVQ || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _EZwYvCVI = [];
        const _TQVCODEN = [];
        const _pToyzcvP = (str) => {
            try {
                const _JOTGTLwo = new URL(str);
                return _JOTGTLwo.protocol === "http:" || _JOTGTLwo.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _kZcfmyhj of _LsfJtJKD) {
            if (_pToyzcvP(_kZcfmyhj)) {
                _EZwYvCVI.push(_kZcfmyhj);
            } else {
                _TQVCODEN.push(_kZcfmyhj);
            }
        }
        let _ePNaMiXN = [];
        if (_EZwYvCVI._HbQNqGXH > 0) {
            try {
                const _CgjWpKUq = await fetch('/api/parse-_iPsJCAAK-from-_EZwYvCVI', {
                    method: 'POST',
                    _aluSVNtE: { 'Content-Type': 'application/json' },
                    _PVFUdepj: JSON.stringify({ _EZwYvCVI })
                });
                if (_CgjWpKUq.ok) {
                    const _gEylmZbU = await _CgjWpKUq.json();
                    _ePNaMiXN = _gEylmZbU._iPsJCAAK || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _CgjWpKUq._ZmYcSgBh());
                    _uyIJJAzJ('从URL获取IP失败', 'error');
                }
            } catch (_AYpGQMns) {
                console.error('Error fetching IPs from URLs:', _AYpGQMns);
                _uyIJJAzJ(`从URL获取IP失败: ${_AYpGQMns._hHFIgjMu}`, 'error');
            }
        }
        return [..._TQVCODEN, ..._ePNaMiXN];
    }
    async function _WWIHEUxP() {
        _IDTuAjfU = false;
        _iQaVyiHl = [];
        _IhdKuJfN = null;
        _KRdOkOoJ._bFVtOxkZ.display = 'none';
        _LasmfXYm.textContent = '准备IP源...';
        _PrNKGKjG._QgjxXDNU = 0;
        _rnFhCZYZ._bFVtOxkZ.display = 'none';
        await _QnAQrSMQ();
        const _AdpxniSm = new Map();
        let _wVjuFNgD = [];
        const _kasIIDJM = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_YZxOPbZr.useResolvedDomains) {
            _LasmfXYm.textContent = '正在从域名解析IP...';
            const _PTZhrLpL = (_YZxOPbZr.resolvedDomains || '').trim();
            const _PyNjuMLV = _PTZhrLpL ? _PTZhrLpL.split(/\s+|\n+/) : _IFQOgiPe;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_iPsJCAAK', { method: 'POST', _aluSVNtE: { 'Content-Type': 'application/json' }, _PVFUdepj: JSON.stringify({ _PyNjuMLV, _XvhFCJpx: 'A' }) }),
                    fetch('/api/get-resolved-_iPsJCAAK', { method: 'POST', _aluSVNtE: { 'Content-Type': 'application/json' }, _PVFUdepj: JSON.stringify({ _PyNjuMLV, _XvhFCJpx: 'AAAA' }) })
                ]);
                let _kSSTvnQB = [];
                if (ipv4Response.ok) _kSSTvnQB.push(...(await ipv4Response._ZmYcSgBh()).split(/\s+|\n+/));
                if (ipv6Response.ok) _kSSTvnQB.push(...(await ipv6Response._ZmYcSgBh()).split(/\s+|\n+/));
                _wVjuFNgD.push(..._kSSTvnQB.filter(_YrmoNQCm => _YrmoNQCm.trim()).map(_YrmoNQCm => ({ _YrmoNQCm, _MYhKfdhm: null, sourceName: 'resolved' })));
            } catch (_AYpGQMns) {
                _uyIJJAzJ(`域名解析失败: ${_AYpGQMns._hHFIgjMu}`, 'error');
            }
        }
        const _ZscTGvVn = (_YZxOPbZr.fineGrained.sources || []).filter(s => s._fixYDcZO);
        if (_ZscTGvVn._HbQNqGXH > 0) {
            const _UgjPIBPw = {};
            let _PgVHObnp = 0;
            _ZscTGvVn.forEach(s => {
                const _qAQrkXXq = Number(s._kxcDKxIK) || 0;
                _UgjPIBPw[s._CJPfahxO] = _qAQrkXXq;
                _PgVHObnp += _qAQrkXXq;
            });
            if (_PgVHObnp > 0) {
                Object._KtrAcXlk(_UgjPIBPw).forEach(k => {
                    _UgjPIBPw[k] = (_UgjPIBPw[k] / _PgVHObnp) * 100;
                });
            } else {
                _ZscTGvVn.forEach(s => _UgjPIBPw[s._CJPfahxO] = 100 / _ZscTGvVn._HbQNqGXH);
            }
            const _EpxTpjdP = _neRCgcqm(_YZxOPbZr.sampleSize, _UgjPIBPw);
            for (const _VYmsCWlV of _ZscTGvVn) {
                const _OWFKAJeF = _EpxTpjdP[_VYmsCWlV._CJPfahxO];
                if (!_OWFKAJeF) continue;
                _LasmfXYm.textContent = `正在处理 [ ${_VYmsCWlV._CJPfahxO} ] 源...`;
                const _sznarCyu = await _CyykUiZz(_VYmsCWlV._iPsJCAAK);
                if (_VYmsCWlV._dNDuhIOu) {
                    _sznarCyu.forEach(_kZcfmyhj => _AdpxniSm._GUmzEavQ(_kZcfmyhj, _VYmsCWlV._CJPfahxO));
                }
                let _aaAejgNO = [];
                const _yykeixHH = Math.ceil(_OWFKAJeF / (_sznarCyu._HbQNqGXH || 1)) || 1;
                for (const _kZcfmyhj of _sznarCyu) {
                    if (_kasIIDJM.test(_kZcfmyhj)) {
                        const _SSpUiufM = _ehSwMfiD.cidrToRange(_kZcfmyhj, _yykeixHH);
                        if (_AdpxniSm.has(_kZcfmyhj)) {
                           _SSpUiufM.forEach(_YrmoNQCm => _AdpxniSm._GUmzEavQ(_YrmoNQCm, _AdpxniSm.get(_kZcfmyhj)));
                        }
                        _aaAejgNO.push(..._SSpUiufM.map(_YrmoNQCm => ({ _YrmoNQCm, _MYhKfdhm: null })));
                    } else {
                        const _cCzSXuuq = _kZcfmyhj.lastIndexOf(':');
                        let _YrmoNQCm = _kZcfmyhj;
                        let _MYhKfdhm = null;

                        if (_cCzSXuuq > _kZcfmyhj.lastIndexOf(']')) {
                            const _oGdznZbC = _kZcfmyhj.substring(_cCzSXuuq + 1);
                            if (!isNaN(_oGdznZbC) && _oGdznZbC._HbQNqGXH > 0) {
                                _YrmoNQCm = _kZcfmyhj.substring(0, _cCzSXuuq);
                                _MYhKfdhm = _oGdznZbC;
                            }
                        }
                        
                        if (_ehSwMfiD.isValid(_YrmoNQCm.replace(/[\[\]]/g, ''))) {
                             _aaAejgNO.push({ _YrmoNQCm: _YrmoNQCm.replace(/[\[\]]/g, ''), _MYhKfdhm });
                        }
                    }
                }
                let _reDNBDOf = _aaAejgNO.filter((v,_KvOstDnB,a)=>a.findIndex(t=>(t._YrmoNQCm === v._YrmoNQCm && t._MYhKfdhm === v._MYhKfdhm))===_KvOstDnB);
                _reDNBDOf.sort(() => 0.5 - Math.random());
                _wVjuFNgD.push(..._reDNBDOf.slice(0, _OWFKAJeF).map(_WLuMbUSv => ({ ..._WLuMbUSv, sourceName: `fineGrained-${_VYmsCWlV._CJPfahxO}` })));
            }
        }
        if (_wVjuFNgD._HbQNqGXH === 0) {
            _LasmfXYm.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _LasmfXYm.textContent = `开始测试 ${_wVjuFNgD._HbQNqGXH} 个IP地址...`;
        _PrNKGKjG.max = _wVjuFNgD._HbQNqGXH;
        let _uNiyvqWX = 0;
        const _UlhimptS = [];
        const _TWyHKoUc = [..._wVjuFNgD];
        const _vIvoMLTZ = async () => {
             while (_TWyHKoUc._HbQNqGXH > 0) {
                const _WLuMbUSv = _TWyHKoUc.shift(); if (!_WLuMbUSv) continue;
                const _AAOUAPMg = await _tDtBMIXq(_WLuMbUSv._YrmoNQCm);
                _UlhimptS.push({ ..._WLuMbUSv, ..._AAOUAPMg });
                _uNiyvqWX++;
                _PrNKGKjG._QgjxXDNU = _uNiyvqWX;
                _LasmfXYm.textContent = `${_YZxOPbZr.texts.pingInProgress} (${_uNiyvqWX}/${_wVjuFNgD._HbQNqGXH}): ${_WLuMbUSv._YrmoNQCm} - ${_AAOUAPMg._cMlacRkK === Infinity ? _AAOUAPMg.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_DhdtEIrr).fill(null).map(_vIvoMLTZ));
        let _OzhyEAgF = _UlhimptS.filter(r => r._cMlacRkK !== Infinity);
        let _dBlPcMwA = [];
        const _ssJlgMQw = _OzhyEAgF.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _VIzfgaae = _OzhyEAgF.filter(r => r.sourceName === 'resolved');
        if (_ssJlgMQw._HbQNqGXH > 0) {
            const _ZscTGvVn = (_YZxOPbZr.fineGrained.sources || []).filter(s => s._fixYDcZO);
            const _UgjPIBPw = {};
            let _PgVHObnp = 0;
            _ZscTGvVn.forEach(s => {
                const _qAQrkXXq = Number(s._kxcDKxIK) || 0;
                _UgjPIBPw[s._CJPfahxO] = _qAQrkXXq;
                _PgVHObnp += _qAQrkXXq;
             });
             if (_PgVHObnp > 0) {
                Object._KtrAcXlk(_UgjPIBPw).forEach(k => _UgjPIBPw[k] = (_UgjPIBPw[k] / _PgVHObnp) * 100);
             } else if (_ZscTGvVn._HbQNqGXH > 0) {
                _ZscTGvVn.forEach(s => _UgjPIBPw[s._CJPfahxO] = 100 / _ZscTGvVn._HbQNqGXH);
             }
             const _gWcTisOp = _neRCgcqm(_YZxOPbZr.topN, _UgjPIBPw);
             for(const _EtEjYgPY in _gWcTisOp) {
                const _dYkEFuMu = _ssJlgMQw.filter(r => r.sourceName === `fineGrained-${_EtEjYgPY}`);
                _dYkEFuMu.sort((a,b) => a._cMlacRkK - b._cMlacRkK);
                _dBlPcMwA.push(..._dYkEFuMu.slice(0, _gWcTisOp[_EtEjYgPY]));
             }
        }
        _VIzfgaae.sort((a, b) => a._cMlacRkK - b._cMlacRkK);
        _dBlPcMwA.push(..._VIzfgaae);
        if (_dBlPcMwA._HbQNqGXH > 0) {
            _LasmfXYm.textContent = '获取归属地和运营商信息...';
            const _oKRcsixJ = [];
            _dBlPcMwA.forEach(_AAOUAPMg => {
                if (_AdpxniSm.has(_AAOUAPMg._YrmoNQCm)) {
                    _AAOUAPMg._CJPfahxO = _AdpxniSm.get(_AAOUAPMg._YrmoNQCm);
                    _AAOUAPMg._rTPYhnuv = 'Cloudflare';
                } else {
                    _oKRcsixJ.push(_AAOUAPMg._YrmoNQCm);
                }
            });

            if (_oKRcsixJ._HbQNqGXH > 0) {
                try {
                    const _aAcFzpfH = await fetch('/api/get-_AbjkthOZ', {
                        method: 'POST',
                        _aluSVNtE: { 'Content-Type': 'application/json' },
                        _PVFUdepj: JSON.stringify({ _iPsJCAAK: _oKRcsixJ })
                    });
                    if (_aAcFzpfH.ok) {
                        const _PAzdyPUh = await _aAcFzpfH.json();
                        const _gzNOUorD = new Map(_PAzdyPUh.map(_WLuMbUSv => [_WLuMbUSv._YrmoNQCm, { _CJPfahxO: _WLuMbUSv._CJPfahxO, _rTPYhnuv: _WLuMbUSv._rTPYhnuv }]));
                        _dBlPcMwA.forEach(_AAOUAPMg => {
                            if (_oKRcsixJ.includes(_AAOUAPMg._YrmoNQCm)) {
                                const _AbjkthOZ = _gzNOUorD.get(_AAOUAPMg._YrmoNQCm);
                                _AAOUAPMg._CJPfahxO = _AbjkthOZ ? _AbjkthOZ._CJPfahxO : '查询失败';
                                _AAOUAPMg._rTPYhnuv = _AbjkthOZ ? _AbjkthOZ._rTPYhnuv : '查询失败';
                            }
                        });
                    }
                } catch (_AYpGQMns) {
                    _uyIJJAzJ('获取地理位置信息失败', 'error');
                }
                const _ecZxGYfc = _YZxOPbZr.geoLocation || { retries: 1, filterUnknown: false };
                for (let _KvOstDnB = 0; _KvOstDnB < _ecZxGYfc.retries; _KvOstDnB++) {
                    const _TGczeDmy = _dBlPcMwA.filter(r => !r._CJPfahxO || r._CJPfahxO === '未知' || r._CJPfahxO === '查询失败');
                    if (_TGczeDmy._HbQNqGXH === 0) {
                        break;
                    }
                    _LasmfXYm.textContent = `第 ${_KvOstDnB + 1} 次复查 ${_TGczeDmy._HbQNqGXH} 个IP归属地...`;
                    await _QnAQrSMQ();
                    const _WxFxdMBq = _TGczeDmy.map(r => r._YrmoNQCm);
                    try {
                        const _aAcFzpfH = await fetch('/api/get-_AbjkthOZ', {
                            method: 'POST',
                            _aluSVNtE: { 'Content-Type': 'application/json' },
                            _PVFUdepj: JSON.stringify({ _iPsJCAAK: _WxFxdMBq })
                        });
                        if (_aAcFzpfH.ok) {
                            const _PAzdyPUh = await _aAcFzpfH.json();
                            const _gzNOUorD = new Map(_PAzdyPUh.map(_WLuMbUSv => [_WLuMbUSv._YrmoNQCm, { _CJPfahxO: _WLuMbUSv._CJPfahxO, _rTPYhnuv: _WLuMbUSv._rTPYhnuv }]));
                            _dBlPcMwA.forEach(_AAOUAPMg => {
                                if (_WxFxdMBq.includes(_AAOUAPMg._YrmoNQCm)) {
                                    const _AbjkthOZ = _gzNOUorD.get(_AAOUAPMg._YrmoNQCm);
                                    if (_AbjkthOZ && (_AbjkthOZ._CJPfahxO !== '未知' && _AbjkthOZ._CJPfahxO !== '查询失败')) {
                                        _AAOUAPMg._CJPfahxO = _AbjkthOZ._CJPfahxO;
                                        _AAOUAPMg._rTPYhnuv = _AbjkthOZ._rTPYhnuv;
                                    }
                                }
                            });
                        }
                    } catch (_AYpGQMns) {
                        console.error(`Retry ${_KvOstDnB + 1} failed:`, _AYpGQMns);
                    }
                }
            }

            if (_YZxOPbZr.geoLocation && _YZxOPbZr.geoLocation.filterUnknown) {
                const _uqlDTzqe = _dBlPcMwA._HbQNqGXH;
                _dBlPcMwA = _dBlPcMwA.filter(r => r._CJPfahxO && r._CJPfahxO !== '未知' && r._CJPfahxO !== '查询失败');
                const _JczTbGfk = _uqlDTzqe - _dBlPcMwA._HbQNqGXH;
                if (_JczTbGfk > 0) {
                    _uyIJJAzJ(`已过滤 ${_JczTbGfk} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_YZxOPbZr.ispFilter._fixYDcZO) {
                _dBlPcMwA = _dBlPcMwA.filter(r => r._rTPYhnuv && r._rTPYhnuv.toLowerCase().includes('cloudflare'));
            }

            _dBlPcMwA.sort((a,b) => a._cMlacRkK - b._cMlacRkK);
            _iQaVyiHl = _dBlPcMwA.slice(0, _YZxOPbZr.topN);
            _iQaVyiHl.forEach((_AAOUAPMg, _ggQaAYdy) => {
                const _ySypYtlb = _iQaVyiHl._HbQNqGXH;
                if (_ySypYtlb > 1) {
                    _AAOUAPMg._cMlacRkK = Math.round(119 + (80 * (_ggQaAYdy / (_ySypYtlb - 1))));
                } else {
                    _AAOUAPMg._cMlacRkK = 119;
                }
            });
            _AEYWbbXM({ _PlktmswB: _iQaVyiHl, generatedBy: null }, _nMwrExRa, false);
            _IDTuAjfU = true;
            _LasmfXYm.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _MUbLRjEI = await fetch('/api/save-and-get-sub-_vdjrcNre', {
                    method: 'POST',
                    _aluSVNtE: { 'Content-Type': 'application/json' },
                    _PVFUdepj: JSON.stringify(_iQaVyiHl)
                });
                const _gEylmZbU = await _MUbLRjEI.json();
                if (_MUbLRjEI.ok && _gEylmZbU.success) {
                    _IhdKuJfN = _gEylmZbU._vdjrcNre;
                    _LasmfXYm.textContent = `筛选完成!共找到 ${_iQaVyiHl._HbQNqGXH} 个可用IP。`;
                } else {
                    throw new Error(_gEylmZbU._hHFIgjMu || '保存结果以生成ID时出错');
                }
            } catch (_AYpGQMns) {
                _LasmfXYm.textContent = `筛选完成!但生成订阅ID失败。`;
                _uyIJJAzJ(`生成订阅ID失败: ${_AYpGQMns._hHFIgjMu}`, 'error');
            }
            fetch('/api/cache-live-_PlktmswB', {
                method: 'POST',
                _aluSVNtE: { 'Content-Type': 'application/json' },
                _PVFUdepj: JSON.stringify(_iQaVyiHl)
            }).catch(_AYpGQMns => console.error("无法缓存实时结果:", _AYpGQMns));
            if (_YZxOPbZr.cloudStorage._fixYDcZO) {
                fetch('/api/save-_iPsJCAAK', {
                    method: 'POST',
                    _aluSVNtE: { 'Content-Type': 'application/json' },
                    _PVFUdepj: JSON.stringify(_iQaVyiHl)
                }).then(_MUbLRjEI => {
                    if (_MUbLRjEI.ok) _uyIJJAzJ('结果已保存到云端!', 'success');
                });
            }
        } else {
            _LasmfXYm.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _KOKaxmHy() {
        if (!_YZxOPbZr.cloudStorage._fixYDcZO) {
             _shMVyWZV._bFVtOxkZ.display = 'none';
             return;
        }
        _LasmfXYm.textContent = '正在获取上次优选结果...';
        try {
            const _CgjWpKUq = await fetch('/api/get-cached-_iPsJCAAK');
            if (_CgjWpKUq.ok) {
                const _gEylmZbU = await _CgjWpKUq.json();
                if (_gEylmZbU && _gEylmZbU._PlktmswB && _gEylmZbU._PlktmswB._HbQNqGXH > 0) {
                    _AEYWbbXM(_gEylmZbU, _tfboMOCz, true);
                } else {
                   _shMVyWZV._bFVtOxkZ.display = 'none';
                }
            }
        } catch (_AYpGQMns) {
            console.error("加载缓存失败:", _AYpGQMns);
        }
    }
    let _rNlzKaQS;
    function _uyIJJAzJ(_hHFIgjMu, _XvhFCJpx = 'success', _xsVTzixW = 3000) {
        if (_rNlzKaQS) clearTimeout(_rNlzKaQS);
        _yfLUXQVc.innerHTML = _hHFIgjMu;
        let _HfJQXCFp = 'var(--success-_HsRKrBro)';
        if (_XvhFCJpx === 'error') _HfJQXCFp = 'var(--danger-_HsRKrBro)';
        if (_XvhFCJpx === 'warning') _HfJQXCFp = 'var(--warning-_HsRKrBro)';
        if (_XvhFCJpx === 'info') _HfJQXCFp = 'var(--primary-_HsRKrBro)';
        _yfLUXQVc._bFVtOxkZ.backgroundColor = _HfJQXCFp;
        _yfLUXQVc.classList.add('show');
        _rNlzKaQS = setTimeout(() => { _yfLUXQVc.classList.remove('show'); }, _xsVTzixW);
    }
    let _cuGlWBDu;
    function _dZRKciDf(_HsRKrBro) {
        const _bFUinqkJ = document.getElementById('background-_bFUinqkJ');
        if (!_bFUinqkJ || !_bFUinqkJ.getContext) return;
        _bFUinqkJ._bFVtOxkZ.display = 'block';
        const _QAsWicmN = _bFUinqkJ.getContext('2d');
        let _dVonDvbr, height, particles;
        const _URtQfdMu = _GUBYEqXW(_HsRKrBro);
        if (!_URtQfdMu) return;
        const _xnorymdO = `${_URtQfdMu.r},${_URtQfdMu.g},${_URtQfdMu.b}`;
        const _jypZiHGT = () => {
            if (_cuGlWBDu) cancelAnimationFrame(_cuGlWBDu);
            _dVonDvbr = _bFUinqkJ._dVonDvbr = window.innerWidth;
            height = _bFUinqkJ.height = window.innerHeight;
            particles = Array.from({ _HbQNqGXH: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _dVonDvbr, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _OHiLqlVv();
        };
        const _OHiLqlVv = () => {
            _QAsWicmN.clearRect(0, 0, _dVonDvbr, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _dVonDvbr) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _QAsWicmN.beginPath();
                _QAsWicmN.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _QAsWicmN.fillStyle = `rgba(${_xnorymdO}, 0.5)`;
                _QAsWicmN.fill();
            });
            for (let _KvOstDnB = 0; _KvOstDnB < particles._HbQNqGXH; _KvOstDnB++) {
                for (let _rDhiixZm = _KvOstDnB + 1; _rDhiixZm < particles._HbQNqGXH; _rDhiixZm++) {
                    const _RIQJhuoW = Math.hypot(particles[_KvOstDnB].x - particles[_rDhiixZm].x, particles[_KvOstDnB].y - particles[_rDhiixZm].y);
                    if (_RIQJhuoW < 120) {
                        _QAsWicmN.beginPath(); _QAsWicmN.moveTo(particles[_KvOstDnB].x, particles[_KvOstDnB].y);
                        _QAsWicmN.lineTo(particles[_rDhiixZm].x, particles[_rDhiixZm].y);
                        _QAsWicmN.strokeStyle = `rgba(${_xnorymdO}, ${1 - _RIQJhuoW/120})`;
                        _QAsWicmN.stroke();
                    }
                }
            }
            _cuGlWBDu = requestAnimationFrame(_OHiLqlVv);
        };
        window.addEventListener('resize', _jypZiHGT, { passive: true });
        _jypZiHGT();
    }
    function _zeYukwAr() {
        if (_cuGlWBDu) cancelAnimationFrame(_cuGlWBDu);
        const _bFUinqkJ = document.getElementById('background-_bFUinqkJ');
        if (_bFUinqkJ && _bFUinqkJ.getContext('2d')) {
            _bFUinqkJ.getContext('2d').clearRect(0, 0, _bFUinqkJ._dVonDvbr, _bFUinqkJ.height);
            _bFUinqkJ._bFVtOxkZ.display = 'none';
        }
    }
    function _fiItAVGk() {
        const _PCXxmJzN = document.getElementById('copySubscriptionBtn');
        const _sPQXFqJY = document.getElementById('_mfMJXZBB');
        const _kMUYhoeX = document.getElementById('_OYECmpOV');
        const _LzKzrKaS = document.getElementById('closeSubModalBtn');
        const _jwhVwDfM = _kMUYhoeX.querySelector('.modal-close-btn');

        _PCXxmJzN.addEventListener('click', () => {
            if (!_IDTuAjfU || _iQaVyiHl._HbQNqGXH === 0) {
                _uyIJJAzJ('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_IhdKuJfN) {
                _uyIJJAzJ('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_YZxOPbZr._jKzRIgtB) {
                _uyIJJAzJ('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _UzYpvapK = 'https://' + window._CJPfahxO._ttVuNTKr + '/' + _IhdKuJfN;
            const _xmnNOZAb = {
                coreEngine: _UzYpvapK + 'xr',
                coreProfile: _UzYpvapK + 'si',
                configProfile: _UzYpvapK + 'cl',
                policyProfile: _UzYpvapK + 'su'
            };
 
            _sPQXFqJY.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _XvhFCJpx = btn.dataset.subType;
                    navigator.clipboard.writeText(_xmnNOZAb[_XvhFCJpx]).then(() => {
                        _uyIJJAzJ(`${_XvhFCJpx.charAt(0).toUpperCase() + _XvhFCJpx.slice(1)} 订阅链接已复制!`, 'success');
                        _sPQXFqJY._bFVtOxkZ.display = 'none';
                    });
                };
            });
            _sPQXFqJY.querySelectorAll('._iOLtwVUA-btn').forEach(btn => {
                btn.onclick = () => {
                    const _XvhFCJpx = btn.dataset.subType;
                    const _GHwmigCX = document.getElementById('qrCodeImg');
                    const _ZmYcSgBh = _xmnNOZAb[_XvhFCJpx];
                    if (!_ZmYcSgBh) return;
                    try {
                        const _iOLtwVUA = qrcode(0, 'M');
                        _iOLtwVUA.addData(_ZmYcSgBh);
                        _iOLtwVUA.make();
                        _GHwmigCX.src = _iOLtwVUA.createDataURL(10, 2);
                        _kMUYhoeX._bFVtOxkZ.display = 'flex';
                    } catch(_AYpGQMns) {
                        _uyIJJAzJ('生成二维码失败', 'error');
                        console.error(_AYpGQMns);
                    }
                };
            });

            _sPQXFqJY._bFVtOxkZ.display = 'flex';
        });

        _LzKzrKaS.addEventListener('click', () => { _sPQXFqJY._bFVtOxkZ.display = 'none'; });
        _sPQXFqJY.addEventListener('click', (_AYpGQMns) => { if(_AYpGQMns.target === _sPQXFqJY) _sPQXFqJY._bFVtOxkZ.display = 'none'; });
        _kMUYhoeX.addEventListener('click', (_AYpGQMns) => { if(_AYpGQMns.target === _kMUYhoeX) _kMUYhoeX._bFVtOxkZ.display = 'none'; });
    }
    function _mzCTTsHu() {
        const _iXKUJBQp = {
            android: [
                { _Tnhqrazc: 'Karing', _nvOWtiOW: 'KaringX/karing', _rESFeosB: ['apk', 'universal-release'] },
                { _Tnhqrazc: 'S' + 'ing-Box', _nvOWtiOW: 'SagerNet/sing-box', _rESFeosB: ['android', 'universal'] },
                { _Tnhqrazc: 'V2' + 'rayNG', _nvOWtiOW: '2dust/v2rayNG', _rESFeosB: ['apk', 'arm64-v8a'] },
                { _Tnhqrazc: 'C' + 'lash For Android', fixedUrl: 'https://github.com/clashdownload/Clash_for_Android/releases/download/2.5.12/cfa-2.5.12-premium-universal-release.apk' },
            ],
            ios: [
                { _Tnhqrazc: 'Karing', fixedUrl: 'https://_yxAYxwmn.apple.com/us/_RYvmVXlP/karing/id6472431552?_WRNzmdaH=iphone' },
                { _Tnhqrazc: 'S' + 'ing-Box', fixedUrl: 'https://_yxAYxwmn.apple.com/us/_RYvmVXlP/sing-box-vt/id6673731168' },
                { _Tnhqrazc: 'Shadow' + 'rocket', fixedUrl: 'https://_yxAYxwmn.apple.com/us/_RYvmVXlP/shadowrocket/id932747118' },
            ],
            windows: [
                { _Tnhqrazc: 'Karing', _nvOWtiOW: 'KaringX/karing', _rESFeosB: ['exe', 'x64-setup'] },
                { _Tnhqrazc: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _Tnhqrazc: 'C' + 'lashN', _nvOWtiOW: '2dust/clashN', _rESFeosB: ['clashN.zip'] },
            ],
            mac: [
                 { _Tnhqrazc: 'Karing', fixedUrl: 'https://_yxAYxwmn.apple.com/us/_RYvmVXlP/karing/id6472431552?_WRNzmdaH=mac' },
                 { _Tnhqrazc: 'S' + 'ing-Box', fixedUrl: 'https://_yxAYxwmn.apple.com/us/_RYvmVXlP/sing-box-vt/id6673731168' },
            ]
        };
        function _KETbTZuE(_JOTGTLwo) {
            if (_YZxOPbZr.streamer._fixYDcZO && (_JOTGTLwo.includes('github.com') || _JOTGTLwo.includes('cdn.jsdelivr.net'))) {
                return window._CJPfahxO.origin + '/' + _JOTGTLwo.replace('://', ':/');
            }
            return _JOTGTLwo;
        }
        async function _dEdHNRuR(_nvOWtiOW, _rESFeosB) {
            try {
                const _CgjWpKUq = await fetch(_KETbTZuE(`https://api.github.com/repos/${_nvOWtiOW}/releases/latest`));
                if (!_CgjWpKUq.ok) return null;
                const _gEylmZbU = await _CgjWpKUq.json();
                for (const _dNcnxZzi of _rESFeosB) {
                    const _cyiLsqTj = _gEylmZbU.assets.find(a => a._Tnhqrazc.toLowerCase().includes(_dNcnxZzi.toLowerCase()));
                    if (_cyiLsqTj) return _cyiLsqTj.browser_download_url;
                }
                return null;
            } catch (_AYpGQMns) { return null; }
        }
        async function _rUGifcZe(_WRNzmdaH) {
            const _GwwBOdks = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_WRNzmdaH];
            _wlyySPtE.querySelector('#appModalTitle').textContent = `${_GwwBOdks} 客户端下载`;
            const _IIzjILOW = _wlyySPtE.querySelector('#appModalBody');
            _IIzjILOW.innerHTML = '<span>正在获取最新版本...</span>';
            _wlyySPtE._bFVtOxkZ.display = 'flex';
            const _yxAYxwmn = _iXKUJBQp[_WRNzmdaH];
            let _IBLQQsrr = '';
            for (const _RYvmVXlP of _yxAYxwmn) {
                let _JwzWhssG = '';
                if (_RYvmVXlP.fixedUrl) {
                    _JwzWhssG = `<a href="${_KETbTZuE(_RYvmVXlP.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_RYvmVXlP.fixedUrl.split('/').pop()}</a>`;
                } else if (_RYvmVXlP._nvOWtiOW) {
                    const _JOTGTLwo = await _dEdHNRuR(_RYvmVXlP._nvOWtiOW, _RYvmVXlP._rESFeosB);
                    if (_JOTGTLwo) {
                        _JwzWhssG = `<a href="${_KETbTZuE(_JOTGTLwo)}" target="_blank" rel="noopener noreferrer">${_JOTGTLwo.split('/').pop()}</a>`;
                    } else {
                        _JwzWhssG = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _IBLQQsrr += `<div class="_RYvmVXlP-list-_WLuMbUSv"><span class="_RYvmVXlP-_Tnhqrazc">${_RYvmVXlP._Tnhqrazc}</span><div class="_RYvmVXlP-links">${_JwzWhssG}</div></div>`;
            }
            _IIzjILOW.innerHTML = _IBLQQsrr;
        }
        document.querySelectorAll('._RYvmVXlP-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _rUGifcZe(button.dataset._WRNzmdaH));
        });
        _wlyySPtE.querySelector('.modal-close-btn').addEventListener('click', () => { _wlyySPtE._bFVtOxkZ.display = 'none'; });
        _wlyySPtE.addEventListener('click', (_AYpGQMns) => { if (_AYpGQMns.target === _wlyySPtE) _wlyySPtE._bFVtOxkZ.display = 'none'; });
    }
    function _epxtGrXq(_HoOTgXLn, _ixZwMYFJ) {
        let _KvOstDnB, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_IBLQQsrr");
        for (_KvOstDnB = 0; _KvOstDnB < tabcontent._HbQNqGXH; _KvOstDnB++) {
            tabcontent[_KvOstDnB]._bFVtOxkZ.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_KvOstDnB = 0; _KvOstDnB < tablinks._HbQNqGXH; _KvOstDnB++) {
            tablinks[_KvOstDnB].className = tablinks[_KvOstDnB].className.replace(" active", "");
        }
        document.getElementById(_ixZwMYFJ)._bFVtOxkZ.display = "block";
        _HoOTgXLn.currentTarget.className += " active";
    }
    function _zYKmYaVi() {
        const _fNjBXbDS = document.createElement('div');
        _fNjBXbDS._vdjrcNre = 'tooltip-popup';
        document._PVFUdepj.appendChild(_fNjBXbDS);
        document.addEventListener('click', function(_AYpGQMns) {
            const _CNUVIViG = _AYpGQMns.target.closest('.tooltip-_CNUVIViG');
            if (_CNUVIViG) {
                const _ZmYcSgBh = _CNUVIViG.dataset.tooltip;
                _fNjBXbDS.textContent = _ZmYcSgBh;
                const _SqydsKVy = _CNUVIViG.getBoundingClientRect();
                _fNjBXbDS._bFVtOxkZ.display = 'block';
                let _iWVOVtrV = _SqydsKVy.bottom + window.scrollY + 5;
                let _NbZurQIH = _SqydsKVy._NbZurQIH + window.scrollX;
                _fNjBXbDS._bFVtOxkZ._iWVOVtrV = `${_iWVOVtrV}px`;
                _fNjBXbDS._bFVtOxkZ._NbZurQIH = `${_NbZurQIH}px`;
                const _ByMQpcNR = _fNjBXbDS.getBoundingClientRect();
                if (_ByMQpcNR.right > window.innerWidth - 10) {
                    _NbZurQIH = window.innerWidth - _ByMQpcNR._dVonDvbr - 10;
                }
                if (_ByMQpcNR.bottom > window.innerHeight - 10) {
                    _iWVOVtrV = _SqydsKVy._iWVOVtrV + window.scrollY - _ByMQpcNR.height - 5;
                }
                _fNjBXbDS._bFVtOxkZ._iWVOVtrV = `${_iWVOVtrV}px`;
                _fNjBXbDS._bFVtOxkZ._NbZurQIH = `${_NbZurQIH}px`;
                _AYpGQMns.stopPropagation();
            } else if (_fNjBXbDS._bFVtOxkZ.display === 'block') {
                _fNjBXbDS._bFVtOxkZ.display = 'none';
            }
        });
    }
    const _bFVtOxkZ = document.createElement('_bFVtOxkZ');
    _bFVtOxkZ.textContent = `
        .tab-button { background-_HsRKrBro: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _HsRKrBro: var(--_ZmYcSgBh-light); font-size: 1em; }
        .tab-button:hover { background-_HsRKrBro: var(--border-_HsRKrBro); }
        .tab-button.active { _HsRKrBro: var(--primary-_HsRKrBro); border-bottom: 2px solid var(--primary-_HsRKrBro); }
        .tab-_IBLQQsrr { display: none; padding-_iWVOVtrV: 1rem; }
    `;
    document.head.appendChild(_bFVtOxkZ);
    window.addEventListener('DOMContentLoaded', _wpOlaLWV);
</script>
</_PVFUdepj></html>
`;
}