marco 3.2
tcp/443 tcp/80
Open service 218.92.216.55:80 · suiming.pro
2026-01-23 20:53
HTTP/1.1 301 Moved Permanently Server: marco/3.2 Date: Fri, 23 Jan 2026 20:53:39 GMT Content-Type: text/html Content-Length: 166 Connection: close Location: https://suiming.pro/ Via: M.ctn-js-ynz-006 X-Request-Id: 18ede417b16677d9c171b24a5ce6b2bb Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>marco/3.2</center> </body> </html>
Open service 61.164.209.251:80 · suiming.pro
2026-01-23 20:53
HTTP/1.1 200 OK
Server: marco/3.2
Date: Fri, 23 Jan 2026 20:53:41 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
X-Source: C/200
Last-Modified: Fri, 16 Jan 2026 22:24:05 GMT
ETag: "696aba85-4193"
X-Request-Id: bd5e8865d51802d4bda49bfd2be61f1b
Via: S.mix-js-czx1-206, T.206.D, V.mix-js-czx1-206, T.230.D, M.ctn-zj-jnh-229
Page title: 随铭的博客
<!DOCTYPE html><html lang="zh-cn" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>随铭的博客</title><meta name="author" content="随铭"><meta name="copyright" content="随铭"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="随铭的博客">
<meta property="og:url" content="http://www.suiming.pro/index.html">
<meta property="og:site_name" content="随铭的博客">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="http://www.suiming.pro/img/suiming_icon.webp">
<meta property="article:author" content="随铭">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://www.suiming.pro/img/suiming_icon.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://www.suiming.pro/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><script>(() =>{const saveToLocal ={set:(key,value,ttl) =>{if (!ttl) return
const expiry =Date.now() + ttl *86400000
localStorage.setItem(key,JSON.stringify({value,expiry }))
},get:key =>{const itemStr =localStorage.getItem(key)
if (!itemStr) return undefined
const {value,expiry } =JSON.parse(itemStr)
if (Date.now() >expiry) {localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf ={saveToLocal,getScript:(url,attr ={}) =>new Promise((resolve,reject) =>{const script =document.createElement('script')
script.src =url
script.async =true
Object.entries(attr).forEach(([key,val]) =>script.setAttribute(key,val))
script.onload =script.onreadystatechange =() =>{if (!script.readyState ||/loaded|complete/.test(script.readyState)) resolve()
}
script.onerror =reject
document.head.appendChild(script)
}),getCSS:(url,id) =>new Promise((resolve,reject) =>{const link =document.createElement('link')
link.rel ='stylesheet'
link.href =url
if (id) link.id =id
link.onload =link.onreadystatechange =() =>{if (!link.readyState ||/loaded|complete/.test(link.readyState)) resolve()
}
link.onerror =reject
document.head.appendChild(link)
}),addGlobalFn:(key,fn,name =false,parent =window) =>{if (!false &&key.startsWith('pjax')) return
const globalFn =parent.globalFn ||{}
globalFn[key] =globalFn[key] ||{}
globalFn[key][name ||Object.keys(globalFn[key]).length] =fn
parent.globalFn =globalFn
}
}
const activateDarkMode =() =>{document.documentElement.setAttribute('data-theme','dark')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#0d0d0d')
}
}
const activateLightMode =() =>{document.documentElement.setAttribute('data-theme','light')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#ffffff')
}
}
btf.activateDarkMode =activateDarkMode
btf.activateLightMode =activateLightMode
const theme =saveToLocal.get('theme')
theme ==='dark' ?activateDarkMode() :theme ==='light' ?activateLightMode() :null
const asideStatus =saveToLocal.get('aside-status')
if (asideStatus !==undefined) {document.documentElement.classList.toggle('hide-aside',asideStatus ==='hide')
}
const detectApple =() =>{if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG ={root:'/',algolia:undefined,localSearch:undefined,translate:undefined,highlight:{"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},copy:{success:'Copy Successful',error:'Copy Failed',noSupport:'Browser Not Supported'
},relativeDate:{
Open service 240e:93c:1206:101::a1:80 · suiming.pro
2026-01-23 20:53
HTTP/1.1 301 Moved Permanently Server: marco/3.2 Date: Fri, 23 Jan 2026 20:53:40 GMT Content-Type: text/html Content-Length: 166 Connection: close Location: https://suiming.pro/ Via: M.ctn-ha-cgo-018 X-Request-Id: 653761c6ae261f903c0d0537763551b8 Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>marco/3.2</center> </body> </html>
Open service 240e:93c:1206:101::a1:443 · suiming.pro
2026-01-23 20:53
HTTP/1.1 200 OK
Server: marco/3.2
Date: Fri, 23 Jan 2026 20:53:40 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
X-Source: C/200
Last-Modified: Fri, 16 Jan 2026 22:24:05 GMT
ETag: "696aba85-4193"
X-Request-Id: ee3ab5367f4380b07b6320ef5d9c9922
Via: S.mix-js-czx1-206, T.206.D, V.mix-js-czx1-208, T.18.D, M.ctn-ha-cgo-018
Strict-Transport-Security: max-age=15552000
Page title: 随铭的博客
<!DOCTYPE html><html lang="zh-cn" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>随铭的博客</title><meta name="author" content="随铭"><meta name="copyright" content="随铭"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="随铭的博客">
<meta property="og:url" content="http://www.suiming.pro/index.html">
<meta property="og:site_name" content="随铭的博客">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="http://www.suiming.pro/img/suiming_icon.webp">
<meta property="article:author" content="随铭">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://www.suiming.pro/img/suiming_icon.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://www.suiming.pro/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><script>(() =>{const saveToLocal ={set:(key,value,ttl) =>{if (!ttl) return
const expiry =Date.now() + ttl *86400000
localStorage.setItem(key,JSON.stringify({value,expiry }))
},get:key =>{const itemStr =localStorage.getItem(key)
if (!itemStr) return undefined
const {value,expiry } =JSON.parse(itemStr)
if (Date.now() >expiry) {localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf ={saveToLocal,getScript:(url,attr ={}) =>new Promise((resolve,reject) =>{const script =document.createElement('script')
script.src =url
script.async =true
Object.entries(attr).forEach(([key,val]) =>script.setAttribute(key,val))
script.onload =script.onreadystatechange =() =>{if (!script.readyState ||/loaded|complete/.test(script.readyState)) resolve()
}
script.onerror =reject
document.head.appendChild(script)
}),getCSS:(url,id) =>new Promise((resolve,reject) =>{const link =document.createElement('link')
link.rel ='stylesheet'
link.href =url
if (id) link.id =id
link.onload =link.onreadystatechange =() =>{if (!link.readyState ||/loaded|complete/.test(link.readyState)) resolve()
}
link.onerror =reject
document.head.appendChild(link)
}),addGlobalFn:(key,fn,name =false,parent =window) =>{if (!false &&key.startsWith('pjax')) return
const globalFn =parent.globalFn ||{}
globalFn[key] =globalFn[key] ||{}
globalFn[key][name ||Object.keys(globalFn[key]).length] =fn
parent.globalFn =globalFn
}
}
const activateDarkMode =() =>{document.documentElement.setAttribute('data-theme','dark')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#0d0d0d')
}
}
const activateLightMode =() =>{document.documentElement.setAttribute('data-theme','light')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#ffffff')
}
}
btf.activateDarkMode =activateDarkMode
btf.activateLightMode =activateLightMode
const theme =saveToLocal.get('theme')
theme ==='dark' ?activateDarkMode() :theme ==='light' ?activateLightMode() :null
const asideStatus =saveToLocal.get('aside-status')
if (asideStatus !==undefined) {document.documentElement.classList.toggle('hide-aside',asideStatus ==='hide')
}
const detectApple =() =>{if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG ={root:'/',algolia:undefined,localSearch:undefined,translate:undefined,highlight:{"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},copy:{success:'Copy Successful',error:'Copy Failed',noSupport:'Browser Not Supported'
},relativeDate:{
Open service 123.54.193.28:80 · suiming.pro
2026-01-23 20:53
HTTP/1.1 301 Moved Permanently Server: marco/3.2 Date: Fri, 23 Jan 2026 20:53:40 GMT Content-Type: text/html Content-Length: 166 Connection: close Location: https://suiming.pro/ Via: M.ctn-ha-cgo-019 X-Request-Id: df658b6310adbacefc758ce175ee614e Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>marco/3.2</center> </body> </html>
Open service 123.54.193.28:443 · suiming.pro
2026-01-23 20:53
HTTP/1.1 200 OK
Server: marco/3.2
Date: Fri, 23 Jan 2026 20:53:41 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
X-Source: C/200
Last-Modified: Fri, 16 Jan 2026 22:24:05 GMT
ETag: "696aba85-4193"
X-Request-Id: 886a0d5ac84190cbfd1cbb0772a04d81
Via: S.mix-js-czx1-206, T.206.D, V.mix-js-czx1-204, T.18.D, M.ctn-ha-cgo-018
Strict-Transport-Security: max-age=15552000
Page title: 随铭的博客
<!DOCTYPE html><html lang="zh-cn" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>随铭的博客</title><meta name="author" content="随铭"><meta name="copyright" content="随铭"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="随铭的博客">
<meta property="og:url" content="http://www.suiming.pro/index.html">
<meta property="og:site_name" content="随铭的博客">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="http://www.suiming.pro/img/suiming_icon.webp">
<meta property="article:author" content="随铭">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://www.suiming.pro/img/suiming_icon.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://www.suiming.pro/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><script>(() =>{const saveToLocal ={set:(key,value,ttl) =>{if (!ttl) return
const expiry =Date.now() + ttl *86400000
localStorage.setItem(key,JSON.stringify({value,expiry }))
},get:key =>{const itemStr =localStorage.getItem(key)
if (!itemStr) return undefined
const {value,expiry } =JSON.parse(itemStr)
if (Date.now() >expiry) {localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf ={saveToLocal,getScript:(url,attr ={}) =>new Promise((resolve,reject) =>{const script =document.createElement('script')
script.src =url
script.async =true
Object.entries(attr).forEach(([key,val]) =>script.setAttribute(key,val))
script.onload =script.onreadystatechange =() =>{if (!script.readyState ||/loaded|complete/.test(script.readyState)) resolve()
}
script.onerror =reject
document.head.appendChild(script)
}),getCSS:(url,id) =>new Promise((resolve,reject) =>{const link =document.createElement('link')
link.rel ='stylesheet'
link.href =url
if (id) link.id =id
link.onload =link.onreadystatechange =() =>{if (!link.readyState ||/loaded|complete/.test(link.readyState)) resolve()
}
link.onerror =reject
document.head.appendChild(link)
}),addGlobalFn:(key,fn,name =false,parent =window) =>{if (!false &&key.startsWith('pjax')) return
const globalFn =parent.globalFn ||{}
globalFn[key] =globalFn[key] ||{}
globalFn[key][name ||Object.keys(globalFn[key]).length] =fn
parent.globalFn =globalFn
}
}
const activateDarkMode =() =>{document.documentElement.setAttribute('data-theme','dark')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#0d0d0d')
}
}
const activateLightMode =() =>{document.documentElement.setAttribute('data-theme','light')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#ffffff')
}
}
btf.activateDarkMode =activateDarkMode
btf.activateLightMode =activateLightMode
const theme =saveToLocal.get('theme')
theme ==='dark' ?activateDarkMode() :theme ==='light' ?activateLightMode() :null
const asideStatus =saveToLocal.get('aside-status')
if (asideStatus !==undefined) {document.documentElement.classList.toggle('hide-aside',asideStatus ==='hide')
}
const detectApple =() =>{if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG ={root:'/',algolia:undefined,localSearch:undefined,translate:undefined,highlight:{"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},copy:{success:'Copy Successful',error:'Copy Failed',noSupport:'Browser Not Supported'
},relativeDate:{
Open service 218.92.216.55:443 · suiming.pro
2026-01-23 20:53
HTTP/1.1 200 OK
Server: marco/3.2
Date: Fri, 23 Jan 2026 20:53:41 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
X-Source: C/200
Last-Modified: Fri, 16 Jan 2026 22:24:05 GMT
ETag: "696aba85-4193"
X-Request-Id: b4c92f9863caf40722e07deab9738d42
Via: S.mix-js-czx1-206, T.206.D, V.mix-js-czx1-208, T.4.D, M.ctn-js-ynz-006
Strict-Transport-Security: max-age=15552000
Page title: 随铭的博客
<!DOCTYPE html><html lang="zh-cn" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>随铭的博客</title><meta name="author" content="随铭"><meta name="copyright" content="随铭"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="随铭的博客">
<meta property="og:url" content="http://www.suiming.pro/index.html">
<meta property="og:site_name" content="随铭的博客">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="http://www.suiming.pro/img/suiming_icon.webp">
<meta property="article:author" content="随铭">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://www.suiming.pro/img/suiming_icon.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://www.suiming.pro/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><script>(() =>{const saveToLocal ={set:(key,value,ttl) =>{if (!ttl) return
const expiry =Date.now() + ttl *86400000
localStorage.setItem(key,JSON.stringify({value,expiry }))
},get:key =>{const itemStr =localStorage.getItem(key)
if (!itemStr) return undefined
const {value,expiry } =JSON.parse(itemStr)
if (Date.now() >expiry) {localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf ={saveToLocal,getScript:(url,attr ={}) =>new Promise((resolve,reject) =>{const script =document.createElement('script')
script.src =url
script.async =true
Object.entries(attr).forEach(([key,val]) =>script.setAttribute(key,val))
script.onload =script.onreadystatechange =() =>{if (!script.readyState ||/loaded|complete/.test(script.readyState)) resolve()
}
script.onerror =reject
document.head.appendChild(script)
}),getCSS:(url,id) =>new Promise((resolve,reject) =>{const link =document.createElement('link')
link.rel ='stylesheet'
link.href =url
if (id) link.id =id
link.onload =link.onreadystatechange =() =>{if (!link.readyState ||/loaded|complete/.test(link.readyState)) resolve()
}
link.onerror =reject
document.head.appendChild(link)
}),addGlobalFn:(key,fn,name =false,parent =window) =>{if (!false &&key.startsWith('pjax')) return
const globalFn =parent.globalFn ||{}
globalFn[key] =globalFn[key] ||{}
globalFn[key][name ||Object.keys(globalFn[key]).length] =fn
parent.globalFn =globalFn
}
}
const activateDarkMode =() =>{document.documentElement.setAttribute('data-theme','dark')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#0d0d0d')
}
}
const activateLightMode =() =>{document.documentElement.setAttribute('data-theme','light')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#ffffff')
}
}
btf.activateDarkMode =activateDarkMode
btf.activateLightMode =activateLightMode
const theme =saveToLocal.get('theme')
theme ==='dark' ?activateDarkMode() :theme ==='light' ?activateLightMode() :null
const asideStatus =saveToLocal.get('aside-status')
if (asideStatus !==undefined) {document.documentElement.classList.toggle('hide-aside',asideStatus ==='hide')
}
const detectApple =() =>{if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG ={root:'/',algolia:undefined,localSearch:undefined,translate:undefined,highlight:{"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},copy:{success:'Copy Successful',error:'Copy Failed',noSupport:'Browser Not Supported'
},relativeDate:{
Open service 240e:979:800:150::a1:443 · suiming.pro
2026-01-23 20:53
HTTP/1.1 200 OK
Server: marco/3.2
Date: Fri, 23 Jan 2026 20:53:40 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
X-Source: C/200
Last-Modified: Fri, 16 Jan 2026 22:24:05 GMT
ETag: "696aba85-4193"
X-Request-Id: b206df35671703b8b9755253789ac7f9
Via: S.mix-js-czx1-206, T.206.D, V.mix-js-czx1-206, T.4.D, M.ctn-js-ynz-005
Strict-Transport-Security: max-age=15552000
Page title: 随铭的博客
<!DOCTYPE html><html lang="zh-cn" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>随铭的博客</title><meta name="author" content="随铭"><meta name="copyright" content="随铭"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="随铭的博客">
<meta property="og:url" content="http://www.suiming.pro/index.html">
<meta property="og:site_name" content="随铭的博客">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="http://www.suiming.pro/img/suiming_icon.webp">
<meta property="article:author" content="随铭">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://www.suiming.pro/img/suiming_icon.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://www.suiming.pro/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><script>(() =>{const saveToLocal ={set:(key,value,ttl) =>{if (!ttl) return
const expiry =Date.now() + ttl *86400000
localStorage.setItem(key,JSON.stringify({value,expiry }))
},get:key =>{const itemStr =localStorage.getItem(key)
if (!itemStr) return undefined
const {value,expiry } =JSON.parse(itemStr)
if (Date.now() >expiry) {localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf ={saveToLocal,getScript:(url,attr ={}) =>new Promise((resolve,reject) =>{const script =document.createElement('script')
script.src =url
script.async =true
Object.entries(attr).forEach(([key,val]) =>script.setAttribute(key,val))
script.onload =script.onreadystatechange =() =>{if (!script.readyState ||/loaded|complete/.test(script.readyState)) resolve()
}
script.onerror =reject
document.head.appendChild(script)
}),getCSS:(url,id) =>new Promise((resolve,reject) =>{const link =document.createElement('link')
link.rel ='stylesheet'
link.href =url
if (id) link.id =id
link.onload =link.onreadystatechange =() =>{if (!link.readyState ||/loaded|complete/.test(link.readyState)) resolve()
}
link.onerror =reject
document.head.appendChild(link)
}),addGlobalFn:(key,fn,name =false,parent =window) =>{if (!false &&key.startsWith('pjax')) return
const globalFn =parent.globalFn ||{}
globalFn[key] =globalFn[key] ||{}
globalFn[key][name ||Object.keys(globalFn[key]).length] =fn
parent.globalFn =globalFn
}
}
const activateDarkMode =() =>{document.documentElement.setAttribute('data-theme','dark')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#0d0d0d')
}
}
const activateLightMode =() =>{document.documentElement.setAttribute('data-theme','light')
if (document.querySelector('meta[name="theme-color"]') !==null) {document.querySelector('meta[name="theme-color"]').setAttribute('content','#ffffff')
}
}
btf.activateDarkMode =activateDarkMode
btf.activateLightMode =activateLightMode
const theme =saveToLocal.get('theme')
theme ==='dark' ?activateDarkMode() :theme ==='light' ?activateLightMode() :null
const asideStatus =saveToLocal.get('aside-status')
if (asideStatus !==undefined) {document.documentElement.classList.toggle('hide-aside',asideStatus ==='hide')
}
const detectApple =() =>{if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG ={root:'/',algolia:undefined,localSearch:undefined,translate:undefined,highlight:{"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},copy:{success:'Copy Successful',error:'Copy Failed',noSupport:'Browser Not Supported'
},relativeDate:{
Open service 240e:f7:4f00:250b::a1:80 · suiming.pro
2026-01-23 20:53
HTTP/1.1 301 Moved Permanently Server: marco/3.2 Date: Fri, 23 Jan 2026 20:53:40 GMT Content-Type: text/html Content-Length: 166 Connection: close Location: https://suiming.pro/ Via: M.ctn-zj-jnh-228 X-Request-Id: 59b26dd44affb81a06871d29bfd34b71 Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>marco/3.2</center> </body> </html>