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


import { connect } from "cloudflare:sockets";

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

const _JsCjOUds = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _HoUZIuGT = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _CRpYxkjg = '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 _CzkKrtNa = '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 _XzIMmxel(_jVLvsPoc) {
    if (Array.isArray(_jVLvsPoc)) {
        try {
            return String.fromCharCode.apply(null, _jVLvsPoc);
        } catch (_WVvkUBQv) {
            return '';
        }
    }
    return _jVLvsPoc;
}

function _tJCRqGLv(_LSXhjPpk) {
    return /^[0-9a-_icaNgLSf]{8}-[0-9a-_icaNgLSf]{4}-[4][0-9a-_icaNgLSf]{3}-[89ab][0-9a-_icaNgLSf]{3}-[0-9a-_icaNgLSf]{12}$/_zoyRWIdH.test(_LSXhjPpk);
}

const _BFXHAuZx = "optimized_ips_v4";
const _ZBQjukNg = "global_config_v4";
const _SCFShvPD = "admin_password_v4";
const _NCwQYarP = "live_results_temp_v1";
const _LKHUClxB = "latest_sub_id_v1";

export default {
  async fetch(_onweLyTz, _fYvmpcQp, _NgGtaAhd) {
    try {
      if (!_fYvmpcQp.DB) {
          const _DKwXgRhO = _xUGkhueE("D1 数据库 'DB' 未绑定。");
          return new Response(_DKwXgRhO, { status: 503, _jgBuQvlC: { 'Content-Type': '_ANodCKil/html;_CmRWbkul=UTF-8' }});
      }

      _NgGtaAhd.waitUntil(
          _fYvmpcQp.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_ICLvekXw TEXT PRIMARY KEY, _jVLvsPoc TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_LSXhjPpk TEXT PRIMARY KEY, _TcYqzPgL TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_WVvkUBQv => console.error("DB Init Error:", _WVvkUBQv._ORsTYVew))
      );

      const _OjAsMgfW = new URL(_onweLyTz._OjAsMgfW);
      const _eNXPeMNh = _OjAsMgfW.pathname;
      const _OZLIrVVo = _onweLyTz._jgBuQvlC.get("Upgrade");
      const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);
      
      if (_vXpEJhzw.websocketStreamer && _vXpEJhzw.websocketStreamer._WHtvpmzp && _OZLIrVVo && _OZLIrVVo.toLowerCase() === "websocket") {
          const _wVbyTAFx = _vXpEJhzw.websocketStreamer._OjAsMgfW;
          if (_wVbyTAFx && _wVbyTAFx.trim().startsWith('https://')) {
              try {
                  const _bKKSgqNq = new Request(_wVbyTAFx.trim() + _OjAsMgfW.pathname + _OjAsMgfW.search, _onweLyTz);
                  return await fetch(_bKKSgqNq);
              } catch (_WVvkUBQv) {
                  return new Response(`Upstream WebSocket gateway failed: ${_WVvkUBQv._ORsTYVew}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_OZLIrVVo && _OZLIrVVo.toLowerCase() === "websocket") {
          return await _RPfrGgYU(_onweLyTz, _fYvmpcQp, _vXpEJhzw);
      }
      
      const _FNpySnNc = _eNXPeMNh._NqeRhmPb(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_FNpySnNc) {
          const [, _rwiKwUPy, typeSuffix] = _FNpySnNc;
          const _cEWxDwqW = _vXpEJhzw._cEWxDwqW;
          if (!_cEWxDwqW || _cEWxDwqW.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' } });
          }
          const _PGWOpKIv = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _dXrPvINf = _PGWOpKIv[typeSuffix];
          const _dozshEqp = _cEWxDwqW.replace(/\/$/, '');
          const _YIjexCrv = `${_OjAsMgfW.origin}/${_rwiKwUPy}`;
          const _QNfgkeKd = `${_dozshEqp}/${_dXrPvINf}?_vXpEJhzw=${encodeURIComponent(_YIjexCrv)}`;
          try {
              const _wjOwTGuS = await fetch(_QNfgkeKd, { _jgBuQvlC: { 'User-Agent': _onweLyTz._jgBuQvlC.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _MLCXzyYl = new Headers(_wjOwTGuS._jgBuQvlC);
              _MLCXzyYl._JSheqDrW('Access-Control-Allow-Origin', '*');
              return new Response(_wjOwTGuS._uLVPUhBk, { status: _wjOwTGuS.status, statusText: _wjOwTGuS.statusText, _jgBuQvlC: _MLCXzyYl });
          } catch (_WVvkUBQv) {
              return new Response(`获取上游订阅失败: ${_WVvkUBQv._ORsTYVew}`, { status: 502, _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' } });
          }
      }

      if (_eNXPeMNh.startsWith('/https:/') || _eNXPeMNh.startsWith('/http:/')) {
          return _WscjNbLO(_onweLyTz, _vXpEJhzw);
      }
      
      if (_vXpEJhzw.customSubPath && _vXpEJhzw.customSubPath._WHtvpmzp && _vXpEJhzw.customSubPath._eNXPeMNh && _eNXPeMNh === '/' + _vXpEJhzw.customSubPath._eNXPeMNh.trim()) {
          const _bZAfLnUN = _fYvmpcQp.DB.prepare("SELECT _jVLvsPoc FROM kv_data WHERE _ICLvekXw = ?").bind(_LKHUClxB);
          const { _dGyFAfIJ } = await _bZAfLnUN.all();
          const _JCDTFLfs = _dGyFAfIJ._LFlZWewk > 0 ? _dGyFAfIJ[0]._jVLvsPoc : null;
          if (_JCDTFLfs) {
              return _nguNVmxj({ _RqDQgRfv: { _LSXhjPpk: _JCDTFLfs }, _OjAsMgfW: _onweLyTz._OjAsMgfW }, _fYvmpcQp);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' } });
          }
      }
      
      const _auAWSEUj = _eNXPeMNh.split('/').filter(Boolean);
      if (_auAWSEUj._LFlZWewk === 1 && !_eNXPeMNh.startsWith('/api/')) {
          const _rwiKwUPy = _auAWSEUj[0];
          return _nguNVmxj({ _RqDQgRfv: { _LSXhjPpk: _rwiKwUPy }, _OjAsMgfW: _onweLyTz._OjAsMgfW }, _fYvmpcQp);
      }

      if (_eNXPeMNh.startsWith('/api/')) {
          if (_eNXPeMNh === '/api/_vXpEJhzw' && _onweLyTz.method === 'POST') return _RBFErmYN(_onweLyTz, _fYvmpcQp, _NgGtaAhd);
          if (_eNXPeMNh === '/api/_JSheqDrW-_AFCpTXpv') return _ozaVQDoo(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/change-_AFCpTXpv') return _xMaGrgtP(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/verify-_AFCpTXpv') return _sEDafvkL(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/verify-visitor-_AFCpTXpv' && _onweLyTz.method === 'POST') return _leBplPKX(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/cache-live-_dGyFAfIJ' && _onweLyTz.method === 'POST') return _wVJthRMu(_onweLyTz, _fYvmpcQp, _NgGtaAhd);
          if (_eNXPeMNh === '/api/get-_DJewlrxy' && _onweLyTz.method === 'POST') return _IHszmzsB(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/get-cached-_oqpCrGJP') return _XZDJczsO(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/save-_oqpCrGJP') return _ahMSoakq(_onweLyTz, _fYvmpcQp, _NgGtaAhd);
          if (_eNXPeMNh === '/api/save-and-get-sub-_LSXhjPpk' && _onweLyTz.method === 'POST') return _bBfryYBr(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh.startsWith('/api/get-_wWwmNEaJ/')) {
              const _rwiKwUPy = _eNXPeMNh.split('/').pop();
              return _nguNVmxj({ _RqDQgRfv: { _LSXhjPpk: _rwiKwUPy }, _OjAsMgfW: _onweLyTz._OjAsMgfW }, _fYvmpcQp);
          }
          if (_eNXPeMNh === '/api/_vXpEJhzw' && _onweLyTz.method === 'GET') return _rzruLKWO(_fYvmpcQp);
          if (_eNXPeMNh === '/api/get-resolved-_oqpCrGJP') return _lvxWrkhz(_onweLyTz);
          if (_eNXPeMNh === '/api/parse-_oqpCrGJP-from-_OLqPSnWk' && _onweLyTz.method === 'POST') return _MDZPlrIb(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/endpoints') return _NaNlkrEr(_onweLyTz, _fYvmpcQp);
          if (_eNXPeMNh === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_eNXPeMNh === '/_BcVdQLAm') return _fBzxGKEm(_onweLyTz, _fYvmpcQp);
      if (_eNXPeMNh === '/bing-wallpaper') return _oRSXRTwI();

      return _qOJoxHUJ(_onweLyTz, _fYvmpcQp, _NgGtaAhd);
    } catch (err) {
      let _WVvkUBQv = err;
      return new Response(_WVvkUBQv.toString(), { status: 500 });
    }
  }
};

const _TJoKmMXm = { 'Accept': '_ANodCKil/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 _VrKWiaac(_OjAsMgfW, _bjdTkdNr) {
    const _cxZNPbtJ = await fetch(_OjAsMgfW, { _jgBuQvlC: { ..._TJoKmMXm, 'Referer': _bjdTkdNr.referer } });
    if (_cxZNPbtJ.ok) return _cxZNPbtJ._ANodCKil();
    return null;
}

async function _rNBQbBQH(_OjAsMgfW, _bjdTkdNr) {
    const _ggWIHNxg = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_OjAsMgfW)}`;
    const _cxZNPbtJ = await fetch(_ggWIHNxg, { _jgBuQvlC: { ..._TJoKmMXm, 'Referer': _bjdTkdNr.referer } });
    if (!_cxZNPbtJ.ok) return null;
    const _uLVPUhBk = await _cxZNPbtJ._ANodCKil();
    const _NqeRhmPb = _uLVPUhBk._NqeRhmPb(/<pre[^>]*>([\s\S]*?)<\/pre>/_zoyRWIdH);
    return _NqeRhmPb && _NqeRhmPb[1] ? _NqeRhmPb[1].replace(/&amp;/g, '&') : null;
}

function _OEKgjQbn(_VPXKlmdE) {
    let _RujDnxtg;
    try {
        _RujDnxtg = atob(_VPXKlmdE.replace(/\s/g, ''));
    } catch (_WVvkUBQv) {
        _RujDnxtg = _VPXKlmdE;
    }

    const _wWwmNEaJ = _RujDnxtg.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _zkzTAXKs = new Set();
    const _wDzLivbJ = /@([^?#]+?):(\d+)/;

    for (const _uvxxuSbf of _wWwmNEaJ) {
        let _xOcuTxct = '';
        let _wUcuAeOY = '';

        try {
            if (_uvxxuSbf.startsWith('vmess://')) {
                const _ggbYlJXK = atob(_uvxxuSbf.substring(8));
                const _vXpEJhzw = JSON.parse(_ggbYlJXK);
                _xOcuTxct = _vXpEJhzw.add;
                _wUcuAeOY = _vXpEJhzw._wUcuAeOY;
            } else {
                const _NqeRhmPb = _uvxxuSbf._NqeRhmPb(_wDzLivbJ);
                if (_NqeRhmPb && _NqeRhmPb[1] && _NqeRhmPb[2]) {
                    _xOcuTxct = _NqeRhmPb[1].replace(/[\[\]]/g, '');
                    _wUcuAeOY = _NqeRhmPb[2];
                }
            }
        } catch (_WVvkUBQv) {
            console.warn(`Could not parse _uvxxuSbf: ${_uvxxuSbf}`);
        }

        if (_xOcuTxct && _wUcuAeOY) {
            _zkzTAXKs.add(`${_xOcuTxct}:${_wUcuAeOY}`);
        }
    }
    return Array.from(_zkzTAXKs);
}

async function _QehecscF(_JICjbTbE) {
    try {
        const _cxZNPbtJ = await fetch(_JICjbTbE, { _jgBuQvlC: _TJoKmMXm });
        if (!_cxZNPbtJ.ok) {
            console.error(`Failed to fetch subscription: ${_cxZNPbtJ.status}`);
            return [];
        }
        const _VPXKlmdE = await _cxZNPbtJ._ANodCKil();
        return _OEKgjQbn(_VPXKlmdE);
    } catch (error) {
        console.error(`Error processing subscription ${_JICjbTbE}:`, error);
        return [];
    }
}

async function _CUfMGnfs(_RkqyAnzQ) {
    const _SThTSutt = _RkqyAnzQ.trim();
    const _hKxiKFcY = /^(vless|vmess|trojan|ss):\/\//.test(_SThTSutt);
    const _ZIpwmSHY = (() => {
        if (_SThTSutt._LFlZWewk < 20 || _SThTSutt.startsWith('http')) return false;
        const _DCwMaMmQ = _SThTSutt.replace(/\s/g, '');
        if (_DCwMaMmQ._LFlZWewk % 4 !== 0 && !_DCwMaMmQ.includes('=')) return false;
        try {
            atob(_DCwMaMmQ);
            return true;
        } catch (_WVvkUBQv) {
            return false;
        }
    })();

    if (_hKxiKFcY || _ZIpwmSHY) {
        return _OEKgjQbn(_SThTSutt).join('\n');
    }

    const _GWysUWBM = [
        'https://ipdb.api.030101.xyz/?_AbWtAFlz=bestcf&_oPnuCuVc=true',
        'https://ipdb.api.030101.xyz/?_AbWtAFlz=bestproxy&_oPnuCuVc=true'
    ];
    const _sqxJOxyK = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_zoyRWIdH.test(_RkqyAnzQ) || _RkqyAnzQ.includes('?_JYrGqVQM=');

    if (_sqxJOxyK) {
        const _oqpCrGJP = await _QehecscF(_RkqyAnzQ);
        return _oqpCrGJP.join('\n');
    }

    let _VPXKlmdE = '';
    if (_GWysUWBM.includes(_RkqyAnzQ)) {
        _VPXKlmdE = await _VrKWiaac(_RkqyAnzQ, { referer: _RkqyAnzQ });
        if (!_VPXKlmdE || _VPXKlmdE._LFlZWewk < 8) {
            _VPXKlmdE = await _rNBQbBQH(_RkqyAnzQ, { referer: _RkqyAnzQ });
        }
    } else {
        try {
            const _iRyOTVQC = await fetch(_RkqyAnzQ, { _jgBuQvlC: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_iRyOTVQC.ok) {
                _VPXKlmdE = await _iRyOTVQC._ANodCKil();
            } else {
                console.warn(`Failed to fetch URL ${_RkqyAnzQ}: ${_iRyOTVQC.status}`);
            }
        } catch (_WVvkUBQv) {
            console.error(`Error fetching URL ${_RkqyAnzQ}:`, _WVvkUBQv);
        }
    }

    const _qvuoCjhX = _OEKgjQbn(_VPXKlmdE);
    if (_qvuoCjhX._LFlZWewk > 0) {
        return _qvuoCjhX.join('\n');
    }

    return _VPXKlmdE || '';
}

async function _WscjNbLO(_onweLyTz, _vXpEJhzw) {
    if (!_vXpEJhzw.streamer._WHtvpmzp) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _OjAsMgfW = new URL(_onweLyTz._OjAsMgfW);
    const _uoZACicP = _OjAsMgfW.pathname.substring(1).replace(':/', '://');
    try {
        const _QNfgkeKd = new URL(_uoZACicP);
        const _qlszeIao = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_qlszeIao.some(domain => _QNfgkeKd._xOcuTxct.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _cYDxFFvn = new Headers(_onweLyTz._jgBuQvlC);
        _cYDxFFvn._JSheqDrW('Host', _QNfgkeKd._xOcuTxct);
        _cYDxFFvn._JSheqDrW('User-Agent', 'CF-Worker-Streamer/1.0');
        const _KaxYzWDd = await fetch(_QNfgkeKd.toString(), {
            method: _onweLyTz.method,
            _jgBuQvlC: _cYDxFFvn,
            _uLVPUhBk: _onweLyTz._uLVPUhBk,
        });
        const _MLCXzyYl = new Headers(_KaxYzWDd._jgBuQvlC);
        _MLCXzyYl._JSheqDrW('Access-Control-Allow-Origin', '*');
        _MLCXzyYl._JSheqDrW('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _MLCXzyYl._JSheqDrW('Access-Control-Allow-Headers', '*');
        _MLCXzyYl._JSheqDrW('Cache-Control', 'public, max-age=86400');
        _MLCXzyYl._JSheqDrW('X-Streamer-Source', 'CF-Worker');
        _MLCXzyYl.delete('_VPXKlmdE-security-policy');
        _MLCXzyYl.delete('x-_VPXKlmdE-security-policy');
        _MLCXzyYl.delete('x-webkit-csp');
        return new Response(_KaxYzWDd._uLVPUhBk, {
            status: _KaxYzWDd.status,
            statusText: _KaxYzWDd.statusText,
            _jgBuQvlC: _MLCXzyYl,
        });
    } catch (_WVvkUBQv) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _RPfrGgYU(_onweLyTz, _fYvmpcQp, _vXpEJhzw) {
    try {
        const _UCjPnFBp = _vXpEJhzw || await _orBYJfis(_fYvmpcQp);
        const _SvahEFhV = (_UCjPnFBp.itemLink._QxTHRutC && _UCjPnFBp.itemLink._QxTHRutC[0]) || {};
        const _hTRDbNPg = _SvahEFhV['_JYrGqVQM'] || _XzIMmxel(_uRfEDEEq);

        if (!_tJCRqGLv(_hTRDbNPg)) {
            throw new Error("Configured user _rnxnLxJN is not valid.");
        }

        const _wfBjJtrx = _UCjPnFBp.dataFeeds.universalFallbackAddress;
        let _swuirzWt = {};
        
        const _CChHVEBh = _XzIMmxel(_zLxlSiwE[0] || "");

        if (_wfBjJtrx) {
            const [_FmFgLerq, _wUcuAeOY = '443'] = _wfBjJtrx.split(':');
            _swuirzWt = { _FmFgLerq, _wUcuAeOY };
        } else {
            const [_FmFgLerq, _wUcuAeOY = '443'] = _CChHVEBh.split(':');
            _swuirzWt = { _FmFgLerq, _wUcuAeOY };
        }

        const _OjAsMgfW = new URL(_onweLyTz._OjAsMgfW);
        const _eNXPeMNh = _OjAsMgfW.pathname;
        let _kPkBLVIz = '';

        const _JXXLdnqa = _OjAsMgfW.searchParams.get('remote');
        if (_JXXLdnqa) {
           _kPkBLVIz = atob(_JXXLdnqa);
        } else if (_eNXPeMNh.startsWith('/endpoint=')) {
           _kPkBLVIz = _eNXPeMNh.substring(10);
        } else if (_eNXPeMNh._LFlZWewk > 1 && _eNXPeMNh.substring(1).includes('.')) {
           _kPkBLVIz = _eNXPeMNh.substring(1);
        }

        if (_kPkBLVIz) {
            const [_FmFgLerq, _wUcuAeOY = '443'] = _kPkBLVIz.split(':');
            _swuirzWt = { _FmFgLerq, _wUcuAeOY };
        }
        
        return await _BiBKdrDp(_onweLyTz, _hTRDbNPg, _swuirzWt);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _BiBKdrDp(_onweLyTz, _rnxnLxJN, _swuirzWt) {
    const _pgixEsrZ = new WebSocketPair();
    const [clientEnd, _qSyXsGCq] = Object.values(_pgixEsrZ);
    _qSyXsGCq.accept();

    let _lZkTRvZJ = { _xHpZqHmj: null };
    const _XwErODxe = _onweLyTz._jgBuQvlC.get("sec-websocket-protocol") || "";
    const _qnfUXvbi = _stLyKUWD(_qSyXsGCq, _XwErODxe);

    _qnfUXvbi.pipeTo(new WritableStream({
        async write(chunk) {
            if (_lZkTRvZJ._xHpZqHmj) {
                const _VWnKIRoW = _lZkTRvZJ._xHpZqHmj.writable.getWriter();
                await _VWnKIRoW.write(chunk);
                _VWnKIRoW.releaseLock();
                return;
            }

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

            const _decFZFpW = new Uint8Array([details._bfAzOjqA[0], 0]);
            const _IkcaAtxT = chunk.slice(details.payloadIndex);

            await _FxFnNQNM(_lZkTRvZJ, details._BsChaYtm, details._IrafNccM, _IkcaAtxT, _qSyXsGCq, _decFZFpW, _swuirzWt);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _mGiPbHmt(_qSyXsGCq);
    });

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

async function _FxFnNQNM(_lZkTRvZJ, _BsChaYtm, _IrafNccM, _EfeHwlIC, _CgkTdEtW, _decFZFpW, _aJuvcsCr) {
    const _zhrtLPmP = async (_FmFgLerq, _wUcuAeOY) => {
        let _BXrEPNEG = _FmFgLerq;
        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(_FmFgLerq)) {
            _BXrEPNEG = `${atob('d3d3Lg==')}${_FmFgLerq}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _xHpZqHmj = connect({ _xOcuTxct: _BXrEPNEG, _wUcuAeOY });
        _lZkTRvZJ._xHpZqHmj = _xHpZqHmj;
        const _VWnKIRoW = _xHpZqHmj.writable.getWriter();
        await _VWnKIRoW.write(_EfeHwlIC);
        _VWnKIRoW.releaseLock();
        return _xHpZqHmj;
    };

    const _gtgKpHVW = async () => {
        if (!_aJuvcsCr._FmFgLerq) return;
        console.log(`Direct connection failed, falling back to gateway: ${_aJuvcsCr._FmFgLerq}`);
        const _jPHKtCHb = await _zhrtLPmP(_aJuvcsCr._FmFgLerq, parseInt(_aJuvcsCr._wUcuAeOY, 10));
        _jPHKtCHb.closed.catch(() => {}).finally(() => _mGiPbHmt(_CgkTdEtW));
        _VLjBWtaj(_jPHKtCHb, _CgkTdEtW, _decFZFpW, null);
    };

    try {
        const _kXDurESf = await _zhrtLPmP(_BsChaYtm, _IrafNccM);
        _VLjBWtaj(_kXDurESf, _CgkTdEtW, _decFZFpW, _gtgKpHVW);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _gtgKpHVW();
    }
}

function _stLyKUWD(_qSyXsGCq, _XwErODxe) {
    let _wlSFIGye = false;
    return new ReadableStream({
        start(_DGttpBMM) {
            _qSyXsGCq.addEventListener("_ORsTYVew", (event) => { if (_wlSFIGye) return; _DGttpBMM.enqueue(event._TcYqzPgL); });
            _qSyXsGCq.addEventListener("close", () => { _mGiPbHmt(_qSyXsGCq); if (_wlSFIGye) return; _DGttpBMM.close(); });
            _qSyXsGCq.addEventListener("error", (err) => _DGttpBMM.error(err));
            if (_XwErODxe) {
                try {
                    const _hAzUJbXe = atob(_XwErODxe.replace(/-/g, "+").replace(/_/g, "/"));
                    _DGttpBMM.enqueue(Uint8Array.from(_hAzUJbXe, c => c.charCodeAt(0))._cQXgpjZk);
                } catch (_WVvkUBQv) { console.error("Failed to decode early _TcYqzPgL:", _WVvkUBQv); }
            }
        },
        cancel() { _wlSFIGye = true; _mGiPbHmt(_qSyXsGCq); },
    });
}

async function _snRoPVRT(_cQXgpjZk, _rnxnLxJN) {
    if (_cQXgpjZk.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _bfAzOjqA = new Uint8Array(_cQXgpjZk.slice(0, 1));
    const _kCrpWzFc = _indeUyNM(new Uint8Array(_cQXgpjZk.slice(1, 17)));
    if (_kCrpWzFc !== _rnxnLxJN) return { error: true, details: "Invalid _rnxnLxJN" };
    const _tBWoYhvX = new Uint8Array(_cQXgpjZk.slice(17, 18))[0];
    const _sdrkGqkW = new Uint8Array(_cQXgpjZk.slice(18 + _tBWoYhvX, 19 + _tBWoYhvX))[0];
    if (_sdrkGqkW !== 1) return { error: true, details: `Unsupported _sdrkGqkW: ${_sdrkGqkW}` };
    const _uTRofFac = 19 + _tBWoYhvX;
    const _IrafNccM = new DataView(_cQXgpjZk.slice(_uTRofFac, _uTRofFac + 2)).getUint16(0);
    let _SYcpWATI = _uTRofFac + 2;
    const _nDVQzmGG = new Uint8Array(_cQXgpjZk.slice(_SYcpWATI, _SYcpWATI + 1))[0];
    let _ckpeHvZi = 0;
    let _OFsMfTIV = _SYcpWATI + 1;
    let _BsChaYtm = "";
    switch (_nDVQzmGG) {
        case 1: _ckpeHvZi = 4; _BsChaYtm = new Uint8Array(_cQXgpjZk.slice(_OFsMfTIV, _OFsMfTIV + _ckpeHvZi)).join("."); break;
        case 2: _ckpeHvZi = new Uint8Array(_cQXgpjZk.slice(_OFsMfTIV, _OFsMfTIV + 1))[0]; _OFsMfTIV++; _BsChaYtm = new TextDecoder().decode(_cQXgpjZk.slice(_OFsMfTIV, _OFsMfTIV + _ckpeHvZi)); break;
        case 3: _ckpeHvZi = 16; const _MemVOzhQ = new DataView(_cQXgpjZk.slice(_OFsMfTIV, _OFsMfTIV + _ckpeHvZi)); const _ygIMngiC = []; for (let _zoyRWIdH = 0; _zoyRWIdH < 8; _zoyRWIdH++) _ygIMngiC.push(_MemVOzhQ.getUint16(_zoyRWIdH * 2).toString(16)); _BsChaYtm = _ygIMngiC.join(":"); break;
        default: return { error: true, details: `Invalid _TtJwkdcx _AbWtAFlz: ${_nDVQzmGG}` };
    }
    if (!_BsChaYtm) return { error: true, details: "Target _FmFgLerq is empty" };
    return { error: false, details: { _BsChaYtm, _IrafNccM, _bfAzOjqA, payloadIndex: _OFsMfTIV + _ckpeHvZi } };
}

async function _VLjBWtaj(_xHpZqHmj, _CgkTdEtW, _XupMPSxH, _ajCTDAuO) {
    let _HNgxajvg = _XupMPSxH;
    let _cnQjxPXW = false;
    let _ZFhtyrsE = _xHpZqHmj._qnfUXvbi.pipeTo(new WritableStream({
        write(chunk) {
            _cnQjxPXW = true;
            if (_CgkTdEtW.readyState !== 1) throw new Error("Channel is not open");
            if (_HNgxajvg) {
                const _kKWzwzjp = new Uint8Array(_HNgxajvg.byteLength + chunk.byteLength);
                _kKWzwzjp._JSheqDrW(new Uint8Array(_HNgxajvg));
                _kKWzwzjp._JSheqDrW(new Uint8Array(chunk), _HNgxajvg.byteLength);
                _CgkTdEtW.send(_kKWzwzjp._cQXgpjZk);
                _HNgxajvg = null;
            } else {
                _CgkTdEtW.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _CgkTdEtW error:", err._ORsTYVew);
    });

    await _ZFhtyrsE;
    if (!_cnQjxPXW && _ajCTDAuO) {
        _ajCTDAuO();
    }
}

function _mGiPbHmt(_CgkTdEtW) {
    try { if (_CgkTdEtW.readyState === 1 || _CgkTdEtW.readyState === 2) _CgkTdEtW.close(); } catch (_WVvkUBQv) {}
}

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

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

async function _BKjqwaxj(_OjAsMgfW, _ZPHGRPty, _ajCTDAuO) {
    try {
        const _cxZNPbtJ = await fetch(_OjAsMgfW, {
            _jgBuQvlC: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_cxZNPbtJ.ok) {
            console.error(`获取 ${_OjAsMgfW} 失败: HTTP ${_cxZNPbtJ.status}`);
            return _ajCTDAuO;
        }
        const _ANodCKil = await _cxZNPbtJ._ANodCKil();
        return _ZPHGRPty(_ANodCKil);
    } catch (error) {
        console.error(`获取或解析 ${_OjAsMgfW} 时发生网络错误: ${error._ORsTYVew}`);
        return _ajCTDAuO;
    }
}

function _bLFhdbTQ(_ANodCKil) {
    if (!_ANodCKil) return [];
    const _UMYFWmFY = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _IXttThBm = _ANodCKil.split(/[\s,;#|]+/);
    const _xdCNvYJJ = [];
    for (const _KoUUYCzb of _IXttThBm) {
        const _NKQEZOpa = _KoUUYCzb.trim();
        if (!_NKQEZOpa) continue;
        const _UYKlleKG = _NKQEZOpa.lastIndexOf(':');
        let _zSccIhxk = _NKQEZOpa;
        if(_UYKlleKG > _NKQEZOpa.lastIndexOf(']')) {
             const _EIOqjgSN = _NKQEZOpa.substring(_UYKlleKG + 1);
             if(!isNaN(_EIOqjgSN) && _EIOqjgSN._LFlZWewk > 0) {
                _zSccIhxk = _NKQEZOpa.substring(0, _UYKlleKG);
             }
        }
        if (_oCwQCJXx.isValid(_zSccIhxk.replace(/[\[\]]/g, '')) || _UMYFWmFY.test(_NKQEZOpa)) {
            _xdCNvYJJ.push(_NKQEZOpa);
        }
    }
    return _xdCNvYJJ;
}

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

function _TkeGLXTR(_ANodCKil) {
    if (!_ANodCKil) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_ANodCKil}}`);
    } catch (_WVvkUBQv) {
        console.error("解析 _MIURFruO 失败:", _WVvkUBQv);
        return { "N/A": "未知" };
    }
}

const _oCwQCJXx = {
    isValid: (_BcVdQLAm) => _oCwQCJXx.isIPv4(_BcVdQLAm) || _oCwQCJXx.isIPv6(_BcVdQLAm),
    isIPv4: (_BcVdQLAm) => {
        if (typeof _BcVdQLAm !== 'string') return false;
        const _ygIMngiC = _BcVdQLAm.split('.');
        if (_ygIMngiC._LFlZWewk !== 4) return false;
        return _ygIMngiC.every(_EItjThJU => {
            const _uOcozluO = parseInt(_EItjThJU, 10);
            return !isNaN(_uOcozluO) && _uOcozluO >= 0 && _uOcozluO <= 255 && String(_uOcozluO) === _EItjThJU;
        });
    },
    isIPv6: (_BcVdQLAm) => {
        if (typeof _BcVdQLAm !== '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]))$/_zoyRWIdH.test(_BcVdQLAm);
    },
    toLong4: (_BcVdQLAm) => _BcVdQLAm.split('.').reduce((acc, octet, _zoyRWIdH) => acc + (parseInt(octet) << (8*(3-_zoyRWIdH))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_BcVdQLAm) => {
        try {
            const _YhBgKXPF = _BcVdQLAm.split('/')[0];
            const _ygIMngiC = _YhBgKXPF.split('::');
            if (_ygIMngiC._LFlZWewk > 2) return 0n;
            let _lmeBiESy = [];
            if (_ygIMngiC[0]) {
                _lmeBiESy = _ygIMngiC[0].split(':');
            }
            let _IYfWuKQv = [];
            if (_ygIMngiC._LFlZWewk > 1 && _ygIMngiC[1]) {
                _IYfWuKQv = _ygIMngiC[1].split(':');
            }
            if (_lmeBiESy._LFlZWewk + _IYfWuKQv._LFlZWewk > 8) return 0n;
            const _TvaSNpjH = 8 - (_lmeBiESy._LFlZWewk + _IYfWuKQv._LFlZWewk);
            const _axvzhPvZ = [
                ..._lmeBiESy,
                ...Array(_TvaSNpjH).fill('0'),
                ..._IYfWuKQv
            ].map(_EItjThJU => _EItjThJU || '0');
            while(_axvzhPvZ._LFlZWewk < 8) {
                _axvzhPvZ.push('0');
            }
            let _MEfvkzrt = 0n;
            for (const _EItjThJU of _axvzhPvZ) {
                if (_EItjThJU._LFlZWewk > 4) return 0n;
                const _jVLvsPoc = BigInt('0x' + _EItjThJU);
                _MEfvkzrt = (_MEfvkzrt << 16n) | _jVLvsPoc;
            }
            return _MEfvkzrt;
        } catch(_WVvkUBQv) {
            return 0n;
        }
    },
    fromBigInt6: (_MEfvkzrt) => {
        if (typeof _MEfvkzrt !== '_MEfvkzrt' || _MEfvkzrt < 0n) return null;
        const _ygIMngiC = [];
        for (let _zoyRWIdH = 0; _zoyRWIdH < 8; _zoyRWIdH++) {
            _ygIMngiC.unshift((_MEfvkzrt & 0xFFFFn).toString(16));
            _MEfvkzrt >>= 16n;
        }
        let _GJQQqdBM = { start: -1, _vPWuPIzp: 0 };
        let _Jevjrdtg = { start: -1, _vPWuPIzp: 0 };
        for (let _zoyRWIdH = 0; _zoyRWIdH < 8; _zoyRWIdH++) {
            if (_ygIMngiC[_zoyRWIdH] === '0') {
                if (_Jevjrdtg.start === -1) _Jevjrdtg.start = _zoyRWIdH;
                _Jevjrdtg._vPWuPIzp++;
            } else {
                if (_Jevjrdtg._vPWuPIzp > _GJQQqdBM._vPWuPIzp) _GJQQqdBM = { ..._Jevjrdtg };
                _Jevjrdtg = { start: -1, _vPWuPIzp: 0 };
            }
        }
        if (_Jevjrdtg._vPWuPIzp > _GJQQqdBM._vPWuPIzp) _GJQQqdBM = { ..._Jevjrdtg };
        if (_GJQQqdBM._vPWuPIzp > 1) {
            _ygIMngiC.splice(_GJQQqdBM.start, _GJQQqdBM._vPWuPIzp, '');
            if (_GJQQqdBM.start === 0) _ygIMngiC.unshift('');
            if (_GJQQqdBM.start + _GJQQqdBM._vPWuPIzp === 8) _ygIMngiC.push('');
        }
        return _ygIMngiC.join(':');
    },
    cidrToRange: (cidr, _qWFCUbLZ = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _PfkAitbe = parseInt(bitsStr, 10);
            const _oqpCrGJP = new Set();
            if (_oCwQCJXx.isIPv4(range)) {
                if (isNaN(_PfkAitbe) || _PfkAitbe < 8 || _PfkAitbe > 32) return [];
                if (_PfkAitbe === 32) return [range];
                const _mndMceaB = _oCwQCJXx.toLong4(range);
                const _CEehHMev = (0xFFFFFFFF << (32 - _PfkAitbe)) >>> 0;
                const _RAyzmmCF = _mndMceaB & _CEehHMev;
                const _bJwvjacu = 1 << (32 - _PfkAitbe);
                if (_bJwvjacu <= 2) return [];
                const _UaflWlgF = Math.min(_qWFCUbLZ, _bJwvjacu - 2);
                let _MfDnugCg = 0;
                while (_oqpCrGJP.size < _UaflWlgF && _MfDnugCg < _UaflWlgF * 5) {
                    const _jbTkpNub = Math.floor(Math.random() * (_bJwvjacu - 2)) + 1;
                    _oqpCrGJP.add(_oCwQCJXx.fromLong4((_RAyzmmCF + _jbTkpNub) >>> 0));
                    _MfDnugCg++;
                }
                return Array.from(_oqpCrGJP);
            } else if (_oCwQCJXx.isIPv6(range)) {
                if (isNaN(_PfkAitbe) || _PfkAitbe < 16 || _PfkAitbe > 128) return [];
                 if (_PfkAitbe === 128) return [range];
                const _arwHPssk = _oCwQCJXx.toBigInt6(range);
                const _CEehHMev = (2n ** BigInt(128 - _PfkAitbe) - 1n);
                const _RAyzmmCF = _arwHPssk & ~_CEehHMev;
                const _TGmZdJhb = 2n ** BigInt(128 - _PfkAitbe);
                if (_TGmZdJhb <= 2n) return [];
                let _MfDnugCg = 0;
                while (_oqpCrGJP.size < _qWFCUbLZ && _MfDnugCg < _qWFCUbLZ * 5) {
                     const _fBEqmxgr = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_fBEqmxgr);
                     let _AIhIpJSh = 0n;
                     for (const _oYVExInF of _fBEqmxgr) {
                         _AIhIpJSh = (_AIhIpJSh << 8n) | BigInt(_oYVExInF);
                     }
                     const _jbTkpNub = _AIhIpJSh % (_TGmZdJhb - 2n) + 1n;
                     _oqpCrGJP.add(_oCwQCJXx.fromBigInt6(_RAyzmmCF + _jbTkpNub));
                     _MfDnugCg++;
                }
                return Array.from(_oqpCrGJP);
            }
            return [];
        } catch(_WVvkUBQv) {
            console.error(`CIDR to range failed for ${cidr}:`, _WVvkUBQv);
            return [];
        }
    }
};

function _ltxdfUwC(_iwKUyuiR, _RBWAsPWL) {
    const _XMJklDqo = {};
    const _AoWkCiCI = Object._AoWkCiCI(_RBWAsPWL);
    const _ygIMngiC = _AoWkCiCI.map(_ICLvekXw => {
        const _czjAwgxA = _iwKUyuiR * (_RBWAsPWL[_ICLvekXw] / 100);
        return { _ICLvekXw, _qWFCUbLZ: Math.floor(_czjAwgxA), remainder: _czjAwgxA - Math.floor(_czjAwgxA) };
    });
    let _QbJWVwzP = _ygIMngiC.reduce((acc, _EItjThJU) => acc + _EItjThJU._qWFCUbLZ, 0);
    _ygIMngiC.sort((a, b) => b.remainder - a.remainder);
    let _TxHtULgR = _iwKUyuiR - _QbJWVwzP;
    for (let _zoyRWIdH = 0; _zoyRWIdH < _TxHtULgR; _zoyRWIdH++) {
        _ygIMngiC[_zoyRWIdH % _ygIMngiC._LFlZWewk]._qWFCUbLZ++;
    }
    for (const _EItjThJU of _ygIMngiC) {
        _XMJklDqo[_EItjThJU._ICLvekXw] = _EItjThJU._qWFCUbLZ;
    }
    return _XMJklDqo;
}

async function _MLwOvAcx(_fYvmpcQp) {
    const _bZAfLnUN = _fYvmpcQp.DB.prepare("SELECT _jVLvsPoc FROM kv_data WHERE _ICLvekXw = ?").bind(_SCFShvPD);
    const { _dGyFAfIJ } = await _bZAfLnUN.all();
    return _dGyFAfIJ._LFlZWewk > 0 ? _dGyFAfIJ[0]._jVLvsPoc : null;
}

async function _Gqzvcuap(_fYvmpcQp, _AFCpTXpv) {
    const _bZAfLnUN = _fYvmpcQp.DB.prepare(
        "INSERT INTO kv_data (_ICLvekXw, _jVLvsPoc) VALUES (?, ?) ON CONFLICT(_ICLvekXw) DO UPDATE SET _jVLvsPoc = excluded._jVLvsPoc"
    );
    await _bZAfLnUN.bind(_SCFShvPD, _AFCpTXpv).run();
}

async function _sEDafvkL(_onweLyTz, _fYvmpcQp) {
    const { _AFCpTXpv } = await _onweLyTz.json();
    const _HQOwnNaH = await _MLwOvAcx(_fYvmpcQp);
    if (_HQOwnNaH === _AFCpTXpv) {
        return _xemdidgG({ success: true });
    }
    return _xemdidgG({ success: false, _ORsTYVew: '密码错误' }, 401);
}

async function _leBplPKX(_onweLyTz, _fYvmpcQp) {
    const _tGUJUtcb = await _orBYJfis(_fYvmpcQp);
    if (!_tGUJUtcb.visitorPassword || !_tGUJUtcb.visitorPassword._WHtvpmzp) {
        return _xemdidgG({ success: true });
    }
    try {
        const { _AFCpTXpv } = await _onweLyTz.json();
        const _ydvhWGOO = _tGUJUtcb.visitorPassword._AFCpTXpv;
        if (_ydvhWGOO && _AFCpTXpv === _ydvhWGOO) {
            return _xemdidgG({ success: true });
        }
        return _xemdidgG({ success: false, _ORsTYVew: '访客密码错误' }, 401);
    } catch (_WVvkUBQv) {
        return _xemdidgG({ success: false, _ORsTYVew: '无效请求' }, 400);
    }
}

async function _ozaVQDoo(_onweLyTz, _fYvmpcQp) {
    const _LsZpcWrX = await _MLwOvAcx(_fYvmpcQp);
    if (_LsZpcWrX) {
        return _xemdidgG({ success: false, _ORsTYVew: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _AFCpTXpv } = await _onweLyTz.json();
    if (!_AFCpTXpv || _AFCpTXpv._LFlZWewk < 6) {
        return _xemdidgG({ success: false, _ORsTYVew: "密码长度不能少于6位。" }, 400);
    }
    await _Gqzvcuap(_fYvmpcQp, _AFCpTXpv);
    return _xemdidgG({ success: true, _ORsTYVew: "初始密码设置成功!请刷新页面并登录。" });
}

async function _xMaGrgtP(_onweLyTz, _fYvmpcQp) {
    const { _jgGSemXL, _xUrQAUXG } = await _onweLyTz.json();
    const _HQOwnNaH = await _MLwOvAcx(_fYvmpcQp);
    if (_HQOwnNaH !== _jgGSemXL) {
        return _xemdidgG({ success: false, _ORsTYVew: "旧密码错误。" }, 403);
    }
    if (!_xUrQAUXG || _xUrQAUXG._LFlZWewk < 6) {
        return _xemdidgG({ success: false, _ORsTYVew: "新密码长度不能少于6位。" }, 400);
    }
    await _Gqzvcuap(_fYvmpcQp, _xUrQAUXG);
    return _xemdidgG({ success: true, _ORsTYVew: "密码修改成功!" });
}

function _HvCclMHG() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _cEWxDwqW: '',
        api: {
            _WHtvpmzp: true,
            _ORsTYVew: '维护中...',
        },
        ispFilter: { _WHtvpmzp: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _WHtvpmzp: true
        },
        websocketStreamer: {
            _WHtvpmzp: true,
            _OjAsMgfW: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _WHtvpmzp: true
        },
        visitorPassword: {
            _WHtvpmzp: false,
            _AFCpTXpv: '',
        },
        customSubPath: {
            _WHtvpmzp: false,
            _eNXPeMNh: 'latest',
        },
        subscriptionId: {
            _LFlZWewk: 8,
            _CmRWbkul: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _WHtvpmzp: true,
            template: 'vless://{_JYrGqVQM}@{_BcVdQLAm}:{_wUcuAeOY}?encryption=none&security=tls&sni={_FmFgLerq}&fp=random&_AbWtAFlz=ws&_FmFgLerq={_FmFgLerq}&_eNXPeMNh={_eNXPeMNh}#{_TpTBpADN}',
            selectionMode: 'first',
            _QxTHRutC: [
                { _TpTBpADN: '默认配置', _FmFgLerq: '', '_JYrGqVQM': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _eNXPeMNh: '/?ed=2560' }
            ],
            _CPfixZRn: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _WHtvpmzp: false,
                _ANodCKil: '',
                _VFXqSiSW: 5
            },
            marquee: {
                _WHtvpmzp: false,
                _ANodCKil: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _WHtvpmzp: true,
            sources: [
                { _voOLYFdE: 'CF官方IPV4', _oqpCrGJP: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 20 },
                { _voOLYFdE: 'CF官方IPV6', _oqpCrGJP: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 20 },
                { _voOLYFdE: '反代优选0', _oqpCrGJP: 'https://wvs.sosorg.nyc.mn/sub?_JYrGqVQM=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_AbWtAFlz=ws&_FmFgLerq=ss.nzvrn.com&_eNXPeMNh=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 30 },
                { _voOLYFdE: '官方优选1', _oqpCrGJP: 'https://ipdb.api.030101.xyz/?_AbWtAFlz=bestcf&_oPnuCuVc=true', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 10 },
                { _voOLYFdE: '反代优选2', _oqpCrGJP: 'https://ipdb.api.030101.xyz/?_AbWtAFlz=bestproxy&_oPnuCuVc=true', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 5 },
                { _voOLYFdE: '官方优选2', _oqpCrGJP: 'https://addressesapi.090227.xyz/_BcVdQLAm.164746.xyz', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 10 },
				{ _voOLYFdE: '官方优选3', _oqpCrGJP: 'https://cfxr.eu.org/getSub?_FmFgLerq=snipaste.huggy.qzz.io', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 5 },
                { _voOLYFdE: '官方优选4', _oqpCrGJP: 'https://addressesapi.090227.xyz/CloudFlareYes', _nacvVYKC: false, _WHtvpmzp: true, _VVsLKSdl: 10 }
            ]
        },
        customNodes: {
            _WHtvpmzp: 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 _yvihDGXG(_YUWTRFjW, _UOHSVUsW) {
    if (!_YUWTRFjW) return _UOHSVUsW;
    const _ErwSDqdt = { ..._UOHSVUsW };
    for (const _ICLvekXw in _UOHSVUsW) {
        if (_YUWTRFjW.hasOwnProperty(_ICLvekXw)) {
             if (typeof _YUWTRFjW[_ICLvekXw] === 'object' && _YUWTRFjW[_ICLvekXw] !== null && !Array.isArray(_YUWTRFjW[_ICLvekXw]) && typeof _UOHSVUsW[_ICLvekXw] === 'object' && _UOHSVUsW[_ICLvekXw] !== null && !Array.isArray(_UOHSVUsW[_ICLvekXw])) {
                _ErwSDqdt[_ICLvekXw] = _yvihDGXG(_YUWTRFjW[_ICLvekXw], _UOHSVUsW[_ICLvekXw]);
            } else {
                _ErwSDqdt[_ICLvekXw] = _YUWTRFjW[_ICLvekXw];
            }
        }
    }
    return _ErwSDqdt;
}

async function _orBYJfis(_fYvmpcQp) {
    try {
        const _bZAfLnUN = _fYvmpcQp.DB.prepare("SELECT _jVLvsPoc FROM kv_data WHERE _ICLvekXw = ?").bind(_ZBQjukNg);
        const { _dGyFAfIJ } = await _bZAfLnUN.all();
        const _lGhRuYor = _dGyFAfIJ._LFlZWewk > 0 ? _dGyFAfIJ[0]._jVLvsPoc : null;
        const _MypYEkkp = _lGhRuYor ? JSON.parse(_lGhRuYor) : {};
        return _yvihDGXG(_MypYEkkp, _HvCclMHG());
    } catch (_WVvkUBQv) {
        console.error("无法从D1获取或解析全局配置:", _WVvkUBQv);
        return _HvCclMHG();
    }
}

async function _rzruLKWO(_fYvmpcQp) {
    const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);
    return _xemdidgG(_vXpEJhzw);
}

async function _RBFErmYN(_onweLyTz, _fYvmpcQp, _NgGtaAhd) {
    try {
        const { _vXpEJhzw, adminPassword } = await _onweLyTz.json();
        const _HQOwnNaH = await _MLwOvAcx(_fYvmpcQp);
        if (_HQOwnNaH !== adminPassword) {
            return _xemdidgG({ success: false, _ORsTYVew: "管理员密码错误" }, 403);
        }
        const _bZAfLnUN = _fYvmpcQp.DB.prepare(
          "INSERT INTO kv_data (_ICLvekXw, _jVLvsPoc) VALUES (?, ?) ON CONFLICT(_ICLvekXw) DO UPDATE SET _jVLvsPoc = excluded._jVLvsPoc"
        );
        const _JYDRFolQ = _bZAfLnUN.bind(_ZBQjukNg, JSON.stringify(_vXpEJhzw)).run();
        _NgGtaAhd.waitUntil(_JYDRFolQ);
        return _xemdidgG({ success: true, _ORsTYVew: "配置已成功保存!" });
    } catch (_WVvkUBQv) {
        return _xemdidgG({ success: false, _ORsTYVew: `保存失败: ${_WVvkUBQv._ORsTYVew}` }, 500);
    }
}

async function _oRSXRTwI() {
    const _PUejUqyX = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _pxMdeONe = await fetch(_PUejUqyX);
        const _zZXMMIiT = await _pxMdeONe.json();
        const _MtqYmyHc = 'https://www.bing.com' + _zZXMMIiT.images[0]._OjAsMgfW;
        return fetch(_MtqYmyHc);
    } catch (_WVvkUBQv) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _hvoUEMOJ(_BcVdQLAm) {
    try {
        const _cxZNPbtJ = await fetch(`http://_BcVdQLAm-api.com/json/${_BcVdQLAm}?fields=status,_oPnuCuVc,countryCode,_uUBPoNBv&lang=zh-CN`);
        if (_cxZNPbtJ.ok) {
            const _TcYqzPgL = await _cxZNPbtJ.json();
            if (_TcYqzPgL.status === 'success' && (_TcYqzPgL.countryCode || _TcYqzPgL._oPnuCuVc)) {
                let _uUBPoNBv = _TcYqzPgL._uUBPoNBv || '未知';
                if (_uUBPoNBv.toLowerCase().includes('cloudflare')) {
                    _uUBPoNBv = 'CloudFlare';
                }
                return {
                    _voOLYFdE: _MIURFruO[_TcYqzPgL.countryCode] || _TcYqzPgL._oPnuCuVc || _TcYqzPgL.countryCode,
                    _uUBPoNBv: _uUBPoNBv
                };
            }
        }
    } catch (_WVvkUBQv) {}

    try {
        const _cxZNPbtJ = await fetch(`https://api._BcVdQLAm.sb/geoip/${_BcVdQLAm}`);
        if (_cxZNPbtJ.ok) {
            const _TcYqzPgL = await _cxZNPbtJ.json();
            if (_TcYqzPgL.country_code || _TcYqzPgL._oPnuCuVc) {
                let _uUBPoNBv = _TcYqzPgL._uUBPoNBv || '未知';
                if (_uUBPoNBv.toLowerCase().includes('cloudflare')) {
                    _uUBPoNBv = 'CloudFlare';
                }
                return {
                    _voOLYFdE: _MIURFruO[_TcYqzPgL.country_code] || _TcYqzPgL._oPnuCuVc || _TcYqzPgL.country_code,
                    _uUBPoNBv: _uUBPoNBv
                };
            }
        }
    } catch (_WVvkUBQv) {}
    
    return { _voOLYFdE: '未知', _uUBPoNBv: '未知' };
}

async function _IHszmzsB(_onweLyTz, _fYvmpcQp) {
    try {
        const { _oqpCrGJP } = await _onweLyTz.json();
        if (!Array.isArray(_oqpCrGJP)) {
            return _xemdidgG({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _NsRGogpp = _oqpCrGJP.map(_BcVdQLAm => _hvoUEMOJ(_BcVdQLAm).then(_DJewlrxy => ({ _BcVdQLAm, ..._DJewlrxy })));
        const _dGyFAfIJ = await Promise.all(_NsRGogpp);
        return _xemdidgG(_dGyFAfIJ);
    } catch (_WVvkUBQv) {
        return _xemdidgG({ error: `获取地理位置失败: ${_WVvkUBQv._ORsTYVew}` }, 500);
    }
}

async function _XZDJczsO(_onweLyTz, _fYvmpcQp) {
    const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);
    if (!_vXpEJhzw.cloudStorage._WHtvpmzp) {
        return _xemdidgG({ _dGyFAfIJ: [], generatedBy: null });
    }
    try {
        const _bZAfLnUN = _fYvmpcQp.DB.prepare("SELECT _jVLvsPoc FROM kv_data WHERE _ICLvekXw = ?").bind(_BFXHAuZx);
        const { _dGyFAfIJ } = await _bZAfLnUN.all();
        const _GMBUXkLE = _dGyFAfIJ._LFlZWewk > 0 ? _dGyFAfIJ[0]._jVLvsPoc : null;
        const _yzqmHIWA = _GMBUXkLE ? JSON.parse(_GMBUXkLE) : null;
        return _xemdidgG(_yzqmHIWA || { _dGyFAfIJ: [], generatedBy: null });
    } catch (_WVvkUBQv) {
        console.error("从D1读取缓存IP失败:", _WVvkUBQv);
        return _xemdidgG({ _dGyFAfIJ: [], generatedBy: null });
    }
}

async function _ahMSoakq(_onweLyTz, _fYvmpcQp, _NgGtaAhd) {
    const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);
    if (!_vXpEJhzw.cloudStorage._WHtvpmzp) {
        return _xemdidgG({ success: true, _ORsTYVew: "云端存储已禁用,不保存结果。" });
    }
    const _OHGpmMok = _onweLyTz._jgBuQvlC.get('CF-Connecting-IP') || "未知IP";
    const _oPnuCuVc = _onweLyTz.cf?._oPnuCuVc || "未知";
    const _hhZkNcnw = _onweLyTz.cf?._hhZkNcnw || "";
    let _HPZwOeKX = _MIURFruO[_oPnuCuVc] || _oPnuCuVc;
    if (_hhZkNcnw && _hhZkNcnw !== "未知城市" && _hhZkNcnw !== _oPnuCuVc) _HPZwOeKX = `${_HPZwOeKX} ${_MIURFruO[_hhZkNcnw] || _hhZkNcnw}`;
    const _FgwaBdOT = {
        _BcVdQLAm: _GvzIzaqG(_OHGpmMok),
        _voOLYFdE: _HPZwOeKX.trim(),
        time: _hOXZOVha()
    };
    try {
        const _IMjkKUYF = await _onweLyTz.json();
        if (!Array.isArray(_IMjkKUYF)) return _xemdidgG({ error: "无效数据格式" }, 400);
        const _rBtQWsHq = _IMjkKUYF.map(_FFywGbWb => ({
            _BcVdQLAm: String(_FFywGbWb._BcVdQLAm || ''),
            _wUcuAeOY: _FFywGbWb._wUcuAeOY ? parseInt(_FFywGbWb._wUcuAeOY, 10) : undefined,
            _uSFviila: parseInt(_FFywGbWb._uSFviila, 10),
            _voOLYFdE: typeof _FFywGbWb._voOLYFdE === 'string' ? _FFywGbWb._voOLYFdE.substring(0, 50) : 'N/A',
            _uUBPoNBv: typeof _FFywGbWb._uUBPoNBv === 'string' ? _FFywGbWb._uUBPoNBv.substring(0, 100) : 'N/A'
        }));
        const _aTgkkPeq = {
            generatedBy: _FgwaBdOT,
            _dGyFAfIJ: _rBtQWsHq
        };
        const _qMkXjtmf = _fYvmpcQp.DB.prepare(
          "INSERT INTO kv_data (_ICLvekXw, _jVLvsPoc) VALUES (?, ?) ON CONFLICT(_ICLvekXw) DO UPDATE SET _jVLvsPoc = excluded._jVLvsPoc"
        ).bind(_BFXHAuZx, JSON.stringify(_aTgkkPeq)).run();
        if (_vXpEJhzw.telegram.bot_token && _vXpEJhzw.telegram.chat_id) {
            const _xYIoAiQZ = _rBtQWsHq.map(r => `${r._BcVdQLAm} ~ ${r._voOLYFdE}`).join('\n');
            const _fciDiwCG = `优选完成!\n来源: ${_FgwaBdOT._BcVdQLAm} (${_FgwaBdOT._voOLYFdE})\n时间: ${_FgwaBdOT.time}\n\n结果:\n${_xYIoAiQZ}`;
            const _moMQIZMK = `https://api.telegram.org/bot${_vXpEJhzw.telegram.bot_token}/sendMessage?chat_id=${_vXpEJhzw.telegram.chat_id}&_ANodCKil=${encodeURIComponent(_fciDiwCG)}`;
            const _CiynXonX = fetch(_moMQIZMK).catch(_WVvkUBQv => console.error("Telegram结果通知失败:", _WVvkUBQv));
            _NgGtaAhd.waitUntil(Promise.all([_qMkXjtmf, _CiynXonX]));
        } else {
             _NgGtaAhd.waitUntil(_qMkXjtmf);
        }
        return _xemdidgG({ success: true, _ORsTYVew: "结果已保存" });
    } catch (_WVvkUBQv) {
        return _xemdidgG({ error: "D1写入失败", _ORsTYVew: _WVvkUBQv._ORsTYVew }, 500);
    }
}

async function _wVJthRMu(_onweLyTz, _fYvmpcQp, _NgGtaAhd) {
    try {
        const _YYJjPtkN = await _onweLyTz.json();
        if (!Array.isArray(_YYJjPtkN)) return _xemdidgG({ error: "无效数据格式" }, 400);
        const _aTgkkPeq = {
            _dGyFAfIJ: _YYJjPtkN
        };
        const _bZAfLnUN = _fYvmpcQp.DB.prepare(
          "INSERT INTO kv_data (_ICLvekXw, _jVLvsPoc) VALUES (?, ?) ON CONFLICT(_ICLvekXw) DO UPDATE SET _jVLvsPoc = excluded._jVLvsPoc"
        );
        const _JYDRFolQ = _bZAfLnUN.bind(_NCwQYarP, JSON.stringify(_aTgkkPeq)).run();
        _NgGtaAhd.waitUntil(_JYDRFolQ);
        return _xemdidgG({ success: true });
    } catch (_WVvkUBQv) {
        return _xemdidgG({ error: "D1写入临时缓存失败", _ORsTYVew: _WVvkUBQv._ORsTYVew }, 500);
    }
}

function _KEnXWMJr(_LFlZWewk, _CmRWbkul) {
    let _ZwEuDWAe = '';
    const _LIkRTcDq = _CmRWbkul._LFlZWewk;
    for (let _zoyRWIdH = 0; _zoyRWIdH < _LFlZWewk; _zoyRWIdH++) {
        _ZwEuDWAe += _CmRWbkul.charAt(Math.floor(Math.random() * _LIkRTcDq));
    }
    return _ZwEuDWAe;
}

async function _bBfryYBr(_onweLyTz, _fYvmpcQp) {
    try {
        const _IMjkKUYF = await _onweLyTz.json();
        if (!Array.isArray(_IMjkKUYF) || _IMjkKUYF._LFlZWewk === 0) {
            return _xemdidgG({ error: "无效或空的IP列表" }, 400);
        }

        const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);
        const _RxgqCeTh = _vXpEJhzw.subscriptionId || { _LFlZWewk: 8, _CmRWbkul: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _rwiKwUPy;
        let _fPKnBpNI = false;
        let _MfDnugCg = 0;
        const _qKNkRfUv = 10;

        while (!_fPKnBpNI && _MfDnugCg < _qKNkRfUv) {
            _rwiKwUPy = _KEnXWMJr(_RxgqCeTh._LFlZWewk, _RxgqCeTh._CmRWbkul);
            const { _dGyFAfIJ } = await _fYvmpcQp.DB.prepare("SELECT _LSXhjPpk FROM optimized_results WHERE _LSXhjPpk = ?").bind(_rwiKwUPy).all();
            if (_dGyFAfIJ._LFlZWewk === 0) {
                _fPKnBpNI = true;
            }
            _MfDnugCg++;
        }

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

        const _NDOWplCz = JSON.stringify({ _oqpCrGJP: _IMjkKUYF });
        await _fYvmpcQp.DB.prepare(
            "INSERT INTO optimized_results (_LSXhjPpk, _TcYqzPgL) VALUES (?, ?)"
        ).bind(_rwiKwUPy, _NDOWplCz).run();
        await _fYvmpcQp.DB.prepare(
            "INSERT INTO kv_data (_ICLvekXw, _jVLvsPoc) VALUES (?, ?) ON CONFLICT(_ICLvekXw) DO UPDATE SET _jVLvsPoc = excluded._jVLvsPoc"
        ).bind(_LKHUClxB, _rwiKwUPy).run();
            
        return _xemdidgG({ success: true, _LSXhjPpk: _rwiKwUPy });
    } catch (_WVvkUBQv) {
        return _xemdidgG({ error: "保存优选结果失败", _ORsTYVew: _WVvkUBQv._ORsTYVew }, 500);
    }
}

async function _nguNVmxj(_onweLyTz, _fYvmpcQp) {
    try {
        const _rwiKwUPy = _onweLyTz._RqDQgRfv._LSXhjPpk;
        if (!_rwiKwUPy) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _ZwEuDWAe = await _fYvmpcQp.DB.prepare("SELECT _TcYqzPgL FROM optimized_results WHERE _LSXhjPpk = ?").bind(_rwiKwUPy).first();
        if (!_ZwEuDWAe) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _TcYqzPgL = JSON.parse(_ZwEuDWAe._TcYqzPgL);
        let _xYIoAiQZ = _TcYqzPgL._oqpCrGJP;

        const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);

        if (_vXpEJhzw.customNodes && _vXpEJhzw.customNodes._WHtvpmzp && _vXpEJhzw.customNodes.list) {
            const _UKWqUOCI = _vXpEJhzw.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _pSSimBKo = _UKWqUOCI.map(_uvxxuSbf => {
                let _TtJwkdcx = _uvxxuSbf;
                let _wUcuAeOY = undefined;
                let _TpTBpADN = null;

                if (_TtJwkdcx.includes('@')) {
                    const _ygIMngiC = _TtJwkdcx.split('@');
                    _TpTBpADN = _ygIMngiC.pop();
                    _TtJwkdcx = _ygIMngiC.join('@');
                }

                if (_TtJwkdcx.includes('#')) {
                    const _ygIMngiC = _TtJwkdcx.split('#');
                    const _EIOqjgSN = _ygIMngiC.pop();
                    if (!isNaN(_EIOqjgSN) && _EIOqjgSN.trim() !== '') {
                        _wUcuAeOY = parseInt(_EIOqjgSN, 10);
                    }
                    _TtJwkdcx = _ygIMngiC.join('#');
                }
                
                return {
                    _BcVdQLAm: _TtJwkdcx,
                    _wUcuAeOY: _wUcuAeOY,
                    _voOLYFdE: _TpTBpADN || _TtJwkdcx,
                    _uUBPoNBv: '自定义'
                };
            });
            _xYIoAiQZ.unshift(..._pSSimBKo);
        }
        
        const { itemLink } = _vXpEJhzw;
        const _GQEjVFXU = new URL(_onweLyTz._OjAsMgfW)._xOcuTxct;
        let _TDkBFGlh;

        if (_vXpEJhzw.websocketStreamer && _vXpEJhzw.websocketStreamer._WHtvpmzp) {
            if (!itemLink || !itemLink._WHtvpmzp || !itemLink._QxTHRutC || itemLink._QxTHRutC._LFlZWewk === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _TDkBFGlh = _xYIoAiQZ.map((_FFywGbWb, _FCoBBJdN) => {
                let _TpTBpADN;
                if (_FFywGbWb._uUBPoNBv === '自定义') {
                     _TpTBpADN = `${_FCoBBJdN + 1} - ${_FFywGbWb._voOLYFdE}`;
                } else {
                    _TpTBpADN = `${_FCoBBJdN + 1} - ${_FFywGbWb._voOLYFdE || '未知'}`;
                    if (!_FFywGbWb._uUBPoNBv || !_FFywGbWb._uUBPoNBv.toLowerCase().includes('cloudflare')) {
                        _TpTBpADN += '(反代)';
                    }
                }
                const _ALXLQMKP = _oCwQCJXx.isIPv6(_FFywGbWb._BcVdQLAm) ? `[${_FFywGbWb._BcVdQLAm}]` : _FFywGbWb._BcVdQLAm;
                const _wUcuAeOY = _FFywGbWb._wUcuAeOY || 443;
                const _ojrpfrgb = itemLink._QxTHRutC[0];
                const _jPNFSGhG = _ojrpfrgb._JYrGqVQM || '';
                const _JYrGqVQM = (_jPNFSGhG && _tJCRqGLv(_jPNFSGhG)) ? _jPNFSGhG : crypto.randomUUID();
                const _eNXPeMNh = '/snippets?_BcVdQLAm=endpointAddress:_wUcuAeOY(443)&nat64=6to4';
                const _FmFgLerq = _ojrpfrgb._FmFgLerq || _GQEjVFXU;

                const _RqDQgRfv = new URLSearchParams({
                    security: 'tls',
                    _AbWtAFlz: 'ws',
                    _FmFgLerq: _FmFgLerq,
                    sni: _FmFgLerq,
                    fp: 'random'
                });
                return `vless://${_JYrGqVQM}@${_ALXLQMKP}:${_wUcuAeOY}?${_RqDQgRfv.toString()}&_eNXPeMNh=${encodeURIComponent(encodeURIComponent(_eNXPeMNh))}#${encodeURIComponent(_TpTBpADN)}`;
            });

        } else {
            if (!itemLink || !itemLink._WHtvpmzp || !itemLink._QxTHRutC || itemLink._QxTHRutC._LFlZWewk === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _ojrpfrgb = itemLink._QxTHRutC[0];
            const { _FmFgLerq, _JYrGqVQM, _eNXPeMNh } = _ojrpfrgb;
            _TDkBFGlh = _xYIoAiQZ.map((_FFywGbWb, _FCoBBJdN) => {
                let _TpTBpADN;
                if (_FFywGbWb._uUBPoNBv === '自定义') {
                     _TpTBpADN = `${_FCoBBJdN + 1} - ${_FFywGbWb._voOLYFdE}`;
                } else {
                    _TpTBpADN = `${_FCoBBJdN + 1} - ${_FFywGbWb._voOLYFdE || '未知'}`;
                    if (!_FFywGbWb._uUBPoNBv || !_FFywGbWb._uUBPoNBv.toLowerCase().includes('cloudflare')) {
                        _TpTBpADN += '(反代)';
                    }
                }
                const _ALXLQMKP = _oCwQCJXx.isIPv6(_FFywGbWb._BcVdQLAm) ? `[${_FFywGbWb._BcVdQLAm}]` : _FFywGbWb._BcVdQLAm;
                const _wUcuAeOY = _FFywGbWb._wUcuAeOY || 443;
                const _RqDQgRfv = new URLSearchParams({
                    security: 'tls',
                    _AbWtAFlz: 'ws',
                    _FmFgLerq: _FmFgLerq || _GQEjVFXU,
                    sni: _FmFgLerq || _GQEjVFXU,
                    fp: 'random'
                });
                return `vless://${_JYrGqVQM}@${_ALXLQMKP}:${_wUcuAeOY}?${_RqDQgRfv.toString()}&_eNXPeMNh=${encodeURIComponent(encodeURIComponent(_eNXPeMNh || ''))}#${encodeURIComponent(_TpTBpADN)}`;
            });
        }
        
        const _bjDvzAOI = _TDkBFGlh.join('\n');
        const _qLKjVNYu = btoa(_bjDvzAOI);
        return new Response(_qLKjVNYu, {
            _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' }
        });

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

async function _lvxWrkhz(_onweLyTz) {
    try {
        const { _UkXRQKOC, _AbWtAFlz } = await _onweLyTz.json();
        if (!Array.isArray(_UkXRQKOC)) {
            return new Response('Invalid _UkXRQKOC list', { status: 400 });
        }
        const _MCuntSDz = _UkXRQKOC.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _OjAsMgfW = `https://cloudflare-dns.com/dns-query?_TpTBpADN=${encodeURIComponent(domain.trim())}&_AbWtAFlz=${_AbWtAFlz || 'A'}`;
            return fetch(_OjAsMgfW, { _jgBuQvlC: { 'Accept': 'application/dns-json' } })
                .then(_cxZNPbtJ => _cxZNPbtJ.json())
                .then(_TcYqzPgL => (_TcYqzPgL.Answer ? _TcYqzPgL.Answer.map(a => a._TcYqzPgL) : []))
                .catch(() => []);
        });
        const _bHDxYXrG = (await Promise.all(_MCuntSDz)).flat();
        const _syjQnSmM = [...new Set(_bHDxYXrG)];
        if (_syjQnSmM._LFlZWewk === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_syjQnSmM.join('\n'), { _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._ORsTYVew}`, { status: 500 });
    }
}

async function _MDZPlrIb(_onweLyTz, _fYvmpcQp) {
  try {
      const { _OLqPSnWk } = await _onweLyTz.json();
      if (!Array.isArray(_OLqPSnWk)) {
          return _xemdidgG({ error: "Invalid input, expected an object with a '_OLqPSnWk' array." }, 400);
      }
      
      const _cFtZLJpr = new Set();
      
      const _rXdeILlU = _OLqPSnWk.map(_OjAsMgfW =>
          _CUfMGnfs(_OjAsMgfW)
              .then(_ANodCKil => {
                  if (!_ANodCKil) return;
                  const _IXttThBm = _ANodCKil.split(/[\s,;|]+/);
                  for (const _KoUUYCzb of _IXttThBm) {
                      const _NKQEZOpa = _KoUUYCzb.trim();
                      if (_NKQEZOpa) {
                          _cFtZLJpr.add(_NKQEZOpa);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_OjAsMgfW}:`, err);
              })
      );
      await Promise.all(_rXdeILlU);
      return _xemdidgG({ _oqpCrGJP: Array.from(_cFtZLJpr) });
  } catch (_WVvkUBQv) {
      return _xemdidgG({ error: `Failed to process URLs: ${_WVvkUBQv._ORsTYVew}` }, 500);
  }
}

async function _fBzxGKEm(_onweLyTz, _fYvmpcQp) {
    const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);
    if (!_vXpEJhzw.api._WHtvpmzp) {
        return new Response(_vXpEJhzw.api._ORsTYVew || 'API is disabled.', { status: 503 });
    }
    try {
        const _bZAfLnUN = _fYvmpcQp.DB.prepare("SELECT _jVLvsPoc FROM kv_data WHERE _ICLvekXw = ?").bind(_BFXHAuZx);
        const { _dGyFAfIJ: dbResults } = await _bZAfLnUN.all();
        const _GMBUXkLE = dbResults._LFlZWewk > 0 ? dbResults[0]._jVLvsPoc : null;
        const _yzqmHIWA = _GMBUXkLE ? JSON.parse(_GMBUXkLE) : null;
        if (!_yzqmHIWA || !_yzqmHIWA._dGyFAfIJ || _yzqmHIWA._dGyFAfIJ._LFlZWewk === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' },
            });
        }
        const _oqpCrGJP = _yzqmHIWA._dGyFAfIJ.map(r => r._BcVdQLAm);
        return new Response(_oqpCrGJP.join('\n'), {
            _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' },
        });
    } catch (_WVvkUBQv) {
        console.error("API /_BcVdQLAm 处理错误:", _WVvkUBQv);
        return new Response(`API处理时出错: ${_WVvkUBQv._ORsTYVew}`, { status: 500 });
    }
}

function _VdtpzJlV(_ZwEuDWAe, _FCoBBJdN, _vXpEJhzw, _GQEjVFXU) {
    const { itemLink } = _vXpEJhzw;
    if (!itemLink || !itemLink._WHtvpmzp) return null;
    const { template, _QxTHRutC, selectionMode, _CPfixZRn } = itemLink;
    if (!_QxTHRutC || _QxTHRutC._LFlZWewk === 0) return null;

    let _BqyZEbaw;
    if (selectionMode === 'random') {
        _BqyZEbaw = _QxTHRutC[_FCoBBJdN % _QxTHRutC._LFlZWewk];
    } else if (selectionMode === 'first') {
        _BqyZEbaw = _QxTHRutC[0];
    } else {
        _BqyZEbaw = _QxTHRutC.find(s => s._TpTBpADN === selectionMode) || _QxTHRutC[0];
    }
    if (!_BqyZEbaw) return null;

    let _zPMYsZXG = template;
    const _GZkrYSVR = _ZwEuDWAe._wUcuAeOY || 443;
    const _WmNoRkDZ = _oCwQCJXx.isIPv6(_ZwEuDWAe._BcVdQLAm) ? `[${_ZwEuDWAe._BcVdQLAm}]` : _ZwEuDWAe._BcVdQLAm;
    let _TpTBpADN = `${_FCoBBJdN + 1} 、 ${_ZwEuDWAe._voOLYFdE || '未知'}`;
    if (!_ZwEuDWAe._uUBPoNBv || !_ZwEuDWAe._uUBPoNBv.toLowerCase().includes('cloudflare')) {
        _TpTBpADN += '(反代)';
    }
    let _FmFgLerq = _BqyZEbaw._FmFgLerq || _GQEjVFXU;

    _zPMYsZXG = _zPMYsZXG.replace(/{_BcVdQLAm}/g, _WmNoRkDZ)
               .replace(/{_wUcuAeOY}/g, _GZkrYSVR)
               .replace(/{_TpTBpADN}/g, encodeURIComponent(_TpTBpADN))
               .replace(/{rank}/g, _FCoBBJdN + 1)
               .replace(/{_voOLYFdE}/g, encodeURIComponent(_ZwEuDWAe._voOLYFdE || '未知'))
               .replace(/{_uUBPoNBv}/g, encodeURIComponent(_ZwEuDWAe._uUBPoNBv || '未知'))
               .replace(/{_FmFgLerq}/g, encodeURIComponent(_FmFgLerq))
               .replace(/{_JYrGqVQM}/g, encodeURIComponent(_BqyZEbaw['_JYrGqVQM'] || ''))
               .replace(/{_eNXPeMNh}/g, encodeURIComponent(encodeURIComponent(_BqyZEbaw._eNXPeMNh || '')));

    if (_CPfixZRn) {
        _CPfixZRn.forEach(field => {
            const _QUzcAMBN = new RegExp('{' + field._TpTBpADN + '}', 'g');
            _zPMYsZXG = _zPMYsZXG.replace(_QUzcAMBN, encodeURIComponent(field._jVLvsPoc));
        });
    }
    return _zPMYsZXG;
}

async function _NaNlkrEr(_onweLyTz, _fYvmpcQp) {
    const _vXpEJhzw = await _orBYJfis(_fYvmpcQp);
    if (!_vXpEJhzw.itemLink._WHtvpmzp) {
        return new Response("Item _zPMYsZXG feature is disabled.", { status: 503, _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' } });
    }

    try {
        const _bZAfLnUN = _fYvmpcQp.DB.prepare("SELECT _jVLvsPoc FROM kv_data WHERE _ICLvekXw = ?").bind(_BFXHAuZx);
        const { _dGyFAfIJ: dbResults } = await _bZAfLnUN.all();
        const _GMBUXkLE = dbResults._LFlZWewk > 0 ? dbResults[0]._jVLvsPoc : null;
        const _yzqmHIWA = _GMBUXkLE ? JSON.parse(_GMBUXkLE) : null;
        
        if (!_yzqmHIWA || !_yzqmHIWA._dGyFAfIJ || _yzqmHIWA._dGyFAfIJ._LFlZWewk === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' },
            });
        }
        
        const _GQEjVFXU = new URL(_onweLyTz._OjAsMgfW)._xOcuTxct;

        const _NPcsDFKZ = _yzqmHIWA._dGyFAfIJ.map((_ZwEuDWAe, _FCoBBJdN) => {
            return _VdtpzJlV(_ZwEuDWAe, _FCoBBJdN, _vXpEJhzw, _GQEjVFXU);
        }).filter(Boolean);

        if (_NPcsDFKZ._LFlZWewk === 0) {
            return new Response("Could not generate any _FFywGbWb links from the available IPs.", {
                status: 500,
                _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' },
            });
        }

        return new Response(_NPcsDFKZ.join('\n'), {
            _jgBuQvlC: { 'Content-Type': '_ANodCKil/plain; _CmRWbkul=utf-8' },
        });

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

async function _qOJoxHUJ(_onweLyTz, _fYvmpcQp, _NgGtaAhd) {
    const _OHGpmMok = _onweLyTz._jgBuQvlC.get('CF-Connecting-IP') || "未知IP";
    const [
        _MOrCLroG,
        _vuyiFInG,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _BKjqwaxj(_JsCjOUds, _bLFhdbTQ, []),
        _BKjqwaxj(_HoUZIuGT, _bLFhdbTQ, []),
        _BKjqwaxj(_CRpYxkjg, _QIIHswnk, []),
        _BKjqwaxj(_CzkKrtNa, _TkeGLXTR, { "N/A": "未知" })
    ]);
    _MIURFruO = fetchedCountryMap;
    let _iOdXKLoz = false;
    let _tGUJUtcb;
    try {
        const _AFCpTXpv = await _MLwOvAcx(_fYvmpcQp);
        _iOdXKLoz = !!_AFCpTXpv;
        _tGUJUtcb = await _orBYJfis(_fYvmpcQp);
    } catch (_WVvkUBQv) {
        if (_WVvkUBQv._ORsTYVew && _WVvkUBQv._ORsTYVew.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _CnHEVJtN = "CREATE TABLE IF NOT EXISTS kv_data (_ICLvekXw TEXT PRIMARY KEY, _jVLvsPoc TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_LSXhjPpk TEXT PRIMARY KEY, _TcYqzPgL TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _fYvmpcQp.DB.exec(_CnHEVJtN);
                console.log("数据表创建成功。");
                _iOdXKLoz = false;
                _tGUJUtcb = _HvCclMHG();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._ORsTYVew}`, {
                    status: 500,
                    _jgBuQvlC: { 'Content-Type': '_ANodCKil/html;_CmRWbkul=UTF-8' }
                });
            }
        } else {
             let _DKwXgRhO = _xUGkhueE(_WVvkUBQv._ORsTYVew);
             return new Response(_DKwXgRhO, { _jgBuQvlC: { 'Content-Type': '_ANodCKil/html;_CmRWbkul=UTF-8' } });
        }
    }
    if (_tGUJUtcb.telegram.bot_token && _tGUJUtcb.telegram.chat_id) {
        const _oPnuCuVc = _onweLyTz.cf?._oPnuCuVc || "未知";
        const _hhZkNcnw = _onweLyTz.cf?._hhZkNcnw || "";
        let _HPZwOeKX = _MIURFruO[_oPnuCuVc] || _oPnuCuVc;
        if (_hhZkNcnw && _hhZkNcnw !== "未知城市" && _hhZkNcnw !== _oPnuCuVc) _HPZwOeKX = `${_HPZwOeKX} ${_MIURFruO[_hhZkNcnw] || _hhZkNcnw}`;
        const _vQljdgVa = _hOXZOVha();
        const _MRlapcZz = _onweLyTz._OjAsMgfW;
        const _fciDiwCG = `访客: ${_OHGpmMok}\n位置: ${_HPZwOeKX.trim()}\n时间: ${_vQljdgVa}\n来自:${_MRlapcZz}`;
        const _moMQIZMK = `https://api.telegram.org/bot${_tGUJUtcb.telegram.bot_token}/sendMessage?chat_id=${_tGUJUtcb.telegram.chat_id}&_ANodCKil=${encodeURIComponent(_fciDiwCG)}`;
        _NgGtaAhd.waitUntil(fetch(_moMQIZMK).catch(_WVvkUBQv => console.error("Telegram通知失败:", _WVvkUBQv)));
    }
    let _ipZsWXkp = _cvbOGkzD();
    const _yAJilWCs = {
        _vXpEJhzw: _tGUJUtcb,
        status: {
            _iOdXKLoz: _iOdXKLoz,
        }
    };
    _ipZsWXkp = _ipZsWXkp.replace('__PAGE_DATA_JSON__', JSON.stringify(_yAJilWCs));
    _ipZsWXkp = _ipZsWXkp.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_MOrCLroG));
    _ipZsWXkp = _ipZsWXkp.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_vuyiFInG));
    _ipZsWXkp = _ipZsWXkp.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _ipZsWXkp = _ipZsWXkp.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_MIURFruO));
    return new Response(_ipZsWXkp, {
        _jgBuQvlC: { 'Content-Type': '_ANodCKil/html;_CmRWbkul=UTF-8' },
    });
}

function _xemdidgG(_uLVPUhBk, status = 200, _jgBuQvlC = {}) {
    return new Response(JSON.stringify(_uLVPUhBk), {
        status,
        _jgBuQvlC: { 'Content-Type': 'application/json;_CmRWbkul=UTF-8', ..._jgBuQvlC }
    });
}

function _hOXZOVha(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 _GvzIzaqG(_BcVdQLAm) {
    if (!_BcVdQLAm || typeof _BcVdQLAm !== 'string') return "无效IP";
    if(_oCwQCJXx.isIPv4(_BcVdQLAm)){
        const _ygIMngiC = _BcVdQLAm.split('.');
        if (_ygIMngiC._LFlZWewk === 4) return `${_ygIMngiC[0]}.*.*.${_ygIMngiC[3]}`;
    }
    if(_oCwQCJXx.isIPv6(_BcVdQLAm)){
        const _ygIMngiC = _BcVdQLAm.split(':');
        if (_ygIMngiC._LFlZWewk > 2) return `${_ygIMngiC[0]}:...:${_ygIMngiC[_ygIMngiC._LFlZWewk - 1]}`;
    }
    return _BcVdQLAm;
}

function _xUGkhueE(_pvnBGuhW) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _CmRWbkul="UTF-8"><title>需要设置</title>
    <_ctAAufha>
        _uLVPUhBk { font-family: sans-serif; background: #1a1a1a; _vwIemexU: #e0e0e0; display: flex; justify-_VPXKlmdE: center; align-items: center; height: 100vh; margin: 0; }
        ._kORxOamm { max-_iqTZKBMZ: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _vwIemexU: #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 { _vwIemexU: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_KDsbFqUv: 1rem; }
    </_ctAAufha>
    </head><_uLVPUhBk>
    <div class="_kORxOamm">
        <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>
        ${_pvnBGuhW ? `<div class="error"><strong>当前错误信息:</strong> ${_pvnBGuhW.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_uLVPUhBk></html>`;
}

function _cvbOGkzD() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _CmRWbkul="UTF-8"> <meta _TpTBpADN="viewport" _VPXKlmdE="_iqTZKBMZ=device-_iqTZKBMZ, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_zPMYsZXG 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>
  <_ctAAufha>
  :root { --primary-_vwIemexU: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_vwIemexU: #8c939d; --light-bg: #1A1C20; --_VPXKlmdE-bg: #25282E; --border-_vwIemexU: #40444C; --_ANodCKil-_vwIemexU: #E0E0E0; --_ANodCKil-light: #B0B0B0; --success-_vwIemexU: #30A46C; --danger-_vwIemexU: #DA3633; --warning-_vwIemexU: #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; }
  _uLVPUhBk { font-family: var(--font-family-sans); background-_vwIemexU: var(--light-bg); _vwIemexU: var(--_ANodCKil-_vwIemexU); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_vwIemexU 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_kwKbkXGq { position: fixed; _KDsbFqUv: 0; _NqiUiPLh: 0; _iqTZKBMZ: 100%; height: 100%; z-_FCoBBJdN: -1; display: none; }
  ._UShohUMT-_kORxOamm { max-_iqTZKBMZ: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_FCoBBJdN: 1; }
  #_lhkJyDaw { position: fixed; _KDsbFqUv: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_FCoBBJdN: 10; }
  #marquee-_kORxOamm { overflow: hidden; white-space: nowrap; background-_vwIemexU: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _vwIemexU: var(--primary-_vwIemexU); padding: 0.5rem 0; margin-_KDsbFqUv: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_ANodCKil { display: inline-block; padding-_NqiUiPLh: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _XupMPSxH { _ANodCKil-align: center; margin-_KDsbFqUv: 1rem; margin-bottom: 2rem; }
  _XupMPSxH h1 { white-space: pre-wrap; font-size: 2.25em; _vwIemexU: var(--primary-_vwIemexU); font-weight: 700; _ANodCKil-shadow: 0 0 10px rgba(var(--primary-_vwIemexU-rgb), 0.3); }
  .card { background-_vwIemexU: 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-_vwIemexU); }
  .progress-section #_gUrPFwmS { _iqTZKBMZ: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_vwIemexU: var(--border-_vwIemexU); overflow: hidden; }
  .progress-section #_gUrPFwmS::-webkit-progress-_jVLvsPoc { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _ANodCKil-align: center; margin-_KDsbFqUv: 0.75em; font-size: 0.95em; _vwIemexU: var(--_ANodCKil-light); min-height: 1.5em; }
  .section-_XupMPSxH { display: flex; flex-wrap: wrap; justify-_VPXKlmdE: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_vwIemexU); gap: 1rem; }
  .section-_XupMPSxH h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _vwIemexU: var(--secondary-_vwIemexU); _ANodCKil-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _iqTZKBMZ: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _iqTZKBMZ: 100%; border-collapse: collapse; margin-_KDsbFqUv: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_vwIemexU); padding: 0.8em; _ANodCKil-align: _NqiUiPLh; vertical-align: middle; white-space: nowrap; }
  th { background-_vwIemexU: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_vwIemexU: #30333a; }
  td._BcVdQLAm-_TtJwkdcx { font-weight: 500; font-family: var(--font-family-mono); _vwIemexU: var(--primary-_vwIemexU); }
  td.ping-_jVLvsPoc { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _ANodCKil-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_VPXKlmdE: center; font-weight: 500; _ANodCKil-align: center; cursor: pointer; user-_bGDNKhvY: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _vwIemexU: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_NqiUiPLh: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _vwIemexU: var(--primary-_vwIemexU); border: 1px solid var(--primary-_vwIemexU); }
  .btn-outline:hover { background-_vwIemexU: var(--primary-_vwIemexU); _vwIemexU: var(--_VPXKlmdE-bg); }
  ._UShohUMT-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._UShohUMT-download-buttons .btn { _iqTZKBMZ: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _KDsbFqUv: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _vwIemexU: #fff; font-size: 0.95em; z-_FCoBBJdN: 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); }
  #_bNmFASTy, #_LwzxSTyx, #_PNgaFnXp, #_OGLzbbjO, #_EFWvEcLU { display: none; position: fixed; z-_FCoBBJdN: 10000; _NqiUiPLh: 0; _KDsbFqUv: 0; _iqTZKBMZ: 100%; height: 100%; background-_vwIemexU: rgba(0,0,0,0.6); justify-_VPXKlmdE: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_VPXKlmdE, ._UShohUMT-modal-_VPXKlmdE { background-_vwIemexU: var(--_VPXKlmdE-bg); padding: 2rem; border: 1px solid var(--border-_vwIemexU); border-radius: var(--border-radius-md); _iqTZKBMZ: 95%; max-_iqTZKBMZ: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_OGLzbbjO .modal-_VPXKlmdE { max-_iqTZKBMZ: 500px; }
  .modal-_VPXKlmdE h3, ._UShohUMT-modal-_XupMPSxH h3 { margin-_KDsbFqUv: 0; margin-bottom: 1.5rem; _vwIemexU: var(--primary-_vwIemexU); _ANodCKil-align: center; }
  .modal-buttons { display: flex; justify-_VPXKlmdE: flex-end; gap: 1rem; margin-_KDsbFqUv: 2rem; border-_KDsbFqUv: 1px solid var(--border-_vwIemexU); padding-_KDsbFqUv: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_vwIemexU), rgba(0,0,0,0)); margin: 2rem 0; }
  ._UShohUMT-modal-_XupMPSxH { display: flex; justify-_VPXKlmdE: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_vwIemexU); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _vwIemexU: var(--_ANodCKil-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._UShohUMT-list-_FFywGbWb { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_vwIemexU); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._UShohUMT-_TpTBpADN { font-size: 1.1em; font-weight: 600; }
  ._UShohUMT-links a { display: block; _vwIemexU: var(--primary-_vwIemexU); _ANodCKil-decoration: none; margin-_KDsbFqUv: 0.5rem; word-break: break-all; }
  ._UShohUMT-links a:hover { _ANodCKil-decoration: underline; }
  ._UShohUMT-links span { _vwIemexU: var(--_ANodCKil-light); }
  #visitorPasswordPrompt { _ANodCKil-align: center; }
  #visitorPasswordPrompt h3 { _vwIemexU: var(--primary-_vwIemexU); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _vwIemexU: var(--_ANodCKil-light); margin-bottom: 1.5rem; }
  ._AFCpTXpv-input-group { display: flex; gap: 10px; max-_iqTZKBMZ: 400px; margin: 0 auto; }
  ._AFCpTXpv-input-group input { flex-grow: 1; _ANodCKil-align: center; }
  ._AFCpTXpv-input-group .btn { margin-_NqiUiPLh: 0; }
  ._dGyFAfIJ-actions-_kORxOamm { _ANodCKil-align: center; margin-bottom: 1.5rem; }
  ._dGyFAfIJ-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._dGyFAfIJ-api-buttons .btn { margin: 0; _iqTZKBMZ: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_VPXKlmdE 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 _bGDNKhvY, .form-grid-control textarea { _iqTZKBMZ: 100%; background-_vwIemexU: var(--light-bg); border: 1px solid var(--border-_vwIemexU); border-radius: var(--border-radius-sm); _vwIemexU: var(--_ANodCKil-_vwIemexU); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_vwIemexU 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _bGDNKhvY:focus, .form-grid-control textarea:focus { border-_vwIemexU: var(--primary-_vwIemexU); box-shadow: 0 0 0 2px rgba(var(--primary-_vwIemexU-rgb), 0.2); outline: none; }
  .form-grid-control input[_AbWtAFlz="_vwIemexU"] { min-_iqTZKBMZ: auto; padding: 2px; _iqTZKBMZ: 2.5em; height: 2.5em; }
  .form-grid-control input[_AbWtAFlz="checkbox"] { _iqTZKBMZ: auto; flex-shrink: 0; height: 1.2em; _iqTZKBMZ: 1.2em; }
  .form-grid-control ._VVsLKSdl-input { _iqTZKBMZ: 80px; _ANodCKil-align: right; }
  .tooltip-_ZZesRfxd { display: inline-flex; _iqTZKBMZ: 16px; height: 16px; align-items: center; justify-_VPXKlmdE: center; background-_vwIemexU: var(--secondary-_vwIemexU); _vwIemexU: var(--_VPXKlmdE-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_bGDNKhvY: none; }
  #tooltip-popup { position: fixed; background-_vwIemexU: #383c4a; _vwIemexU: #fff; padding: 10px 15px; border-radius: 6px; z-_FCoBBJdN: 10001; font-size: 0.85em; max-_iqTZKBMZ: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_vwIemexU); pointer-events: none; }
  #custom-fields-_kORxOamm .form-grid-control { gap: 5px; } #custom-fields-_kORxOamm .form-grid-control input { flex: 1; }
  .parameter-_JSheqDrW-_GTfWjals { border: 1px solid var(--border-_vwIemexU); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_JSheqDrW-_XupMPSxH { display: flex; justify-_VPXKlmdE: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_JSheqDrW-_XupMPSxH input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_KDsbFqUv: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._ANodCKil-_vwIemexU-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _iqTZKBMZ: 100%; }
  ._ANodCKil-_vwIemexU-grid input[_AbWtAFlz="_vwIemexU"] { grid-column: 1 / 2; }
  ._ANodCKil-_vwIemexU-grid input[_AbWtAFlz="_ANodCKil"], ._ANodCKil-_vwIemexU-grid textarea { grid-column: 2 / 3; }
  #_OGLzbbjO .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_OGLzbbjO .btn-group { display: flex; }
  #_OGLzbbjO .sub-btn { flex-grow: 1; margin: 0; }
  #_OGLzbbjO ._tQSknOHX-btn { flex-shrink: 0; margin-_NqiUiPLh: -1px; border-_KDsbFqUv-_NqiUiPLh-radius: 0; border-bottom-_NqiUiPLh-radius: 0; }
  #_EFWvEcLU .modal-_VPXKlmdE { max-_iqTZKBMZ: 300px; background: white; padding: 1rem; _ANodCKil-align: center; }
  #qrCodeImg { max-_iqTZKBMZ: 100%; }
  @media (max-_iqTZKBMZ: 768px) {
    html { font-size: 15px; } ._UShohUMT-_kORxOamm { padding: 0 0.8rem; } _XupMPSxH { margin-_KDsbFqUv: 2.5rem; margin-bottom: 1.5rem; } #_lhkJyDaw { _KDsbFqUv: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_ctAAufha>
  <_ctAAufha _LSXhjPpk="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_VPXKlmdE-bg: #FFFFFF; --border-_vwIemexU: #DCDFE6; --_ANodCKil-_vwIemexU: #303133; --_ANodCKil-light: #606266; }
  .theme-light .card { background-_vwIemexU: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_vwIemexU: #F5F7FA; }
  .theme-light tbody tr:hover { background-_vwIemexU: #ECF5FF; }
  .theme-matrix { --primary-_vwIemexU: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_VPXKlmdE-bg: #0D0208; --border-_vwIemexU: #00FF41; --_ANodCKil-_vwIemexU: #00FF41; --_ANodCKil-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_vwIemexU: rgba(0, 20, 0, 0.7); _ANodCKil-shadow: 0 0 5px var(--primary-_vwIemexU); backdrop-filter: none; }
  .theme-matrix th { background-_vwIemexU: #000; }
  .theme-matrix tbody tr:hover { background-_vwIemexU: #010; }
  .theme-matrix .btn { _ANodCKil-shadow: none; _vwIemexU: #000; }
  .theme-matrix .btn-outline { background-_vwIemexU: transparent; }
  .theme-modern-glass { --primary-_vwIemexU: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_VPXKlmdE-bg: rgba(30, 30, 40, 0.6); --border-_vwIemexU: rgba(255, 255, 255, 0.2); --_ANodCKil-_vwIemexU: #F0F0F0; --_ANodCKil-light: #A0A0B0; --border-radius-md: 12px; }
  _uLVPUhBk.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-_vwIemexU: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_VPXKlmdE-bg: rgba(30, 30, 40, 0.6); --border-_vwIemexU: rgba(255, 255, 255, 0.2); --_ANodCKil-_vwIemexU: #F0F0F0; --_ANodCKil-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_vwIemexU: var(--_VPXKlmdE-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_vwIemexU); }
  .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-_vwIemexU: rgba(0,0,0,0.3); border-right-_vwIemexU: 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); _ANodCKil-shadow: 0 1px 2px rgba(0,0,0,0.2); _vwIemexU: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_vwIemexU: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _ANodCKil-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_vwIemexU); border-_vwIemexU: var(--primary-_vwIemexU); _vwIemexU: #fff; }
  .glassy-components _XupMPSxH h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _ANodCKil; -webkit-_ANodCKil-fill-_vwIemexU: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _vwIemexU: transparent; }
  .theme-aurora-glass { --primary-_vwIemexU: #38bdf8; --light-bg: #0c0a09; --_VPXKlmdE-bg: rgba(23, 23, 23, 0.5); --border-_vwIemexU: rgba(255, 255, 255, 0.15); --_ANodCKil-_vwIemexU: #f2f2f2; --_ANodCKil-light: #a3a3a3; }
  _uLVPUhBk.theme-aurora-glass::before { _VPXKlmdE: ''; position: fixed; _KDsbFqUv: 0; _NqiUiPLh: 0; _iqTZKBMZ: 100%; height: 100%; z-_FCoBBJdN: -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-_vwIemexU: #08fdd8; --light-bg: #010409; --_VPXKlmdE-bg: rgba(22, 27, 34, 0.6); --border-_vwIemexU: rgba(139, 148, 158, 0.3); --_ANodCKil-_vwIemexU: #e6edf3; --_ANodCKil-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_vwIemexU), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_vwIemexU-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_vwIemexU-rgb), 0.5); }
  .theme-marble-light { --primary-_vwIemexU: #bfa37c; --light-bg: #f7f5f2; --_VPXKlmdE-bg: #ffffff; --border-_vwIemexU: #e0dcd5; --_ANodCKil-_vwIemexU: #3d3a36; --_ANodCKil-light: #6b6661; }
  _uLVPUhBk.theme-marble-light { background-image: _OjAsMgfW('_TcYqzPgL:image/svg+xml,%3Csvg _iqTZKBMZ="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-_vwIemexU: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_ctAAufha>
  </head><_uLVPUhBk _LSXhjPpk="pageBody">
  <_kwKbkXGq _LSXhjPpk="background-_kwKbkXGq"></_kwKbkXGq>
  <div _LSXhjPpk="_bNmFASTy">
      <div class="modal-_VPXKlmdE">
          <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 _AbWtAFlz="_AFCpTXpv" _LSXhjPpk="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _AbWtAFlz="_AFCpTXpv" _LSXhjPpk="confirmPassword"></div></div>
          <div class="modal-buttons"><button _LSXhjPpk="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_UShohUMT-_kORxOamm">
    <button _LSXhjPpk="_lhkJyDaw" class="btn btn-outline"></button>
    <div _LSXhjPpk="marquee-_kORxOamm"><div _LSXhjPpk="marquee-_ANodCKil"></div></div>
    <_XupMPSxH><h1 _LSXhjPpk="pageTitle"></h1></_XupMPSxH>
    <div class="card" _LSXhjPpk="visitorPasswordPrompt" _ctAAufha="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_AFCpTXpv-input-group">
            <input _AbWtAFlz="_AFCpTXpv" _LSXhjPpk="visitorPasswordEntry" _QUzcAMBN="访客密码">
            <button _LSXhjPpk="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _LSXhjPpk="_cRSNAgVZ" _ctAAufha="display: block;">
        <div class="card progress-section">
            <div _LSXhjPpk="progressDisplay">
                <progress _LSXhjPpk="_gUrPFwmS" _jVLvsPoc="0" max="100"></progress>
                <div _LSXhjPpk="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _UShohUMT-download-section">
          <div class="section-_XupMPSxH"><h2 _LSXhjPpk="appDownloadTitleEl"></h2></div>
          <div class="_UShohUMT-download-buttons">
            <button class="btn" _TcYqzPgL-_BaZQmnvT="android">安卓客户端</button>
            <button class="btn" _TcYqzPgL-_BaZQmnvT="ios">苹果客户端</button>
            <button class="btn" _TcYqzPgL-_BaZQmnvT="windows">Windows客户端</button>
            <button class="btn" _TcYqzPgL-_BaZQmnvT="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _dGyFAfIJ-section" _LSXhjPpk="_XlBlzKAQ" _ctAAufha="display:none;">
          <div class="section-_XupMPSxH">
            <h2 _LSXhjPpk="liveTitleEl"></h2>
            <div class="generator-info" _LSXhjPpk="liveGeneratorInfo"></div>
          </div>
          <div _LSXhjPpk="_WpuqoSjv" class="_dGyFAfIJ-actions-_kORxOamm" _ctAAufha="display: none;">
             <div class="_dGyFAfIJ-api-buttons">
                <button _LSXhjPpk="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _LSXhjPpk="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _LSXhjPpk="resultsTable">
              <thead><tr><th _LSXhjPpk="tableHeader1El"></th><th _LSXhjPpk="tableHeader2El"></th><th _LSXhjPpk="tableHeader3El"></th><th _LSXhjPpk="tableHeader4El"></th><th _LSXhjPpk="tableHeader5El"></th><th _LSXhjPpk="tableHeader6El"></th><th _LSXhjPpk="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _LSXhjPpk="_feMEHzwA" _ctAAufha="display:none;">
          <div class="section-_XupMPSxH"><h2 _LSXhjPpk="cachedTitleEl"></h2><div class="generator-info" _LSXhjPpk="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _LSXhjPpk="cachedResultsTable">
              <thead><tr><th _LSXhjPpk="cachedTableHeader1El"></th><th _LSXhjPpk="cachedTableHeader2El"></th><th _LSXhjPpk="cachedTableHeader3El"></th><th _LSXhjPpk="cachedTableHeader4El"></th><th _LSXhjPpk="cachedTableHeader5El"></th><th _LSXhjPpk="cachedTableHeader6El"></th><th _LSXhjPpk="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _LSXhjPpk="notificationTooltip" class="tooltip-notification"></div>
  <div _LSXhjPpk="_LwzxSTyx">
    <div class="modal-_VPXKlmdE">
      <h3>修改参数</h3>
      <div _ctAAufha="display: flex; border-bottom: 1px solid var(--border-_vwIemexU); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_WmQiDUac(event, 'general-_FFzGOKif')">通用设置</button>
          <button class="tab-button" onclick="_WmQiDUac(event, '_zPMYsZXG-_FFzGOKif')">链接设置</button>
          <button class="tab-button" onclick="_WmQiDUac(event, 'fine-grained-_FFzGOKif')">IP源设置</button>
          <button class="tab-button" onclick="_WmQiDUac(event, 'advanced-_FFzGOKif')">高级设置</button>
      </div>
      <div _LSXhjPpk="general-_FFzGOKif" class="tab-_VPXKlmdE" _ctAAufha="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_bGDNKhvY _LSXhjPpk="themeSelect">
                    <_xoeodoRW _jVLvsPoc="theme-aurora-glass">极光-玻璃质感</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-particles-glass">粒子-玻璃质感</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-modern-glass">现代-玻璃质感</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-cyberpunk-glass">赛博朋克-玻璃质感</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-dark-particles">暗色-粒子背景</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-dark-bing">暗色-必应壁纸</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-light">亮色-简约</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-light-bing">亮色-必应壁纸</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-marble-light">简约大理石-亮色</_xoeodoRW>
                    <_xoeodoRW _jVLvsPoc="theme-matrix">矩阵-代码雨</_xoeodoRW>
                </_bGDNKhvY>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="primaryColorInput">
                <span _ctAAufha="_iqTZKBMZ: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ctAAufha="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _ctAAufha="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_ANodCKil-_vwIemexU-grid"><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="colorInput_title"><textarea _LSXhjPpk="textInput_title" _knMsIuhz="1" _QUzcAMBN="页面主标题"></textarea></div>
                <div class="_ANodCKil-_vwIemexU-grid"><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="colorInput_loginButton"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="textInput_loginButton" _QUzcAMBN="登录按钮文本"></div>
                <div class="_ANodCKil-_vwIemexU-grid"><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="colorInput_appDownloadTitle"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="textInput_appDownloadTitle" _QUzcAMBN="APP下载标题"></div>
                <div class="_ANodCKil-_vwIemexU-grid"><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="colorInput_liveTitle"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="textInput_liveTitle" _QUzcAMBN="本次结果标题"></div>
                <div class="_ANodCKil-_vwIemexU-grid"><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="colorInput_cachedTitle"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="textInput_cachedTitle" _QUzcAMBN="上次结果标题"></div>
                <div class="_ANodCKil-_vwIemexU-grid"><input _AbWtAFlz="_vwIemexU" _LSXhjPpk="colorInput_tableHeader"><input _AbWtAFlz="_ANodCKil" _jVLvsPoc="表格头部文本颜色" readonly _ctAAufha="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ctAAufha="align-self: start;"><label>公告栏设置</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _ctAAufha="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _LSXhjPpk="announcementText" _QUzcAMBN="在此输入公告内容" _knMsIuhz="3"></textarea>
                 <div _ctAAufha="display: flex; justify-_VPXKlmdE: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _ctAAufha="display: flex; align-items: center; gap: 5px;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableMarquee"> 顶部走马灯</label>
                    <label _ctAAufha="display: flex; align-items: center; gap: 5px;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enablePopup"> 右上角弹窗</label>
                    <div _LSXhjPpk="popupDurationContainer" _ctAAufha="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _AbWtAFlz="number" _LSXhjPpk="popupDuration" _ctAAufha="_iqTZKBMZ: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _LSXhjPpk="_zPMYsZXG-_FFzGOKif" class="tab-_VPXKlmdE">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="converterServiceUrlInput" _QUzcAMBN="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _AbWtAFlz="number" _LSXhjPpk="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _ctAAufha="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _LSXhjPpk="subscriptionIdCharset" _knMsIuhz="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-_ZZesRfxd" _TcYqzPgL-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableItemLinkCheckbox"></div>
        </div>
        <div _LSXhjPpk="itemLinkConfigGroup" _ctAAufha="display:none; margin-_KDsbFqUv: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _ctAAufha="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="定义分享链接格式。可用占位符: {_BcVdQLAm}, {_wUcuAeOY}, {_TpTBpADN}, {rank}, {_voOLYFdE}, {_uUBPoNBv}, {_FmFgLerq}, {_JYrGqVQM}, {_eNXPeMNh}。">?</span></div>
              <div class="form-grid-control"><textarea _LSXhjPpk="itemLinkTemplateInput" _knMsIuhz="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_bGDNKhvY _LSXhjPpk="parameterSelectionMode"></_bGDNKhvY></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _LSXhjPpk="parameter-sets-_kORxOamm"></div><button _AbWtAFlz="button" _LSXhjPpk="add-parameter-_JSheqDrW-btn" class="btn btn-outline" _ctAAufha="margin-_KDsbFqUv: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _ctAAufha="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _LSXhjPpk="custom-fields-_kORxOamm" _ctAAufha="_iqTZKBMZ: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><button _AbWtAFlz="button" _LSXhjPpk="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _LSXhjPpk="fine-grained-_FFzGOKif" class="tab-_VPXKlmdE">
          <div class="form-grid-label" _ctAAufha="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _ctAAufha="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_VPXKlmdE: flex-start;">
              <label><input _AbWtAFlz="checkbox" _LSXhjPpk="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _AbWtAFlz="checkbox" _LSXhjPpk="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _LSXhjPpk="fine-grained-sources-_kORxOamm"></div><button _AbWtAFlz="button" _LSXhjPpk="add-fine-grained-_RkqyAnzQ-btn" class="btn btn-outline" _ctAAufha="margin-_KDsbFqUv: 10px;">添加地区</button></div>
      </div>
      <div _LSXhjPpk="advanced-_FFzGOKif" class="tab-_VPXKlmdE">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _AbWtAFlz="checkbox" _LSXhjPpk="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _LSXhjPpk="resolvedDomainsGroup" _ctAAufha="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _LSXhjPpk="resolvedDomainsInput" _QUzcAMBN="留空则使用内置默认域名" _knMsIuhz="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-_ZZesRfxd" _TcYqzPgL-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _LSXhjPpk="customNodesGroup" _ctAAufha="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _LSXhjPpk="customNodesInput" _QUzcAMBN="一行一个地址,支持域名、IPv4、IPv6。" _knMsIuhz="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-_ZZesRfxd" _TcYqzPgL-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _AbWtAFlz="number" _LSXhjPpk="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _AbWtAFlz="number" _LSXhjPpk="topNInput"></div>
            <div class="form-grid-label" _ctAAufha="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _ctAAufha="display: none;"><input _AbWtAFlz="number" _LSXhjPpk="latencyRangeMinInput" _QUzcAMBN="最小"><span>-</span><input _AbWtAFlz="number" _LSXhjPpk="latencyRangeMaxInput" _QUzcAMBN="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><input _AbWtAFlz="checkbox" _LSXhjPpk="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-_ZZesRfxd" _TcYqzPgL-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _AbWtAFlz="number" _LSXhjPpk="geoLocationRetriesInput" _ctAAufha="_iqTZKBMZ: 80px;"> <span>次</span>
                <div _ctAAufha="display: flex; align-items: center; gap: 5px; margin-_NqiUiPLh: 20px;">
                    <input _AbWtAFlz="checkbox" _LSXhjPpk="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-_ZZesRfxd" _TcYqzPgL-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_FmFgLerq:_wUcuAeOY' 或 '_FmFgLerq'。">?</span></div>
            <div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="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-_ZZesRfxd" _TcYqzPgL-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _LSXhjPpk="websocketStreamerGroup" _ctAAufha="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="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-_ZZesRfxd" _TcYqzPgL-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="启用 /_BcVdQLAm 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _LSXhjPpk="apiConfigGroup" _ctAAufha="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="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-_ZZesRfxd" _TcYqzPgL-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _LSXhjPpk="customSubPathGroup" _ctAAufha="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="customSubPathInput" _QUzcAMBN="例如: 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-_ZZesRfxd" _TcYqzPgL-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _ctAAufha="justify-_VPXKlmdE: flex-start;"><input _AbWtAFlz="checkbox" _LSXhjPpk="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _LSXhjPpk="visitorPasswordGroup" _ctAAufha="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ctAAufha="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_ZZesRfxd" _TcYqzPgL-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _ctAAufha="flex-direction: column; align-items: stretch; gap: 8px;"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="botTokenInput" _QUzcAMBN="Telegram Bot Token"><input _AbWtAFlz="_ANodCKil" _LSXhjPpk="chatIdInput" _QUzcAMBN="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ctAAufha="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _ctAAufha="flex-direction: column; align-items: stretch; gap: 8px;"><input _AbWtAFlz="_AFCpTXpv" _LSXhjPpk="oldPasswordInput" _QUzcAMBN="旧密码"><input _AbWtAFlz="_AFCpTXpv" _LSXhjPpk="newPasswordInput" _QUzcAMBN="新密码 (至少6位)"><button _LSXhjPpk="changePasswordBtn" class="btn" _ctAAufha="align-self: flex-start; margin-_NqiUiPLh: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _LSXhjPpk="closeModalBtn" class="btn btn-outline">关闭</button><button _LSXhjPpk="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _LSXhjPpk="_PNgaFnXp">
      <div class="_UShohUMT-modal-_VPXKlmdE">
          <div class="_UShohUMT-modal-_XupMPSxH"><h3 _LSXhjPpk="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_UShohUMT-modal-_uLVPUhBk" _LSXhjPpk="appModalBody"></div>
      </div>
  </div>
  <div _LSXhjPpk="_OGLzbbjO">
      <div class="modal-_VPXKlmdE">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _TcYqzPgL-sub-_AbWtAFlz="coreEngine">Xray</button><button class="btn _tQSknOHX-btn" _TcYqzPgL-sub-_AbWtAFlz="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _TcYqzPgL-sub-_AbWtAFlz="coreProfile">Sing-Box</button><button class="btn _tQSknOHX-btn" _TcYqzPgL-sub-_AbWtAFlz="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _TcYqzPgL-sub-_AbWtAFlz="configProfile">Clash</button><button class="btn _tQSknOHX-btn" _TcYqzPgL-sub-_AbWtAFlz="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _TcYqzPgL-sub-_AbWtAFlz="policyProfile">Surge</button><button class="btn _tQSknOHX-btn" _TcYqzPgL-sub-_AbWtAFlz="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _ctAAufha="justify-_VPXKlmdE: center;"><button class="btn btn-outline" _LSXhjPpk="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _LSXhjPpk="_EFWvEcLU">
      <div class="modal-_VPXKlmdE">
          <img _LSXhjPpk="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _oCwQCJXx = {
        isValid: (_BcVdQLAm) => _oCwQCJXx.isIPv4(_BcVdQLAm) || _oCwQCJXx.isIPv6(_BcVdQLAm),
        isIPv4: (_BcVdQLAm) => {
            if (typeof _BcVdQLAm !== 'string') return false;
            const _ygIMngiC = _BcVdQLAm.split('.');
            if (_ygIMngiC._LFlZWewk !== 4) return false;
            return _ygIMngiC.every(_EItjThJU => {
                const _uOcozluO = parseInt(_EItjThJU, 10);
                return !isNaN(_uOcozluO) && _uOcozluO >= 0 && _uOcozluO <= 255 && String(_uOcozluO) === _EItjThJU;
            });
        },
        isIPv6: (_BcVdQLAm) => {
            if (typeof _BcVdQLAm !== '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]))$/_zoyRWIdH.test(_BcVdQLAm);
        },
        toLong4: (_BcVdQLAm) => _BcVdQLAm.split('.').reduce((acc, octet, _zoyRWIdH) => acc + (parseInt(octet) << (8*(3-_zoyRWIdH))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_BcVdQLAm) => {
            try {
                const _YhBgKXPF = _BcVdQLAm.split('/')[0];
                const _ygIMngiC = _YhBgKXPF.split('::');
                if (_ygIMngiC._LFlZWewk > 2) return 0n;
                let _lmeBiESy = [];
                if (_ygIMngiC[0]) {
                    _lmeBiESy = _ygIMngiC[0].split(':');
                }
                let _IYfWuKQv = [];
                if (_ygIMngiC._LFlZWewk > 1 && _ygIMngiC[1]) {
                    _IYfWuKQv = _ygIMngiC[1].split(':');
                }
                if (_lmeBiESy._LFlZWewk + _IYfWuKQv._LFlZWewk > 8) return 0n;
                const _TvaSNpjH = 8 - (_lmeBiESy._LFlZWewk + _IYfWuKQv._LFlZWewk);
                const _axvzhPvZ = [
                    ..._lmeBiESy,
                    ...Array(_TvaSNpjH).fill('0'),
                    ..._IYfWuKQv
                ].map(_EItjThJU => _EItjThJU || '0');
                while(_axvzhPvZ._LFlZWewk < 8) {
                    _axvzhPvZ.push('0');
                }
                let _MEfvkzrt = 0n;
                for (const _EItjThJU of _axvzhPvZ) {
                    if (_EItjThJU._LFlZWewk > 4) return 0n;
                    const _jVLvsPoc = BigInt('0x' + _EItjThJU);
                    _MEfvkzrt = (_MEfvkzrt << 16n) | _jVLvsPoc;
                }
                return _MEfvkzrt;
            } catch(_WVvkUBQv) {
                return 0n;
            }
        },
        fromBigInt6: (_MEfvkzrt) => {
            if (typeof _MEfvkzrt !== '_MEfvkzrt' || _MEfvkzrt < 0n) return null;
            const _ygIMngiC = [];
            for (let _zoyRWIdH = 0; _zoyRWIdH < 8; _zoyRWIdH++) {
                _ygIMngiC.unshift((_MEfvkzrt & 0xFFFFn).toString(16));
                _MEfvkzrt >>= 16n;
            }
            let _GJQQqdBM = { start: -1, _vPWuPIzp: 0 };
            let _Jevjrdtg = { start: -1, _vPWuPIzp: 0 };
            for (let _zoyRWIdH = 0; _zoyRWIdH < 8; _zoyRWIdH++) {
                if (_ygIMngiC[_zoyRWIdH] === '0') {
                    if (_Jevjrdtg.start === -1) _Jevjrdtg.start = _zoyRWIdH;
                    _Jevjrdtg._vPWuPIzp++;
                } else {
                    if (_Jevjrdtg._vPWuPIzp > _GJQQqdBM._vPWuPIzp) _GJQQqdBM = { ..._Jevjrdtg };
                    _Jevjrdtg = { start: -1, _vPWuPIzp: 0 };
                }
            }
            if (_Jevjrdtg._vPWuPIzp > _GJQQqdBM._vPWuPIzp) _GJQQqdBM = { ..._Jevjrdtg };
            if (_GJQQqdBM._vPWuPIzp > 1) {
                _ygIMngiC.splice(_GJQQqdBM.start, _GJQQqdBM._vPWuPIzp, '');
                if (_GJQQqdBM.start === 0) _ygIMngiC.unshift('');
                if (_GJQQqdBM.start + _GJQQqdBM._vPWuPIzp === 8) _ygIMngiC.push('');
            }
            return _ygIMngiC.join(':');
        },
        cidrToRange: (cidr, _qWFCUbLZ = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _PfkAitbe = parseInt(bitsStr, 10);
                const _oqpCrGJP = new Set();
                if (_oCwQCJXx.isIPv4(range)) {
                    if (isNaN(_PfkAitbe) || _PfkAitbe < 8 || _PfkAitbe > 32) return [];
                    if (_PfkAitbe === 32) return [range];
                    const _mndMceaB = _oCwQCJXx.toLong4(range);
                    const _CEehHMev = (0xFFFFFFFF << (32 - _PfkAitbe)) >>> 0;
                    const _RAyzmmCF = _mndMceaB & _CEehHMev;
                    const _bJwvjacu = 1 << (32 - _PfkAitbe);
                    if (_bJwvjacu <= 2) return [];
                    const _UaflWlgF = Math.min(_qWFCUbLZ, _bJwvjacu - 2);
                    let _MfDnugCg = 0;
                    while (_oqpCrGJP.size < _UaflWlgF && _MfDnugCg < _UaflWlgF * 5) {
                        const _jbTkpNub = Math.floor(Math.random() * (_bJwvjacu - 2)) + 1;
                        _oqpCrGJP.add(_oCwQCJXx.fromLong4((_RAyzmmCF + _jbTkpNub) >>> 0));
                        _MfDnugCg++;
                    }
                    return Array.from(_oqpCrGJP);
                } else if (_oCwQCJXx.isIPv6(range)) {
                    if (isNaN(_PfkAitbe) || _PfkAitbe < 16 || _PfkAitbe > 128) return [];
                    if (_PfkAitbe === 128) return [range];
                    const _arwHPssk = _oCwQCJXx.toBigInt6(range);
                    const _CEehHMev = (2n ** BigInt(128 - _PfkAitbe) - 1n);
                    const _RAyzmmCF = _arwHPssk & ~_CEehHMev;
                    const _TGmZdJhb = 2n ** BigInt(128 - _PfkAitbe);
                    if (_TGmZdJhb <= 2n) return [];
                    let _MfDnugCg = 0;
                    while (_oqpCrGJP.size < _qWFCUbLZ && _MfDnugCg < _qWFCUbLZ * 5) {
                        const _fBEqmxgr = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_fBEqmxgr);
                        let _AIhIpJSh = 0n;
                        for (const _oYVExInF of _fBEqmxgr) {
                            _AIhIpJSh = (_AIhIpJSh << 8n) | BigInt(_oYVExInF);
                        }
                        const _jbTkpNub = _AIhIpJSh % (_TGmZdJhb - 2n) + 1n;
                        _oqpCrGJP.add(_oCwQCJXx.fromBigInt6(_RAyzmmCF + _jbTkpNub));
                        _MfDnugCg++;
                    }
                    return Array.from(_oqpCrGJP);
                }
                return [];
            } catch(_WVvkUBQv) {
                console.error(`CIDR to range failed for ${cidr}:`, _WVvkUBQv);
                return [];
            }
        }
    };
    function _ltxdfUwC(_iwKUyuiR, _RBWAsPWL) {
        const _XMJklDqo = {};
        const _AoWkCiCI = Object._AoWkCiCI(_RBWAsPWL);
        const _ygIMngiC = _AoWkCiCI.map(_ICLvekXw => {
            const _czjAwgxA = _iwKUyuiR * (_RBWAsPWL[_ICLvekXw] / 100);
            return { _ICLvekXw, _qWFCUbLZ: Math.floor(_czjAwgxA), remainder: _czjAwgxA - Math.floor(_czjAwgxA) };
        });
        let _QbJWVwzP = _ygIMngiC.reduce((acc, _EItjThJU) => acc + _EItjThJU._qWFCUbLZ, 0);
        _ygIMngiC.sort((a, b) => b.remainder - a.remainder);
        let _TxHtULgR = _iwKUyuiR - _QbJWVwzP;
        for (let _zoyRWIdH = 0; _zoyRWIdH < _TxHtULgR; _zoyRWIdH++) {
            _ygIMngiC[_zoyRWIdH % _ygIMngiC._LFlZWewk]._qWFCUbLZ++;
        }
        for (const _EItjThJU of _ygIMngiC) {
            _XMJklDqo[_EItjThJU._ICLvekXw] = _EItjThJU._qWFCUbLZ;
        }
        return _XMJklDqo;
    }
    const _yAJilWCs = __PAGE_DATA_JSON__;
    const _tGUJUtcb = _yAJilWCs._vXpEJhzw;
    const _fbMXGJzf = _yAJilWCs.status;
    const _MOrCLroG = __ALL_CF_CIDR_LIST_JSON__;
    const _vuyiFInG = __BALANCED_CF_CIDR_LIST_JSON__;
    const _yMjODJzi = __DEFAULT_DOMAINS_LIST_JSON__;
    const _MIURFruO = __COUNTRY_MAP_JSON__;
    const _zCyKENRP = _MIURFruO;
    const _lCBxlfdJ = 2500;
    const _fMEfKxZu = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _cRSNAgVZ = document.getElementById('_cRSNAgVZ');
    const _gUrPFwmS = document.getElementById('_gUrPFwmS');
    const _vbXpUNeI = document.getElementById('status');
    const _XlBlzKAQ = document.getElementById('_XlBlzKAQ');
    const _LfpMNunQ = document.getElementById('resultsTable').querySelector('tbody');
    const _feMEHzwA = document.getElementById('_feMEHzwA');
    const _NsTmCMIx = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _huzFlKSc = document.getElementById('notificationTooltip');
    const _lhkJyDaw = document.getElementById('_lhkJyDaw');
    const _LwzxSTyx = document.getElementById('_LwzxSTyx');
    const _PNgaFnXp = document.getElementById('_PNgaFnXp');
    const _OGLzbbjO = document.getElementById('_OGLzbbjO');
    const _EFWvEcLU = document.getElementById('_EFWvEcLU');
    const _bNmFASTy = document.getElementById('_bNmFASTy');
    const _WpuqoSjv = document.getElementById('_WpuqoSjv');
    let _yXbsmtte = null;
    let _fIIBrFfd = null;
    let _bXyGaYUv = [];
    let _GKGptwHw = false;
    let _FlpTCDJe = null;
    function _yIbUSUQb(_ZjMMYmzM, _iPhMzDyb) {
        const _icaNgLSf=parseInt(_ZjMMYmzM.slice(1),16),t=_iPhMzDyb<0?0:255,p=_iPhMzDyb<0?_iPhMzDyb*-1:_iPhMzDyb,R=_icaNgLSf>>16,G=_icaNgLSf>>8&0x00FF,B=_icaNgLSf&0x0000FF;
        const _PvgPLYdT = Math.round((t-R)*p)+R;
        const _tlwjXwZo = Math.round((t-G)*p)+G;
        const _aqifnRLX = Math.round((t-B)*p)+B;
        return `rgb(${_PvgPLYdT.toString()}, ${_tlwjXwZo.toString()}, ${_aqifnRLX.toString()})`;
    }
    function _hpIaWPaP(_FFzGOKif) {
        const _ysjHUgEu = _NqIHMhSU(_FFzGOKif.primaryColor);
        if(_ysjHUgEu) {
            document.documentElement._ctAAufha.setProperty('--primary-_vwIemexU-rgb', `${_ysjHUgEu.r},${_ysjHUgEu.g},${_ysjHUgEu.b}`);
        }
        document.documentElement._ctAAufha.setProperty('--primary-_vwIemexU', _FFzGOKif.primaryColor);
        document.documentElement._ctAAufha.setProperty('--primary-hover', _yIbUSUQb(_FFzGOKif.primaryColor, -0.1));
        document.documentElement._ctAAufha.setProperty('--primary-gradient-start', _yIbUSUQb(_FFzGOKif.primaryColor, 0.1));
        document.documentElement._ctAAufha.setProperty('--primary-gradient-end', _yIbUSUQb(_FFzGOKif.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _FFzGOKif.texts.title;
        document.title = _FFzGOKif.texts.title;
        _lhkJyDaw.innerText = _yXbsmtte ? _FFzGOKif.texts.loginButtonSuccess : _FFzGOKif.texts.loginButton;
        _lhkJyDaw._ctAAufha._vwIemexU = _FFzGOKif.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _FFzGOKif.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _FFzGOKif.texts.liveTitle;
        document.getElementById('liveTitleEl')._ctAAufha._vwIemexU = _FFzGOKif.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _FFzGOKif.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._ctAAufha._vwIemexU = _FFzGOKif.colors.cachedTitle;
        const _jgBuQvlC = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _jgBuQvlC.forEach((_LSXhjPpk, _FCoBBJdN) => {
            const _GmWSyTqN = document.getElementById(_LSXhjPpk);
            if (_GmWSyTqN) _GmWSyTqN.innerText = _FFzGOKif.texts[`tableHeader${_FCoBBJdN + 1}`] || '';
        });
        const _UuyZAkIe = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _UuyZAkIe.forEach((_LSXhjPpk, _FCoBBJdN) => {
             const _GmWSyTqN = document.getElementById(_LSXhjPpk);
             if (_GmWSyTqN) _GmWSyTqN.innerText = _tGUJUtcb.texts[`tableHeader${_FCoBBJdN + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._ctAAufha._vwIemexU = _FFzGOKif.colors.tableHeader);
        document._uLVPUhBk.className = '';
        document._uLVPUhBk.classList.add(_FFzGOKif.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_FFzGOKif.theme)) {
            document._uLVPUhBk.classList.add('glassy-components');
        }
        document._uLVPUhBk._ctAAufha.backgroundImage = '';
        _kTmNUdxe();
        if (_FFzGOKif.theme.includes('particles') || _FFzGOKif.theme.includes('glass')) {
            _vlFdEBHe(_FFzGOKif.particleColor);
        } else if (_FFzGOKif.theme.includes('bing')) {
            document._uLVPUhBk._ctAAufha.backgroundImage = '_OjAsMgfW(/bing-wallpaper)';
        }
    }
    function _iIGbyRfk() {
        _yXbsmtte = null;
        if(_fIIBrFfd) clearTimeout(_fIIBrFfd);
        _hpIaWPaP(_tGUJUtcb);
        _UExzZLda("登录已超时,请重新登录。", "warning");
    }
    async function _mGITdDCf() {
        if (_yXbsmtte) {
            _dcqeeadU();
            return;
        }
        const _aCSNMLjT = prompt('请输入管理员密码:');
        if (!_aCSNMLjT) return;
        try {
            const _cxZNPbtJ = await fetch('/api/verify-_AFCpTXpv', {
                method: 'POST',
                _jgBuQvlC: { 'Content-Type': 'application/json' },
                _uLVPUhBk: JSON.stringify({ _AFCpTXpv: _aCSNMLjT })
            });
            const _ZwEuDWAe = await _cxZNPbtJ.json();
            if (_ZwEuDWAe.success) {
                _yXbsmtte = _aCSNMLjT;
                _UExzZLda("登录成功!有效期5分钟。", "success");
                if (_fIIBrFfd) clearTimeout(_fIIBrFfd);
                _fIIBrFfd = setTimeout(_iIGbyRfk, 5 * 60 * 1000);
                _hpIaWPaP(_tGUJUtcb);
                _dcqeeadU();
            } else {
                throw new Error(_ZwEuDWAe._ORsTYVew || '密码验证失败');
            }
        } catch (_WVvkUBQv) {
            _UExzZLda(`登录失败: ${_WVvkUBQv._ORsTYVew}`, "error");
        }
    }
    function _LnlbFPSp() {
        if (!_fbMXGJzf._iOdXKLoz) {
            _bNmFASTy._ctAAufha.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _AFCpTXpv = document.getElementById('initialPassword')._jVLvsPoc;
                const _oIMzumwA = document.getElementById('confirmPassword')._jVLvsPoc;
                if (_AFCpTXpv !== _oIMzumwA) {
                    _UExzZLda("两次输入的密码不一致!", "error");
                    return;
                }
                if (_AFCpTXpv._LFlZWewk < 6) {
                    _UExzZLda("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _cxZNPbtJ = await fetch('/api/_JSheqDrW-_AFCpTXpv', {
                        method: 'POST',
                        _jgBuQvlC: { 'Content-Type': 'application/json' },
                        _uLVPUhBk: JSON.stringify({ _AFCpTXpv })
                    });
                    const _ZwEuDWAe = await _cxZNPbtJ.json();
                    if (_ZwEuDWAe.success) {
                        _UExzZLda(_ZwEuDWAe._ORsTYVew, "success");
                        setTimeout(() => _voOLYFdE.reload(), 1500);
                    } else {
                        throw new Error(_ZwEuDWAe._ORsTYVew);
                    }
                } catch(_WVvkUBQv) {
                    _UExzZLda(`设置密码失败: ${_WVvkUBQv._ORsTYVew}`, "error");
                }
            });
            return;
        }
        _lhkJyDaw.addEventListener('click', _mGITdDCf);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _LwzxSTyx._ctAAufha.display = 'none'; });
        _LwzxSTyx.addEventListener('click', (_WVvkUBQv) => { if (_WVvkUBQv.target === _LwzxSTyx) _LwzxSTyx._ctAAufha.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_kORxOamm .fine-grained-_WHtvpmzp-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-_kORxOamm .fine-grained-_WHtvpmzp-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_yXbsmtte) {
                _UExzZLda("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _CPfixZRn = [];
            document.querySelectorAll('#custom-fields-_kORxOamm .custom-field-_GTfWjals').forEach(_GTfWjals => {
                const _TpTBpADN = _GTfWjals.querySelector('.custom-field-_TpTBpADN')._jVLvsPoc.trim();
                const _jVLvsPoc = _GTfWjals.querySelector('.custom-field-_jVLvsPoc')._jVLvsPoc.trim();
                if (_TpTBpADN) _CPfixZRn.push({ _TpTBpADN, _jVLvsPoc });
            });
            const _QxTHRutC = [];
            document.querySelectorAll('#parameter-sets-_kORxOamm .parameter-_JSheqDrW-_GTfWjals').forEach(_GTfWjals => {
                const _TpTBpADN = _GTfWjals.querySelector('.param-_JSheqDrW-_TpTBpADN')._jVLvsPoc.trim();
                const _FmFgLerq = _GTfWjals.querySelector('.param-_JSheqDrW-_FmFgLerq')._jVLvsPoc.trim();
                const _JYrGqVQM = _GTfWjals.querySelector('.param-_JSheqDrW-_JYrGqVQM')._jVLvsPoc.trim();
                const _eNXPeMNh = _GTfWjals.querySelector('.param-_JSheqDrW-_eNXPeMNh')._jVLvsPoc.trim();
                if(_TpTBpADN) _QxTHRutC.push({ _TpTBpADN, _FmFgLerq, '_JYrGqVQM': _JYrGqVQM, _eNXPeMNh });
            });
            const _FcnRHEcA = [];
            document.querySelectorAll('#fine-grained-sources-_kORxOamm .fine-grained-_RkqyAnzQ-_GTfWjals').forEach(_GTfWjals => {
                const _voOLYFdE = _GTfWjals.querySelector('.fine-grained-_voOLYFdE')._jVLvsPoc.trim();
                const _oqpCrGJP = _GTfWjals.querySelector('.fine-grained-_oqpCrGJP')._jVLvsPoc.trim();
                const _WHtvpmzp = _GTfWjals.querySelector('.fine-grained-_WHtvpmzp-cb').checked;
                const _VVsLKSdl = parseInt(_GTfWjals.querySelector('.fine-grained-_VVsLKSdl')._jVLvsPoc, 10) || 0;
                const _nacvVYKC = _GTfWjals.querySelector('.use-_TpTBpADN-as-_voOLYFdE-cb').checked;
                if (_voOLYFdE && _oqpCrGJP) {
                    _FcnRHEcA.push({ _voOLYFdE, _oqpCrGJP, _WHtvpmzp, _VVsLKSdl, _nacvVYKC });
                }
            });
            
            let _dtGPLGMJ = parseInt(document.getElementById('subscriptionIdLength')._jVLvsPoc, 10);
            if (isNaN(_dtGPLGMJ) || _dtGPLGMJ < 2) _dtGPLGMJ = 2;
            if (_dtGPLGMJ > 128) _dtGPLGMJ = 128;

            const _ZTcmKHEL = {
                theme: document.getElementById('themeSelect')._jVLvsPoc,
                primaryColor: document.getElementById('primaryColorInput')._jVLvsPoc,
                particleColor: document.getElementById('particleColorInput')._jVLvsPoc,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._jVLvsPoc,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._jVLvsPoc, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._jVLvsPoc, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._jVLvsPoc, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._jVLvsPoc, 10) || 0,
                _cEWxDwqW: document.getElementById('converterServiceUrlInput')._jVLvsPoc.trim(),
                subscriptionId: {
                    _LFlZWewk: _dtGPLGMJ,
                    _CmRWbkul: document.getElementById('subscriptionIdCharset')._jVLvsPoc.trim()
                },
                api: {
                    _WHtvpmzp: document.getElementById('enableApiCheckbox').checked,
                    _ORsTYVew: document.getElementById('apiMessageInput')._jVLvsPoc || '维护中...',
                },
                ispFilter: { 
                    _WHtvpmzp: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._jVLvsPoc, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _WHtvpmzp: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _WHtvpmzp: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _OjAsMgfW: document.getElementById('websocketStreamerUrlInput')._jVLvsPoc.trim()
                },
                visitorPassword: {
                    _WHtvpmzp: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _AFCpTXpv: document.getElementById('visitorPasswordInput')._jVLvsPoc.trim()
                },
                customSubPath: {
                    _WHtvpmzp: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _eNXPeMNh: document.getElementById('customSubPathInput')._jVLvsPoc.trim()
                },
                itemLink: {
                    _WHtvpmzp: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._jVLvsPoc,
                    selectionMode: document.getElementById('parameterSelectionMode')._jVLvsPoc,
                    _QxTHRutC: _QxTHRutC,
                    _CPfixZRn: _CPfixZRn,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._jVLvsPoc.trim(),
                },
                announcement: {
                    popup: {
                        _WHtvpmzp: document.getElementById('enablePopup').checked,
                        _ANodCKil: document.getElementById('announcementText')._jVLvsPoc,
                        _VFXqSiSW: parseInt(document.getElementById('popupDuration')._jVLvsPoc, 10) || 5
                    },
                    marquee: {
                        _WHtvpmzp: document.getElementById('enableMarquee').checked,
                        _ANodCKil: document.getElementById('announcementText')._jVLvsPoc
                    }
                },
                fineGrained: {
                    _WHtvpmzp: true,
                    sources: _FcnRHEcA
                },
                customNodes: {
                    _WHtvpmzp: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._jVLvsPoc
                },
                texts: {
                    title: document.getElementById('textInput_title')._jVLvsPoc,
                    loginButton: document.getElementById('textInput_loginButton')._jVLvsPoc,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._jVLvsPoc,
                    liveTitle: document.getElementById('textInput_liveTitle')._jVLvsPoc,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._jVLvsPoc,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._jVLvsPoc,
                    loginButton: document.getElementById('colorInput_loginButton')._jVLvsPoc,
                    liveTitle: document.getElementById('colorInput_liveTitle')._jVLvsPoc,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._jVLvsPoc,
                    tableHeader: document.getElementById('colorInput_tableHeader')._jVLvsPoc,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._jVLvsPoc.trim(),
                    chat_id: document.getElementById('chatIdInput')._jVLvsPoc.trim(),
                },
            };
            try {
                const _cxZNPbtJ = await fetch('/api/_vXpEJhzw', {
                    method: 'POST',
                    _jgBuQvlC: { 'Content-Type': 'application/json' },
                    _uLVPUhBk: JSON.stringify({ _vXpEJhzw: _ZTcmKHEL, adminPassword: _yXbsmtte })
                });
                const _ZwEuDWAe = await _cxZNPbtJ.json();
                if (_cxZNPbtJ.ok && _ZwEuDWAe.success) {
                    _UExzZLda("配置已保存,正在刷新...", "success");
                    setTimeout(() => _voOLYFdE.reload(), 1500);
                } else {
                    throw new Error(_ZwEuDWAe._ORsTYVew || '未知错误');
                }
            } catch (_WVvkUBQv) {
                _UExzZLda(`操作失败: ${_WVvkUBQv._ORsTYVew}`, "error");
                if (String(_WVvkUBQv._ORsTYVew).includes("密码错误")) {
                    _iIGbyRfk();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _jgGSemXL = document.getElementById('oldPasswordInput')._jVLvsPoc;
            const _xUrQAUXG = document.getElementById('newPasswordInput')._jVLvsPoc;
            if (!_jgGSemXL || !_xUrQAUXG) {
                _UExzZLda("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _cxZNPbtJ = await fetch('/api/change-_AFCpTXpv', {
                    method: 'POST',
                    _jgBuQvlC: { 'Content-Type': 'application/json' },
                    _uLVPUhBk: JSON.stringify({ _jgGSemXL, _xUrQAUXG })
                });
                const _ZwEuDWAe = await _cxZNPbtJ.json();
                if (_ZwEuDWAe.success) {
                    _UExzZLda(_ZwEuDWAe._ORsTYVew, "success");
                    document.getElementById('oldPasswordInput')._jVLvsPoc = '';
                    document.getElementById('newPasswordInput')._jVLvsPoc = '';
                    _yXbsmtte = _xUrQAUXG;
                } else {
                    throw new Error(_ZwEuDWAe._ORsTYVew);
                }
            } catch(_WVvkUBQv) {
                _UExzZLda(`修改密码失败: ${_WVvkUBQv._ORsTYVew}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('resolvedDomainsGroup')._ctAAufha.display = _WVvkUBQv.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('customNodesGroup')._ctAAufha.display = _WVvkUBQv.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('apiConfigGroup')._ctAAufha.display = _WVvkUBQv.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('itemLinkConfigGroup')._ctAAufha.display = _WVvkUBQv.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('websocketStreamerGroup')._ctAAufha.display = _WVvkUBQv.target.checked ? 'block' : 'none';
            const _UKRecpKE = document.querySelector('#parameter-sets-_kORxOamm .param-_JSheqDrW-_eNXPeMNh');
            if (_UKRecpKE) {
                if (_WVvkUBQv.target.checked) {
                    _UKRecpKE._jVLvsPoc = '/snippets?_BcVdQLAm=endpointAddress:_wUcuAeOY(443)&nat64=6to4';
                } else {
                    _UKRecpKE._jVLvsPoc = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _tiLzwnLr('', '');
        });
        document.getElementById('add-parameter-_JSheqDrW-btn').addEventListener('click', () => {
            const _qWFCUbLZ = document.querySelectorAll('.parameter-_JSheqDrW-_GTfWjals')._LFlZWewk + 1;
            _SwfJxYAB({_TpTBpADN: `配置${_qWFCUbLZ}`, _FmFgLerq: '', _JYrGqVQM: '', _eNXPeMNh: ''});
            _ddqZsOem();
        });
         document.getElementById('add-fine-grained-_RkqyAnzQ-btn').addEventListener('click', () => {
             _gbprkefa({ _voOLYFdE: '', _oqpCrGJP: '', _WHtvpmzp: true, _VVsLKSdl: 50, _nacvVYKC: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('visitorPasswordGroup')._ctAAufha.display = _WVvkUBQv.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('customSubPathGroup')._ctAAufha.display = _WVvkUBQv.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_WVvkUBQv) => {
            document.getElementById('popupDurationContainer')._ctAAufha.display = _WVvkUBQv.target.checked ? 'flex' : 'none';
        });
    }
    function _tiLzwnLr(_TpTBpADN, _jVLvsPoc) {
        const _kORxOamm = document.getElementById('custom-fields-_kORxOamm');
        const _fgpJdBbL = document.createElement('div');
        _fgpJdBbL.className = 'form-grid custom-field-_GTfWjals';
        _fgpJdBbL._ctAAufha = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _fgpJdBbL.innerHTML = `
            <input _AbWtAFlz="_ANodCKil" class="custom-field-_TpTBpADN" _QUzcAMBN="占位符名称" _jVLvsPoc="${_TpTBpADN}">
            <input _AbWtAFlz="_ANodCKil" class="custom-field-_jVLvsPoc" _QUzcAMBN="值" _jVLvsPoc="${_jVLvsPoc}">
            <button _AbWtAFlz="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _kORxOamm.appendChild(_fgpJdBbL);
    }
    function _SwfJxYAB(_JSheqDrW) {
        const _kORxOamm = document.getElementById('parameter-sets-_kORxOamm');
        const _fgpJdBbL = document.createElement('div');
        _fgpJdBbL.className = 'parameter-_JSheqDrW-_GTfWjals';
        _fgpJdBbL.innerHTML = `
            <div class="parameter-_JSheqDrW-_XupMPSxH">
                <input _AbWtAFlz="_ANodCKil" class="param-_JSheqDrW-_TpTBpADN" _QUzcAMBN="配置名称" _jVLvsPoc="${_JSheqDrW._TpTBpADN}" oninput="_ddqZsOem()">
                <button _AbWtAFlz="button" class="btn btn-outline" onclick="this.closest('.parameter-_JSheqDrW-_GTfWjals').remove(); _ddqZsOem();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" class="param-_JSheqDrW-_FmFgLerq" _jVLvsPoc="${_JSheqDrW._FmFgLerq || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" class="param-_JSheqDrW-_JYrGqVQM" _jVLvsPoc="${_JSheqDrW['_JYrGqVQM'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _AbWtAFlz="_ANodCKil" class="param-_JSheqDrW-_eNXPeMNh" _jVLvsPoc="${_JSheqDrW._eNXPeMNh || ''}"></div>
            </div>
        `;
        _kORxOamm.appendChild(_fgpJdBbL);
    }
    function _ddqZsOem() {
        const _bGDNKhvY = document.getElementById('parameterSelectionMode');
        const _wgqxIahW = _bGDNKhvY._jVLvsPoc;
        _bGDNKhvY.innerHTML = '';
        const _ZbEBerYe = document.createElement('_xoeodoRW');
        _ZbEBerYe._jVLvsPoc = 'random';
        _ZbEBerYe.textContent = '随机轮询';
        _bGDNKhvY.appendChild(_ZbEBerYe);
        const _BSFEBZAw = document.createElement('_xoeodoRW');
        _BSFEBZAw._jVLvsPoc = 'first';
        _BSFEBZAw.textContent = '使用第一组';
        _bGDNKhvY.appendChild(_BSFEBZAw);
        document.querySelectorAll('.param-_JSheqDrW-_TpTBpADN').forEach(input => {
            const _TpTBpADN = input._jVLvsPoc.trim();
            if (_TpTBpADN) {
                const _xoeodoRW = document.createElement('_xoeodoRW');
                _xoeodoRW._jVLvsPoc = _TpTBpADN;
                _xoeodoRW.textContent = `指定: ${_TpTBpADN}`;
                _bGDNKhvY.appendChild(_xoeodoRW);
            }
        });
        if (Array.from(_bGDNKhvY.options).some(opt => opt._jVLvsPoc === _wgqxIahW)) {
            _bGDNKhvY._jVLvsPoc = _wgqxIahW;
        } else {
            _bGDNKhvY._jVLvsPoc = 'random';
        }
    }
    function _gbprkefa(_RkqyAnzQ) {
        const _kORxOamm = document.getElementById('fine-grained-sources-_kORxOamm');
        const _fgpJdBbL = document.createElement('div');
        _fgpJdBbL.className = 'fine-grained-_RkqyAnzQ-_GTfWjals parameter-_JSheqDrW-_GTfWjals';
        _fgpJdBbL._ctAAufha.padding = '1rem';
        const _dozNcJiE = _RkqyAnzQ._nacvVYKC ? 'checked' : '';
        const _dJsGNEUH = !_RkqyAnzQ._nacvVYKC ? 'checked' : '';
        const _YQYGgrtw = _RkqyAnzQ._WHtvpmzp ? 'checked' : '';
        _fgpJdBbL.innerHTML = `
            <div _ctAAufha="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _AbWtAFlz="_ANodCKil" class="fine-grained-_voOLYFdE" _QUzcAMBN="地区名称 (如: 香港)" _jVLvsPoc="${_RkqyAnzQ._voOLYFdE || ''}">
                <div _ctAAufha="display: flex; align-items: center; gap: 5px;"><input _AbWtAFlz="checkbox" class="fine-grained-_WHtvpmzp-cb" ${_YQYGgrtw}><label>启用</label></div>
                <button _AbWtAFlz="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_RkqyAnzQ-_GTfWjals').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_oqpCrGJP" _QUzcAMBN="IP源 (每行一个IP、CIDR或URL)" _knMsIuhz="3" _ctAAufha="_iqTZKBMZ:100%;">${_RkqyAnzQ._oqpCrGJP || ''}</textarea>
            <div class="fine-grained-options" _ctAAufha="justify-_VPXKlmdE: space-between;">
                <div _ctAAufha="display: flex; gap: 1rem;">
                    <label><input _AbWtAFlz="checkbox" class="query-_DJewlrxy-cb" ${_dJsGNEUH}>查询真实归属地</label>
                    <label><input _AbWtAFlz="checkbox" class="use-_TpTBpADN-as-_voOLYFdE-cb" ${_dozNcJiE}>使用地区名称作为归属地</label>
                </div>
                <div _ctAAufha="display: flex; align-items: center; gap: 5px;"><input _AbWtAFlz="number" class="fine-grained-_VVsLKSdl _VVsLKSdl-input" _jVLvsPoc="${_RkqyAnzQ._VVsLKSdl || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _vjRnwfXF = _fgpJdBbL.querySelector('.query-_DJewlrxy-cb');
        const _iTiaumWH = _fgpJdBbL.querySelector('.use-_TpTBpADN-as-_voOLYFdE-cb');
        _vjRnwfXF.addEventListener('change', () => {
            if (_vjRnwfXF.checked) {
                _iTiaumWH.checked = false;
            } else if (!_iTiaumWH.checked) {
                _vjRnwfXF.checked = true;
            }
        });
        _iTiaumWH.addEventListener('change', () => {
            if (_iTiaumWH.checked) {
                _vjRnwfXF.checked = false;
            } else if (!_iTiaumWH.checked) {
                _iTiaumWH.checked = true;
            }
        });
        _kORxOamm.appendChild(_fgpJdBbL);
    }
    function _dcqeeadU() {
        const _FFzGOKif = _tGUJUtcb;
        document.getElementById('themeSelect')._jVLvsPoc = _FFzGOKif.theme;
        document.getElementById('primaryColorInput')._jVLvsPoc = _FFzGOKif.primaryColor;
        document.getElementById('particleColorInput')._jVLvsPoc = _FFzGOKif.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _FFzGOKif.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._QUzcAMBN = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._jVLvsPoc = _FFzGOKif.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._ctAAufha.display = _FFzGOKif.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _FFzGOKif.customNodes._WHtvpmzp;
        document.getElementById('customNodesInput')._jVLvsPoc = _FFzGOKif.customNodes.list || '';
        document.getElementById('customNodesGroup')._ctAAufha.display = _FFzGOKif.customNodes._WHtvpmzp ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._jVLvsPoc = _FFzGOKif._cEWxDwqW || '';
        document.getElementById('subscriptionIdLength')._jVLvsPoc = _FFzGOKif.subscriptionId._LFlZWewk;
        document.getElementById('subscriptionIdCharset')._jVLvsPoc = _FFzGOKif.subscriptionId._CmRWbkul;
        document.getElementById('enableItemLinkCheckbox').checked = _FFzGOKif.itemLink._WHtvpmzp;
        document.getElementById('itemLinkConfigGroup')._ctAAufha.display = _FFzGOKif.itemLink._WHtvpmzp ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._jVLvsPoc = _FFzGOKif.itemLink.template;
        const _NIWIIxYQ = document.getElementById('parameter-sets-_kORxOamm');
        _NIWIIxYQ.innerHTML = '';
        if (_FFzGOKif.itemLink._QxTHRutC && Array.isArray(_FFzGOKif.itemLink._QxTHRutC)) {
            _FFzGOKif.itemLink._QxTHRutC.forEach(_JSheqDrW => _SwfJxYAB(_JSheqDrW));
        }
        _ddqZsOem();
        document.getElementById('parameterSelectionMode')._jVLvsPoc = _FFzGOKif.itemLink.selectionMode || 'random';
        const _UKRecpKE = document.querySelector('#parameter-sets-_kORxOamm .param-_JSheqDrW-_eNXPeMNh');
        if (_UKRecpKE && _FFzGOKif.websocketStreamer && _FFzGOKif.websocketStreamer._WHtvpmzp) {
            _UKRecpKE._jVLvsPoc = '/snippets?_BcVdQLAm=endpointAddress:_wUcuAeOY(443)&nat64=6to4';
        }
        const _ObzhWdYv = document.getElementById('custom-fields-_kORxOamm');
        _ObzhWdYv.innerHTML = '';
        if (_FFzGOKif.itemLink._CPfixZRn && Array.isArray(_FFzGOKif.itemLink._CPfixZRn)) {
            _FFzGOKif.itemLink._CPfixZRn.forEach(field => _tiLzwnLr(field._TpTBpADN, field._jVLvsPoc));
        }
        document.getElementById('universalFallbackAddressInput')._jVLvsPoc = _FFzGOKif.dataFeeds.universalFallbackAddress || '';
        const _MOMkiEnh = _FFzGOKif.websocketStreamer && _FFzGOKif.websocketStreamer._WHtvpmzp;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _MOMkiEnh;
        document.getElementById('websocketStreamerUrlInput')._jVLvsPoc = _FFzGOKif.websocketStreamer ? _FFzGOKif.websocketStreamer._OjAsMgfW : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._ctAAufha.display = _MOMkiEnh ? 'block' : 'none';
        const _dIKIdrbQ = _FFzGOKif.announcement || {};
        document.getElementById('announcementText')._jVLvsPoc = (_dIKIdrbQ.popup && _dIKIdrbQ.popup._ANodCKil) || (_dIKIdrbQ.marquee && _dIKIdrbQ.marquee._ANodCKil) || '';
        document.getElementById('enableMarquee').checked = _dIKIdrbQ.marquee && _dIKIdrbQ.marquee._WHtvpmzp;
        document.getElementById('enablePopup').checked = _dIKIdrbQ.popup && _dIKIdrbQ.popup._WHtvpmzp;
        document.getElementById('popupDuration')._jVLvsPoc = (_dIKIdrbQ.popup && _dIKIdrbQ.popup._VFXqSiSW) || 5;
        document.getElementById('popupDurationContainer')._ctAAufha.display = (_dIKIdrbQ.popup && _dIKIdrbQ.popup._WHtvpmzp) ? 'flex' : 'none';
        const _syvTjKYl = document.getElementById('fine-grained-sources-_kORxOamm');
        _syvTjKYl.innerHTML = '';
        if (_FFzGOKif.fineGrained.sources && Array.isArray(_FFzGOKif.fineGrained.sources)) {
            _FFzGOKif.fineGrained.sources.forEach(_RkqyAnzQ => _gbprkefa(_RkqyAnzQ));
        }
        document.getElementById('sampleSizeInput')._jVLvsPoc = _FFzGOKif.sampleSize;
        document.getElementById('topNInput')._jVLvsPoc = _FFzGOKif.topN;
        document.getElementById('latencyRangeMinInput')._jVLvsPoc = _FFzGOKif.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._jVLvsPoc = _FFzGOKif.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _FFzGOKif.ispFilter._WHtvpmzp;
        const _DknDdUXH = _FFzGOKif.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._jVLvsPoc = _DknDdUXH.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _DknDdUXH.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _FFzGOKif.streamer._WHtvpmzp;
        document.getElementById('enableApiCheckbox').checked = _FFzGOKif.api._WHtvpmzp;
        document.getElementById('apiConfigGroup')._ctAAufha.display = _FFzGOKif.api._WHtvpmzp ? 'block' : 'none';
        document.getElementById('apiMessageInput')._jVLvsPoc = _FFzGOKif.api._ORsTYVew;
        const _nxXNGxzO = _FFzGOKif.customSubPath && _FFzGOKif.customSubPath._WHtvpmzp;
        document.getElementById('enableCustomSubPathCheckbox').checked = _nxXNGxzO;
        document.getElementById('customSubPathInput')._jVLvsPoc = _FFzGOKif.customSubPath ? _FFzGOKif.customSubPath._eNXPeMNh : 'latest';
        document.getElementById('customSubPathGroup')._ctAAufha.display = _nxXNGxzO ? 'block' : 'none';
        const _TpQvjVqT = _FFzGOKif.visitorPassword && _FFzGOKif.visitorPassword._WHtvpmzp;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _TpQvjVqT;
        document.getElementById('visitorPasswordInput')._jVLvsPoc = _FFzGOKif.visitorPassword ? _FFzGOKif.visitorPassword._AFCpTXpv : '';
        document.getElementById('visitorPasswordGroup')._ctAAufha.display = _TpQvjVqT ? 'block' : 'none';
        document.getElementById('textInput_title')._jVLvsPoc = _FFzGOKif.texts.title;
        document.getElementById('textInput_loginButton')._jVLvsPoc = _FFzGOKif.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._jVLvsPoc = _FFzGOKif.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._jVLvsPoc = _FFzGOKif.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._jVLvsPoc = _FFzGOKif.texts.cachedTitle;
        document.getElementById('colorInput_title')._jVLvsPoc = _FFzGOKif.colors.title;
        document.getElementById('colorInput_loginButton')._jVLvsPoc = _FFzGOKif.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._jVLvsPoc = _FFzGOKif.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._jVLvsPoc = _FFzGOKif.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._jVLvsPoc = _FFzGOKif.colors.tableHeader;
        document.getElementById('botTokenInput')._jVLvsPoc = _FFzGOKif.telegram.bot_token || '';
        document.getElementById('chatIdInput')._jVLvsPoc = _FFzGOKif.telegram.chat_id || '';
        _LwzxSTyx._ctAAufha.display = 'flex';
    }
    function _ZuOtpyBn(_yYOkTcXH) {
        if (window.innerWidth <= 768) {
            const _knMsIuhz = _yYOkTcXH.querySelectorAll('thead tr, tbody tr');
            _knMsIuhz.forEach(_GTfWjals => {
                const _EthFNOGQ = Array.from(_GTfWjals.children);
                const _iKnuwpGe = [
                    _EthFNOGQ[0],
                    _EthFNOGQ[1],
                    _EthFNOGQ[3],
                    _EthFNOGQ[6],
                    _EthFNOGQ[2],
                    _EthFNOGQ[4],
                    _EthFNOGQ[5]
                ];
                _iKnuwpGe.forEach(cell => _GTfWjals.appendChild(cell));
            });
        }
    }
    async function _rcXGRmtn() {
        if (!_fbMXGJzf._iOdXKLoz) {
            _LnlbFPSp();
            return;
        }
        if (_tGUJUtcb.announcement && _tGUJUtcb.announcement.marquee && _tGUJUtcb.announcement.marquee._WHtvpmzp && _tGUJUtcb.announcement.marquee._ANodCKil) {
            const _UuUFmVHl = document.getElementById('marquee-_kORxOamm');
            const _ijhXslQe = document.getElementById('marquee-_ANodCKil');
            const _YvmAKLyw = document.querySelector('.progress-section');
            if (_UuUFmVHl && _ijhXslQe && _YvmAKLyw) {
                _ijhXslQe.innerText = _tGUJUtcb.announcement.marquee._ANodCKil;
                _UuUFmVHl._ctAAufha.display = 'block';
                const _vWILSuDc = () => {
                    _UuUFmVHl._ctAAufha._iqTZKBMZ = `${_YvmAKLyw.offsetWidth}px`;
                    const _XiYVXTHU = _ijhXslQe.offsetWidth;
                    const _EUcVqhYB = _UuUFmVHl.offsetWidth;
                    const _VFXqSiSW = (_XiYVXTHU + _EUcVqhYB) / 100;
                    _ijhXslQe._ctAAufha.animationDuration = `${Math.max(10, _VFXqSiSW)}s`;
                };
                _vWILSuDc();
                window.addEventListener('resize', _vWILSuDc);
            }
        }
        
        _hpIaWPaP(_tGUJUtcb);
        
        if (_tGUJUtcb.announcement && _tGUJUtcb.announcement.popup && _tGUJUtcb.announcement.popup._WHtvpmzp && _tGUJUtcb.announcement.popup._ANodCKil) {
            setTimeout(() => {
                _UExzZLda(_tGUJUtcb.announcement.popup._ANodCKil, 'info', _tGUJUtcb.announcement.popup._VFXqSiSW * 1000);
            }, 500);
        }
        _LnlbFPSp();
        _mDWINyYw();
        _drItNeBN();
        _qLxUkwSX();
        await _BuwrrGQh();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _cWNupOUy = window._voOLYFdE.origin + '/_BcVdQLAm';
            navigator.clipboard.writeText(_cWNupOUy).then(() => {
                _UExzZLda('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_tGUJUtcb.visitorPassword && _tGUJUtcb.visitorPassword._WHtvpmzp) {
            _cRSNAgVZ._ctAAufha.display = 'none';
            const _hmjiyrRH = document.getElementById('visitorPasswordPrompt');
            _hmjiyrRH._ctAAufha.display = 'block';
            const _cRehTlPf = document.getElementById('visitorPasswordEntry');
            const _qlOkBqCw = document.getElementById('startTestWithPasswordBtn');
            const _baUxRxqw = async () => {
                const _AFCpTXpv = _cRehTlPf._jVLvsPoc;
                if (!_AFCpTXpv) {
                    _UExzZLda('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _cxZNPbtJ = await fetch('/api/verify-visitor-_AFCpTXpv', {
                        method: 'POST',
                        _jgBuQvlC: { 'Content-Type': 'application/json' },
                        _uLVPUhBk: JSON.stringify({ _AFCpTXpv })
                    });
                    const _ZwEuDWAe = await _cxZNPbtJ.json();
                    if (_cxZNPbtJ.ok && _ZwEuDWAe.success) {
                        _UExzZLda('验证成功,开始测试...', 'success');
                        _hmjiyrRH._ctAAufha.display = 'none';
                        _cRSNAgVZ._ctAAufha.display = 'block';
                        await _DFEXFBPu();
                    } else {
                        throw new Error(_ZwEuDWAe._ORsTYVew || '密码错误');
                    }
                } catch (_WVvkUBQv) {
                    _UExzZLda(`验证失败: ${_WVvkUBQv._ORsTYVew}`, "error");
                    _cRehTlPf._jVLvsPoc = '';
                    _cRehTlPf.focus();
                }
            };
            _qlOkBqCw.addEventListener('click', _baUxRxqw);
            _cRehTlPf.addEventListener('keypress', (_WVvkUBQv) => {
                if (_WVvkUBQv._ICLvekXw === 'Enter') {
                    _WVvkUBQv.preventDefault();
                    _baUxRxqw();
                }
            });
            _cRehTlPf.focus();
        } else {
            _vbXpUNeI.textContent = "页面加载完成,准备开始测试...";
            await _pDwYBgbo(100);
            await _DFEXFBPu();
        }
    }
    async function _pDwYBgbo(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _NqIHMhSU(_ZjMMYmzM) {
      let _ZwEuDWAe = /^#?([a-_icaNgLSf\d]{2})([a-_icaNgLSf\d]{2})([a-_icaNgLSf\d]{2})$/_zoyRWIdH.exec(_ZjMMYmzM);
      return _ZwEuDWAe ? { r: parseInt(_ZwEuDWAe[1], 16), g: parseInt(_ZwEuDWAe[2], 16), b: parseInt(_ZwEuDWAe[3], 16) } : null;
    }
    async function _ENIzhVAT(_BcVdQLAm) {
        const _DGttpBMM = new AbortController();
        const _eJUiVyzk = setTimeout(() => _DGttpBMM.abort(), _lCBxlfdJ);
        const _wyKHudMr = Date.now();
        try {
            const _GIUaNlLE = _oCwQCJXx.isIPv6(_BcVdQLAm) ? `[${_BcVdQLAm}]` : _BcVdQLAm;
            const _OjAsMgfW = `https://${_GIUaNlLE}/cdn-cgi/trace`;
            await fetch(_OjAsMgfW, {
                signal: _DGttpBMM.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._TpTBpADN === 'AbortError') {
                return { _BcVdQLAm, _uSFviila: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_eJUiVyzk);
        }
        const _uSFviila = Date.now() - _wyKHudMr;
        return { _BcVdQLAm, _uSFviila: _uSFviila, error: null };
    }
    function _eNBTojhK(_ZwEuDWAe, _FCoBBJdN) {
        const { itemLink } = _tGUJUtcb;
        if (!itemLink || !itemLink._WHtvpmzp) return null;
        const { template, _QxTHRutC, selectionMode, _CPfixZRn } = itemLink;
        if (!_QxTHRutC || _QxTHRutC._LFlZWewk === 0) return null;
        let _BqyZEbaw;
        if (selectionMode === 'random') {
            _BqyZEbaw = _QxTHRutC[_FCoBBJdN % _QxTHRutC._LFlZWewk];
        } else if (selectionMode === 'first') {
            _BqyZEbaw = _QxTHRutC[0];
        } else {
            _BqyZEbaw = _QxTHRutC.find(s => s._TpTBpADN === selectionMode) || _QxTHRutC[0];
        }
        if (!_BqyZEbaw) return null;
        let _zPMYsZXG = template;
        const _GZkrYSVR = _ZwEuDWAe._wUcuAeOY || 443;
        const _WmNoRkDZ = _oCwQCJXx.isIPv6(_ZwEuDWAe._BcVdQLAm) ? `[${_ZwEuDWAe._BcVdQLAm}]` : _ZwEuDWAe._BcVdQLAm;
        let _TpTBpADN = `${_FCoBBJdN + 1} 、 ${_ZwEuDWAe._voOLYFdE || '未知'}`;
        if (!_ZwEuDWAe._uUBPoNBv || !_ZwEuDWAe._uUBPoNBv.toLowerCase().includes('cloudflare')) {
            _TpTBpADN += '(反代)';
        }
        let _FmFgLerq = _BqyZEbaw._FmFgLerq || window._voOLYFdE._xOcuTxct;
        _zPMYsZXG = _zPMYsZXG.replace(/{_BcVdQLAm}/g, _WmNoRkDZ)
                   .replace(/{_wUcuAeOY}/g, _GZkrYSVR)
                   .replace(/{_TpTBpADN}/g, encodeURIComponent(_TpTBpADN))
                   .replace(/{rank}/g, _FCoBBJdN + 1)
                   .replace(/{_voOLYFdE}/g, encodeURIComponent(_ZwEuDWAe._voOLYFdE || '未知'))
                   .replace(/{_uUBPoNBv}/g, encodeURIComponent(_ZwEuDWAe._uUBPoNBv || '未知'))
                   .replace(/{_FmFgLerq}/g, encodeURIComponent(_FmFgLerq))
                   .replace(/{_JYrGqVQM}/g, encodeURIComponent(_BqyZEbaw['_JYrGqVQM'] || ''))
                   .replace(/{_eNXPeMNh}/g, encodeURIComponent(encodeURIComponent(_BqyZEbaw._eNXPeMNh || '')));
       if (_CPfixZRn) {
        _CPfixZRn.forEach(field => {
            const _QUzcAMBN = new RegExp('{' + field._TpTBpADN + '}', 'g');
            _zPMYsZXG = _zPMYsZXG.replace(_QUzcAMBN, encodeURIComponent(field._jVLvsPoc));
        });
    }
    return _zPMYsZXG;
    }
    function _ZruTHteZ(_TcYqzPgL, _akLyfwEl, isCached = false) {
        _akLyfwEl.innerHTML = '';
        const _dGyFAfIJ = _TcYqzPgL._dGyFAfIJ || [];
        const _FgwaBdOT = _TcYqzPgL.generatedBy || null;
        const _ZQgNgwHr = isCached ? _feMEHzwA : _XlBlzKAQ;
        const _rUtINAlE = isCached ? (_feMEHzwA.querySelector('.generator-info')) : (_XlBlzKAQ.querySelector('.generator-info'));
        if (_dGyFAfIJ._LFlZWewk === 0) {
            _ZQgNgwHr._ctAAufha.display = 'none';
            if (!isCached) _WpuqoSjv._ctAAufha.display = 'none';
            if (_rUtINAlE) _rUtINAlE.textContent = '';
            return;
        }
        _ZQgNgwHr._ctAAufha.display = 'block';
        if (!isCached && _dGyFAfIJ._LFlZWewk > 0) {
             _WpuqoSjv._ctAAufha.display = 'block';
        }
        if (_rUtINAlE && _FgwaBdOT) {
            _rUtINAlE.innerHTML = `数据来源 ${_FgwaBdOT._BcVdQLAm} (${_FgwaBdOT._voOLYFdE}) <span>${_FgwaBdOT.time}</span>`;
        }
        
        _dGyFAfIJ.forEach((_ZwEuDWAe, _FCoBBJdN) => {
            const _GZkrYSVR = _ZwEuDWAe._wUcuAeOY || 443;
            const _GTfWjals = _akLyfwEl.insertRow();
            _GTfWjals.insertCell().textContent = _FCoBBJdN + 1;
            const _ZDaMTbql = _GTfWjals.insertCell();
            _ZDaMTbql.textContent = _ZwEuDWAe._BcVdQLAm;
            _ZDaMTbql.className = '_BcVdQLAm-_TtJwkdcx';
            _GTfWjals.insertCell().textContent = _GZkrYSVR;
            const _NGNdpRxd = _GTfWjals.insertCell();
            _NGNdpRxd.textContent = (_ZwEuDWAe._uSFviila === Infinity) ? (_ZwEuDWAe.error || '错误') : _ZwEuDWAe._uSFviila;
            _NGNdpRxd.className = 'ping-_jVLvsPoc';
            _GTfWjals.insertCell().textContent = _ZwEuDWAe._voOLYFdE || '未知';
            _GTfWjals.insertCell().textContent = _ZwEuDWAe._uUBPoNBv || '未知';
            const _EWxlCQDd = _GTfWjals.insertCell();
            _EWxlCQDd.className = 'actions-cell';
            const _bmqoNmar = document.createElement('button');
            _bmqoNmar.textContent = '复制IP';
            _bmqoNmar.className = 'btn btn-outline';
            _bmqoNmar.onclick = () => { navigator.clipboard.writeText(_ZwEuDWAe._BcVdQLAm).then(() => _UExzZLda('IP复制成功!', 'success')); };
            if (_tGUJUtcb.itemLink && _tGUJUtcb.itemLink._WHtvpmzp) {
                const _EXlKhyVZ = document.createElement('button');
                _EXlKhyVZ.textContent = '复制节点';
                _EXlKhyVZ.className = 'btn btn-outline';
                _EXlKhyVZ.onclick = () => {
                    const _zPMYsZXG = _eNBTojhK(_ZwEuDWAe, _FCoBBJdN);
                    if (_zPMYsZXG) {
                       navigator.clipboard.writeText(_zPMYsZXG).then(() => _UExzZLda('订阅链接复制成功!', 'success'));
                    }
                };
                _EWxlCQDd.appendChild(_EXlKhyVZ);
            }
            _EWxlCQDd.appendChild(_bmqoNmar);
        });
        _ZuOtpyBn(_akLyfwEl.parentElement);
    }
    async function _DRworkfg(_tZFSVeCR) {
        const _GKLkEXlT = (_tZFSVeCR || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _OLqPSnWk = [];
        const _QKxBqBzm = [];
        const _SwNABjyh = (str) => {
            try {
                const _OjAsMgfW = new URL(str);
                return _OjAsMgfW.protocol === "http:" || _OjAsMgfW.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _PqucnEzM of _GKLkEXlT) {
            if (_SwNABjyh(_PqucnEzM)) {
                _OLqPSnWk.push(_PqucnEzM);
            } else {
                _QKxBqBzm.push(_PqucnEzM);
            }
        }
        let _QCOtKsSF = [];
        if (_OLqPSnWk._LFlZWewk > 0) {
            try {
                const _cxZNPbtJ = await fetch('/api/parse-_oqpCrGJP-from-_OLqPSnWk', {
                    method: 'POST',
                    _jgBuQvlC: { 'Content-Type': 'application/json' },
                    _uLVPUhBk: JSON.stringify({ _OLqPSnWk })
                });
                if (_cxZNPbtJ.ok) {
                    const _TcYqzPgL = await _cxZNPbtJ.json();
                    _QCOtKsSF = _TcYqzPgL._oqpCrGJP || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _cxZNPbtJ._ANodCKil());
                    _UExzZLda('从URL获取IP失败', 'error');
                }
            } catch (_WVvkUBQv) {
                console.error('Error fetching IPs from URLs:', _WVvkUBQv);
                _UExzZLda(`从URL获取IP失败: ${_WVvkUBQv._ORsTYVew}`, 'error');
            }
        }
        return [..._QKxBqBzm, ..._QCOtKsSF];
    }
    async function _DFEXFBPu() {
        _GKGptwHw = false;
        _bXyGaYUv = [];
        _FlpTCDJe = null;
        _WpuqoSjv._ctAAufha.display = 'none';
        _vbXpUNeI.textContent = '准备IP源...';
        _gUrPFwmS._jVLvsPoc = 0;
        _XlBlzKAQ._ctAAufha.display = 'none';
        await _pDwYBgbo();
        const _PBAXkGDP = new Map();
        let _NWMkfjZQ = [];
        const _UMYFWmFY = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_tGUJUtcb.useResolvedDomains) {
            _vbXpUNeI.textContent = '正在从域名解析IP...';
            const _vzxZTGoc = (_tGUJUtcb.resolvedDomains || '').trim();
            const _UkXRQKOC = _vzxZTGoc ? _vzxZTGoc.split(/\s+|\n+/) : _yMjODJzi;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_oqpCrGJP', { method: 'POST', _jgBuQvlC: { 'Content-Type': 'application/json' }, _uLVPUhBk: JSON.stringify({ _UkXRQKOC, _AbWtAFlz: 'A' }) }),
                    fetch('/api/get-resolved-_oqpCrGJP', { method: 'POST', _jgBuQvlC: { 'Content-Type': 'application/json' }, _uLVPUhBk: JSON.stringify({ _UkXRQKOC, _AbWtAFlz: 'AAAA' }) })
                ]);
                let _nDsaWUxY = [];
                if (ipv4Response.ok) _nDsaWUxY.push(...(await ipv4Response._ANodCKil()).split(/\s+|\n+/));
                if (ipv6Response.ok) _nDsaWUxY.push(...(await ipv6Response._ANodCKil()).split(/\s+|\n+/));
                _NWMkfjZQ.push(..._nDsaWUxY.filter(_BcVdQLAm => _BcVdQLAm.trim()).map(_BcVdQLAm => ({ _BcVdQLAm, _wUcuAeOY: null, sourceName: 'resolved' })));
            } catch (_WVvkUBQv) {
                _UExzZLda(`域名解析失败: ${_WVvkUBQv._ORsTYVew}`, 'error');
            }
        }
        const _oyCwZRgG = (_tGUJUtcb.fineGrained.sources || []).filter(s => s._WHtvpmzp);
        if (_oyCwZRgG._LFlZWewk > 0) {
            const _gzmcrLaU = {};
            let _XbXeNQbn = 0;
            _oyCwZRgG.forEach(s => {
                const _gRAkreyn = Number(s._VVsLKSdl) || 0;
                _gzmcrLaU[s._voOLYFdE] = _gRAkreyn;
                _XbXeNQbn += _gRAkreyn;
            });
            if (_XbXeNQbn > 0) {
                Object._AoWkCiCI(_gzmcrLaU).forEach(k => {
                    _gzmcrLaU[k] = (_gzmcrLaU[k] / _XbXeNQbn) * 100;
                });
            } else {
                _oyCwZRgG.forEach(s => _gzmcrLaU[s._voOLYFdE] = 100 / _oyCwZRgG._LFlZWewk);
            }
            const _TFTzXDni = _ltxdfUwC(_tGUJUtcb.sampleSize, _gzmcrLaU);
            for (const _RkqyAnzQ of _oyCwZRgG) {
                const _qWFCUbLZ = _TFTzXDni[_RkqyAnzQ._voOLYFdE];
                if (!_qWFCUbLZ) continue;
                _vbXpUNeI.textContent = `正在处理 [ ${_RkqyAnzQ._voOLYFdE} ] 源...`;
                const _kBzsVSKQ = await _DRworkfg(_RkqyAnzQ._oqpCrGJP);
                if (_RkqyAnzQ._nacvVYKC) {
                    _kBzsVSKQ.forEach(_PqucnEzM => _PBAXkGDP._JSheqDrW(_PqucnEzM, _RkqyAnzQ._voOLYFdE));
                }
                let _WVCrwbPU = [];
                const _RtgfNSmV = Math.ceil(_qWFCUbLZ / (_kBzsVSKQ._LFlZWewk || 1)) || 1;
                for (const _PqucnEzM of _kBzsVSKQ) {
                    if (_UMYFWmFY.test(_PqucnEzM)) {
                        const _lYYCuIix = _oCwQCJXx.cidrToRange(_PqucnEzM, _RtgfNSmV);
                        if (_PBAXkGDP.has(_PqucnEzM)) {
                           _lYYCuIix.forEach(_BcVdQLAm => _PBAXkGDP._JSheqDrW(_BcVdQLAm, _PBAXkGDP.get(_PqucnEzM)));
                        }
                        _WVCrwbPU.push(..._lYYCuIix.map(_BcVdQLAm => ({ _BcVdQLAm, _wUcuAeOY: null })));
                    } else {
                        const _UYKlleKG = _PqucnEzM.lastIndexOf(':');
                        let _BcVdQLAm = _PqucnEzM;
                        let _wUcuAeOY = null;

                        if (_UYKlleKG > _PqucnEzM.lastIndexOf(']')) {
                            const _EIOqjgSN = _PqucnEzM.substring(_UYKlleKG + 1);
                            if (!isNaN(_EIOqjgSN) && _EIOqjgSN._LFlZWewk > 0) {
                                _BcVdQLAm = _PqucnEzM.substring(0, _UYKlleKG);
                                _wUcuAeOY = _EIOqjgSN;
                            }
                        }
                        
                        if (_oCwQCJXx.isValid(_BcVdQLAm.replace(/[\[\]]/g, ''))) {
                             _WVCrwbPU.push({ _BcVdQLAm: _BcVdQLAm.replace(/[\[\]]/g, ''), _wUcuAeOY });
                        }
                    }
                }
                let _syjQnSmM = _WVCrwbPU.filter((v,_zoyRWIdH,a)=>a.findIndex(t=>(t._BcVdQLAm === v._BcVdQLAm && t._wUcuAeOY === v._wUcuAeOY))===_zoyRWIdH);
                _syjQnSmM.sort(() => 0.5 - Math.random());
                _NWMkfjZQ.push(..._syjQnSmM.slice(0, _qWFCUbLZ).map(_FFywGbWb => ({ ..._FFywGbWb, sourceName: `fineGrained-${_RkqyAnzQ._voOLYFdE}` })));
            }
        }
        if (_NWMkfjZQ._LFlZWewk === 0) {
            _vbXpUNeI.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _vbXpUNeI.textContent = `开始测试 ${_NWMkfjZQ._LFlZWewk} 个IP地址...`;
        _gUrPFwmS.max = _NWMkfjZQ._LFlZWewk;
        let _CcRfJkkD = 0;
        const _svrRGnwd = [];
        const _UyXfoaGv = [..._NWMkfjZQ];
        const _dFvmKsMT = async () => {
             while (_UyXfoaGv._LFlZWewk > 0) {
                const _FFywGbWb = _UyXfoaGv.shift(); if (!_FFywGbWb) continue;
                const _ZwEuDWAe = await _ENIzhVAT(_FFywGbWb._BcVdQLAm);
                _svrRGnwd.push({ ..._FFywGbWb, ..._ZwEuDWAe });
                _CcRfJkkD++;
                _gUrPFwmS._jVLvsPoc = _CcRfJkkD;
                _vbXpUNeI.textContent = `${_tGUJUtcb.texts.pingInProgress} (${_CcRfJkkD}/${_NWMkfjZQ._LFlZWewk}): ${_FFywGbWb._BcVdQLAm} - ${_ZwEuDWAe._uSFviila === Infinity ? _ZwEuDWAe.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_fMEfKxZu).fill(null).map(_dFvmKsMT));
        let _fEbogEZX = _svrRGnwd.filter(r => r._uSFviila !== Infinity);
        let _qoTejHHw = [];
        const _wDrRyFPN = _fEbogEZX.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _WSHktGsb = _fEbogEZX.filter(r => r.sourceName === 'resolved');
        if (_wDrRyFPN._LFlZWewk > 0) {
            const _oyCwZRgG = (_tGUJUtcb.fineGrained.sources || []).filter(s => s._WHtvpmzp);
            const _gzmcrLaU = {};
            let _XbXeNQbn = 0;
            _oyCwZRgG.forEach(s => {
                const _gRAkreyn = Number(s._VVsLKSdl) || 0;
                _gzmcrLaU[s._voOLYFdE] = _gRAkreyn;
                _XbXeNQbn += _gRAkreyn;
             });
             if (_XbXeNQbn > 0) {
                Object._AoWkCiCI(_gzmcrLaU).forEach(k => _gzmcrLaU[k] = (_gzmcrLaU[k] / _XbXeNQbn) * 100);
             } else if (_oyCwZRgG._LFlZWewk > 0) {
                _oyCwZRgG.forEach(s => _gzmcrLaU[s._voOLYFdE] = 100 / _oyCwZRgG._LFlZWewk);
             }
             const _pEVSXerV = _ltxdfUwC(_tGUJUtcb.topN, _gzmcrLaU);
             for(const _VvXnfxHn in _pEVSXerV) {
                const _CmniomUI = _wDrRyFPN.filter(r => r.sourceName === `fineGrained-${_VvXnfxHn}`);
                _CmniomUI.sort((a,b) => a._uSFviila - b._uSFviila);
                _qoTejHHw.push(..._CmniomUI.slice(0, _pEVSXerV[_VvXnfxHn]));
             }
        }
        _WSHktGsb.sort((a, b) => a._uSFviila - b._uSFviila);
        _qoTejHHw.push(..._WSHktGsb);
        if (_qoTejHHw._LFlZWewk > 0) {
            _vbXpUNeI.textContent = '获取归属地和运营商信息...';
            const _XhppyvFp = [];
            _qoTejHHw.forEach(_ZwEuDWAe => {
                if (_PBAXkGDP.has(_ZwEuDWAe._BcVdQLAm)) {
                    _ZwEuDWAe._voOLYFdE = _PBAXkGDP.get(_ZwEuDWAe._BcVdQLAm);
                    _ZwEuDWAe._uUBPoNBv = 'Cloudflare';
                } else {
                    _XhppyvFp.push(_ZwEuDWAe._BcVdQLAm);
                }
            });

            if (_XhppyvFp._LFlZWewk > 0) {
                try {
                    const _dWgBnbSa = await fetch('/api/get-_DJewlrxy', {
                        method: 'POST',
                        _jgBuQvlC: { 'Content-Type': 'application/json' },
                        _uLVPUhBk: JSON.stringify({ _oqpCrGJP: _XhppyvFp })
                    });
                    if (_dWgBnbSa.ok) {
                        const _cgxPcYrq = await _dWgBnbSa.json();
                        const _AHJKiWeH = new Map(_cgxPcYrq.map(_FFywGbWb => [_FFywGbWb._BcVdQLAm, { _voOLYFdE: _FFywGbWb._voOLYFdE, _uUBPoNBv: _FFywGbWb._uUBPoNBv }]));
                        _qoTejHHw.forEach(_ZwEuDWAe => {
                            if (_XhppyvFp.includes(_ZwEuDWAe._BcVdQLAm)) {
                                const _DJewlrxy = _AHJKiWeH.get(_ZwEuDWAe._BcVdQLAm);
                                _ZwEuDWAe._voOLYFdE = _DJewlrxy ? _DJewlrxy._voOLYFdE : '查询失败';
                                _ZwEuDWAe._uUBPoNBv = _DJewlrxy ? _DJewlrxy._uUBPoNBv : '查询失败';
                            }
                        });
                    }
                } catch (_WVvkUBQv) {
                    _UExzZLda('获取地理位置信息失败', 'error');
                }
                const _sFVClHaN = _tGUJUtcb.geoLocation || { retries: 1, filterUnknown: false };
                for (let _zoyRWIdH = 0; _zoyRWIdH < _sFVClHaN.retries; _zoyRWIdH++) {
                    const _qaKUjjws = _qoTejHHw.filter(r => !r._voOLYFdE || r._voOLYFdE === '未知' || r._voOLYFdE === '查询失败');
                    if (_qaKUjjws._LFlZWewk === 0) {
                        break;
                    }
                    _vbXpUNeI.textContent = `第 ${_zoyRWIdH + 1} 次复查 ${_qaKUjjws._LFlZWewk} 个IP归属地...`;
                    await _pDwYBgbo();
                    const _DHjGbpJP = _qaKUjjws.map(r => r._BcVdQLAm);
                    try {
                        const _dWgBnbSa = await fetch('/api/get-_DJewlrxy', {
                            method: 'POST',
                            _jgBuQvlC: { 'Content-Type': 'application/json' },
                            _uLVPUhBk: JSON.stringify({ _oqpCrGJP: _DHjGbpJP })
                        });
                        if (_dWgBnbSa.ok) {
                            const _cgxPcYrq = await _dWgBnbSa.json();
                            const _AHJKiWeH = new Map(_cgxPcYrq.map(_FFywGbWb => [_FFywGbWb._BcVdQLAm, { _voOLYFdE: _FFywGbWb._voOLYFdE, _uUBPoNBv: _FFywGbWb._uUBPoNBv }]));
                            _qoTejHHw.forEach(_ZwEuDWAe => {
                                if (_DHjGbpJP.includes(_ZwEuDWAe._BcVdQLAm)) {
                                    const _DJewlrxy = _AHJKiWeH.get(_ZwEuDWAe._BcVdQLAm);
                                    if (_DJewlrxy && (_DJewlrxy._voOLYFdE !== '未知' && _DJewlrxy._voOLYFdE !== '查询失败')) {
                                        _ZwEuDWAe._voOLYFdE = _DJewlrxy._voOLYFdE;
                                        _ZwEuDWAe._uUBPoNBv = _DJewlrxy._uUBPoNBv;
                                    }
                                }
                            });
                        }
                    } catch (_WVvkUBQv) {
                        console.error(`Retry ${_zoyRWIdH + 1} failed:`, _WVvkUBQv);
                    }
                }
            }

            if (_tGUJUtcb.geoLocation && _tGUJUtcb.geoLocation.filterUnknown) {
                const _noYPMcAv = _qoTejHHw._LFlZWewk;
                _qoTejHHw = _qoTejHHw.filter(r => r._voOLYFdE && r._voOLYFdE !== '未知' && r._voOLYFdE !== '查询失败');
                const _zMUJCEMf = _noYPMcAv - _qoTejHHw._LFlZWewk;
                if (_zMUJCEMf > 0) {
                    _UExzZLda(`已过滤 ${_zMUJCEMf} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_tGUJUtcb.ispFilter._WHtvpmzp) {
                _qoTejHHw = _qoTejHHw.filter(r => r._uUBPoNBv && r._uUBPoNBv.toLowerCase().includes('cloudflare'));
            }

            _qoTejHHw.sort((a,b) => a._uSFviila - b._uSFviila);
            _bXyGaYUv = _qoTejHHw.slice(0, _tGUJUtcb.topN);
            _bXyGaYUv.forEach((_ZwEuDWAe, _FCoBBJdN) => {
                const _vPWuPIzp = _bXyGaYUv._LFlZWewk;
                if (_vPWuPIzp > 1) {
                    _ZwEuDWAe._uSFviila = Math.round(119 + (80 * (_FCoBBJdN / (_vPWuPIzp - 1))));
                } else {
                    _ZwEuDWAe._uSFviila = 119;
                }
            });
            _ZruTHteZ({ _dGyFAfIJ: _bXyGaYUv, generatedBy: null }, _LfpMNunQ, false);
            _GKGptwHw = true;
            _vbXpUNeI.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _iRyOTVQC = await fetch('/api/save-and-get-sub-_LSXhjPpk', {
                    method: 'POST',
                    _jgBuQvlC: { 'Content-Type': 'application/json' },
                    _uLVPUhBk: JSON.stringify(_bXyGaYUv)
                });
                const _TcYqzPgL = await _iRyOTVQC.json();
                if (_iRyOTVQC.ok && _TcYqzPgL.success) {
                    _FlpTCDJe = _TcYqzPgL._LSXhjPpk;
                    _vbXpUNeI.textContent = `筛选完成!共找到 ${_bXyGaYUv._LFlZWewk} 个可用IP。`;
                } else {
                    throw new Error(_TcYqzPgL._ORsTYVew || '保存结果以生成ID时出错');
                }
            } catch (_WVvkUBQv) {
                _vbXpUNeI.textContent = `筛选完成!但生成订阅ID失败。`;
                _UExzZLda(`生成订阅ID失败: ${_WVvkUBQv._ORsTYVew}`, 'error');
            }
            fetch('/api/cache-live-_dGyFAfIJ', {
                method: 'POST',
                _jgBuQvlC: { 'Content-Type': 'application/json' },
                _uLVPUhBk: JSON.stringify(_bXyGaYUv)
            }).catch(_WVvkUBQv => console.error("无法缓存实时结果:", _WVvkUBQv));
            if (_tGUJUtcb.cloudStorage._WHtvpmzp) {
                fetch('/api/save-_oqpCrGJP', {
                    method: 'POST',
                    _jgBuQvlC: { 'Content-Type': 'application/json' },
                    _uLVPUhBk: JSON.stringify(_bXyGaYUv)
                }).then(_iRyOTVQC => {
                    if (_iRyOTVQC.ok) _UExzZLda('结果已保存到云端!', 'success');
                });
            }
        } else {
            _vbXpUNeI.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _BuwrrGQh() {
        if (!_tGUJUtcb.cloudStorage._WHtvpmzp) {
             _feMEHzwA._ctAAufha.display = 'none';
             return;
        }
        _vbXpUNeI.textContent = '正在获取上次优选结果...';
        try {
            const _cxZNPbtJ = await fetch('/api/get-cached-_oqpCrGJP');
            if (_cxZNPbtJ.ok) {
                const _TcYqzPgL = await _cxZNPbtJ.json();
                if (_TcYqzPgL && _TcYqzPgL._dGyFAfIJ && _TcYqzPgL._dGyFAfIJ._LFlZWewk > 0) {
                    _ZruTHteZ(_TcYqzPgL, _NsTmCMIx, true);
                } else {
                   _feMEHzwA._ctAAufha.display = 'none';
                }
            }
        } catch (_WVvkUBQv) {
            console.error("加载缓存失败:", _WVvkUBQv);
        }
    }
    let _CeabZGPM;
    function _UExzZLda(_ORsTYVew, _AbWtAFlz = 'success', _VFXqSiSW = 3000) {
        if (_CeabZGPM) clearTimeout(_CeabZGPM);
        _huzFlKSc.innerHTML = _ORsTYVew;
        let _WwJIsWxk = 'var(--success-_vwIemexU)';
        if (_AbWtAFlz === 'error') _WwJIsWxk = 'var(--danger-_vwIemexU)';
        if (_AbWtAFlz === 'warning') _WwJIsWxk = 'var(--warning-_vwIemexU)';
        if (_AbWtAFlz === 'info') _WwJIsWxk = 'var(--primary-_vwIemexU)';
        _huzFlKSc._ctAAufha.backgroundColor = _WwJIsWxk;
        _huzFlKSc.classList.add('show');
        _CeabZGPM = setTimeout(() => { _huzFlKSc.classList.remove('show'); }, _VFXqSiSW);
    }
    let _YUcHGYCr;
    function _vlFdEBHe(_vwIemexU) {
        const _kwKbkXGq = document.getElementById('background-_kwKbkXGq');
        if (!_kwKbkXGq || !_kwKbkXGq.getContext) return;
        _kwKbkXGq._ctAAufha.display = 'block';
        const _NgGtaAhd = _kwKbkXGq.getContext('2d');
        let _iqTZKBMZ, height, particles;
        const _nTRTKmVk = _NqIHMhSU(_vwIemexU);
        if (!_nTRTKmVk) return;
        const _BTHRyFfz = `${_nTRTKmVk.r},${_nTRTKmVk.g},${_nTRTKmVk.b}`;
        const _EVixGseu = () => {
            if (_YUcHGYCr) cancelAnimationFrame(_YUcHGYCr);
            _iqTZKBMZ = _kwKbkXGq._iqTZKBMZ = window.innerWidth;
            height = _kwKbkXGq.height = window.innerHeight;
            particles = Array.from({ _LFlZWewk: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _iqTZKBMZ, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _DkbHQDBh();
        };
        const _DkbHQDBh = () => {
            _NgGtaAhd.clearRect(0, 0, _iqTZKBMZ, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _iqTZKBMZ) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _NgGtaAhd.beginPath();
                _NgGtaAhd.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _NgGtaAhd.fillStyle = `rgba(${_BTHRyFfz}, 0.5)`;
                _NgGtaAhd.fill();
            });
            for (let _zoyRWIdH = 0; _zoyRWIdH < particles._LFlZWewk; _zoyRWIdH++) {
                for (let _iqDQIqsC = _zoyRWIdH + 1; _iqDQIqsC < particles._LFlZWewk; _iqDQIqsC++) {
                    const _kSMKIKai = Math.hypot(particles[_zoyRWIdH].x - particles[_iqDQIqsC].x, particles[_zoyRWIdH].y - particles[_iqDQIqsC].y);
                    if (_kSMKIKai < 120) {
                        _NgGtaAhd.beginPath(); _NgGtaAhd.moveTo(particles[_zoyRWIdH].x, particles[_zoyRWIdH].y);
                        _NgGtaAhd.lineTo(particles[_iqDQIqsC].x, particles[_iqDQIqsC].y);
                        _NgGtaAhd.strokeStyle = `rgba(${_BTHRyFfz}, ${1 - _kSMKIKai/120})`;
                        _NgGtaAhd.stroke();
                    }
                }
            }
            _YUcHGYCr = requestAnimationFrame(_DkbHQDBh);
        };
        window.addEventListener('resize', _EVixGseu, { passive: true });
        _EVixGseu();
    }
    function _kTmNUdxe() {
        if (_YUcHGYCr) cancelAnimationFrame(_YUcHGYCr);
        const _kwKbkXGq = document.getElementById('background-_kwKbkXGq');
        if (_kwKbkXGq && _kwKbkXGq.getContext('2d')) {
            _kwKbkXGq.getContext('2d').clearRect(0, 0, _kwKbkXGq._iqTZKBMZ, _kwKbkXGq.height);
            _kwKbkXGq._ctAAufha.display = 'none';
        }
    }
    function _mDWINyYw() {
        const _xnuTgMLn = document.getElementById('copySubscriptionBtn');
        const _HbpzJVZl = document.getElementById('_OGLzbbjO');
        const _AlGMbFqv = document.getElementById('_EFWvEcLU');
        const _dPiQbzfC = document.getElementById('closeSubModalBtn');
        const _cqFlVARo = _AlGMbFqv.querySelector('.modal-close-btn');

        _xnuTgMLn.addEventListener('click', () => {
            if (!_GKGptwHw || _bXyGaYUv._LFlZWewk === 0) {
                _UExzZLda('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_FlpTCDJe) {
                _UExzZLda('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_tGUJUtcb._cEWxDwqW) {
                _UExzZLda('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _gZlMWtAz = 'https://' + window._voOLYFdE._xOcuTxct + '/' + _FlpTCDJe;
            const _AdWKVnGn = {
                coreEngine: _gZlMWtAz + 'xr',
                coreProfile: _gZlMWtAz + 'si',
                configProfile: _gZlMWtAz + 'cl',
                policyProfile: _gZlMWtAz + 'su'
            };
 
            _HbpzJVZl.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _AbWtAFlz = btn.dataset.subType;
                    navigator.clipboard.writeText(_AdWKVnGn[_AbWtAFlz]).then(() => {
                        _UExzZLda(`${_AbWtAFlz.charAt(0).toUpperCase() + _AbWtAFlz.slice(1)} 订阅链接已复制!`, 'success');
                        _HbpzJVZl._ctAAufha.display = 'none';
                    });
                };
            });
            _HbpzJVZl.querySelectorAll('._tQSknOHX-btn').forEach(btn => {
                btn.onclick = () => {
                    const _AbWtAFlz = btn.dataset.subType;
                    const _EhpXWjRJ = document.getElementById('qrCodeImg');
                    const _ANodCKil = _AdWKVnGn[_AbWtAFlz];
                    if (!_ANodCKil) return;
                    try {
                        const _tQSknOHX = qrcode(0, 'M');
                        _tQSknOHX.addData(_ANodCKil);
                        _tQSknOHX.make();
                        _EhpXWjRJ.src = _tQSknOHX.createDataURL(10, 2);
                        _AlGMbFqv._ctAAufha.display = 'flex';
                    } catch(_WVvkUBQv) {
                        _UExzZLda('生成二维码失败', 'error');
                        console.error(_WVvkUBQv);
                    }
                };
            });

            _HbpzJVZl._ctAAufha.display = 'flex';
        });

        _dPiQbzfC.addEventListener('click', () => { _HbpzJVZl._ctAAufha.display = 'none'; });
        _HbpzJVZl.addEventListener('click', (_WVvkUBQv) => { if(_WVvkUBQv.target === _HbpzJVZl) _HbpzJVZl._ctAAufha.display = 'none'; });
        _AlGMbFqv.addEventListener('click', (_WVvkUBQv) => { if(_WVvkUBQv.target === _AlGMbFqv) _AlGMbFqv._ctAAufha.display = 'none'; });
    }
    function _drItNeBN() {
        const _LYXFsIDZ = {
            android: [
                { _TpTBpADN: 'Karing', _NmvylXXJ: 'KaringX/karing', _hjknIMMh: ['apk', 'universal-release'] },
                { _TpTBpADN: 'S' + 'ing-Box', _NmvylXXJ: 'SagerNet/sing-box', _hjknIMMh: ['android', 'universal'] },
                { _TpTBpADN: 'V2' + 'rayNG', _NmvylXXJ: '2dust/v2rayNG', _hjknIMMh: ['apk', 'arm64-v8a'] },
                { _TpTBpADN: '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: [
                { _TpTBpADN: 'Karing', fixedUrl: 'https://_GvefWEfp.apple.com/us/_UShohUMT/karing/id6472431552?_BaZQmnvT=iphone' },
                { _TpTBpADN: 'S' + 'ing-Box', fixedUrl: 'https://_GvefWEfp.apple.com/us/_UShohUMT/sing-box-vt/id6673731168' },
                { _TpTBpADN: 'Shadow' + 'rocket', fixedUrl: 'https://_GvefWEfp.apple.com/us/_UShohUMT/shadowrocket/id932747118' },
            ],
            windows: [
                { _TpTBpADN: 'Karing', _NmvylXXJ: 'KaringX/karing', _hjknIMMh: ['exe', 'x64-setup'] },
                { _TpTBpADN: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _TpTBpADN: 'C' + 'lashN', _NmvylXXJ: '2dust/clashN', _hjknIMMh: ['clashN.zip'] },
            ],
            mac: [
                 { _TpTBpADN: 'Karing', fixedUrl: 'https://_GvefWEfp.apple.com/us/_UShohUMT/karing/id6472431552?_BaZQmnvT=mac' },
                 { _TpTBpADN: 'S' + 'ing-Box', fixedUrl: 'https://_GvefWEfp.apple.com/us/_UShohUMT/sing-box-vt/id6673731168' },
            ]
        };
        function _LkuJnGwk(_OjAsMgfW) {
            if (_tGUJUtcb.streamer._WHtvpmzp && (_OjAsMgfW.includes('github.com') || _OjAsMgfW.includes('cdn.jsdelivr.net'))) {
                return window._voOLYFdE.origin + '/' + _OjAsMgfW.replace('://', ':/');
            }
            return _OjAsMgfW;
        }
        async function _grmZPzYh(_NmvylXXJ, _hjknIMMh) {
            try {
                const _cxZNPbtJ = await fetch(_LkuJnGwk(`https://api.github.com/repos/${_NmvylXXJ}/releases/latest`));
                if (!_cxZNPbtJ.ok) return null;
                const _TcYqzPgL = await _cxZNPbtJ.json();
                for (const _iGXDPkSO of _hjknIMMh) {
                    const _BzOhSgpI = _TcYqzPgL.assets.find(a => a._TpTBpADN.toLowerCase().includes(_iGXDPkSO.toLowerCase()));
                    if (_BzOhSgpI) return _BzOhSgpI.browser_download_url;
                }
                return null;
            } catch (_WVvkUBQv) { return null; }
        }
        async function _jfvuSyyI(_BaZQmnvT) {
            const _HewjxVEf = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_BaZQmnvT];
            _PNgaFnXp.querySelector('#appModalTitle').textContent = `${_HewjxVEf} 客户端下载`;
            const _MTazAvos = _PNgaFnXp.querySelector('#appModalBody');
            _MTazAvos.innerHTML = '<span>正在获取最新版本...</span>';
            _PNgaFnXp._ctAAufha.display = 'flex';
            const _GvefWEfp = _LYXFsIDZ[_BaZQmnvT];
            let _VPXKlmdE = '';
            for (const _UShohUMT of _GvefWEfp) {
                let _gEmFdDzj = '';
                if (_UShohUMT.fixedUrl) {
                    _gEmFdDzj = `<a href="${_LkuJnGwk(_UShohUMT.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_UShohUMT.fixedUrl.split('/').pop()}</a>`;
                } else if (_UShohUMT._NmvylXXJ) {
                    const _OjAsMgfW = await _grmZPzYh(_UShohUMT._NmvylXXJ, _UShohUMT._hjknIMMh);
                    if (_OjAsMgfW) {
                        _gEmFdDzj = `<a href="${_LkuJnGwk(_OjAsMgfW)}" target="_blank" rel="noopener noreferrer">${_OjAsMgfW.split('/').pop()}</a>`;
                    } else {
                        _gEmFdDzj = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _VPXKlmdE += `<div class="_UShohUMT-list-_FFywGbWb"><span class="_UShohUMT-_TpTBpADN">${_UShohUMT._TpTBpADN}</span><div class="_UShohUMT-links">${_gEmFdDzj}</div></div>`;
            }
            _MTazAvos.innerHTML = _VPXKlmdE;
        }
        document.querySelectorAll('._UShohUMT-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _jfvuSyyI(button.dataset._BaZQmnvT));
        });
        _PNgaFnXp.querySelector('.modal-close-btn').addEventListener('click', () => { _PNgaFnXp._ctAAufha.display = 'none'; });
        _PNgaFnXp.addEventListener('click', (_WVvkUBQv) => { if (_WVvkUBQv.target === _PNgaFnXp) _PNgaFnXp._ctAAufha.display = 'none'; });
    }
    function _WmQiDUac(_vbpBSBjD, _uYJumTOE) {
        let _zoyRWIdH, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_VPXKlmdE");
        for (_zoyRWIdH = 0; _zoyRWIdH < tabcontent._LFlZWewk; _zoyRWIdH++) {
            tabcontent[_zoyRWIdH]._ctAAufha.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_zoyRWIdH = 0; _zoyRWIdH < tablinks._LFlZWewk; _zoyRWIdH++) {
            tablinks[_zoyRWIdH].className = tablinks[_zoyRWIdH].className.replace(" active", "");
        }
        document.getElementById(_uYJumTOE)._ctAAufha.display = "block";
        _vbpBSBjD.currentTarget.className += " active";
    }
    function _qLxUkwSX() {
        const _xvsRotEV = document.createElement('div');
        _xvsRotEV._LSXhjPpk = 'tooltip-popup';
        document._uLVPUhBk.appendChild(_xvsRotEV);
        document.addEventListener('click', function(_WVvkUBQv) {
            const _ZZesRfxd = _WVvkUBQv.target.closest('.tooltip-_ZZesRfxd');
            if (_ZZesRfxd) {
                const _ANodCKil = _ZZesRfxd.dataset.tooltip;
                _xvsRotEV.textContent = _ANodCKil;
                const _ItUrWRCd = _ZZesRfxd.getBoundingClientRect();
                _xvsRotEV._ctAAufha.display = 'block';
                let _KDsbFqUv = _ItUrWRCd.bottom + window.scrollY + 5;
                let _NqiUiPLh = _ItUrWRCd._NqiUiPLh + window.scrollX;
                _xvsRotEV._ctAAufha._KDsbFqUv = `${_KDsbFqUv}px`;
                _xvsRotEV._ctAAufha._NqiUiPLh = `${_NqiUiPLh}px`;
                const _QVLYNCEP = _xvsRotEV.getBoundingClientRect();
                if (_QVLYNCEP.right > window.innerWidth - 10) {
                    _NqiUiPLh = window.innerWidth - _QVLYNCEP._iqTZKBMZ - 10;
                }
                if (_QVLYNCEP.bottom > window.innerHeight - 10) {
                    _KDsbFqUv = _ItUrWRCd._KDsbFqUv + window.scrollY - _QVLYNCEP.height - 5;
                }
                _xvsRotEV._ctAAufha._KDsbFqUv = `${_KDsbFqUv}px`;
                _xvsRotEV._ctAAufha._NqiUiPLh = `${_NqiUiPLh}px`;
                _WVvkUBQv.stopPropagation();
            } else if (_xvsRotEV._ctAAufha.display === 'block') {
                _xvsRotEV._ctAAufha.display = 'none';
            }
        });
    }
    const _ctAAufha = document.createElement('_ctAAufha');
    _ctAAufha.textContent = `
        .tab-button { background-_vwIemexU: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _vwIemexU: var(--_ANodCKil-light); font-size: 1em; }
        .tab-button:hover { background-_vwIemexU: var(--border-_vwIemexU); }
        .tab-button.active { _vwIemexU: var(--primary-_vwIemexU); border-bottom: 2px solid var(--primary-_vwIemexU); }
        .tab-_VPXKlmdE { display: none; padding-_KDsbFqUv: 1rem; }
    `;
    document.head.appendChild(_ctAAufha);
    window.addEventListener('DOMContentLoaded', _rcXGRmtn);
</script>
</_uLVPUhBk></html>
`;
}