]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Improve 优化组件
authorqydysky <qydysky@foxmail.com>
Fri, 2 Jun 2023 20:05:58 +0000 (04:05 +0800)
committerqydysky <qydysky@foxmail.com>
Fri, 2 Jun 2023 20:06:01 +0000 (04:06 +0800)
CV/Var.go
Reply/stream.go
cmd/cmd.go
go.mod
go.sum

index f3aeae9d2171d947ecdb1854a19c477bdf0b2af5..dd43b35eba58672a6c10679b3862561fe9197cb3 100644 (file)
--- a/CV/Var.go
+++ b/CV/Var.go
@@ -31,44 +31,44 @@ type StreamType struct {
 }
 
 type Common struct {
-       PID               int                   //进程id
-       Uid               int                   //client uid
-       Live              []LiveQn              //直播流链接
-       Live_qn           int                   //当前直播流质量
-       Live_want_qn      int                   //期望直播流质量
-       Roomid            int                   //房间ID
-       Cookie            syncmap.Map           //Cookie
-       Title             string                //直播标题
-       Uname             string                //主播名
-       UpUid             int                   //主播uid
-       Rev               float64               //营收
-       Renqi             int                   //人气
-       Watched           int                   //观看人数
-       OnlineNum         int                   //在线人数
-       GuardNum          int                   //舰长数
-       ParentAreaID      int                   //父分区
-       AreaID            int                   //子分区
-       Locked            bool                  //直播间封禁
-       Note              string                //分区排行
-       Live_Start_Time   time.Time             //直播开始时间
-       Liveing           bool                  //是否在直播
-       Wearing_FansMedal int                   //当前佩戴的粉丝牌
-       Token             string                //弹幕钥
-       WSURL             []string              //弹幕链接
-       LiveBuvidUpdated  time.Time             //LIVE_BUVID更新时间
-       Stream_url        *url.URL              //直播Web服务
-       Proxy             string                //全局代理
-       AcceptQn          map[int]string        //允许的直播流质量
-       Qn                map[int]string        //全部直播流质量
-       StreamType        StreamType            //当前直播流类型
-       AllStreamType     map[string]StreamType //直播流类型
-       K_v               syncmap.Map           //配置文件
-       Log               *log.Log_interface    //日志
-       Danmu_Main_mq     *mq.Msgq              //消息
-       ReqPool           *pool.Buf[reqf.Req]   //请求池
-       SerF              *web.WebPath          //web服务处理
-       SerLimit          *web.Limits           //Web服务连接限制
-       StartT            time.Time             //启动时间
+       PID               int                   `json:"pid"`           //进程id
+       Uid               int                   `json:"-"`             //client uid
+       Live              []LiveQn              `json:"-"`             //直播流链接
+       Live_qn           int                   `json:"liveQn"`        //当前直播流质量
+       Live_want_qn      int                   `json:"-"`             //期望直播流质量
+       Roomid            int                   `json:"roomid"`        //房间ID
+       Cookie            syncmap.Map           `json:"-"`             //Cookie
+       Title             string                `json:"title"`         //直播标题
+       Uname             string                `json:"uname"`         //主播名
+       UpUid             int                   `json:"upUid"`         //主播uid
+       Rev               float64               `json:"rev"`           //营收
+       Renqi             int                   `json:"renqi"`         //人气
+       Watched           int                   `json:"watched"`       //观看人数
+       OnlineNum         int                   `json:"onlineNum"`     //在线人数
+       GuardNum          int                   `json:"guardNum"`      //舰长数
+       ParentAreaID      int                   `json:"parentAreaID"`  //父分区
+       AreaID            int                   `json:"areaID"`        //子分区
+       Locked            bool                  `json:"locked"`        //直播间封禁
+       Note              string                `json:"note"`          //分区排行
+       Live_Start_Time   time.Time             `json:"liveStartTime"` //直播开始时间
+       Liveing           bool                  `json:"liveing"`       //是否在直播
+       Wearing_FansMedal int                   `json:"-"`             //当前佩戴的粉丝牌
+       Token             string                `json:"-"`             //弹幕钥
+       WSURL             []string              `json:"-"`             //弹幕链接
+       LiveBuvidUpdated  time.Time             `json:"-"`             //LIVE_BUVID更新时间
+       Stream_url        *url.URL              `json:"-"`             //直播Web服务
+       Proxy             string                `json:"-"`             //全局代理
+       AcceptQn          map[int]string        `json:"-"`             //允许的直播流质量
+       Qn                map[int]string        `json:"-"`             //全部直播流质量
+       StreamType        StreamType            `json:"streamType"`    //当前直播流类型
+       AllStreamType     map[string]StreamType `json:"-"`             //直播流类型
+       K_v               syncmap.Map           `json:"-"`             //配置文件
+       Log               *log.Log_interface    `json:"-"`             //日志
+       Danmu_Main_mq     *mq.Msgq              `json:"-"`             //消息
+       ReqPool           *pool.Buf[reqf.Req]   `json:"-"`             //请求池
+       SerF              *web.WebPath          `json:"-"`             //web服务处理
+       SerLimit          *web.Limits           `json:"-"`             //Web服务连接限制
+       StartT            time.Time             `json:"startT"`        //启动时间
 }
 
 type LiveQn struct {
@@ -385,6 +385,7 @@ func (t *Common) Init() *Common {
                                                        "gcCPUFractionPpm": float64(int(memStats.GCCPUFraction*100000000)) / 100,
                                                        "gcAvgS":           float64(int(gcAvgS*100)) / 100,
                                                },
+                                               "common": t,
                                        },
                                },
                                }.Write(w)
