| const fetch = require('node-fetch'); |
| const jsyaml = require('js-yaml'); |
| const btoa = require('btoa'); |
| const TextEncoder = require('util').TextEncoder; |
|
|
|
|
|
|
| async function handleRequest(request) { |
| |
|
|
| const sites = [ |
| { url: "https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/1/config.json", type: "hysteria" }, |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/hysteria/config.json", type: "hysteria" }, |
| { url: "https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/config.json", type: "hysteria" }, |
| { url: "https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/hysteria/config.json", type: "hysteria" }, |
| { url: "https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/13/config.json", type: "hysteria" }, |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/hysteria/2/config.json", type: "hysteria" }, |
| { url: "https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/2/config.json", type: "hysteria" }, |
| { url: "https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/hysteria/2/config.json", type: "hysteria" }, |
| |
| { url: 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/1/config.json', type: "hysteria2" }, |
| { url: 'https://gitlab.com/free9999/ipupdate/-/raw/master/hysteria2/config.json', type: "hysteria2" }, |
| { url: 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria2/config.json', type: "hysteria2" }, |
| { url: 'https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/hysteria2/config.json', type: "hysteria2" }, |
| { url: 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/13/config.json', type: "hysteria2" }, |
| { url: 'https://gitlab.com/free9999/ipupdate/-/raw/master/hysteria2/2/config.json', type: "hysteria2" }, |
| { url: 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria2/2/config.json', type: "hysteria2" }, |
| { url: 'https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/hysteria2/2/config.json', type: "hysteria2" }, |
| |
| { url: 'https://www.gitlabip.xyz/Alvin9999/pac2/master/xray/1/config.json', type: "xray" }, |
| { url: 'https://gitlab.com/free9999/ipupdate/-/raw/master/xray/config.json', type: "xray" }, |
| { url: 'https://www.githubip.xyz/Alvin9999/pac2/master/xray/config.json', type: "xray" }, |
| { url: 'https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/xray/config.json', type: "xray" }, |
| { url: 'https://www.gitlabip.xyz/Alvin9999/pac2/master/xray/3/config.json', type: "xray" }, |
| { url: 'https://gitlab.com/free9999/ipupdate/-/raw/master/xray/2/config.json', type: "xray" }, |
| { url: 'https://www.githubip.xyz/Alvin9999/pac2/master/xray/2/config.json', type: "xray" }, |
| |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/singbox/config.json", type: "singbox" }, |
| { url: "https://www.githubip.xyz/Alvin9999/pac2/master/singbox/config.json", type: "singbox" }, |
| { url: "https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/singbox/config.json", type: "singbox" }, |
| { url: "https://www.gitlabip.xyz/Alvin9999/pac2/master/singbox/1/config.json", type: "singbox" }, |
| |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/clash.meta2/config.yaml", type: "clash" }, |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/clash.meta2/config.yaml", type: "clash" }, |
| { url: "https://www.githubip.xyz/Alvin9999/pac2/master/clash.meta2/config.yaml", type: "clash" }, |
| { url: "https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/clash.meta2/config.yaml", type: "clash" }, |
| { url: "https://www.gitlabip.xyz/Alvin9999/pac2/master/clash.meta2/13/config.yaml", type: "clash" }, |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/clash.meta2/2/config.yaml", type: "clash" }, |
| { url: "https://www.githubip.xyz/Alvin9999/pac2/master/clash.meta2/2/config.yaml", type: "clash" }, |
| { url: "https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/clash.meta2/2/config.yaml", type: "clash" }, |
| { url: "https://www.gitlabip.xyz/Alvin9999/pac2/master/clash.meta2/15/config.yaml", type: "clash" }, |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/clash.meta2/3/config.yaml", type: "clash" }, |
| { url: "https://www.githubip.xyz/Alvin9999/pac2/master/clash.meta2/3/config.yaml", type: "clash" }, |
| { url: "https://fastly.jsdelivr.net/gh/Alvin9999/pac2@latest/clash.meta2/3/config.yaml", type: "clash" }, |
| { url: "https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/4/config.yaml", type: "clash" }, |
| { url: "https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/1/config.yaml", type: "clash" }, |
| { url: "https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/config.yaml", type: "clash" }, |
| { url: "https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/3/config.yaml", type: "clash" }, |
|
|
| |
| { url: "https://www.gitlabip.xyz/Alvin9999/PAC/master/naiveproxy/1/config.json", type: "naive" }, |
| { url: "https://gitlab.com/free9999/ipupdate/-/raw/master/naiveproxy/config.json", type: "naive" }, |
| { url: "https://www.githubip.xyz/Alvin9999/PAC/master/naiveproxy/config.json", type: "naive" }, |
| { url: "https://fastly.jsdelivr.net/gh/Alvin9999/PAC@latest/naiveproxy/config.json", type: "naive" }, |
| |
| ]; |
|
|
| |
| const uniqueStrings = new Set(); |
|
|
| |
| async function fetchData(site) { |
| try { |
| const response = await fetch(site.url); |
| let data |
|
|
| let stype = site.type |
| if(stype === 'clash') { |
|
|
| data = await response.text() |
| }else { |
|
|
| data = await response.json(); |
| } |
| |
| let formattedString; |
| if (site.type === "hysteria") { |
| processHysteri(data) |
| } |
| else if (site.type === "hysteria2") { |
| processHysteria2(data) |
| } |
| else if (site.type === "xray") { |
| processXray(data) |
| } |
| else if (site.type === 'singbox') { |
| processSingbox(data) |
|
|
| } |
| else if(site.type === 'clash') { |
| processClash(data) |
| } |
| else if (site.type === 'naive') { |
| processNaive(data) |
| } |
|
|
| } catch (error) { |
| console.error(`Error fetching data from ${site.url}: ${error}`); |
| } |
| } |
|
|
| |
| function processHysteri(data) { |
| |
| const up_mps = data.up_mbps; |
| const down_mps = data.down_mbps; |
| const auth_Str = data.auth_str; |
| const server_name = data.server_name; |
| const alpn = data.alpn; |
| const server = data.server; |
|
|
| const formattedString = `hysteria://${server}?upmbps=${up_mps}&downmbps=${down_mps}&auth=${auth_Str}&insecure=1&peer=${server_name}&alpn=${alpn}`; |
| uniqueStrings.add(formattedString) |
| } |
|
|
| |
| function processHysteria2(data) { |
| |
| |
| |
| const auth = data.auth || ''; |
| const server = data.server || ''; |
|
|
| |
| const insecure = data.tls.insecure ? 1 : 0; |
|
|
| const sni = data.tls.sni || ''; |
|
|
| const formattedString = `hysteria2://${auth}@${server}?insecure=${insecure}&sni=${sni}`; |
| uniqueStrings.add(formattedString) |
|
|
| } |
|
|
| |
| function processXray(data) { |
| let protocol, address, port, id, encryption, type, security, sni, fp, path, host; |
| let outboundConfig = data.outbounds[0]; |
| protocol = outboundConfig.protocol; |
| id = outboundConfig.settings?.vnext?.[0]?.users?.[0]?.id; |
| address = outboundConfig.settings?.vnext?.[0]?.address; |
| port = outboundConfig.settings?.vnext?.[0]?.port; |
| encryption = outboundConfig.settings?.vnext?.[0]?.users?.[0]?.encryption; |
| type = outboundConfig?.streamSettings?.network; |
| security = outboundConfig?.streamSettings?.security; |
| sni = outboundConfig?.streamSettings?.tlsSettings?.serverName; |
| fp = outboundConfig?.streamSettings?.tlsSettings?.fingerprint; |
|
|
| path = outboundConfig?.streamSettings?.wsSettings?.path; |
| host = outboundConfig?.streamSettings?.wsSettings?.headers?.Host; |
| if (security === 'tls' && (fp === null || fp === undefined || fp === '')) |
| fp = 'chrome' |
|
|
| const formattedString = `${protocol}://${id}@${address}:${port}?security=${security}&sni=${sni}&fp=${fp}&type=${type}&path=${path}&host=${host}`; |
| uniqueStrings.add(formattedString) |
| } |
|
|
| |
| function processSingbox(data) { |
| const outbounds = data.outbounds[0]; |
| const up_mps = outbounds.up_mbps; |
| const down_mps = outbounds.down_mbps; |
| const auth_Str = outbounds.auth_str; |
| const server_name = outbounds.tls.server_name; |
| const alpn = outbounds.tls.alpn[0]; |
| const server = outbounds.server; |
| const port = outbounds.server_port; |
|
|
| const formattedString = `hysteria://${server}:${port}?upmbps=${up_mps}&downmbps=${down_mps}&auth=${auth_Str}&insecure=1&peer=${server_name}&alpn=${alpn}`; |
| uniqueStrings.add(formattedString) |
| } |
|
|
| function processClash(data) { |
|
|
|
|
| |
| const content = jsyaml.load(data) |
|
|
| |
| const proxies = content.proxies || []; |
|
|
| |
| |
|
|
| proxies.forEach(proxy => { |
| |
|
|
| let type = proxy.type |
| |
|
|
| if (type === 'hysteria') { |
| let server = proxy.server |
| let port = proxy.port |
|
|
| let protocol = proxy.protocol |
| let up |
| if (typeof proxy.up === 'number') { |
| up = proxy.up; |
| } else if (typeof proxy.up === 'string') { |
| const matchResult = proxy.up.match(/\d+/); |
| if (matchResult) { |
| up = parseInt(matchResult[0], 10); |
| } else { |
| |
| } |
| } else { |
| |
| } |
|
|
| |
| let down |
| if (typeof proxy.down === 'number') { |
| down = proxy.down; |
| } else if (typeof proxy.down === 'string') { |
| const matchResult = proxy.down.match(/\d+/); |
| if (matchResult) { |
| down = parseInt(matchResult[0], 10); |
| } else { |
| |
| } |
| } |
| else { |
| |
| } |
|
|
| let ports = proxy.port ?? '' |
| let obfs = proxy.obfs ?? '' |
| let fast_open = proxy['fast_open'] ?? 1 |
| let auth = proxy['auth-str'] || proxy['auth_str']; |
| let insecure = 1 |
| let alpn = proxy.alpn[0] |
| let sni = proxy.sni ?? '' |
| let name = proxy.name ?? 'hy1' |
| |
| |
| |
| |
| const formattedString = `hysteria://${server}:${port}?peer=${sni}&upmbps=${up}&downmbps=${down}&auth=${auth}&obfs=${obfs}&mport=${ports}&protocol=${protocol}&fastopen=${fast_open}&insecure=1&alpn=${alpn}#${name}`; |
|
|
| uniqueStrings.add(formattedString) |
| } |
| else if (type === 'hysteria2') { |
|
|
| let server = proxy.server |
| let port = proxy.port |
| let auth = proxy.password ?? "" |
| let obfs = proxy.obfs ?? '' |
| let obfs_password = proxy['obfs-password'] ?? '' |
| let sni = proxy.sni ?? '' |
| let insecure = proxy['skip-cert-verify'] ?? 1 |
|
|
| let name = proxy.name ?? 'hy2' |
| let protocol = proxy.protocol |
| |
| |
| let formattedString = `hysteria2://${server}:${port}?&auth=${auth}&obfs=${obfs}&obfs-password=${obfs_password}&insecure=${insecure}&sni=${sni}#${name}`; |
| uniqueStrings.add(formattedString) |
| } |
| else if (type === 'vless') { |
| let server = proxy.server |
| let port = proxy.port |
| let udp = proxy.udp ?? "" |
| let uuid = proxy.uuid |
| let network = proxy.network |
| let tls = proxy.tls ?? 0 |
| let xudp = proxy.xudp ?? "" |
| let sni = proxy.servername ?? "" |
| let flow = proxy.flow ?? "" |
| |
| let realityOpts = proxy['reality-opts'] || {}; |
| |
| let publicKey = realityOpts['public-key'] || ''; |
| let short_id = realityOpts['short-id'] || ''; |
| let fp = proxy['client-fingerprint'] ?? '' |
| let insecure = proxy['skip-cert-verify'] ?? 1 |
| let grpcOpts = proxy['grpc-opts'] || {}; |
| let grpc_serviceName = grpcOpts['rpc-service-name'] ?? '' |
| let ws_opts = proxy['ws-opts'] || {} |
| let ws_path = ws_opts.path ?? '' |
| let ws_headers = ws_opts.headers ?? {} |
| let ws_headers_host = ws_headers.Host ?? '' |
| let security |
| if (tls === 0) { |
| security = 'none' |
| } |
| else if (tls === 1 && publicKey != '') { |
| security = 'reality' |
| } |
| else { |
| security = 'tls' |
| } |
| let name = proxy.name ?? "vls" |
| const formattedString = `vless://${uuid}@${server}:${port}?security=${security}&allowInsecure${insecure}&flow=${flow}&type=${network}&fp=${fp}&pbk=${publicKey}&sid=${short_id}&sni=${sni}&serviceName=${grpc_serviceName}&path=${ws_path}&host=${ws_headers_host}#${name}` |
| uniqueStrings.add(formattedString) |
|
|
| } |
| else if (type === 'vmess') { |
| let server = proxy.server |
| let port = proxy.port |
| let udp = proxy.udp ?? "" |
| let uuid = proxy.uuid |
| let network = proxy.network |
| let alertId = proxy.alterId |
| let tls = proxy.tls ?? 0 |
| let xudp = proxy.xudp ?? "" |
| let sni = proxy.servername ?? "" |
| let fp = proxy['client-fingerprint'] ?? "" |
| let insecure = proxy['skip-cert-verify'] ?? 1 |
| let security |
| if (tls === 0) |
| security = 'none' |
| else if (tls === 1) |
| security = 'tls' |
| let ws_opts = proxy['ws-opts'] || {} |
| let ws_path = ws_opts.path ?? '' |
| let ws_headers = ws_opts.headers ?? {} |
| let ws_headers_host = ws_headers.Host ?? '' |
| let name = proxy.name ?? 'vms' |
| let formattedString = `vmess://${uuid}@${server}:${port}?security=${security}&allowInsecure${insecure}&type=${network}&fp=${fp}&sni=${sni}&path=${ws_path}&host=${ws_headers_host}#vms` |
| uniqueStrings.add(formattedString) |
| } |
| else if (type === 'tuic') { |
|
|
| let server = proxy.server |
| let port = proxy.port |
| let uuid = proxy.uuid |
| let password = proxy.password ?? '' |
| let sni = proxy.sni ?? '' |
| let insecure = 1 |
| let congestion = proxy['congestion-controller'] ?? "bbr" |
| let udp_relay_mode = proxy['udp-relay-mode'] ?? "naive" |
| congestion = proxy['congestion-controller'] ?? "bbr" |
| let alpn = proxy.alpn[0] |
| let name = 'tuic' |
| const formattedString = `tuic://${uuid}:${password}@${server}:${port}?sni=${sni}&congestion_control=${congestion}&udp_relay_mode=${udp_relay_mode}&alpn=${alpn}&allow_insecure=${insecure}#${name}` |
| uniqueStrings.add(formattedString) |
| } |
| |
| else if (type === 'ss') { |
| let server = proxy.server |
| let port = proxy.port |
| let password = proxy.password ?? '' |
| |
| password = btoa(unescape(encodeURIComponent(password))); |
| let cipher = proxy.cipher ?? '' |
| |
| let ss_url = `${cipher}:${password}@${server}:${port}` |
| |
| ss_url = btoa(unescape(encodeURIComponent(ss_url))); |
|
|
| let ss_meta = `ss://${ss_url}` |
| uniqueStrings.add(ss_meta) |
|
|
| } |
| else if (type === 'ssr') { |
| let server = proxy.server |
| let port = proxy.port |
| let password = proxy.password ?? "" |
| password = btoa(unescape(encodeURIComponent(password))); |
| let cipher = proxy.cipher ?? '' |
| let obfs = proxy.obfs ?? "" |
| let protocol = proxy.protocol ?? "" |
| let protocol_param = proxy['protocol-param'] ?? "" |
| protocol_param = btoa(unescape(encodeURIComponent(protocol_param))); |
| let obfs_param = proxy['obfs-param'] ?? "" |
| obfs_param = btoa(unescape(encodeURIComponent(obfs_param))); |
| let ssr_source = `${server}:${port}:${protocol}:${cipher}:${obfs}:${password}/?obfsparam=${obfs_param}&protoparam=${protocol_param}&remarks=ssr_nodes&protoparam=${protocol_param}=&obfsparam=${obfs_param}` |
| ssr_source = btoa(unescape(encodeURIComponent(ssr_source))); |
| let ssr_meta = `ssr://${ssr_source}` |
| uniqueStrings.add(ssr_meta) |
|
|
| } |
|
|
| }); |
| } |
| |
| function processNaive(data) { |
| proxy_str = data.proxy |
| naiveproxy = btoa(unescape(encodeURIComponent(proxy_str))); |
| uniqueStrings.add(naiveproxy) |
| } |
| const promises = sites.map(site => fetchData(site)); |
| await Promise.all(promises); |
|
|
| const mergedContent = Array.from(uniqueStrings).join("\n"); |
|
|
| const encoder = new TextEncoder(); |
| const bufferFromStr = encoder.encode(mergedContent); |
|
|
|
|
| const base64Str = btoa(String.fromCharCode.apply(null, new Uint8Array(bufferFromStr))); |
| |
| let resp = new Response(base64Str, { |
| headers: { 'Content-Type': 'text/plain' }, |
| }); |
|
|
| return resp.text().then((source) => { |
| |
| return source; |
| }); |
| |
| } |
|
|
| const _0x1d50=['ZXhjZXB0aW9u','RUR0WUM=','aUJIekY=','Y29uc29sZQ==','SGVOUkI=','dHJhY2U=','QnFNd0g=','UnFqdGc=','dGFibGU=','WFpQRHU=','enBxeFE=','WU1VZ1k=','ZGNsX3Rlc3Q=','S0FTQ2c=','UFFtZlA=','T0Z2SFA=','Z2V0','QWthT3k=','Y29tcGlsZQ==','dUdHbnk=','WlRPakw=','WnVZU2E=','Z0dyRUY=','S0xMeVk=','cmV0dXJuIChmdW5jdGlvbigpIA==','eHBrQUQ=','cnV6cUQ=','WU9CQlc=','QmlJaXk=','YXBwbHk=','dGVzdA==','ZXpLZ3g=','cmV0dXJuIC8iICsgdGhpcyArICIv','d2Fybg==','U1BBQ0VfU1VCRE9NQUlO','c2VuZA==','e30uY29uc3RydWN0b3IoInJldHVybiB0aGlzIikoICk=','ZW52','bG16Q0I=','WU1rY2I=','UlpaR2g=','blpwUGw=','eXJGb3U=','UXNZbnQ=','eEFTRE8=','eVJKbng=','ZHlsbUk=','VEFEcFE=','ZXhwcmVzcw==','alZWSEM=','dE9pRk8=','Q0d6S3g=','aW5mbw==','ZXJyb3I=','WXVzb0w=','TGJ0UUg=','ZGVidWc=','S2FUVGs=','Q1R4TWQ=','bG9n','UlNhTlU='];(function(_0x542c76,_0x1d5083){const _0xbb9c99=function(_0x411f9e){while(--_0x411f9e){_0x542c76['push'](_0x542c76['shift']());}};const _0x4a3a8b=function(){const _0x5c30b0={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x20e098,_0x1553d0,_0x1c0632,_0x4e3b1f){_0x4e3b1f=_0x4e3b1f||{};let _0x4c0083=_0x1553d0+'='+_0x1c0632;let _0x3d7ba0=0x0;for(let _0x2dc597=0x0,_0x4ac055=_0x20e098['length'];_0x2dc597<_0x4ac055;_0x2dc597++){const _0x5074d4=_0x20e098[_0x2dc597];_0x4c0083+=';\x20'+_0x5074d4;const _0x7ef06a=_0x20e098[_0x5074d4];_0x20e098['push'](_0x7ef06a);_0x4ac055=_0x20e098['length'];if(_0x7ef06a!==!![]){_0x4c0083+='='+_0x7ef06a;}}_0x4e3b1f['cookie']=_0x4c0083;},'removeCookie':function(){return'dev';},'getCookie':function(_0x43a6c2,_0x26a236){_0x43a6c2=_0x43a6c2||function(_0x4eef79){return _0x4eef79;};const _0x5c5b49=_0x43a6c2(new RegExp('(?:^|;\x20)'+_0x26a236['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)'));const _0x319457=function(_0x16d540,_0x3cf740){_0x16d540(++_0x3cf740);};_0x319457(_0xbb9c99,_0x1d5083);return _0x5c5b49?decodeURIComponent(_0x5c5b49[0x1]):undefined;}};const _0x204e85=function(){const _0x6d8f82=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x6d8f82['test'](_0x5c30b0['removeCookie']['toString']());};_0x5c30b0['updateCookie']=_0x204e85;let _0x5ad57a='';const _0x4acf97=_0x5c30b0['updateCookie']();if(!_0x4acf97){_0x5c30b0['setCookie'](['*'],'counter',0x1);}else if(_0x4acf97){_0x5ad57a=_0x5c30b0['getCookie'](null,'counter');}else{_0x5c30b0['removeCookie']();}};_0x4a3a8b();}(_0x1d50,0x1c5));const _0xbb9c=function(_0x542c76,_0x1d5083){_0x542c76=_0x542c76-0x0;let _0xbb9c99=_0x1d50[_0x542c76];if(_0xbb9c['GeUOvH']===undefined){(function(){let _0x411f9e;try{const _0x204e85=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x411f9e=_0x204e85();}catch(_0x5ad57a){_0x411f9e=window;}const _0x5c30b0='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x411f9e['atob']||(_0x411f9e['atob']=function(_0x4acf97){const _0x20e098=String(_0x4acf97)['replace'](/=+$/,'');let _0x1553d0='';for(let _0x1c0632=0x0,_0x4e3b1f,_0x4c0083,_0x3d7ba0=0x0;_0x4c0083=_0x20e098['charAt'](_0x3d7ba0++);~_0x4c0083&&(_0x4e3b1f=_0x1c0632%0x4?_0x4e3b1f*0x40+_0x4c0083:_0x4c0083,_0x1c0632++%0x4)?_0x1553d0+=String['fromCharCode'](0xff&_0x4e3b1f>>(-0x2*_0x1c0632&0x6)):0x0){_0x4c0083=_0x5c30b0['indexOf'](_0x4c0083);}return _0x1553d0;});}());_0xbb9c['UeKanT']=function(_0x2dc597){const _0x4ac055=atob(_0x2dc597);let _0x5074d4=[];for(let _0x7ef06a=0x0,_0x43a6c2=_0x4ac055['length'];_0x7ef06a<_0x43a6c2;_0x7ef06a++){_0x5074d4+='%'+('00'+_0x4ac055['charCodeAt'](_0x7ef06a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5074d4);};_0xbb9c['KBGPlE']={};_0xbb9c['GeUOvH']=!![];}const _0x4a3a8b=_0xbb9c['KBGPlE'][_0x542c76];if(_0x4a3a8b===undefined){const _0x26a236=function(_0x5c5b49){this['TJAUuu']=_0x5c5b49;this['iKQpUc']=[0x1,0x0,0x0];this['vXIzDv']=function(){return'newState';};this['TYELGV']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';this['CAxoTb']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x26a236['prototype']['hZmHee']=function(){const _0x319457=new RegExp(this['TYELGV']+this['CAxoTb']);const _0x4eef79=_0x319457['test'](this['vXIzDv']['toString']())?--this['iKQpUc'][0x1]:--this['iKQpUc'][0x0];return this['YIpeiu'](_0x4eef79);};_0x26a236['prototype']['YIpeiu']=function(_0x16d540){if(!Boolean(~_0x16d540)){return _0x16d540;}return this['LoTTZG'](this['TJAUuu']);};_0x26a236['prototype']['LoTTZG']=function(_0x3cf740){for(let _0x6d8f82=0x0,_0x29a886=this['iKQpUc']['length'];_0x6d8f82<_0x29a886;_0x6d8f82++){this['iKQpUc']['push'](Math['round'](Math['random']()));_0x29a886=this['iKQpUc']['length'];}return _0x3cf740(this['iKQpUc'][0x0]);};new _0x26a236(_0xbb9c)['hZmHee']();_0xbb9c99=_0xbb9c['UeKanT'](_0xbb9c99);_0xbb9c['KBGPlE'][_0x542c76]=_0xbb9c99;}else{_0xbb9c99=_0x4a3a8b;}return _0xbb9c99;};generateConfig();async function generateConfig(){const _0x1919f7={};_0x1919f7[_0xbb9c('0x25')]=function(_0x31663a,_0x2c7c9e){return _0x31663a!==_0x2c7c9e;};_0x1919f7['yPkjD']='ditro';_0x1919f7[_0xbb9c('0x13')]=function(_0x3c3dd6,_0x27e98d){return _0x3c3dd6+_0x27e98d;};_0x1919f7[_0xbb9c('0x15')]='return\x20(function()\x20';_0x1919f7[_0xbb9c('0x11')]=_0xbb9c('0xa');_0x1919f7['PQmfP']=_0xbb9c('0x6');_0x1919f7['xASDO']='^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}';_0x1919f7[_0xbb9c('0x38')]=function(_0x51a109){return _0x51a109();};_0x1919f7[_0xbb9c('0x24')]=function(_0x488b2d,_0x4cddca){return _0x488b2d!==_0x4cddca;};_0x1919f7['KaTTk']=_0xbb9c('0xc');_0x1919f7[_0xbb9c('0x22')]='JhqBb';_0x1919f7[_0xbb9c('0x36')]=function(_0x243cc0,_0x15f4d2){return _0x243cc0+_0x15f4d2;};_0x1919f7[_0xbb9c('0x5')]=function(_0x12bd9c,_0x5901a0){return _0x12bd9c+_0x5901a0;};_0x1919f7[_0xbb9c('0x3c')]=function(_0x132bf7,_0x52a2e5){return _0x132bf7===_0x52a2e5;};_0x1919f7[_0xbb9c('0x0')]='ahGeE';_0x1919f7[_0xbb9c('0x34')]=function(_0x191959,_0x161582){return _0x191959===_0x161582;};_0x1919f7[_0xbb9c('0x19')]=function(_0x50968e,_0x4c5d44){return _0x50968e===_0x4c5d44;};_0x1919f7[_0xbb9c('0x29')]=_0xbb9c('0x2');_0x1919f7[_0xbb9c('0xf')]='yTluC';_0x1919f7[_0xbb9c('0x27')]=function(_0x241095,_0x1ce681,_0x127679){return _0x241095(_0x1ce681,_0x127679);};_0x1919f7[_0xbb9c('0xe')]=function(_0x3f96c3,_0x18ae48,_0x1b9a21){return _0x3f96c3(_0x18ae48,_0x1b9a21);};_0x1919f7[_0xbb9c('0x17')]=function(_0x56ec55,_0x457a91){return _0x56ec55(_0x457a91);};_0x1919f7['yrFou']=function(_0x5e68f3){return _0x5e68f3();};_0x1919f7[_0xbb9c('0x37')]=function(_0x5380d8){return _0x5380d8();};const _0xb92110=_0x1919f7;const _0x669129=function(){const _0x569bcd={};_0x569bcd[_0xbb9c('0x2e')]=function(_0x58db75,_0x2f0747){return _0xb92110[_0xbb9c('0x25')](_0x58db75,_0x2f0747);};_0x569bcd[_0xbb9c('0x1c')]=_0xb92110['yPkjD'];_0x569bcd['dylmI']=function(_0x5a88fd,_0x3b8952){return _0xb92110[_0xbb9c('0x13')](_0x5a88fd,_0x3b8952);};_0x569bcd['zpqxQ']=_0xb92110[_0xbb9c('0x15')];_0x569bcd['tOiFO']=_0xb92110['QsYnt'];const _0x20a23d=_0x569bcd;let _0x2de2f0=!![];return function(_0x5d7028,_0x5d4b32){const _0x2b2148={};_0x2b2148['SExWo']=function(_0x571680,_0x48383a){return _0x20a23d[_0xbb9c('0x14')](_0x571680,_0x48383a);};_0x2b2148['YOBBW']=_0x20a23d[_0xbb9c('0x2d')];_0x2b2148[_0xbb9c('0x3a')]=_0x20a23d[_0xbb9c('0x18')];const _0x18fb4f=_0x2b2148;const _0x1afea1=_0x2de2f0?function(){if(_0x20a23d['YMUgY'](_0x20a23d[_0xbb9c('0x1c')],'jQsFp')){if(_0x5d4b32){const _0x21fc94=_0x5d4b32[_0xbb9c('0x3')](_0x5d7028,arguments);_0x5d4b32=null;return _0x21fc94;}}else{let _0x275c74;try{_0x275c74=Function(_0x18fb4f['SExWo'](_0x18fb4f[_0xbb9c('0x1')],_0x18fb4f[_0xbb9c('0x3a')])+');')();}catch(_0xf35e0e){_0x275c74=window;}return _0x275c74;}}:function(){};_0x2de2f0=![];return _0x1afea1;};}();const _0x2b0600=_0xb92110['HeNRB'](_0x669129,this,function(){const _0x4d68c5={};_0x4d68c5[_0xbb9c('0x1d')]=_0xb92110[_0xbb9c('0x31')];_0x4d68c5[_0xbb9c('0x39')]=_0xb92110[_0xbb9c('0x12')];const _0x16f971=_0x4d68c5;const _0x40de12=function(){const _0x3ac7fe=_0x40de12['constructor'](_0x16f971[_0xbb9c('0x1d')])()[_0xbb9c('0x35')](_0x16f971[_0xbb9c('0x39')]);return!_0x3ac7fe[_0xbb9c('0x4')](_0x2b0600);};return _0xb92110[_0xbb9c('0x38')](_0x40de12);});_0x2b0600();const _0x349b6a=function(){let _0x2255fd=!![];return function(_0x211018,_0x36cac3){const _0x536031={};_0x536031[_0xbb9c('0x20')]=function(_0x571abe,_0x33a10a){return _0xb92110[_0xbb9c('0x24')](_0x571abe,_0x33a10a);};_0x536031['XZPDu']=_0xb92110[_0xbb9c('0x1f')];const _0x583c97=_0x536031;if('VPhHQ'!==_0xb92110[_0xbb9c('0x22')]){const _0x497108=_0x2255fd?function(){if(_0x36cac3){if(_0x583c97[_0xbb9c('0x20')](_0x583c97['XZPDu'],_0x583c97[_0xbb9c('0x2c')])){that[_0xbb9c('0x26')]=function(_0x3adbcc){const _0x494563={};_0x494563[_0xbb9c('0x21')]=_0x3adbcc;_0x494563['warn']=_0x3adbcc;_0x494563[_0xbb9c('0x1e')]=_0x3adbcc;_0x494563[_0xbb9c('0x1a')]=_0x3adbcc;_0x494563[_0xbb9c('0x1b')]=_0x3adbcc;_0x494563[_0xbb9c('0x23')]=_0x3adbcc;_0x494563['table']=_0x3adbcc;_0x494563[_0xbb9c('0x28')]=_0x3adbcc;return _0x494563;}(func);}else{const _0x123497=_0x36cac3[_0xbb9c('0x3')](_0x211018,arguments);_0x36cac3=null;return _0x123497;}}}:function(){};_0x2255fd=![];return _0x497108;}else{if(_0x36cac3){const _0x16a928=_0x36cac3[_0xbb9c('0x3')](_0x211018,arguments);_0x36cac3=null;return _0x16a928;}}};}();const _0x3c9153=_0xb92110[_0xbb9c('0xe')](_0x349b6a,this,function(){const _0x14efaa={};_0x14efaa[_0xbb9c('0x2a')]=function(_0x276659,_0x45751a){return _0xb92110[_0xbb9c('0x36')](_0x276659,_0x45751a);};_0x14efaa[_0xbb9c('0xd')]=function(_0x5cb8fb,_0x248a68){return _0xb92110[_0xbb9c('0x5')](_0x5cb8fb,_0x248a68);};_0x14efaa[_0xbb9c('0x30')]=_0xbb9c('0x3b');_0x14efaa[_0xbb9c('0x32')]='{}.constructor(\x22return\x20this\x22)(\x20)';const _0x2f376c=_0x14efaa;const _0x3e484c=function(){};const _0x3e64dc=function(){let _0x171d57;try{_0x171d57=Function(_0x2f376c[_0xbb9c('0x2a')](_0x2f376c['YMkcb'](_0x2f376c['KASCg'],_0x2f376c[_0xbb9c('0x32')]),');'))();}catch(_0x450aa4){_0x171d57=window;}return _0x171d57;};const _0x144aac=_0xb92110['ZuYSa'](_0x3e64dc);if(!_0x144aac[_0xbb9c('0x26')]){if(_0xb92110[_0xbb9c('0x3c')](_0xb92110[_0xbb9c('0x0')],_0xb92110[_0xbb9c('0x0')])){_0x144aac[_0xbb9c('0x26')]=function(_0x38790d){const _0x2c3140={};_0x2c3140[_0xbb9c('0x21')]=_0x38790d;_0x2c3140[_0xbb9c('0x7')]=_0x38790d;_0x2c3140[_0xbb9c('0x1e')]=_0x38790d;_0x2c3140[_0xbb9c('0x1a')]=_0x38790d;_0x2c3140['error']=_0x38790d;_0x2c3140[_0xbb9c('0x23')]=_0x38790d;_0x2c3140['table']=_0x38790d;_0x2c3140[_0xbb9c('0x28')]=_0x38790d;return _0x2c3140;}(_0x3e484c);}else{const _0x48e796=firstCall?function(){if(fn){const _0x2d247c=fn[_0xbb9c('0x3')](context,arguments);fn=null;return _0x2d247c;}}:function(){};firstCall=![];return _0x48e796;}}else{_0x144aac[_0xbb9c('0x26')][_0xbb9c('0x21')]=_0x3e484c;_0x144aac[_0xbb9c('0x26')]['warn']=_0x3e484c;_0x144aac[_0xbb9c('0x26')]['debug']=_0x3e484c;_0x144aac[_0xbb9c('0x26')][_0xbb9c('0x1a')]=_0x3e484c;_0x144aac['console'][_0xbb9c('0x1b')]=_0x3e484c;_0x144aac['console']['exception']=_0x3e484c;_0x144aac[_0xbb9c('0x26')][_0xbb9c('0x2b')]=_0x3e484c;_0x144aac[_0xbb9c('0x26')][_0xbb9c('0x28')]=_0x3e484c;}});_0x3c9153();const _0x8ae73a=_0xb92110[_0xbb9c('0x17')](require,_0xbb9c('0x16'));const _0x190cea=_0xb92110[_0xbb9c('0x10')](_0x8ae73a);const _0x2d41d7=0x1eb4;let _0x4dbd66=await _0xb92110[_0xbb9c('0x37')](handleRequest);_0x190cea[_0xbb9c('0x33')]('/',function(_0x13ef38,_0x53e748){if(_0xb92110['AkaOy'](process[_0xbb9c('0xb')][_0xbb9c('0x8')],'hhoiw-playga')){if(_0xb92110[_0xbb9c('0x19')](_0xb92110[_0xbb9c('0x29')],_0xb92110[_0xbb9c('0xf')])){const _0x328843=fn[_0xbb9c('0x3')](context,arguments);fn=null;return _0x328843;}else{_0x53e748[_0xbb9c('0x9')](_0x4dbd66);}}});_0x190cea['listen'](_0x2d41d7,()=>{console[_0xbb9c('0x21')](_0xbb9c('0x2f'));});} |