8 / index.js
xrunx's picture
Upload 6 files
3f7c762 verified
Raw
History Blame Contribute Delete
46.4 kB
function _0x4e62() {
const _0xe7a186 = [
'Vl-ws-tls-',
'child_proc',
'cf.eu.org',
':443?encry',
'NAME',
'\x20个IP地址',
';\x20charset=',
'--tls',
'rgqso',
'\x0aAPI获取节点数量',
'误:\x20',
'cfip.xxxxx',
'message',
'le-auto-up',
'09f-4dac-b',
'OTC提供维护官方优',
'3715AZoGTj',
'd-for',
'EOcaG',
'eu.org',
't连接已建立',
'\x20\x20最大连接数:\x20',
'domain',
'\x20\x20连接超时:\x20',
'6.xyz',
'www.visa.c',
'pDtGd',
'.ua',
'split',
'标服务器\x20[',
'e5d-1c32fc',
'2UgFfzq',
'cf.345673.',
'totalDataT',
'rea.com',
'proxy.xxxx',
'aysia',
'qehea',
'🎯\x20目标地址\x20[',
'析\x20[',
'eout',
'🔗\x20已连接到目标服务',
'\x20\x20配置数量:\x20',
'443',
'createServ',
'vBzbE',
'dHpHh',
'186614NECLHu',
'remoteAddr',
'当前版本:1.0.0',
'❌\x20TCP连接错误\x20',
'toString',
'❌\x20WebSocke',
'6558tUNikl',
'nCfAO',
'⚙️\x20性能配置:',
'664SdCiVw',
'xxx.tk',
'pipe',
'优选官方域名-rus',
'YlFrJ',
'time.is',
'd.\x20Install',
'148581dYucIz',
'\x20\x20Base64编码',
'xTIDh',
't连接建立:',
'lgOGD',
'get',
'destroy',
'n.com',
'104.25.0.0',
'NEZHA_PORT',
'name',
'totalConne',
'\x0aUUID:\x20',
'push',
'gTsFF',
'&country=t',
'Invalid\x20UU',
'xxxx.tk',
'gingface版',
'手响应\x20[',
'优选官方域名-tim',
'gapore',
'104.22.0.0',
'PIOGn',
'./server\x20-',
'104.26.0.0',
'log',
'❌\x20UUID验证失败',
'优选官方域名-sho',
'ring',
'YlxFQ',
'true',
'⏰\x20TCP连接超时\x20',
'setTimeout',
'kwBGV',
'cf-st.anno',
'hex',
'y=true',
'sia',
'正在请求\x20API:\x20',
'&type=ws&h',
'NEZHA_SERV',
'\x20\x20所有请求头:',
'104.18.0.0',
'WyuhO',
'NEZHA_KEY',
'7.xyz',
'axios',
'string',
'ILoRK',
'移动官方优选',
'iBgfN',
'pify',
'send',
'kPfpC',
'器\x20[',
'catch',
'EsElt',
'GET,\x20POST,',
'ctions',
'keepAliveT',
'npm\x20instal',
'Not\x20Found\x0a',
'lYSrt',
'connection',
'104.21.0.0',
'http://loc',
'e6542600-b',
'WufOz',
'DtFQw',
'正在获取API数据.',
'.qa',
'📤\x20转发额外数据到目',
'close',
'手消息\x20[',
'成功获取\x20',
'\x0a总数据传输:\x20',
'UUID',
'ing...',
'Unknown',
'nn\x20--disab',
'readUInt8',
'icook.tw',
'malaysia.c',
'\x20\x20User-Age',
'cf.877771.',
'host:',
'slice',
'Module\x20\x27',
'获取API数据时出错',
'bdgHg',
'qyoes',
'101.xyz/?t',
't错误\x20[',
'📤\x20发送Vless握',
'\x20===\x0a总连接数:',
'reduce',
'dressesapi',
'GrYSx',
'frUYk',
'\x20OPTIONS',
'headers',
'优选反代API(1-',
'readUInt16',
'&security=',
'OYDxj',
'\x0a最后更新时间:\x20',
'v.qa',
'104.16.0.0',
'cf.090227.',
'rue',
'ost=',
'\x20\x20时间:\x20',
'o.jp',
'定时更新API数据.',
'未配置Nezha监控',
'https://ip',
'37131820hAXYaZ',
'p-procs\x20--',
'5|0|4|6|1|',
'JZvXQ',
'headersTim',
'\x20\x20总节点数:\x20',
't升级错误:',
'104.20.0.0',
'inherit',
'✅\x20UUID验证成功',
'oyiSh',
'connect',
'end',
']:\x20',
'a.hk',
'searchPara',
'cf.zheteng',
'FzZpC',
'✅\x20WebSocke',
'utf8',
'db.api.030',
'FYMjS',
'ZOmrw',
'Krtrv',
'sha.eu.org',
'japan.com',
'activeConn',
'net',
'🔄\x20WebSocke',
'✅\x20HTTP服务器已',
'once',
'.se',
'ip.sb',
'a.kr',
'decode',
'method',
'filter',
'优选官方API(3-',
'3911299afMGVK',
'DuccY',
'小一提供维护官方优选',
'www.gov.se',
'📤\x20返回根路径响应\x20',
',跳过启动',
'b64',
'优选官方域名-skk',
'Nezha监控已启动',
'floor',
'JwgIk',
'🔗\x20WebSocke',
'ZaGMI',
'~~~~~~~~~~',
'104.24.0.0',
't连接关闭\x20[',
'wIqRn',
'一键无交互Vless',
'phBbt',
'nt:\x20',
'startTime',
'a.tw',
'\x20\x20原始长度:\x20',
'反代优选',
'\x20请求失败:',
'om.hk',
'timeout',
'ype=bestpr',
'smUie',
'7|2|3',
'a89901',
'📍\x20配置页面:\x20ht',
'\x20\x20路径:\x20',
'104.19.0.0',
'优选官方域名-sin',
'\x0a🌐\x20收到HTTP请',
'qMqQG',
'huggingfac',
'ections',
'\x20MB\x0a运行时间:\x20',
't升级请求:\x20',
'tls&sni=',
']:\x20期望\x20',
'singapore.',
'a.jp',
'EOUT',
'concat',
'Content-Ty',
'\x20字节',
'xn--b6gac.',
'www.gov.ua',
'date\x20--ski',
'yx.887141.',
'has',
'toLocaleSt',
'stringify',
'第三方维护官方优选',
'trim',
'tp://local',
'8.889288.x',
'XvoNp',
'\x27\x20not\x20foun',
'ption=none',
'z/CloudFla',
'cf.515188.',
'cf.0sm.com',
'ite',
'tsDtq',
'理错误\x20[',
'z/ip.16474',
'xbJYD',
'map',
'x-forwarde',
'ype=bestcf',
'❌\x20Vless握手处',
'min',
'upgrade',
'goCxM',
'shopify.co',
'hostname',
'oxy&countr',
'com',
'alhost:',
'ce适配版',
'API\x20',
'bestproxy.',
'HwKDD',
'maxConnect',
'zUGLH',
'LOG_FLAG',
'russia.com',
'🔌\x20WebSocke',
'ciIky',
'onecf.eu.o',
'user-agent',
'https://ad',
'writeHead',
'a.sg',
'Rxqau',
'Hello,\x20Wor',
'namePrefix',
'dxJCa',
'ld-YGkkk\x0a内',
'🔌\x20TCP连接关闭\x20',
'\x20Huggingfa',
'base64',
'7151600lWVbtF',
'x-real-ip',
'ay\x204\x20>/dev',
'DvCIw',
'Nezha监控启动错',
'POgeA',
'rAYkS',
'pJjPo',
'三网自适应分流官方优',
'OTC提供维护反代优',
'resolve',
'23.xyz',
'ade',
',\x20收到\x20',
'error',
'ions',
'🔧\x20UUID:\x20',
'report-del',
'xyz',
'om.sg',
'reYes',
'104.17.0.0',
'启动,端口:\x20',
'优选官方域名-ip.',
'data',
'ywWVW',
'listen',
'qHFXs',
'cfip.13231',
'gHOVr',
'replace',
'your-domai',
'cmcc.09022',
'ok.hk',
'Mingyu提供维护',
'\x20\x20URL:\x20',
'\x20\x20Host:\x20',
'🔍\x20Vless协议解',
'\x20\x20响应长度:\x20',
'from',
'📤\x20返回配置页面响应',
'\x20\x20详细日志:\x20',
'\x20\x20客户端IP:\x20',
'📨\x20收到Vless握',
'直连-',
'BdSyz',
'zuccH',
'rSzpf',
'pathname',
'OVAMp',
'wQdMX',
'TOObX',
'http',
'forEach',
'优选官方域名-ico',
'join',
'uJWDC',
'utf-8',
'www.visako',
'fVMHw',
'\x20\x20方法:\x20',
'length',
'\x0aDOMAIN:\x20',
'www.gco.go',
'zgGHq',
'ct.090227.',
'电信官方优选',
'置节点数量:\x20',
'readyState',
'e.chinax.s',
'oMTAr',
'优选官方API(2-',
'handleUpgr',
'优选官方API(1-',
'om.tw',
'TIONS',
'\x20--skip-co',
'1009356vJnbMn',
'优选官方域名-jap',
'every',
'\x20\x20Base64长度',
'isArray',
'url',
'\x0a当前活跃连接:\x20',
'MAX_CONNEC',
'bestcf.one',
'y.eu.org',
'ransferred',
'/null\x202>&1',
'env',
'skk.moe',
'imeout',
'优选官方域名-vis',
'toFixed',
'代理脚本\x20-\x20Hug',
'SOCKET_TIM',
'http://',
'write',
'\x20-p\x20',
'\x20\x20活跃连接:\x20',
'官方优选',
'text/plain',
'icook.hk',
'substr',
'优选官方域名-mal',
'host',
'ess',
'ok.tw',
'\x20\x20Base64请求',
'&fp=chrome',
'DOMAIN',
'优选官方域名-gov',
'WeFBj',
'\x0a总节点数量:\x20',
'104.27.0.0',
'.090227.xy',
'&path=%2F#',
'vless://',
'\x0a\x0a===\x20连接统计',
'📍\x20本地访问地址:\x20'
];
_0x4e62 = function () {
return _0xe7a186;
};
return _0x4e62();
}
const _0x2cfce1 = _0x324d;
(function (_0xfc659f, _0x3c1a60) {
const _0x17f34f = _0x324d, _0x28c9de = _0xfc659f();
while (!![]) {
try {
const _0x544319 = parseInt(_0x17f34f(0x23b)) / (0x57c + 0x2258 + -0x27d3) * (-parseInt(_0x17f34f(0x22b)) / (0x5c5 + -0x1323 + -0xd60 * -0x1)) + parseInt(_0x17f34f(0x1e1)) / (0x10fe + -0x1367 * 0x2 + 0x15d3) + parseInt(_0x17f34f(0x194)) / (-0x81 * 0x25 + 0xef8 + 0x3 * 0x13b) + parseInt(_0x17f34f(0x21c)) / (0x24c7 + -0x1 * 0x1516 + -0xfac) * (parseInt(_0x17f34f(0x241)) / (-0x2253 + -0xa1b + 0x2c74)) + parseInt(_0x17f34f(0x2e6)) / (0x7 * -0x36e + -0x156b + 0x2d74) + parseInt(_0x17f34f(0x244)) / (-0x1a5a + -0xe05 * -0x2 + -0x1a8) * (parseInt(_0x17f34f(0x24b)) / (-0x134b + -0x1b22 + 0x1 * 0x2e76)) + -parseInt(_0x17f34f(0x2c0)) / (0xd65 + -0x70d + -0x64e);
if (_0x544319 === _0x3c1a60)
break;
else
_0x28c9de['push'](_0x28c9de['shift']());
} catch (_0x5e462b) {
_0x28c9de['push'](_0x28c9de['shift']());
}
}
}(_0x4e62, -0x13 * -0x128a5 + 0xede54 + 0xc * -0x1d88a));
const os = require('os'), http = require(_0x2cfce1(0x1c8)), net = require(_0x2cfce1(0x2db)), {exec, execSync} = require(_0x2cfce1(0x20d) + _0x2cfce1(0x1fe));
function ensureModule(_0x5603f4) {
const _0x5e73fe = _0x2cfce1, _0x4b50d2 = {
'BdSyz': function (_0x41ed64, _0x267fec, _0x2fc4fb) {
return _0x41ed64(_0x267fec, _0x2fc4fb);
},
'qehea': _0x5e73fe(0x2c8)
};
try {
require[_0x5e73fe(0x19e)](_0x5603f4);
} catch (_0xc93a0a) {
console[_0x5e73fe(0x265)](_0x5e73fe(0x2a3) + _0x5603f4 + (_0x5e73fe(0x167) + _0x5e73fe(0x24a) + _0x5e73fe(0x299))), _0x4b50d2[_0x5e73fe(0x1c1)](execSync, _0x5e73fe(0x288) + 'l\x20' + _0x5603f4, { 'stdio': _0x4b50d2[_0x5e73fe(0x231)] });
}
}
ensureModule(_0x2cfce1(0x27a)), ensureModule('ws');
function _0x324d(_0xe79694, _0x4b0a7c) {
const _0x221812 = _0x4e62();
return _0x324d = function (_0x38c8fa, _0x477c7e) {
_0x38c8fa = _0x38c8fa - (0x1 * -0x1fce + 0x1 * 0x1c2c + -0x28 * -0x20);
let _0x28a256 = _0x221812[_0x38c8fa];
return _0x28a256;
}, _0x324d(_0xe79694, _0x4b0a7c);
}
const axios = require(_0x2cfce1(0x27a)), {WebSocketServer, createWebSocketStream} = require('ws'), NEZHA_SERVER = process[_0x2cfce1(0x1ed)][_0x2cfce1(0x274) + 'ER'] || '', NEZHA_PORT = process[_0x2cfce1(0x1ed)][_0x2cfce1(0x254)] || '', NEZHA_KEY = process[_0x2cfce1(0x1ed)][_0x2cfce1(0x278)] || '', NAME = process[_0x2cfce1(0x1ed)][_0x2cfce1(0x210)] || os[_0x2cfce1(0x179)](), UUID = process[_0x2cfce1(0x1ed)][_0x2cfce1(0x298)] || _0x2cfce1(0x28e) + _0x2cfce1(0x21a) + _0x2cfce1(0x22a) + _0x2cfce1(0x304), DOMAIN = process[_0x2cfce1(0x1ed)][_0x2cfce1(0x202)] || _0x2cfce1(0x30b) + _0x2cfce1(0x1d9) + _0x2cfce1(0x16c), LOG_FLAG = process[_0x2cfce1(0x1ed)][_0x2cfce1(0x183)] === _0x2cfce1(0x26a) || ![], MAX_CONNECTIONS = parseInt(process[_0x2cfce1(0x1ed)][_0x2cfce1(0x1e8) + _0x2cfce1(0x1df)]) || -0x276ee + -0x1 * -0x2a685 + 0x15709, SOCKET_TIMEOUT = parseInt(process[_0x2cfce1(0x1ed)][_0x2cfce1(0x1f3) + _0x2cfce1(0x313)]) || 0x1d7 * 0x1a4 + 0x55 * 0x3a + -0x1915e, port = -0x1f38 + -0x2 * 0x179e + 0xf98 * 0x7, uuid = UUID, uuidNoHyphens = uuid[_0x2cfce1(0x1b2)](/-/g, '');
console[_0x2cfce1(0x265)](_0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + '~~'), console[_0x2cfce1(0x265)](_0x2cfce1(0x2f7) + _0x2cfce1(0x1f2) + _0x2cfce1(0x25d)), console[_0x2cfce1(0x265)](_0x2cfce1(0x23d) + _0x2cfce1(0x192) + _0x2cfce1(0x17d)), console[_0x2cfce1(0x265)](_0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + _0x2cfce1(0x2f3) + '~~');
let apiData = [], lastUpdateTime = new Date()[_0x2cfce1(0x160) + _0x2cfce1(0x268)](), connectionStats = {
'totalConnections': 0x0,
'activeConnections': 0x0,
'totalDataTransferred': 0x0,
'startTime': new Date()
};
const builtinNodes = [
{
'domain': _0x2cfce1(0x2b7),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x1a9),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x276),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x307),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x2c7),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x28c),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x261),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x2f4),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x253),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x264),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x206),
'name': _0x2cfce1(0x20c) + NAME
},
{
'domain': _0x2cfce1(0x2b8) + _0x2cfce1(0x1a6),
'name': _0x2cfce1(0x19c) + '选'
},
{
'domain': _0x2cfce1(0x1d5) + _0x2cfce1(0x1a6),
'name': _0x2cfce1(0x1d6)
},
{
'domain': _0x2cfce1(0x1b4) + _0x2cfce1(0x279),
'name': _0x2cfce1(0x27d)
},
{
'domain': _0x2cfce1(0x178) + 'm',
'name': _0x2cfce1(0x267) + _0x2cfce1(0x27f)
},
{
'domain': _0x2cfce1(0x249),
'name': _0x2cfce1(0x25f) + 'e'
},
{
'domain': _0x2cfce1(0x1fa),
'name': _0x2cfce1(0x1ca) + _0x2cfce1(0x1b5)
},
{
'domain': _0x2cfce1(0x29d),
'name': _0x2cfce1(0x1ca) + _0x2cfce1(0x1ff)
},
{
'domain': _0x2cfce1(0x2e0),
'name': _0x2cfce1(0x1ab) + 'sb'
},
{
'domain': _0x2cfce1(0x2d9),
'name': _0x2cfce1(0x1e2) + 'an'
},
{
'domain': _0x2cfce1(0x29e) + 'om',
'name': _0x2cfce1(0x1fc) + _0x2cfce1(0x230)
},
{
'domain': _0x2cfce1(0x184),
'name': _0x2cfce1(0x247) + _0x2cfce1(0x271)
},
{
'domain': _0x2cfce1(0x311) + _0x2cfce1(0x17b),
'name': _0x2cfce1(0x308) + _0x2cfce1(0x260)
},
{
'domain': _0x2cfce1(0x1ee),
'name': _0x2cfce1(0x2ed)
},
{
'domain': _0x2cfce1(0x225) + _0x2cfce1(0x1a7),
'name': _0x2cfce1(0x1f0) + _0x2cfce1(0x18b)
},
{
'domain': _0x2cfce1(0x225) + _0x2cfce1(0x2ff),
'name': _0x2cfce1(0x1f0) + _0x2cfce1(0x2ce)
},
{
'domain': _0x2cfce1(0x225) + _0x2cfce1(0x1de),
'name': _0x2cfce1(0x1f0) + _0x2cfce1(0x2fb)
},
{
'domain': _0x2cfce1(0x225) + _0x2cfce1(0x2bc),
'name': _0x2cfce1(0x1f0) + _0x2cfce1(0x312)
},
{
'domain': _0x2cfce1(0x1ce) + _0x2cfce1(0x22e),
'name': _0x2cfce1(0x1f0) + _0x2cfce1(0x2e1)
},
{
'domain': _0x2cfce1(0x1d3) + _0x2cfce1(0x2b6),
'name': _0x2cfce1(0x203) + _0x2cfce1(0x292)
},
{
'domain': _0x2cfce1(0x2e9),
'name': _0x2cfce1(0x203) + _0x2cfce1(0x2df)
},
{
'domain': _0x2cfce1(0x318),
'name': _0x2cfce1(0x203) + _0x2cfce1(0x227)
},
{
'domain': _0x2cfce1(0x217) + _0x2cfce1(0x245),
'name': _0x2cfce1(0x21b) + '选'
},
{
'domain': _0x2cfce1(0x1e9) + _0x2cfce1(0x20e),
'name': _0x2cfce1(0x1b6) + _0x2cfce1(0x1f8)
},
{
'domain': _0x2cfce1(0x2d0) + _0x2cfce1(0x2d8),
'name': _0x2cfce1(0x2e8)
},
{
'domain': _0x2cfce1(0x317) + _0x2cfce1(0x21f),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x15e) + _0x2cfce1(0x1a6),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x165) + 'yz',
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x1b0) + _0x2cfce1(0x19f),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x16a) + _0x2cfce1(0x1a6),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x26e) + _0x2cfce1(0x1ea),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x16b),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x2a0) + _0x2cfce1(0x1a6),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x22c) + _0x2cfce1(0x1a6),
'name': _0x2cfce1(0x162)
},
{
'domain': _0x2cfce1(0x17f) + _0x2cfce1(0x187) + 'rg',
'name': _0x2cfce1(0x1b6) + _0x2cfce1(0x2fd)
},
{
'domain': _0x2cfce1(0x22f) + _0x2cfce1(0x25c),
'name': _0x2cfce1(0x19d) + '选'
}
], apiList = [
{
'url': _0x2cfce1(0x2bf) + _0x2cfce1(0x2d4) + _0x2cfce1(0x2a7) + _0x2cfce1(0x173) + _0x2cfce1(0x25a) + _0x2cfce1(0x2b9),
'namePrefix': _0x2cfce1(0x1dd)
},
{
'url': _0x2cfce1(0x189) + _0x2cfce1(0x2ac) + _0x2cfce1(0x207) + _0x2cfce1(0x169) + _0x2cfce1(0x1a8),
'namePrefix': _0x2cfce1(0x1db)
},
{
'url': _0x2cfce1(0x189) + _0x2cfce1(0x2ac) + _0x2cfce1(0x207) + _0x2cfce1(0x16f) + _0x2cfce1(0x224),
'namePrefix': _0x2cfce1(0x2e5)
},
{
'url': _0x2cfce1(0x2bf) + _0x2cfce1(0x2d4) + _0x2cfce1(0x2a7) + _0x2cfce1(0x301) + _0x2cfce1(0x17a) + _0x2cfce1(0x270),
'namePrefix': _0x2cfce1(0x2b1)
}
];
async function fetchApiData() {
const _0x5605f5 = _0x2cfce1, _0x4b7bb0 = {
'dHpHh': function (_0x4b1b90, _0x2f83f4) {
return _0x4b1b90 < _0x2f83f4;
},
'qyoes': function (_0x297b20, _0x2c7ec6) {
return _0x297b20 === _0x2c7ec6;
},
'zuccH': _0x5605f5(0x27b),
'HwKDD': _0x5605f5(0x2a4) + ':'
};
let _0x1a7604 = [];
try {
for (let _0x90714f = -0xa50 + -0x937 + 0x1387; _0x4b7bb0[_0x5605f5(0x23a)](_0x90714f, apiList[_0x5605f5(0x1d1)]); _0x90714f++) {
const _0xc23953 = apiList[_0x90714f];
console[_0x5605f5(0x265)](_0x5605f5(0x272) + _0xc23953[_0x5605f5(0x1e6)]);
try {
const _0x11ef07 = await axios[_0x5605f5(0x250)](_0xc23953[_0x5605f5(0x1e6)], { 'timeout': 0x2710 }), _0x59c684 = _0x11ef07[_0x5605f5(0x1ac)];
if (Array[_0x5605f5(0x1e5)](_0x59c684)) {
const _0xdda1b4 = _0x59c684[_0x5605f5(0x171)]((_0x4ad99a, _0x47638e) => ({
'domain': _0x4ad99a['ip'] || _0x4ad99a,
'name': '' + _0xc23953[_0x5605f5(0x18e)] + (_0x47638e + (-0x1 * -0x15c3 + -0x215 * 0x1 + -0x13ad)) + ')'
}));
_0x1a7604 = _0x1a7604[_0x5605f5(0x314)](_0xdda1b4);
} else {
if (_0x4b7bb0[_0x5605f5(0x2a6)](typeof _0x59c684, _0x4b7bb0[_0x5605f5(0x1c2)])) {
const _0x344e93 = _0x59c684[_0x5605f5(0x228)]('\x0a')[_0x5605f5(0x2e4)](_0x22f098 => _0x22f098[_0x5605f5(0x163)]()), _0x417787 = _0x344e93[_0x5605f5(0x171)]((_0x3eea28, _0x3088f5) => ({
'domain': _0x3eea28[_0x5605f5(0x163)](),
'name': '' + _0xc23953[_0x5605f5(0x18e)] + (_0x3088f5 + (-0x1ca1 + 0x61 * 0xf + 0x16f3)) + ')'
}));
_0x1a7604 = _0x1a7604[_0x5605f5(0x314)](_0x417787);
}
}
} catch (_0x4a6860) {
console[_0x5605f5(0x1a2)](_0x5605f5(0x17e) + _0xc23953[_0x5605f5(0x1e6)] + _0x5605f5(0x2fe), _0x4a6860[_0x5605f5(0x218)]);
}
}
return console[_0x5605f5(0x265)](_0x5605f5(0x296) + _0x1a7604[_0x5605f5(0x1d1)] + _0x5605f5(0x211)), _0x1a7604;
} catch (_0x5c70b5) {
return console[_0x5605f5(0x1a2)](_0x4b7bb0[_0x5605f5(0x180)], _0x5c70b5), [];
}
}
function generateVlessConfig(_0x35944b) {
const _0x5d3ae1 = _0x2cfce1, _0x5148fa = _0x35944b[_0x5d3ae1(0x222)][_0x5d3ae1(0x1b2)](/#.*$/, ''), _0x41a3ec = _0x35944b[_0x5d3ae1(0x255)], _0x39f3d3 = _0x5d3ae1(0x209) + UUID + '@' + _0x5148fa + (_0x5d3ae1(0x20f) + _0x5d3ae1(0x168) + _0x5d3ae1(0x2b3) + _0x5d3ae1(0x30f)) + DOMAIN + (_0x5d3ae1(0x201) + _0x5d3ae1(0x273) + _0x5d3ae1(0x2ba)) + DOMAIN + _0x5d3ae1(0x208) + _0x41a3ec;
return _0x39f3d3;
}
function handleWebSocket(_0x50158f, _0x30bfd0) {
const _0x2b2627 = _0x2cfce1, _0x206739 = {
'ILoRK': function (_0x30f223, _0x5a0ff9) {
return _0x30f223 === _0x5a0ff9;
},
'pDtGd': function (_0x4264ef, _0xbfc54d) {
return _0x4264ef < _0xbfc54d;
},
'xTIDh': _0x2b2627(0x1a2),
'goCxM': function (_0x1e42c4, _0x2e1d89) {
return _0x1e42c4 === _0x2e1d89;
},
'FYMjS': _0x2b2627(0x26f),
'uJWDC': function (_0x2b7452, _0x2ac2ed) {
return _0x2b7452 === _0x2ac2ed;
},
'zgGHq': _0x2b2627(0x25b) + 'ID',
'zUGLH': function (_0x434b06, _0x4e8ebd) {
return _0x434b06 + _0x4e8ebd;
},
'nCfAO': function (_0x4ff720, _0x5582be) {
return _0x4ff720 == _0x5582be;
},
'tsDtq': function (_0x2b6982, _0x51927d) {
return _0x2b6982 == _0x51927d;
},
'smUie': function (_0x2320d4, _0x2846fc) {
return _0x2320d4(_0x2846fc);
},
'OVAMp': _0x2b2627(0x294),
'ywWVW': _0x2b2627(0x172) + _0x2b2627(0x21d),
'frUYk': _0x2b2627(0x195),
'ZOmrw': _0x2b2627(0x188),
'YlxFQ': _0x2b2627(0x29a),
'TOObX': _0x2b2627(0x2f1) + _0x2b2627(0x24e),
'JZvXQ': _0x2b2627(0x218)
}, _0x1ee0f1 = _0x30bfd0[_0x2b2627(0x2b0)][_0x206739[_0x2b2627(0x1ad)]] || _0x30bfd0[_0x2b2627(0x2b0)][_0x206739[_0x2b2627(0x2ae)]] || _0x30bfd0[_0x2b2627(0x28b)][_0x2b2627(0x23c) + _0x2b2627(0x1fe)], _0x5e0d89 = _0x30bfd0[_0x2b2627(0x2b0)][_0x206739[_0x2b2627(0x2d6)]] || _0x206739[_0x2b2627(0x269)];
LOG_FLAG && (console[_0x2b2627(0x265)](_0x206739[_0x2b2627(0x1c7)]), console[_0x2b2627(0x265)](_0x2b2627(0x1be) + _0x1ee0f1), console[_0x2b2627(0x265)](_0x2b2627(0x29f) + _0x2b2627(0x2f9) + _0x5e0d89)), connectionStats[_0x2b2627(0x256) + _0x2b2627(0x286)]++, connectionStats[_0x2b2627(0x2da) + _0x2b2627(0x30c)]++, _0x50158f[_0x2b2627(0x2de)](_0x206739[_0x2b2627(0x2c3)], _0x1be6d2 => {
const _0x5f140f = _0x2b2627, _0xa6f66f = {
'FzZpC': function (_0x2be97c, _0x24865b) {
const _0x46b7a1 = _0x324d;
return _0x206739[_0x46b7a1(0x226)](_0x2be97c, _0x24865b);
},
'qMqQG': _0x206739[_0x5f140f(0x24d)],
'XvoNp': function (_0x41540c, _0x55e9ca) {
const _0x4563b2 = _0x5f140f;
return _0x206739[_0x4563b2(0x27c)](_0x41540c, _0x55e9ca);
},
'kwBGV': function (_0x1333fe, _0x42434a) {
const _0x2b6937 = _0x5f140f;
return _0x206739[_0x2b6937(0x177)](_0x1333fe, _0x42434a);
}
};
try {
LOG_FLAG && console[_0x5f140f(0x265)](_0x5f140f(0x1bf) + _0x5f140f(0x295) + _0x1ee0f1 + ']:', {
'长度': _0x1be6d2[_0x5f140f(0x1d1)],
'前16字节': _0x1be6d2[_0x5f140f(0x2a2)](0x933 + -0x1a53 + -0x890 * -0x2, Math[_0x5f140f(0x175)](-0x1f80 + -0x1fe5 + 0x9 * 0x70d, _0x1be6d2[_0x5f140f(0x1d1)]))[_0x5f140f(0x23f)](_0x206739[_0x5f140f(0x2d5)])
});
const [_0x3f9824] = _0x1be6d2, _0x47aa5c = _0x1be6d2[_0x5f140f(0x2a2)](0x55 * -0x1b + -0x1b * 0xf3 + 0x2299, 0x7fa + -0xe4b + 0x662), _0x4dce38 = _0x47aa5c[_0x5f140f(0x23f)](_0x206739[_0x5f140f(0x2d5)]);
LOG_FLAG && console[_0x5f140f(0x265)](_0x5f140f(0x1b9) + _0x5f140f(0x233) + _0x1ee0f1 + ']:', {
'版本': _0x3f9824,
'UUID': _0x4dce38,
'是否匹配': _0x206739[_0x5f140f(0x1cc)](_0x4dce38, uuidNoHyphens)
});
if (!_0x47aa5c[_0x5f140f(0x1e3)]((_0x55d01b, _0x1f0084) => _0x55d01b == parseInt(uuidNoHyphens[_0x5f140f(0x1fb)](_0x1f0084 * (-0x1796 + -0x9e2 * -0x1 + 0xdb6), 0xcf3 + -0x1bec + 0x5 * 0x2ff), -0x1 * -0x24f7 + -0x69c + 0xa5 * -0x2f))) {
LOG_FLAG && console[_0x5f140f(0x265)](_0x5f140f(0x266) + '\x20[' + _0x1ee0f1 + _0x5f140f(0x310) + uuidNoHyphens + _0x5f140f(0x1a1) + _0x4dce38);
_0x50158f[_0x5f140f(0x294)](-0x20e6 + -0x4e1 * -0x6 + 0x788, _0x206739[_0x5f140f(0x1d4)]);
return;
}
LOG_FLAG && console[_0x5f140f(0x265)](_0x5f140f(0x2c9) + '\x20[' + _0x1ee0f1 + ']');
let _0x2d48c1 = _0x206739[_0x5f140f(0x182)](_0x1be6d2[_0x5f140f(0x2a2)](0x223d * -0x1 + -0x61 * -0x29 + 0x12c5, -0x180d + -0x3 * -0x907 + 0x1 * -0x2f6)[_0x5f140f(0x29c)](), -0xc * -0x185 + -0xde7 * 0x2 + -0x9a5 * -0x1);
const _0x2ef40b = _0x1be6d2[_0x5f140f(0x2a2)](_0x2d48c1, _0x2d48c1 += 0x18f3 + -0x1eba + 0x5c9 * 0x1)[_0x5f140f(0x2b2) + 'BE'](-0x95 + -0x14f1 + 0x1586), _0x2058f7 = _0x1be6d2[_0x5f140f(0x2a2)](_0x2d48c1, _0x2d48c1 += 0x20 * 0xe4 + -0x7 * 0x1e1 + -0x4 * 0x3d6)[_0x5f140f(0x29c)]();
let _0x1d5f49 = '';
if (_0x206739[_0x5f140f(0x242)](_0x2058f7, 0x1de2 + -0xa31 * 0x2 + -0x97f))
_0x1d5f49 = _0x1be6d2[_0x5f140f(0x2a2)](_0x2d48c1, _0x2d48c1 += -0x1539 + 0x5b5 + 0xf88)[_0x5f140f(0x1cb)]('.');
else {
if (_0x206739[_0x5f140f(0x16d)](_0x2058f7, 0x6d * -0x1 + 0x3f9 * -0x8 + 0x2037))
_0x1d5f49 = new TextDecoder()[_0x5f140f(0x2e2)](_0x1be6d2[_0x5f140f(0x2a2)](_0x206739[_0x5f140f(0x182)](_0x2d48c1, 0x3cd * 0x5 + -0x214f + 0x14d * 0xb), _0x2d48c1 += _0x206739[_0x5f140f(0x182)](-0xb * -0x155 + 0x99d * -0x4 + 0x115 * 0x16, _0x1be6d2[_0x5f140f(0x2a2)](_0x2d48c1, _0x206739[_0x5f140f(0x182)](_0x2d48c1, -0x116c * -0x1 + -0x1b2e + 0x11 * 0x93))[_0x5f140f(0x29c)]())));
else
_0x206739[_0x5f140f(0x242)](_0x2058f7, 0x2 * -0xff8 + 0xbd5 * 0x1 + 0x2 * 0xa0f) && (_0x1d5f49 = _0x1be6d2[_0x5f140f(0x2a2)](_0x2d48c1, _0x2d48c1 += -0x6a7 + -0x2 * -0xeb6 + 0x16b5 * -0x1)[_0x5f140f(0x2ab)]((_0x5a1b1c, _0x16e052, _0x3e4134, _0x3ada69) => _0x3e4134 % (0x145 + 0x1849 + -0x198c) ? _0x5a1b1c[_0x5f140f(0x314)](_0x3ada69[_0x5f140f(0x2a2)](_0x3e4134 - (0x78d * -0x2 + 0x1325 + -0xb * 0x5e), _0x3e4134 + (0xb15 + 0x1 * -0x1495 + 0x981 * 0x1))) : _0x5a1b1c, [])[_0x5f140f(0x171)](_0x40bab9 => _0x40bab9[_0x5f140f(0x2b2) + 'BE'](-0x1 * -0xe51 + 0x1 * 0x1dce + -0x3 * 0xeb5)[_0x5f140f(0x23f)](0x1bc3 + -0x407 * -0x5 + -0x2fd6))[_0x5f140f(0x1cb)](':'));
}
LOG_FLAG && console[_0x5f140f(0x265)](_0x5f140f(0x232) + _0x1ee0f1 + _0x5f140f(0x2cd) + _0x1d5f49 + ':' + _0x2ef40b);
_0x50158f[_0x5f140f(0x280)](new Uint8Array([
_0x3f9824,
-0x1eeb + 0x1 * 0xb5e + 0x138d
]));
LOG_FLAG && console[_0x5f140f(0x265)](_0x5f140f(0x2a9) + _0x5f140f(0x25e) + _0x1ee0f1 + ']');
const _0x590506 = _0x206739[_0x5f140f(0x302)](createWebSocketStream, _0x50158f), _0x6df835 = net[_0x5f140f(0x2cb)]({
'host': _0x1d5f49,
'port': _0x2ef40b
}, function () {
const _0x4d7869 = _0x5f140f;
LOG_FLAG && console[_0x4d7869(0x265)](_0x4d7869(0x235) + _0x4d7869(0x282) + _0x1ee0f1 + _0x4d7869(0x2cd) + _0x1d5f49 + ':' + _0x2ef40b);
if (_0xa6f66f[_0x4d7869(0x2d1)](_0x2d48c1, _0x1be6d2[_0x4d7869(0x1d1)])) {
const _0x3b6e82 = _0x1be6d2[_0x4d7869(0x2a2)](_0x2d48c1);
this[_0x4d7869(0x1f5)](_0x3b6e82), connectionStats[_0x4d7869(0x22d) + _0x4d7869(0x1eb)] += _0x3b6e82[_0x4d7869(0x1d1)], LOG_FLAG && console[_0x4d7869(0x265)](_0x4d7869(0x293) + _0x4d7869(0x229) + _0x1ee0f1 + _0x4d7869(0x2cd) + _0x3b6e82[_0x4d7869(0x1d1)] + _0x4d7869(0x316));
}
_0x590506['on'](_0xa6f66f[_0x4d7869(0x30a)], () => {
})[_0x4d7869(0x246)](this)['on'](_0xa6f66f[_0x4d7869(0x30a)], () => {
})[_0x4d7869(0x246)](_0x590506);
})['on'](_0x206739[_0x5f140f(0x24d)], _0x3169e6 => {
const _0x532044 = _0x5f140f;
LOG_FLAG && console[_0x532044(0x1a2)](_0x532044(0x23e) + '[' + _0x1ee0f1 + _0x532044(0x2cd) + _0x3169e6[_0x532044(0x218)]), _0xa6f66f[_0x532044(0x166)](_0x50158f[_0x532044(0x1d8)], -0x21e * 0x3 + -0xd9e + 0x13f9) && _0x50158f[_0x532044(0x294)]();
})['on'](_0x206739[_0x5f140f(0x1c5)], () => {
const _0x3d4a21 = _0x5f140f;
LOG_FLAG && console[_0x3d4a21(0x265)](_0x3d4a21(0x191) + '[' + _0x1ee0f1 + ']'), _0xa6f66f[_0x3d4a21(0x26d)](_0x50158f[_0x3d4a21(0x1d8)], -0x2 * -0x509 + 0x1913 * -0x1 + 0x22 * 0x71) && _0x50158f[_0x3d4a21(0x294)]();
});
_0x6df835[_0x5f140f(0x26c)](SOCKET_TIMEOUT, () => {
const _0x470c75 = _0x5f140f;
LOG_FLAG && console[_0x470c75(0x1a2)](_0x470c75(0x26b) + '[' + _0x1ee0f1 + _0x470c75(0x2cd) + _0x1d5f49 + ':' + _0x2ef40b), _0x6df835[_0x470c75(0x251)](), _0x206739[_0x470c75(0x27c)](_0x50158f[_0x470c75(0x1d8)], 0x1c64 + -0x1871 + -0x1f9 * 0x2) && _0x50158f[_0x470c75(0x294)]();
});
} catch (_0x9b94e8) {
LOG_FLAG && console[_0x5f140f(0x1a2)](_0x5f140f(0x174) + _0x5f140f(0x16e) + _0x1ee0f1 + ']:', _0x9b94e8), _0x50158f[_0x5f140f(0x294)]();
}
})['on'](_0x206739[_0x2b2627(0x24d)], _0x5b59a6 => {
const _0x583546 = _0x2b2627;
LOG_FLAG && console[_0x583546(0x1a2)](_0x583546(0x240) + _0x583546(0x2a8) + _0x1ee0f1 + ']:', _0x5b59a6), connectionStats[_0x583546(0x2da) + _0x583546(0x30c)]--;
})['on'](_0x206739[_0x2b2627(0x1c5)], (_0x4a69a5, _0x4716db) => {
const _0x124d15 = _0x2b2627;
LOG_FLAG && console[_0x124d15(0x265)](_0x124d15(0x185) + _0x124d15(0x2f5) + _0x1ee0f1 + ']:', {
'代码': _0x4a69a5,
'原因': _0x4716db?.[_0x124d15(0x23f)]() || '无'
}), connectionStats[_0x124d15(0x2da) + _0x124d15(0x30c)]--;
});
}
function startNezhaMonitoring() {
const _0x16d025 = _0x2cfce1, _0x22f07f = {
'EsElt': function (_0x46240d, _0x480308) {
return _0x46240d && _0x480308;
},
'DtFQw': function (_0x7df73b, _0x59f6ab) {
return _0x7df73b === _0x59f6ab;
},
'kPfpC': _0x16d025(0x237),
'bdgHg': _0x16d025(0x213),
'ZaGMI': function (_0x16964a, _0x2d4a2b) {
return _0x16964a(_0x2d4a2b);
},
'WufOz': _0x16d025(0x2ee),
'PIOGn': _0x16d025(0x2be) + _0x16d025(0x2eb)
};
if (_0x22f07f[_0x16d025(0x284)](NEZHA_SERVER, NEZHA_PORT) && NEZHA_KEY) {
let _0x4d4890 = _0x22f07f[_0x16d025(0x290)](NEZHA_PORT, _0x22f07f[_0x16d025(0x281)]) ? _0x22f07f[_0x16d025(0x2a5)] : '';
const _0x14085f = _0x16d025(0x263) + 's\x20' + NEZHA_SERVER + ':' + NEZHA_PORT + _0x16d025(0x1f6) + NEZHA_KEY + '\x20' + _0x4d4890 + (_0x16d025(0x1e0) + _0x16d025(0x29b) + _0x16d025(0x219) + _0x16d025(0x319) + _0x16d025(0x2c1) + _0x16d025(0x1a5) + _0x16d025(0x196) + _0x16d025(0x1ec) + '\x20&');
try {
_0x22f07f[_0x16d025(0x2f2)](exec, _0x14085f), console[_0x16d025(0x265)](_0x22f07f[_0x16d025(0x28f)]);
} catch (_0x506c6c) {
console[_0x16d025(0x1a2)](_0x16d025(0x198) + _0x16d025(0x216) + _0x506c6c);
}
} else
console[_0x16d025(0x265)](_0x22f07f[_0x16d025(0x262)]);
}
async function main() {
const _0x234253 = _0x2cfce1, _0x104b3f = {
'rgqso': function (_0x59a000, _0x437886) {
return _0x59a000(_0x437886);
},
'DvCIw': _0x234253(0x172) + _0x234253(0x21d),
'lYSrt': _0x234253(0x195),
'wQdMX': _0x234253(0x193),
'dxJCa': _0x234253(0x2ec),
'POgeA': _0x234253(0x188),
'WeFBj': _0x234253(0x29a),
'wIqRn': _0x234253(0x1f9) + _0x234253(0x212) + _0x234253(0x1cd),
'pJjPo': _0x234253(0x285) + _0x234253(0x2af),
'iBgfN': _0x234253(0x315) + 'pe',
'WyuhO': function (_0x42468d, _0x36721a) {
return _0x42468d === _0x36721a;
},
'Krtrv': function (_0xfd27c3, _0x38fd81) {
return _0xfd27c3 + _0x38fd81;
},
'oyiSh': function (_0x533265, _0x4ce9d7) {
return _0x533265 !== _0x4ce9d7;
},
'qHFXs': _0x234253(0x1b3) + _0x234253(0x252),
'DuccY': function (_0x5c5101, _0x3889e8) {
return _0x5c5101 / _0x3889e8;
},
'rSzpf': function (_0x53ebaf, _0xbb9ded) {
return _0x53ebaf - _0xbb9ded;
},
'GrYSx': function (_0x13853f, _0x9b431c) {
return _0x13853f / _0x9b431c;
},
'lgOGD': function (_0xbd4069, _0x38cea1) {
return _0xbd4069(_0x38cea1);
},
'xbJYD': _0x234253(0x2d3),
'gHOVr': _0x234253(0x289),
'rAYkS': _0x234253(0x2d2) + _0x234253(0x220),
'Rxqau': function (_0x44d134, _0x4461f3, _0x42226b) {
return _0x44d134(_0x4461f3, _0x42226b);
},
'fVMHw': _0x234253(0x240) + _0x234253(0x2c6),
'OYDxj': _0x234253(0x2c2) + _0x234253(0x303),
'JwgIk': _0x234253(0x2bd) + '..',
'vBzbE': function (_0x50ef9f) {
return _0x50ef9f();
},
'oMTAr': _0x234253(0x291) + '..',
'EOcaG': function (_0x4bbc86) {
return _0x4bbc86();
},
'gTsFF': function (_0x76e6c1) {
return _0x76e6c1();
},
'ciIky': _0x234253(0x176),
'phBbt': function (_0x17b702, _0xef1da1, _0x5b8f91) {
return _0x17b702(_0xef1da1, _0x5b8f91);
}
};
console[_0x234253(0x265)](_0x104b3f[_0x234253(0x1da)]), apiData = await _0x104b3f[_0x234253(0x21e)](fetchApiData), lastUpdateTime = new Date()[_0x234253(0x160) + _0x234253(0x268)](), _0x104b3f[_0x234253(0x259)](startNezhaMonitoring);
const _0x5249b7 = new WebSocketServer({ 'noServer': !![] }), _0x42c89d = http[_0x234253(0x238) + 'er']((_0x2f3034, _0xb456d9) => {
const _0x2502ee = _0x234253, _0x30752d = {
'YlFrJ': function (_0x195d12, _0x19d009) {
const _0x3d268c = _0x324d;
return _0x104b3f[_0x3d268c(0x214)](_0x195d12, _0x19d009);
}
}, _0x5980ad = new URL(_0x2f3034[_0x2502ee(0x1e6)], _0x2502ee(0x1f4) + _0x2f3034[_0x2502ee(0x2b0)][_0x2502ee(0x1fd)]), _0x4e9f6a = _0x5980ad[_0x2502ee(0x1c4)], _0x438efd = _0x2f3034[_0x2502ee(0x2b0)][_0x104b3f[_0x2502ee(0x197)]] || _0x2f3034[_0x2502ee(0x2b0)][_0x104b3f[_0x2502ee(0x28a)]] || _0x2f3034[_0x2502ee(0x28b)][_0x2502ee(0x23c) + _0x2502ee(0x1fe)], _0x2ec33f = _0x5980ad[_0x2502ee(0x2cf) + 'ms'][_0x2502ee(0x15f)](_0x104b3f[_0x2502ee(0x1c6)]) || _0x5980ad[_0x2502ee(0x2cf) + 'ms'][_0x2502ee(0x15f)](_0x104b3f[_0x2502ee(0x18f)]);
console[_0x2502ee(0x265)](_0x2502ee(0x309) + '求:'), console[_0x2502ee(0x265)](_0x2502ee(0x2bb) + new Date()[_0x2502ee(0x160) + _0x2502ee(0x268)]()), console[_0x2502ee(0x265)](_0x2502ee(0x1be) + _0x438efd), console[_0x2502ee(0x265)](_0x2502ee(0x1d0) + _0x2f3034[_0x2502ee(0x2e3)]), console[_0x2502ee(0x265)](_0x2502ee(0x1b7) + _0x2f3034[_0x2502ee(0x1e6)]), console[_0x2502ee(0x265)](_0x2502ee(0x306) + _0x4e9f6a), console[_0x2502ee(0x265)](_0x2502ee(0x1b8) + _0x2f3034[_0x2502ee(0x2b0)][_0x2502ee(0x1fd)]), console[_0x2502ee(0x265)](_0x2502ee(0x29f) + _0x2502ee(0x2f9) + (_0x2f3034[_0x2502ee(0x2b0)][_0x104b3f[_0x2502ee(0x199)]] || _0x104b3f[_0x2502ee(0x204)])), console[_0x2502ee(0x265)](_0x2502ee(0x200) + ':\x20' + _0x2ec33f), console[_0x2502ee(0x265)](_0x2502ee(0x275), JSON[_0x2502ee(0x161)](_0x2f3034[_0x2502ee(0x2b0)], null, 0x200f * 0x1 + 0x54d + -0x2ab * 0xe));
const _0x2093f6 = {
'Content-Type': _0x104b3f[_0x2502ee(0x2f6)],
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': _0x104b3f[_0x2502ee(0x19b)],
'Access-Control-Allow-Headers': _0x104b3f[_0x2502ee(0x27e)]
};
if (_0x104b3f[_0x2502ee(0x277)](_0x4e9f6a, '/')) {
const _0x212554 = _0x104b3f[_0x2502ee(0x2d7)](_0x104b3f[_0x2502ee(0x2d7)](builtinNodes[_0x2502ee(0x1d1)], apiData[_0x2502ee(0x1d1)]), DOMAIN && _0x104b3f[_0x2502ee(0x2ca)](DOMAIN, _0x104b3f[_0x2502ee(0x1af)]) ? 0x2072 + -0x1cd6 + -0x39b * 0x1 : -0x1 * 0x17e1 + 0x2 * 0x11b + 0x15ab), _0x2f36b2 = Math[_0x2502ee(0x2ef)](_0x104b3f[_0x2502ee(0x2e7)](_0x104b3f[_0x2502ee(0x1c3)](new Date(), connectionStats[_0x2502ee(0x2fa)]), 0x16a2 + 0x62 * 0x47 + -0x2de8)), _0x1484eb = _0x2502ee(0x18d) + _0x2502ee(0x190) + _0x2502ee(0x1d7) + builtinNodes[_0x2502ee(0x1d1)] + (_0x2502ee(0x215) + ':\x20') + apiData[_0x2502ee(0x1d1)] + _0x2502ee(0x205) + _0x212554 + _0x2502ee(0x2b5) + lastUpdateTime + _0x2502ee(0x257) + uuid + _0x2502ee(0x1d2) + DOMAIN + (_0x2502ee(0x20a) + _0x2502ee(0x2aa) + '\x20') + connectionStats[_0x2502ee(0x256) + _0x2502ee(0x286)] + _0x2502ee(0x1e7) + connectionStats[_0x2502ee(0x2da) + _0x2502ee(0x30c)] + _0x2502ee(0x297) + _0x104b3f[_0x2502ee(0x2e7)](_0x104b3f[_0x2502ee(0x2ad)](connectionStats[_0x2502ee(0x22d) + _0x2502ee(0x1eb)], 0x1f * -0x10f + 0x1166 + -0x679 * -0x3), -0x2 * -0x6c3 + 0x27 * -0x31 + -0x20f)[_0x2502ee(0x1f1)](0x362 + -0x138f + -0x3 * -0x565) + _0x2502ee(0x30d) + _0x2f36b2 + '\x20秒';
LOG_FLAG && (console[_0x2502ee(0x265)](_0x2502ee(0x2ea) + '[' + _0x438efd + ']:'), console[_0x2502ee(0x265)](_0x2502ee(0x1ba) + _0x1484eb[_0x2502ee(0x1d1)]), console[_0x2502ee(0x265)](_0x2502ee(0x2c5) + _0x212554), console[_0x2502ee(0x265)](_0x2502ee(0x1f7) + connectionStats[_0x2502ee(0x2da) + _0x2502ee(0x30c)])), _0xb456d9[_0x2502ee(0x18a)](-0x6b * -0x2b + 0x978 * 0x1 + -0x1aa9, _0x2093f6), _0xb456d9[_0x2502ee(0x2cc)](_0x1484eb);
} else {
if (_0x104b3f[_0x2502ee(0x277)](_0x4e9f6a, '/' + uuid) || _0x104b3f[_0x2502ee(0x277)](_0x4e9f6a, '/' + uuidNoHyphens)) {
let _0x573092 = [];
if (DOMAIN && _0x104b3f[_0x2502ee(0x2ca)](DOMAIN, _0x104b3f[_0x2502ee(0x1af)])) {
const _0x58a9c2 = {
'domain': DOMAIN,
'name': _0x2502ee(0x1c0) + NAME
};
_0x573092[_0x2502ee(0x258)](_0x104b3f[_0x2502ee(0x24f)](generateVlessConfig, _0x58a9c2));
}
builtinNodes[_0x2502ee(0x1c9)](_0x5282c4 => {
const _0x5e7dca = _0x2502ee, _0x55fae6 = _0x104b3f[_0x5e7dca(0x214)](generateVlessConfig, _0x5282c4);
_0x573092[_0x5e7dca(0x258)](_0x55fae6);
}), apiData[_0x2502ee(0x1c9)](_0x596767 => {
const _0x403aea = _0x2502ee, _0x5d3b84 = _0x30752d[_0x403aea(0x248)](generateVlessConfig, _0x596767);
_0x573092[_0x403aea(0x258)](_0x5d3b84);
});
let _0xe48ea6 = _0x573092[_0x2502ee(0x1cb)]('\x0a');
LOG_FLAG && (console[_0x2502ee(0x265)](_0x2502ee(0x1bc) + '\x20[' + _0x438efd + ']:'), console[_0x2502ee(0x265)](_0x2502ee(0x236) + _0x573092[_0x2502ee(0x1d1)]), console[_0x2502ee(0x265)](_0x2502ee(0x24c) + ':\x20' + _0x2ec33f), console[_0x2502ee(0x265)](_0x2502ee(0x2fc) + _0xe48ea6[_0x2502ee(0x1d1)])), _0x2ec33f ? (_0xe48ea6 = Buffer[_0x2502ee(0x1bb)](_0xe48ea6, _0x104b3f[_0x2502ee(0x170)])[_0x2502ee(0x23f)](_0x104b3f[_0x2502ee(0x1c6)]), LOG_FLAG && console[_0x2502ee(0x265)](_0x2502ee(0x1e4) + ':\x20' + _0xe48ea6[_0x2502ee(0x1d1)])) : _0xe48ea6 += '\x0a', _0xb456d9[_0x2502ee(0x18a)](-0x14d7 + -0x18dd * 0x1 + 0x1 * 0x2e7c, _0x2093f6), _0xb456d9[_0x2502ee(0x2cc)](_0xe48ea6);
} else
_0xb456d9[_0x2502ee(0x18a)](0x229 * -0xb + 0x9c1 + 0xd2 * 0x13, _0x2093f6), _0xb456d9[_0x2502ee(0x2cc)](_0x104b3f[_0x2502ee(0x1b1)]);
}
});
_0x42c89d['on'](_0x104b3f[_0x234253(0x186)], (_0x38327f, _0x220069, _0x578b49) => {
const _0x5d39f4 = _0x234253;
try {
LOG_FLAG && console[_0x5d39f4(0x265)](_0x5d39f4(0x2dc) + _0x5d39f4(0x30e) + _0x38327f[_0x5d39f4(0x1e6)]), _0x5249b7[_0x5d39f4(0x1dc) + _0x5d39f4(0x1a0)](_0x38327f, _0x220069, _0x578b49, _0x424e8d => {
const _0x388fe3 = _0x5d39f4;
LOG_FLAG && console[_0x388fe3(0x265)](_0x104b3f[_0x388fe3(0x19a)]), _0x104b3f[_0x388fe3(0x18c)](handleWebSocket, _0x424e8d, _0x38327f);
});
} catch (_0x5805f4) {
LOG_FLAG && console[_0x5d39f4(0x1a2)](_0x104b3f[_0x5d39f4(0x1cf)], _0x5805f4), _0x220069[_0x5d39f4(0x2cc)]();
}
}), _0x42c89d[_0x234253(0x181) + _0x234253(0x1a3)] = MAX_CONNECTIONS, _0x42c89d[_0x234253(0x300)] = SOCKET_TIMEOUT, _0x42c89d[_0x234253(0x287) + _0x234253(0x1ef)] = -0x50b + 0x11 * -0x101 + 0x1 * 0x29a4, _0x42c89d[_0x234253(0x2c4) + _0x234253(0x234)] = -0x20e0 + 0x158a + 0x3266, _0x42c89d[_0x234253(0x1ae)](port, () => {
const _0x164cf9 = _0x234253, _0xc7c464 = _0x104b3f[_0x164cf9(0x2b4)][_0x164cf9(0x228)]('|');
let _0x5b4d4d = 0x2f9 * -0x1 + -0xe * 0x87 + 0xa5b;
while (!![]) {
switch (_0xc7c464[_0x5b4d4d++]) {
case '0':
console[_0x164cf9(0x265)](_0x164cf9(0x20b) + _0x164cf9(0x28d) + _0x164cf9(0x17c) + port + '/');
continue;
case '1':
console[_0x164cf9(0x265)](_0x164cf9(0x243));
continue;
case '2':
console[_0x164cf9(0x265)](_0x164cf9(0x223) + SOCKET_TIMEOUT + 'ms');
continue;
case '3':
console[_0x164cf9(0x265)](_0x164cf9(0x1bd) + (LOG_FLAG ? '开启' : '关闭'));
continue;
case '4':
console[_0x164cf9(0x265)](_0x164cf9(0x305) + _0x164cf9(0x164) + _0x164cf9(0x2a1) + port + '/' + uuid);
continue;
case '5':
console[_0x164cf9(0x265)](_0x164cf9(0x2dd) + _0x164cf9(0x1aa) + port);
continue;
case '6':
console[_0x164cf9(0x265)](_0x164cf9(0x1a4) + uuid);
continue;
case '7':
console[_0x164cf9(0x265)](_0x164cf9(0x221) + MAX_CONNECTIONS);
continue;
}
break;
}
}), _0x104b3f[_0x234253(0x2f8)](setInterval, async () => {
const _0x17aebf = _0x234253;
console[_0x17aebf(0x265)](_0x104b3f[_0x17aebf(0x2f0)]), apiData = await _0x104b3f[_0x17aebf(0x239)](fetchApiData), lastUpdateTime = new Date()[_0x17aebf(0x160) + _0x17aebf(0x268)]();
}, -0x2b68d + 0x7bbc8 + -0x715b);
}
main()[_0x2cfce1(0x283)](console[_0x2cfce1(0x1a2)]);