index 87650bf5f149f8cb90f95fb47d793acc9551bf9a..798d4bb1e1107e1bb3e0f7655a747c0b43aed599 100644 (file)
@@ -236,7 +236,7 @@ func (t *M4SStream) fetchCheckStream() bool {
                        t.log.L(`W: `, `live响应错误`)
                        t.common.Live = t.common.Live[1:]
                } else if r.Response.StatusCode&200 != 200 {
-                       t.log.L(`W: `, `live响应错误`, r.Response.Status, string(r.Respon))
+                       t.log.L(`W: `, `live响应错误`, r.Response.Status)
                        t.common.Live = t.common.Live[1:]
                }
                t.reqPool.Put(r)
@@ -685,12 +685,15 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                        }()
 
                        rc, rw := io.Pipe()
-                       var leastReadUnix atomic.Int64
+                       var (
+                               leastReadUnix atomic.Int64
+                               readTO        int64 = 5
+                       )
                        leastReadUnix.Store(time.Now().Unix())
 
                        // read timeout
                        go func() {
-                               timer := time.NewTicker(5 * time.Second)
+                               timer := time.NewTicker(time.Duration(readTO * int64(time.Second)))
                                defer timer.Stop()
 
                                for {
@@ -698,8 +701,8 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                                        case <-cancelC.Done():
                                                return
                                        case curT := <-timer.C:
-                                               if curT.Unix()-leastReadUnix.Load() > 5 {
-                                                       t.log.L(`W: `, "5s未接收到任何数据")
+                                               if curT.Unix()-leastReadUnix.Load() > readTO {
+                                                       t.log.L(`W: `, fmt.Sprintf("%vs未接收到有效数据", readTO))
                                                        // 5s未接收到任何数据
                                                        r.Cancel()
                                                        return
@@ -733,7 +736,6 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                                                t.Stream_msg.PushLock_tag(`close`, nil)
                                                break
                                        }
-                                       leastReadUnix.Store(time.Now().Unix())
 
                                        skip := true
                                        select {
@@ -755,6 +757,10 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                                                        //丢弃所有数据
                                                        buff.Reset()
                                                }
+                                               // 存在有效数据
+                                               if len(front_buf) != 0 || len(t.first_buf) != 0 {
+                                                       leastReadUnix.Store(time.Now().Unix())
+                                               }
                                                if len(front_buf) != 0 && len(t.first_buf) == 0 {
                                                        t.first_buf = make([]byte, len(front_buf))
                                                        copy(t.first_buf, front_buf)
@@ -790,6 +796,7 @@ func (t *M4SStream) saveStreamFlv() (e error) {
                                NoResponse:       true,
                                Async:            true,
                                Proxy:            t.common.Proxy,
+                               WriteLoopTO:      3000,
                                Header: map[string]string{
                                        `Host`:            surl.Host,
                                        `User-Agent`:      `Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0`,
index 74b1e7352aed4d92dc6dc2fc34504a2c09f158d1..d2328753f0f0b5c04932d5a08a6b6f05ee4c0fae 100644 (file)
@@ -71,6 +71,8 @@ func Cmd() {
                                                continue
                                        }
                                        cmdlog.L(`W: `, "输入错误", inputs)
+                               } else if c.C.Roomid == 0 {
+                                       cmdlog.L(`W: `, "输入错误", inputs)
                                } else {
                                        if reply.StreamOStatus(c.C.Roomid) {
                                                reply.StreamOStop(c.C.Roomid)
diff --git a/go.mod b/go.mod
index c1f203d9575733024eeb21d0d1b84eab28d23655..9fe4ce4e8a4b8af1444ad61b5be84e0b9ba7ba7f 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -4,8 +4,8 @@ go 1.20
 
 require (
        github.com/gotk3/gotk3 v0.6.2
-       github.com/mdp/qrterminal/v3 v3.0.0
-       github.com/qydysky/part v0.28.1-0.20230529171227-d4a6f98e0263
+       github.com/mdp/qrterminal/v3 v3.1.1
+       github.com/qydysky/part v0.28.1-0.20230602190805-e713cd3914aa
        github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
        github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
        golang.org/x/text v0.9.0
@@ -13,17 +13,17 @@ require (
 
 require (
        github.com/google/uuid v1.3.0
-       golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53
+       golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1
 )
 
 require (
        github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
-       github.com/mattn/go-isatty v0.0.18 // indirect
+       github.com/mattn/go-isatty v0.0.19 // indirect
        github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
        lukechampine.com/uint128 v1.3.0 // indirect
        modernc.org/cc/v3 v3.40.0 // indirect
        modernc.org/ccgo/v3 v3.16.13 // indirect
-       modernc.org/libc v1.22.5 // indirect
+       modernc.org/libc v1.22.6 // indirect
        modernc.org/mathutil v1.5.0 // indirect
        modernc.org/memory v1.5.0 // indirect
        modernc.org/opt v0.1.3 // indirect
@@ -43,12 +43,12 @@ require (
        github.com/shirou/gopsutil v3.21.11+incompatible // indirect
        github.com/thedevsaddam/gojsonq/v2 v2.5.2 // indirect
        github.com/tklauser/go-sysconf v0.3.11 // indirect
-       github.com/tklauser/numcpus v0.6.0 // indirect
-       github.com/yusufpapurcu/wmi v1.2.2 // indirect
+       github.com/tklauser/numcpus v0.6.1 // indirect
+       github.com/yusufpapurcu/wmi v1.2.3 // indirect
        golang.org/x/mod v0.10.0 // indirect
-       golang.org/x/net v0.9.0 // indirect
+       golang.org/x/net v0.10.0 // indirect
        golang.org/x/sys v0.8.0 // indirect
-       golang.org/x/tools v0.8.0 // indirect
+       golang.org/x/tools v0.9.3 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
        modernc.org/sqlite v1.22.1
        rsc.io/qr v0.2.0 // indirect
diff --git a/go.sum b/go.sum
index 9eac1b631bb348a6f639fe41b0322abe42832abd..8377a1e7d3b84c3b8a6aa65caa3283f88e30c904 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -20,19 +20,18 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNU
 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
 github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
 github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
-github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
-github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
+github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
 github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
-github.com/mdp/qrterminal v1.0.1/go.mod h1:Z33WhxQe9B6CdW37HaVqcRKzP+kByF3q/qLxOGe12xQ=
-github.com/mdp/qrterminal/v3 v3.0.0 h1:ywQqLRBXWTktytQNDKFjhAvoGkLVN3J2tAFZ0kMd9xQ=
-github.com/mdp/qrterminal/v3 v3.0.0/go.mod h1:NJpfAs7OAm77Dy8EkWrtE4aq+cE6McoLXlBqXQEwvE0=
+github.com/mdp/qrterminal/v3 v3.1.1 h1:cIPwg3QU0OIm9+ce/lRfWXhPwEjOSKwk3HBwL3HBTyc=
+github.com/mdp/qrterminal/v3 v3.1.1/go.mod h1:5lJlXe7Jdr8wlPDdcsJttv1/knsRgzXASyr4dcGZqNU=
 github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI=
 github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/qydysky/part v0.28.1-0.20230529171227-d4a6f98e0263 h1:kkumZFaAahNhSFjeY1VCihzG/DOATDtXLAyhsh9R2AE=
-github.com/qydysky/part v0.28.1-0.20230529171227-d4a6f98e0263/go.mod h1:IEMpGB0NBl6MklZmoenSpS5ChhaIL79JYFo6mF1UkAU=
+github.com/qydysky/part v0.28.1-0.20230602174331-a838e316668d h1:NDk77uktMXlfEXJEooVLlYcOLRr4htDRaa5jzFmGJXU=
+github.com/qydysky/part v0.28.1-0.20230602174331-a838e316668d/go.mod h1:xSAOQyg7Wyd+QtXxmHBodYzx3y5HJnfr4R29MXxNKF4=
+github.com/qydysky/part v0.28.1-0.20230602190805-e713cd3914aa h1:CBCY0tJB8M0KwmZ/BIoydBrBYV0lpgPLGCgT3YaGSLY=
+github.com/qydysky/part v0.28.1-0.20230602190805-e713cd3914aa/go.mod h1:xSAOQyg7Wyd+QtXxmHBodYzx3y5HJnfr4R29MXxNKF4=
 github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
 github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
 github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
@@ -47,18 +46,18 @@ github.com/thedevsaddam/gojsonq/v2 v2.5.2 h1:CoMVaYyKFsVj6TjU6APqAhAvC07hTI6IQen
 github.com/thedevsaddam/gojsonq/v2 v2.5.2/go.mod h1:bv6Xa7kWy82uT0LnXPE2SzGqTj33TAEeR560MdJkiXs=
 github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
 github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
-github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
 github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
-github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
-github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
-golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o=
-golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
+github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
+github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
+github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=
+github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
+golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc=
+golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
 golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
 golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
-golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
+golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
+golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
 golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -66,8 +65,8 @@ golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y=
-golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
+golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
+golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -79,8 +78,8 @@ modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw=
 modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
 modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
 modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
-modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE=
-modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
+modernc.org/libc v1.22.6 h1:cbXU8R+A6aOjRuhsFh3nbDWXO/Hs4ClJRXYB11KmPDo=
+modernc.org/libc v1.22.6/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
 modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
 modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
 modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=