@dan-uni/dan-any 2.3.1 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/{adapters-CGnQfVqg.mjs → adapters-BGeCLF-P.mjs} +2 -2
  2. package/dist/{adapters-CGnQfVqg.mjs.map → adapters-BGeCLF-P.mjs.map} +1 -1
  3. package/dist/{adapters-BEs_Fcjl.cjs → adapters-DT0YPaW0.cjs} +1 -1
  4. package/dist/adapters.cjs +1 -1
  5. package/dist/adapters.d.cts +1 -1
  6. package/dist/adapters.d.mts +1 -1
  7. package/dist/adapters.mjs +1 -1
  8. package/dist/core/db/schema.d.cts +1 -1
  9. package/dist/core/db/schema.d.mts +1 -1
  10. package/dist/core/db/utils.d.cts +1 -1
  11. package/dist/core/db/utils.d.mts +1 -1
  12. package/dist/core/main/drizzle.cjs +1 -1
  13. package/dist/core/main/drizzle.d.cts +3 -3
  14. package/dist/core/main/drizzle.d.mts +3 -3
  15. package/dist/core/main/drizzle.mjs +1 -1
  16. package/dist/core/main/pure.cjs +1 -1
  17. package/dist/core/main/pure.d.cts +1 -1
  18. package/dist/core/main/pure.d.mts +1 -1
  19. package/dist/core/main/pure.mjs +1 -1
  20. package/dist/core/main.cjs +1 -1
  21. package/dist/core/main.d.cts +1 -1
  22. package/dist/core/main.d.mts +1 -1
  23. package/dist/core/main.mjs +1 -1
  24. package/dist/{core-CxJrRDES.cjs → core-BIxWu_32.cjs} +1 -1
  25. package/dist/{core-CKF1H7Si.mjs → core-CMk2Mwxi.mjs} +2 -2
  26. package/dist/{core-CKF1H7Si.mjs.map → core-CMk2Mwxi.mjs.map} +1 -1
  27. package/dist/core.cjs +1 -1
  28. package/dist/core.d.cts +2 -2
  29. package/dist/core.d.mts +2 -2
  30. package/dist/core.mjs +1 -1
  31. package/dist/{dm-extra-D2JR9olV.d.cts → dm-extra-DW2aFkQh.d.cts} +2 -2
  32. package/dist/{dm-extra-D2JR9olV.d.cts.map → dm-extra-DW2aFkQh.d.cts.map} +1 -1
  33. package/dist/{dm-extra-D2JR9olV.d.mts → dm-extra-DW2aFkQh.d.mts} +2 -2
  34. package/dist/{dm-extra-D2JR9olV.d.mts.map → dm-extra-DW2aFkQh.d.mts.map} +1 -1
  35. package/dist/{index-DqnaW_ei.d.mts → index-DGPhFGo_.d.mts} +3 -3
  36. package/dist/{index-DqnaW_ei.d.mts.map → index-DGPhFGo_.d.mts.map} +1 -1
  37. package/dist/{index-BM23CK6w.d.cts → index-VhG0LiL2.d.cts} +3 -3
  38. package/dist/{index-BM23CK6w.d.cts.map → index-VhG0LiL2.d.cts.map} +1 -1
  39. package/dist/index.cjs +1 -1
  40. package/dist/index.d.cts +1 -1
  41. package/dist/index.d.mts +1 -1
  42. package/dist/index.mjs +1 -1
  43. package/dist/{isSame-CGu1CJcI.cjs → isSame-9QsgWk0h.cjs} +1 -1
  44. package/dist/{isSame-PqXeXEr0.mjs → isSame-sqTltSOx.mjs} +2 -2
  45. package/dist/{isSame-PqXeXEr0.mjs.map → isSame-sqTltSOx.mjs.map} +1 -1
  46. package/dist/{main-drizzle-WzEKTK8J.cjs → main-drizzle-DYtV1ClN.cjs} +1 -1
  47. package/dist/{main-drizzle-B8Rn_s5D.mjs → main-drizzle-t2QIMdOt.mjs} +2 -2
  48. package/dist/{main-drizzle-B8Rn_s5D.mjs.map → main-drizzle-t2QIMdOt.mjs.map} +1 -1
  49. package/dist/{main-pure-2gcLxO9T.cjs → main-pure-B56SDMo6.cjs} +1 -1
  50. package/dist/{main-pure-BpusnMEi.d.cts → main-pure-BXT58v5N.d.cts} +2 -2
  51. package/dist/{main-pure-BpusnMEi.d.cts.map → main-pure-BXT58v5N.d.cts.map} +1 -1
  52. package/dist/{main-pure-NLby0fmU.d.mts → main-pure-CAPzq-ue.d.mts} +2 -2
  53. package/dist/{main-pure-NLby0fmU.d.mts.map → main-pure-CAPzq-ue.d.mts.map} +1 -1
  54. package/dist/{main-pure-DOADbEvZ.mjs → main-pure-CLnUZB7g.mjs} +2 -2
  55. package/dist/{main-pure-DOADbEvZ.mjs.map → main-pure-CLnUZB7g.mjs.map} +1 -1
  56. package/dist/plugins.cjs +1 -1
  57. package/dist/plugins.d.cts +2 -2
  58. package/dist/plugins.d.mts +2 -2
  59. package/dist/plugins.mjs +1 -1
  60. package/dist/{schema-DinusqmG.d.mts → schema-DBUuGpWR.d.mts} +2 -2
  61. package/dist/{schema-CwZvAYu6.d.cts.map → schema-DBUuGpWR.d.mts.map} +1 -1
  62. package/dist/{schema-CwZvAYu6.d.cts → schema-DKQ-9LmS.d.cts} +2 -2
  63. package/dist/{schema-DinusqmG.d.mts.map → schema-DKQ-9LmS.d.cts.map} +1 -1
  64. package/dist/utils.cjs +1 -1
  65. package/dist/utils.d.cts +2 -2
  66. package/dist/utils.d.mts +2 -2
  67. package/dist/utils.mjs +1 -1
  68. package/package.json +1 -1
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-DWNI8pZO.cjs"),t=require("./core-CxJrRDES.cjs"),n=require("./core/db/schema.cjs");let r=require("zod"),i=require("@bufbuild/protobuf/codegenv2"),a=require("@bufbuild/protobuf/wkt"),o=require("@bufbuild/protobuf"),s=require("fast-xml-parser"),c=require("fast-xml-builder");c=e.n(c,1);const l=e=>e?[`adv`,`bas`,`code`,`command`].some(t=>e[t]):!1;function u(e){return e.mode!==`Ext`&&e.extra&&(e.extra.artplayer||l(e.extra.bili))?(e.mode=`Ext`,!0):!1}function d(e){let n=t.b.parse(e);return{...n,bili:n.bili?{...n.bili,dmid:n.bili.dmid?.toString(),mid:n.bili.mid?.toString()}:void 0}}const ee=r.z.float32(),te=r.z.int();function ne(e){return te.parse(~~(ee.parse(e)*1e3))}function f(e,t,n=globalThis.JSON){let r=e instanceof ArrayBuffer||e instanceof Uint8Array||e instanceof Buffer;switch(t){case`bin`:if(r)return e instanceof Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e;if(e instanceof File)return e.arrayBuffer();if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError(`Expected binary data for mod "bin"`);case`string`:if(typeof e==`string`)return e;if(e instanceof File)return e.text();if(r)return new TextDecoder().decode(e);if(ArrayBuffer.isView(e))return new TextDecoder().decode(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));throw TypeError(`Expected binary data or string for mod "string"`);case`json`:{if(e instanceof File)return e.text().then(e=>n.parse(e));if(typeof e==`object`&&e&&!r)return e;if(typeof e!=`string`&&!r&&!ArrayBuffer.isView(e))throw TypeError(`Expected object, JSON string, or binary data for mod "json"`);let t=typeof e==`string`?e:new TextDecoder().decode(r?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength));try{return n.parse(t)}catch{throw Error(`Invalid JSON string`)}}default:throw Error(`Unsupported mod`)}}const p=r.z.codec(r.z.enum(t.s).default(0),r.z.enum(n.danmakus.mode.enumValues),{decode:e=>n.danmakus.mode.enumValues[e]||`Normal`,encode:e=>t.s[e]||0}),m=r.z.codec(r.z.enum(t.c).default(0),r.z.enum(n.danmakus.pool.enumValues),{decode:e=>n.danmakus.pool.enumValues[e]||`Def`,encode:e=>t.c[e]||0}),h=r.z.codec(r.z.enum(t.a).array(),r.z.enum(n.danmakus.attr.enumValues).array(),{decode:e=>e,encode:e=>e.map(e=>t.a[e])});function re(e){let t=!Number.isInteger(e.progress),n=typeof e.extraStr==`string`;return t||n}const g=Z((e,n)=>async(r,i)=>{let a=new Date,o=i??await r.makeChunk({}),s=n?.isV1?!0:e.some(e=>re(e));return await o.upsertDanmakus(e.map(e=>{let n={SOID:e.SOID||t.l.SOID,progress:e.progress?s?ne(e.progress):e.progress:t.l.progress,mode:p.decode(e.mode),fontsize:e.fontsize??t.l.fontsize,color:e.color??t.l.color,senderID:e.senderID||t.l.senderID,content:e.content??t.l.content,ctime:e.ctime?new Date(e.ctime):a,weight:e.weight??t.l.weight,pool:m.decode(e.pool),attr:e.attr?h.decode(e.attr):t.l.attr,platform:e.platform??t.l.platform,extra:e.extra??(e.extraStr?d(e.extraStr):t.l.extra)};return u(n),{...n,DMID:!s&&e.DMID?e.DMID:o.$UniDB.DMIDGenerator(n)}})),o});function _(e){return Q(n=>e?.minify?n.map(e=>({SOID:e.SOID===t.l.SOID?void 0:e.SOID,progress:e.progress===t.l.progress?void 0:e.progress,mode:e.mode===`Normal`?void 0:p.encode(e.mode),fontsize:e.fontsize===t.l.fontsize?void 0:e.fontsize,color:e.color===t.l.color?void 0:e.color,senderID:e.senderID===t.l.senderID?void 0:e.senderID,content:e.content===t.l.content?void 0:e.content,ctime:e.ctime,weight:e.weight===t.l.weight?void 0:e.weight,pool:e.pool===`Def`?void 0:m.encode(e.pool),attr:e.attr&&e.attr.length>0?h.encode(e.attr):void 0,platform:e.platform??void 0,extra:e.extra??void 0,DMID:e.DMID})):n.map(e=>({...e,mode:p.encode(e.mode),pool:m.encode(e.pool),attr:h.encode(e.attr)})))}const v=$({type:`danuni.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(g(await f(t,`json`)))}catch{return null}}}}),ie=(0,i.fileDesc)(`Ch9kYW51bmkvZGFubWFrdS92MS9kYW5tYWt1LnByb3RvEhFkYW51bmkuZGFubWFrdS52MSI2Cg5MaXN0RGFuUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgNzZWcYAiABKAVIAIgBAUIGCgRfc2VnIpMDCgdEYW5tYWt1EhIKBHNvaWQYASABKAlSBFNPSUQSEgoEZG1pZBgCIAEoCVIERE1JRBIQCghwcm9ncmVzcxgDIAEoBRIlCgRtb2RlGAQgASgOMhcuZGFudW5pLmRhbm1ha3UudjEuTW9kZRIQCghmb250c2l6ZRgFIAEoBRINCgVjb2xvchgGIAEoBRIbCglzZW5kZXJfaWQYByABKAlSCHNlbmRlcklEEg8KB2NvbnRlbnQYCCABKAkSKQoFY3RpbWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBndlaWdodBgKIAEoBRIlCgRwb29sGAsgASgOMhcuZGFudW5pLmRhbm1ha3UudjEuUG9vbBIMCgRhdHRyGAwgAygJEhUKCHBsYXRmb3JtGA0gASgJSACIAQESGQoIZXh0cmFfdjEYDiABKAlCAhgBSAGIAQESEgoFZXh0cmEYDyABKAlIAogBAUILCglfcGxhdGZvcm1CCwoJX2V4dHJhX3YxQggKBl9leHRyYSI/Cg9MaXN0RGFuUmVzcG9uc2USLAoIZGFubWFrdXMYASADKAsyGi5kYW51bmkuZGFubWFrdS52MS5EYW5tYWt1KmIKBE1vZGUSGwoXTU9ERV9OT1JNQUxfVU5TUEVDSUZJRUQQABIPCgtNT0RFX0JPVFRPTRABEgwKCE1PREVfVE9QEAISEAoMTU9ERV9SRVZFUlNFEAMSDAoITU9ERV9FWFQQBCpJCgRQb29sEhgKFFBPT0xfREVGX1VOU1BFQ0lGSUVEEAASDAoIUE9PTF9TVUIQARIMCghQT09MX0FEVhACEgsKB1BPT0xfSVgQAzJkCg5EYW5tYWt1U2VydmljZRJSCgdMaXN0RGFuEiEuZGFudW5pLmRhbm1ha3UudjEuTGlzdERhblJlcXVlc3QaIi5kYW51bmkuZGFubWFrdS52MS5MaXN0RGFuUmVzcG9uc2UiAEKLAQoVY29tLmRhbnVuaS5kYW5tYWt1LnYxQgxEYW5tYWt1UHJvdG9QAaICA0REWKoCEURhbnVuaS5EYW5tYWt1LlYxygIRRGFudW5pXERhbm1ha3VcVjHiAh1EYW51bmlcRGFubWFrdVxWMVxHUEJNZXRhZGF0YeoCE0RhbnVuaTo6RGFubWFrdTo6VjFiBnByb3RvMw`,[a.file_google_protobuf_timestamp]),y=(0,i.messageDesc)(ie,2);let ae=function(e){return e[e.NORMAL_UNSPECIFIED=0]=`NORMAL_UNSPECIFIED`,e[e.BOTTOM=1]=`BOTTOM`,e[e.TOP=2]=`TOP`,e[e.REVERSE=3]=`REVERSE`,e[e.EXT=4]=`EXT`,e}({}),oe=function(e){return e[e.DEF_UNSPECIFIED=0]=`DEF_UNSPECIFIED`,e[e.SUB=1]=`SUB`,e[e.ADV=2]=`ADV`,e[e.IX=3]=`IX`,e}({});const se=r.z.codec(r.z.enum(ae),r.z.enum(n.danmakus.mode.enumValues),{decode:e=>n.danmakus.mode.enumValues[e]||`Normal`,encode:e=>{let t=n.danmakus.mode.enumValues.indexOf(e);return t===-1?0:t}}),b=r.z.codec(r.z.enum(oe),r.z.enum(n.danmakus.pool.enumValues),{decode:e=>n.danmakus.pool.enumValues[e]||`Def`,encode:e=>{let t=n.danmakus.pool.enumValues.indexOf(e);return t===-1?0:t}}),x=Z(e=>async(i,s)=>{let c=(0,o.fromBinary)(y,new Uint8Array(e)),l=s??await i.makeChunk({}),u=c.danmakus.some(e=>e.extraV1);return await l.upsertDanmakus(c.danmakus.map(e=>{let i={...e,SOID:e.soid,DMID:e.dmid,mode:se.decode(e.mode),senderID:e.senderId,ctime:(0,a.timestampDate)(e.ctime||(0,a.timestampNow)()),pool:b.decode(e.pool),attr:r.z.enum(n.danmakus.attr.enumValues).array().parse(e.attr),platform:e.platform??t.l.platform,extra:e.extra?t.b.parse(e.extra):e.extraV1?d(e.extraV1):void 0};return u?{...i,DMID:l.$UniDB.DMIDGenerator(i)}:i})),l}),S=Q(e=>(0,o.toBinary)(y,(0,o.create)(y,{danmakus:e.map(e=>({...e,soid:e.SOID,dmid:e.DMID,mode:se.encode(e.mode),senderId:e.senderID,ctime:(0,a.timestampFromDate)(e.ctime),pool:b.encode(e.pool),platform:e.platform??void 0,extra:t.b.stringify(e.extra)}))}))),C=$({type:`danuni.binpb`,ext:[`.binpb`,`.bin`,`.pb.bin`],check:{adapter:async(e,t)=>{try{return await e.import(x(await f(t,`bin`)))}catch{return null}}}}),w=(0,i.fileDesc)(`CiliaWxpYmlsaS9jb21tdW5pdHkvc2VydmljZS9kbS92MS9kbS5wcm90bxIgYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEiZAoGQXZhdGFyEgoKAmlkGAEgASgJEgsKA3VybBgCIAEoCRJBCgthdmF0YXJfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkF2YXRhclR5cGUiIwoGQnViYmxlEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJIsYBCghCdWJibGVWMhIMCgR0ZXh0GAEgASgJEgsKA3VybBgCIAEoCRJBCgtidWJibGVfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVR5cGUSFQoNZXhwb3N1cmVfb25jZRgEIAEoCBJFCg1leHBvc3VyZV90eXBlGAUgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIlsKBkJ1dHRvbhIMCgR0ZXh0GAEgASgJEkMKBmFjdGlvbhgCIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0RnVuY3Rpb25UeXBlIlgKDkJ1enp3b3JkQ29uZmlnEkYKCGtleXdvcmRzGAEgAygLMjQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnV6endvcmRTaG93Q29uZmlnIngKEkJ1enp3b3JkU2hvd0NvbmZpZxIMCgRuYW1lGAEgASgJEg4KBnNjaGVtYRgCIAEoCRIOCgZzb3VyY2UYAyABKAUSCgoCaWQYBCABKAMSEwoLYnV6endvcmRfaWQYBSABKAMSEwoLc2NoZW1hX3R5cGUYBiABKAUiewoIQ2hlY2tCb3gSDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgSDAoEc2hvdxgEIAEoCCJvCgpDaGVja0JveFYyEgwKBHRleHQYASABKAkSPAoEdHlwZRgCIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrYm94VHlwZRIVCg1kZWZhdWx0X3ZhbHVlGAMgASgIIoICCgtDbGlja0J1dHRvbhIVCg1wb3J0cmFpdF90ZXh0GAEgAygJEhYKDmxhbmRzY2FwZV90ZXh0GAIgAygJEhsKE3BvcnRyYWl0X3RleHRfZm9jdXMYAyADKAkSHAoUbGFuZHNjYXBlX3RleHRfZm9jdXMYBCADKAkSQQoLcmVuZGVyX3R5cGUYBSABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEgwKBHNob3cYBiABKAgSOAoGYnViYmxlGAcgASgLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlIrMCCg1DbGlja0J1dHRvblYyEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSFwoPdGV4dF9pbnB1dF9wb3N0GAYgASgIEhUKDWV4cG9zdXJlX29uY2UYByABKAgSRQoNZXhwb3N1cmVfdHlwZRgIIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cG9zdXJlVHlwZSJLCgdDb21tYW5kEkAKC2NvbW1hbmRfZG1zGAEgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZERtIuYBCglDb21tYW5kRG0SCgoCaWQYASABKAMSCwoDb2lkGAIgASgDEgsKA21pZBgDIAEoAxIPCgdjb21tYW5kGAQgASgJEg8KB2NvbnRlbnQYBSABKAkSEAoIcHJvZ3Jlc3MYBiABKAUSDQoFY3RpbWUYByABKAkSDQoFbXRpbWUYCCABKAkSDQoFZXh0cmEYCSABKAkSDQoFaWRTdHIYCiABKAkSDAoEdHlwZRgLIAEoBRITCgthdXRvX2NyZWF0ZRgMIAEoCBISCgpjb3VudF9kb3duGA0gASgFEgwKBGF0dHIYDiABKAUiUAoNRGFubWFrdUFJRmxhZxI/CghkbV9mbGFncxgBIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnIosDCgtEYW5tYWt1RWxlbRIKCgJpZBgBIAEoAxIQCghwcm9ncmVzcxgCIAEoBRIMCgRtb2RlGAMgASgFEhAKCGZvbnRzaXplGAQgASgFEj8KBWNvbG9yGAUgASgOMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1Db2xvcmZ1bFR5cGUSEAoIbWlkX2hhc2gYBiABKAkSDwoHY29udGVudBgHIAEoCRINCgVjdGltZRgIIAEoAxIOCgZ3ZWlnaHQYCSABKAUSDgoGYWN0aW9uGAogASgJEgwKBHBvb2wYCyABKAUSDgoGaWRfc3RyGAwgASgJEgwKBGF0dHIYDSABKAUSEQoJYW5pbWF0aW9uGBYgASgJEg0KBWV4dHJhGBcgASgJEkIKCGNvbG9yZnVsGBggASgOMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1Db2xvcmZ1bFR5cGUSDAoEdHlwZRgZIAEoBRILCgNvaWQYGiABKAMiKQoLRGFubWFrdUZsYWcSDAoEZG1pZBgBIAEoAxIMCgRmbGFnGAIgASgFIksKEURhbm1ha3VGbGFnQ29uZmlnEhAKCHJlY19mbGFnGAEgASgFEhAKCHJlY190ZXh0GAIgASgJEhIKCnJlY19zd2l0Y2gYAyABKAUiiwcKGERhbm11RGVmYXVsdFBsYXllckNvbmZpZxIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYASABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X3N3aXRjaBgQIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV9zZW5pb3JfbW9kZV9zd2l0Y2gYESABKAUSLgomcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjIYEiABKAUSmAEKKnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyX21hcBgTIAMoCzJkLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11RGVmYXVsdFBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgUIAEoCBpLCilQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIuwJChFEYW5tdVBsYXllckNvbmZpZxIdChVwbGF5ZXJfZGFubWFrdV9zd2l0Y2gYASABKAgSIgoacGxheWVyX2Rhbm1ha3Vfc3dpdGNoX3NhdmUYAiABKAgSKQohcGxheWVyX2Rhbm1ha3VfdXNlX2RlZmF1bHRfY29uZmlnGAMgASgIEiwKJHBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX3N3aXRjaBgEIAEoCBIrCiNwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbBgFIAEoBRIfChdwbGF5ZXJfZGFubWFrdV9ibG9ja3RvcBgGIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3Njcm9sbBgHIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja2JvdHRvbRgIIAEoCBIkChxwbGF5ZXJfZGFubWFrdV9ibG9ja2NvbG9yZnVsGAkgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrcmVwZWF0GAogASgIEiMKG3BsYXllcl9kYW5tYWt1X2Jsb2Nrc3BlY2lhbBgLIAEoCBIeChZwbGF5ZXJfZGFubWFrdV9vcGFjaXR5GAwgASgCEiQKHHBsYXllcl9kYW5tYWt1X3NjYWxpbmdmYWN0b3IYDSABKAISHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCEhwKFHBsYXllcl9kYW5tYWt1X3NwZWVkGA8gASgFEiYKHnBsYXllcl9kYW5tYWt1X2VuYWJsZWJsb2NrbGlzdBgQIAEoCBIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBEgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9jb25maWcYEiABKAUSJgoecGxheWVyX2Rhbm1ha3VfaW9zX3N3aXRjaF9zYXZlGBMgASgFEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgUIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgVIAEoBRKRAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBYgAygLMl0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyTWFwRW50cnkSJQodcGxheWVyX2Rhbm1ha3VfZW5hYmxlX2hlcmRfZG0YFyABKAgSJgoecGxheWVyX2Rhbm1ha3VfYmxvY2t0b3BfYm90dG9tGBggASgIEiAKGHBsYXllcl9kYW5tYWt1X2RvbWFpbl92MhgZIAEoBRIeChZwbGF5ZXJfZGFubWFrdV9kZW5zaXR5GBogASgFEiUKHXBsYXllcl9kYW5tYWt1X3N1YnRpdGxlX3Byb29mGBsgASgIEiMKG3BsYXllcl9kYW5tYWt1X3Blb3BsZV9wcm9vZhgcIAEoCBpLCilQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIjAKFkRhbm11UGxheWVyQ29uZmlnUGFuZWwSFgoOc2VsZWN0aW9uX3RleHQYASABKAkiSwoYRGFubXVQbGF5ZXJEeW5hbWljQ29uZmlnEhAKCHByb2dyZXNzGAEgASgFEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAiKQAwoVRGFubXVQbGF5ZXJWaWV3Q29uZmlnEmEKHWRhbm11a3VfZGVmYXVsdF9wbGF5ZXJfY29uZmlnGAEgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnElIKFWRhbm11a3VfcGxheWVyX2NvbmZpZxgCIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11UGxheWVyQ29uZmlnEmEKHWRhbm11a3VfcGxheWVyX2R5bmFtaWNfY29uZmlnGAMgAygLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJEeW5hbWljQ29uZmlnEl0KG2Rhbm11a3VfcGxheWVyX2NvbmZpZ19wYW5lbBgEIAEoCzI4LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11UGxheWVyQ29uZmlnUGFuZWwimQUKFERhbm11V2ViUGxheWVyQ29uZmlnEhEKCWRtX3N3aXRjaBgBIAEoCBIRCglhaV9zd2l0Y2gYAiABKAgSEAoIYWlfbGV2ZWwYAyABKAUSEAoIYmxvY2t0b3AYBCABKAgSEwoLYmxvY2tzY3JvbGwYBSABKAgSEwoLYmxvY2tib3R0b20YBiABKAgSEgoKYmxvY2tjb2xvchgHIAEoCBIUCgxibG9ja3NwZWNpYWwYCCABKAgSFAoMcHJldmVudHNoYWRlGAkgASgIEg0KBWRtYXNrGAogASgIEg8KB29wYWNpdHkYCyABKAISDgoGZG1hcmVhGAwgASgFEhEKCXNwZWVkcGx1cxgNIAEoAhIQCghmb250c2l6ZRgOIAEoAhISCgpzY3JlZW5zeW5jGA8gASgIEhEKCXNwZWVkc3luYxgQIAEoCBISCgpmb250ZmFtaWx5GBEgASgJEgwKBGJvbGQYEiABKAgSEgoKZm9udGJvcmRlchgTIAEoBRIRCglkcmF3X3R5cGUYFCABKAkSGgoSc2VuaW9yX21vZGVfc3dpdGNoGBUgASgFEhMKC2FpX2xldmVsX3YyGBYgASgFEmEKD2FpX2xldmVsX3YyX21hcBgXIAMoCzJILmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11V2ViUGxheWVyQ29uZmlnLkFpTGV2ZWxWMk1hcEVudHJ5EhcKD2Jsb2NrdG9wX2JvdHRvbRgYIAEoCBISCgpkbV9hcmVhX3YyGBkgASgFEhIKCmRtX2RlbnNpdHkYGiABKAUaMwoRQWlMZXZlbFYyTWFwRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ASJZCgpEbUNvbG9yZnVsEj4KBHR5cGUYASABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRILCgNzcmMYAiABKAkiUAoPRG1FeHBvUmVwb3J0UmVxEhIKCnNlc3Npb25faWQYASABKAkSCwoDb2lkGAIgASgDEg0KBWRtaWRzGAMgASgMEg0KBXNwbWlkGAQgASgJIhEKD0RtRXhwb1JlcG9ydFJlcyJtCgpEbUhlcmRWaWV3EhsKE2Rpc3BsYXlfaGVyZF9kbV9udW0YASABKAUSQgoIaGVyZF9kbXMYAiADKAsyMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWV3SGVyZERtRWxlbSKWAgoKRG1NYXNrV2FsbBINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSDwoHY29udGVudBgDIAEoCRJNCgxjb250ZW50X3R5cGUYBCABKA4yNy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbU1hc2tXYWxsQ29udGVudFR5cGUSRQoIYml6X3R5cGUYBSABKA4yMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbU1hc2tXYWxsQml6VHlwZRJFCghjb250ZW50cxgGIAMoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50ImsKEURtTWFza1dhbGxDb250ZW50EkUKBHR5cGUYASABKA4yNy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbU1hc2tXYWxsQ29udGVudFR5cGUSDwoHY29udGVudBgCIAEoCSLNEAoRRG1QbGF5ZXJDb25maWdSZXESCgoCdHMYASABKAMSRQoGc3dpdGNoGAIgASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaBJOCgtzd2l0Y2hfc2F2ZRgDIAEoCzI5LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTd2l0Y2hTYXZlElsKEnVzZV9kZWZhdWx0X2NvbmZpZxgEIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEmEKFWFpX3JlY29tbWVuZGVkX3N3aXRjaBgFIAEoCzJCLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkU3dpdGNoEl8KFGFpX3JlY29tbWVuZGVkX2xldmVsGAYgASgLMkEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbBJJCghibG9ja3RvcBgHIAEoCzI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3RvcBJPCgtibG9ja3Njcm9sbBgIIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBJPCgtibG9ja2JvdHRvbRgJIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja2JvdHRvbRJTCg1ibG9ja2NvbG9yZnVsGAogASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSTwoLYmxvY2tyZXBlYXQYCyABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tyZXBlYXQSUQoMYmxvY2tzcGVjaWFsGAwgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc3BlY2lhbBJHCgdvcGFjaXR5GA0gASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdU9wYWNpdHkSUwoNc2NhbGluZ2ZhY3RvchgOIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTY2FsaW5nZmFjdG9yEkUKBmRvbWFpbhgPIAEoCzI1LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VEb21haW4SQwoFc3BlZWQYECABKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3BlZWQSVwoPZW5hYmxlYmxvY2tsaXN0GBEgASgLMj4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZWJsb2NrbGlzdBJeChlpbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoGBIgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuSW5saW5lUGxheWVyRGFubWFrdVN3aXRjaBJbChJzZW5pb3JfbW9kZV9zd2l0Y2gYEyABKAsyPy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBJkChdhaV9yZWNvbW1lbmRlZF9sZXZlbF92MhgUIAEoCzJDLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhJTCg5lbmFibGVfaGVyZF9kbRgVIAEoCzI7LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VFbmFibGVIZXJkRG0SVgoPYmxvY2t0b3BfYm90dG9tGBYgASgLMj0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wQm90dG9tEkoKCWRvbWFpbl92MhgXIAEoCzI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VEb21haW5WMhJHCgdkZW5zaXR5GBggASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURlbnNpdHkSVAoOc3VidGl0bGVfcHJvb2YYGSABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3VidGl0bGVQcm9vZhJQCgxwZW9wbGVfcHJvb2YYGiABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1UGVvcGxlUHJvb2YiLwoLRG1TZWdDb25maWcSEQoJcGFnZV9zaXplGAEgASgDEg0KBXRvdGFsGAIgASgDIpECChBEbVNlZ01vYmlsZVJlcGx5EjwKBWVsZW1zGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUVsZW0SDQoFc3RhdGUYAiABKAUSQAoHYWlfZmxhZxgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VBSUZsYWcSFQoNc2VnbWVudF9ydWxlcxgEIAMoAxJCCgxjb2xvcmZ1bF9zcmMYBSADKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsEhMKC2NvbnRleHRfc3JjGAYgASgJIsoBCg5EbVNlZ01vYmlsZVJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAxIWCg50ZWVuYWdlcnNfbW9kZRgFIAEoBRIKCgJwcxgGIAEoAxIKCgJwZRgHIAEoAxIRCglwdWxsX21vZGUYCCABKAUSEgoKZnJvbV9zY2VuZRgJIAEoBRINCgVzcG1pZBgKIAEoCRITCgtjb250ZXh0X2V4dBgLIAEoCSJcCg1EbVNlZ090dFJlcGx5EjwKBWVsZW1zGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUVsZW0SDQoFc3RhdGUYAiABKAUiTAoLRG1TZWdPdHRSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEhUKDXNlZ21lbnRfaW5kZXgYBCABKAMiXQoNRG1TZWdTREtSZXBseRIOCgZjbG9zZWQYASABKAgSPAoFZWxlbXMYAiADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbSJMCgtEbVNlZ1NES1JlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJ3CglEbVN1YlZpZXcSDAoEdHlwZRgBIAEoBRILCgNvaWQYAiABKAMSCwoDcGlkGAMgASgDEkIKC3Bvc3RfcGFuZWwyGAQgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjIioQkKC0RtVmlld1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI5CgRtYXNrGAIgASgLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVmlkZW9NYXNrEkEKCHN1YnRpdGxlGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVmlkZW9TdWJ0aXRsZRITCgtzcGVjaWFsX2RtcxgEIAMoCRJECgdhaV9mbGFnGAUgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWdDb25maWcSTgoNcGxheWVyX2NvbmZpZxgGIAEoCzI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11UGxheWVyVmlld0NvbmZpZxIWCg5zZW5kX2JveF9zdHlsZRgHIAEoBRINCgVhbGxvdxgIIAEoCBIRCgljaGVja19ib3gYCSABKAgSGgoSY2hlY2tfYm94X3Nob3dfbXNnGAogASgJEhgKEHRleHRfcGxhY2Vob2xkZXIYCyABKAkSGQoRaW5wdXRfcGxhY2Vob2xkZXIYDCABKAkSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GA0gAygJEkEKC2V4cG9fcmVwb3J0GA4gASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb1JlcG9ydBJJCg9idXp6d29yZF9jb25maWcYDyABKAsyMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZENvbmZpZxJCCgtleHByZXNzaW9ucxgQIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cHJlc3Npb25zEj8KCnBvc3RfcGFuZWwYESADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWwSFQoNYWN0aXZpdHlfbWV0YRgSIAMoCRJCCgtwb3N0X3BhbmVsMhgTIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbFYyEkIKDGRtX21hc2tfd2FsbBgUIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGwSPQoHZG1faGVyZBgVIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtSGVyZFZpZXcSOgoHY29tbWFuZBgWIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmQSCgoCa3YYFyABKAkSPgoJc3ViX3ZpZXdzGBggAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgZIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8ibQoJRG1WaWV3UmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRINCgVzcG1pZBgEIAEoCRIUCgxpc19oYXJkX2Jvb3QYBSABKAUSEwoLY29udGV4dF9leHQYBiABKAkigQYKDkRtV2ViVmlld1JlcGx5Eg0KBXN0YXRlGAEgASgFEgwKBHRleHQYAiABKAkSEQoJdGV4dF9zaWRlGAMgASgJEj0KBmRtX3NnZRgEIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnQ29uZmlnEkEKBGZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxITCgtzcGVjaWFsX2RtcxgGIAMoCRIRCgljaGVja19ib3gYByABKAgSDQoFY291bnQYCCABKAMSQAoLY29tbWFuZF9kbXMYCSADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0STQoNcGxheWVyX2NvbmZpZxgKIAEoCzI2LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11V2ViUGxheWVyQ29uZmlnEh0KFXJlcG9ydF9maWx0ZXJfY29udGVudBgLIAMoCRJCCgtleHByZXNzaW9ucxgMIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cHJlc3Npb25zEj8KCnBvc3RfcGFuZWwYDSADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWwSFQoNYWN0aXZpdHlfbWV0YRgOIAMoCRJCCgtwb3N0X3BhbmVsMhgPIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbFYyEj4KCXN1Yl92aWV3cxgQIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU3ViVmlldxI2CgNxb2UYESABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Rb2VJbmZvIioKCkV4cG9SZXBvcnQSHAoUc2hvdWxkX3JlcG9ydF9hdF9lbmQYASABKAgiZAoKRXhwcmVzc2lvbhIPCgdrZXl3b3JkGAEgAygJEgsKA3VybBgCIAEoCRI4CgZwZXJpb2QYAyADKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QZXJpb2QiSQoLRXhwcmVzc2lvbnMSOgoEZGF0YRgBIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cHJlc3Npb24iKgoZSW5saW5lUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCCInCgVMYWJlbBINCgV0aXRsZRgBIAEoCRIPCgdjb250ZW50GAIgAygJIocBCgdMYWJlbFYyEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkSFQoNZXhwb3N1cmVfb25jZRgDIAEoCBJFCg1leHBvc3VyZV90eXBlGAQgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIiQKBlBlcmlvZBINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMiMAofUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbBINCgV2YWx1ZRgBIAEoBSIyCiFQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjISDQoFdmFsdWUYASABKAUiMQogUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrYm90dG9tEg0KBXZhbHVlGAEgASgIIisKGlBsYXllckRhbm1ha3VCbG9ja2NvbG9yZnVsEg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tzY3JvbGwSDQoFdmFsdWUYASABKAgiKgoZUGxheWVyRGFubWFrdUJsb2Nrc3BlY2lhbBINCgV2YWx1ZRgBIAEoCCImChVQbGF5ZXJEYW5tYWt1QmxvY2t0b3ASDQoFdmFsdWUYASABKAgiLAobUGxheWVyRGFubWFrdUJsb2NrdG9wQm90dG9tEg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VEZW5zaXR5Eg0KBXZhbHVlGAEgASgFIiQKE1BsYXllckRhbm1ha3VEb21haW4SDQoFdmFsdWUYASABKAIiJgoVUGxheWVyRGFubWFrdURvbWFpblYyEg0KBXZhbHVlGAEgASgFIioKGVBsYXllckRhbm1ha3VFbmFibGVIZXJkRG0SDQoFdmFsdWUYASABKAgiLQocUGxheWVyRGFubWFrdUVuYWJsZWJsb2NrbGlzdBINCgV2YWx1ZRgBIAEoCCIlChRQbGF5ZXJEYW5tYWt1T3BhY2l0eRINCgV2YWx1ZRgBIAEoAiIpChhQbGF5ZXJEYW5tYWt1UGVvcGxlUHJvb2YSDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISDQoFdmFsdWUYASABKAIiLgodUGxheWVyRGFubWFrdVNlbmlvck1vZGVTd2l0Y2gSDQoFdmFsdWUYASABKAUiIwoSUGxheWVyRGFubWFrdVNwZWVkEg0KBXZhbHVlGAEgASgFIisKGlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mEg0KBXZhbHVlGAEgASgIIjgKE1BsYXllckRhbm1ha3VTd2l0Y2gSDQoFdmFsdWUYASABKAgSEgoKY2FuX2lnbm9yZRgCIAEoCCIoChdQbGF5ZXJEYW5tYWt1U3dpdGNoU2F2ZRINCgV2YWx1ZRgBIAEoCCIuCh1QbGF5ZXJEYW5tYWt1VXNlRGVmYXVsdENvbmZpZxINCgV2YWx1ZRgBIAEoCCKMAwoJUG9zdFBhbmVsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIQCghwcmlvcml0eRgDIAEoAxIOCgZiaXpfaWQYBCABKAMSRAoIYml6X3R5cGUYBSABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkMKDGNsaWNrX2J1dHRvbhgGIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uEj8KCnRleHRfaW5wdXQYByABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5UZXh0SW5wdXQSPQoJY2hlY2tfYm94GAggASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tCb3gSNgoFdG9hc3QYCSABKAsyJy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdCKtBAoLUG9zdFBhbmVsVjISDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEkQKCGJpel90eXBlGAMgASgOMjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsQml6VHlwZRJFCgxjbGlja19idXR0b24YBCABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DbGlja0J1dHRvblYyEkEKCnRleHRfaW5wdXQYBSABKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5UZXh0SW5wdXRWMhI/CgljaGVja19ib3gYBiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveFYyEjgKBXRvYXN0GAcgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RWMhI6CgZidWJibGUYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGVWMhI4CgVsYWJlbBgJIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsVjISQQoLcG9zdF9zdGF0dXMYCiABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0U3RhdHVzIhcKB1FvZUluZm8SDAoEaW5mbxgBIAEoCSIpCghSZXNwb25zZRIMCgRjb2RlGAEgASgFEg8KB21lc3NhZ2UYAiABKAki+QIKDFN1YnRpdGxlSXRlbRIKCgJpZBgBIAEoAxIOCgZpZF9zdHIYAiABKAkSCwoDbGFuGAMgASgJEg8KB2xhbl9kb2MYBCABKAkSFAoMc3VidGl0bGVfdXJsGAUgASgJEjoKBmF1dGhvchgGIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlVzZXJJbmZvEjwKBHR5cGUYByABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZVR5cGUSFQoNbGFuX2RvY19icmllZhgIIAEoCRJBCgdhaV90eXBlGAkgASgOMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuU3VidGl0bGVBaVR5cGUSRQoJYWlfc3RhdHVzGAogASgOMjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuU3VidGl0bGVBaVN0YXR1cyLoAgoJVGV4dElucHV0EhwKFHBvcnRyYWl0X3BsYWNlaG9sZGVyGAEgAygJEh0KFWxhbmRzY2FwZV9wbGFjZWhvbGRlchgCIAMoCRJBCgtyZW5kZXJfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSGAoQcGxhY2Vob2xkZXJfcG9zdBgEIAEoCBIMCgRzaG93GAUgASgIEjgKBmF2YXRhchgGIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkF2YXRhchJBCgtwb3N0X3N0YXR1cxgHIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMSNgoFbGFiZWwYCCABKAsyJy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5MYWJlbCL7AQoLVGV4dElucHV0VjISHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEjgKBmF2YXRhchgFIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkF2YXRhchIYChB0ZXh0X2lucHV0X2xpbWl0GAYgASgFIm8KBVRvYXN0EgwKBHRleHQYASABKAkSEAoIZHVyYXRpb24YAiABKAUSDAoEc2hvdxgDIAEoCBI4CgZidXR0b24YBCABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXR0b24iYgoNVG9hc3RCdXR0b25WMhIMCgR0ZXh0GAEgASgJEkMKBmFjdGlvbhgCIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0RnVuY3Rpb25UeXBlInMKB1RvYXN0VjISDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRJICg90b2FzdF9idXR0b25fdjIYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdEJ1dHRvblYyIlwKCFVzZXJJbmZvEgsKA21pZBgBIAEoAxIMCgRuYW1lGAIgASgJEgsKA3NleBgDIAEoCRIMCgRmYWNlGAQgASgJEgwKBHNpZ24YBSABKAkSDAoEcmFuaxgGIAEoBSJTCglWaWRlb01hc2sSCwoDY2lkGAEgASgDEgwKBHBsYXQYAiABKAUSCwoDZnBzGAMgASgFEgwKBHRpbWUYBCABKAMSEAoIbWFza191cmwYBSABKAkicAoNVmlkZW9TdWJ0aXRsZRILCgNsYW4YASABKAkSDwoHbGFuX2RvYxgCIAEoCRJBCglzdWJ0aXRsZXMYAyADKAsyLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUl0ZW0ikgEKDlZpZXdIZXJkRG1FbGVtEhAKCGhlcmRfbXNnGAEgASgJEhYKDmhlcmRfc3RhcnRfY250GAIgASgFEhQKDGhlcmRfZW5kX2NudBgDIAEoBRISCgpyZWdleF9ydWxlGAQgASgJEhYKDnN0YXJ0X3Byb2dyZXNzGAUgASgFEhQKDGVuZF9wcm9ncmVzcxgGIAEoBSozCgpBdmF0YXJUeXBlEhIKDkF2YXRhclR5cGVOb25lEAASEQoNQXZhdGFyVHlwZU5GVBABKlkKCkJ1YmJsZVR5cGUSEgoOQnViYmxlVHlwZU5vbmUQABIZChVCdWJibGVUeXBlQ2xpY2tCdXR0b24QARIcChhCdWJibGVUeXBlRG1TZXR0aW5nUGFuZWwQAipYCgxDaGVja2JveFR5cGUSFAoQQ2hlY2tib3hUeXBlTm9uZRAAEhkKFUNoZWNrYm94VHlwZUVuY291cmFnZRABEhcKE0NoZWNrYm94VHlwZUNvbG9yRE0QAio1Cg5EbUNvbG9yZnVsVHlwZRIMCghOb25lVHlwZRAAEhUKD1ZpcEdyYWR1YWxDb2xvchDh1AMqYAoRRG1NYXNrV2FsbEJpelR5cGUSCwoHVW5rbm93bhAAEgcKA09HVhABEgoKBkJpelBpYxACEggKBE11dGUQAxIKCgZSZWNvcmQQBBIJCgVDbG91ZBAFEggKBEFJR0MQBip2ChVEbU1hc2tXYWxsQ29udGVudFR5cGUSIAocRG1NYXNrV2FsbENvbnRlbnRUeXBlVW5rbm93bhAAEh0KGURtTWFza1dhbGxDb250ZW50VHlwZVRleHQQARIcChhEbU1hc2tXYWxsQ29udGVudFR5cGVQaWMQAio8CgxFeHBvc3VyZVR5cGUSFAoQRXhwb3N1cmVUeXBlTm9uZRAAEhYKEkV4cG9zdXJlVHlwZURNU2VuZBABKoMCChBQb3N0UGFuZWxCaXpUeXBlEhgKFFBvc3RQYW5lbEJpelR5cGVOb25lEAASHQoZUG9zdFBhbmVsQml6VHlwZUVuY291cmFnZRABEhsKF1Bvc3RQYW5lbEJpelR5cGVDb2xvckRNEAISGQoVUG9zdFBhbmVsQml6VHlwZU5GVERNEAMSHQoZUG9zdFBhbmVsQml6VHlwZUZyYWdDbG9zZRAEEh0KGVBvc3RQYW5lbEJpelR5cGVSZWNvbW1lbmQQBRIcChhQb3N0UGFuZWxCaXpUeXBlUGxvdExlYWsQBhIiCh5Qb3N0UGFuZWxCaXpUeXBlQW50aUhhcmFzc21lbnQQByo4CgpQb3N0U3RhdHVzEhQKEFBvc3RTdGF0dXNOb3JtYWwQABIUChBQb3N0U3RhdHVzQ2xvc2VkEAEqTgoKUmVuZGVyVHlwZRISCg5SZW5kZXJUeXBlTm9uZRAAEhQKEFJlbmRlclR5cGVTaW5nbGUQARIWChJSZW5kZXJUeXBlUm90YXRpb24QAio2ChBTdWJ0aXRsZUFpU3RhdHVzEggKBE5vbmUQABIMCghFeHBvc3VyZRABEgoKBkFzc2lzdBACKisKDlN1YnRpdGxlQWlUeXBlEgoKBk5vcm1hbBAAEg0KCVRyYW5zbGF0ZRABKh4KDFN1YnRpdGxlVHlwZRIGCgJDQxAAEgYKAkFJEAEqTgoRVG9hc3RGdW5jdGlvblR5cGUSGQoVVG9hc3RGdW5jdGlvblR5cGVOb25lEAASHgoaVG9hc3RGdW5jdGlvblR5cGVQb3N0UGFuZWwQATKgBQoCRE0ScwoLRG1TZWdNb2JpbGUSMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ01vYmlsZVJlcRoyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVwbHkSZAoGRG1WaWV3EisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1WaWV3UmVxGi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1WaWV3UmVwbHkScQoORG1QbGF5ZXJDb25maWcSMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVBsYXllckNvbmZpZ1JlcRoqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlc3BvbnNlEmoKCERtU2VnT3R0Ei0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdPdHRSZXEaLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcGx5EmoKCERtU2VnU0RLEi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdTREtSZXEaLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcGx5EnQKDERtRXhwb1JlcG9ydBIxLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtRXhwb1JlcG9ydFJlcRoxLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtRXhwb1JlcG9ydFJlc0LUAQokY29tLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxQgdEbVByb3RvUAGiAgRCQ1NEqgIgQmlsaWJpbGkuQ29tbXVuaXR5LlNlcnZpY2UuRG0uVjHKAiBCaWxpYmlsaVxDb21tdW5pdHlcU2VydmljZVxEbVxWMeICLEJpbGliaWxpXENvbW11bml0eVxTZXJ2aWNlXERtXFYxXEdQQk1ldGFkYXRh6gIkQmlsaWJpbGk6OkNvbW11bml0eTo6U2VydmljZTo6RG06OlYxYgZwcm90bzM`),ce=(0,i.messageDesc)(w,30),le=(0,i.messageDesc)(w,39),T=Z(e=>async(n,r)=>{let i=r??await n.makeChunk({}),a=(0,o.fromBinary)(le,new Uint8Array(e)).commandDms;return await i.upsertDanmakus(a.map(e=>{let n=`def_bili+${t.u.fromBili({cid:e.oid}).toString()}`,r=t.u.fromBili({mid:e.mid}),a={SOID:n,progress:e.progress,mode:`Ext`,fontsize:t.l.fontsize,color:t.l.color,senderID:r.toString(),content:e.content,ctime:new Date(`${e.ctime} GMT+0800`),weight:11,pool:`Adv`,attr:[`Protect`],platform:`bili`,extra:{bili:{dmid:e.idStr,attr:e.attr,mid:e.mid?.toString(),command:e}}};return{...a,DMID:i.$UniDB.DMIDGenerator(a)}})),i}),E=$({type:`bili.cmd.binpb`,ext:[`.binpb`,`.bin`,`.pb.bin`,`.so`],check:{adapter:async(e,t)=>{try{return await e.import(T(await f(t,`bin`)))}catch{return null}}}});function ue(e,t){return t===`ms`?!0:t===`s`?!1:e<1e8}function D(e,t){return typeof e==`number`||typeof e==`bigint`?ue(e,t)?new Date(Number(e)):new Date(Number(e)*1e3):typeof e==`string`?/^\d+n$/.test(e)?D(Number(e.slice(0,-1)),t):D(Number(e),t):e}const de=e=>{let t=[];do t.unshift(!!(e&1)),e>>=1;while(e);return t.toReversed()};var fe=class{bin;constructor(e){this.bin=e}set1(e){this.bin|=1<<e}set0(e){this.bin&=~(1<<e)}};const pe={fromBin(e=0,t){let n=de(e),r=[];return t===`bili`&&(n[0]&&r.push(`Protect`),n[1]&&r.push(`FromLive`),n[2]&&r.push(`HighLike`)),r},toBin(e=[],t){let n=new fe(0);return t===`bili`&&(e.includes(`Protect`)&&n.set1(0),e.includes(`FromLive`)&&n.set1(1),e.includes(`HighLike`)&&n.set1(2)),n.bin}};function O(e,n,r,i){n.oid&&!r&&(r=n.oid);let a=i||`def_bili+${t.u.fromBili({cid:r}).toString()}`,o=t.u.validateString(n.midHash)?n.midHash:t.u.fromBili({midHash:n.midHash}).toString(),s,c=m.in.safeParse(n.pool).success?n.pool:0,l={bili:{mode:n.mode,pool:n.pool,dmid:n.idStr??n.id.toString(),attr:n.attr,mid:n.mid?.toString(),adv:void 0,code:void 0,bas:void 0}};switch(n.mode){case 4:s=1;break;case 5:s=2;break;case 6:s=3;break;case 7:s=4,l.bili.adv=n.content;break;case 8:s=4,l.bili.code=n.content;break;case 9:s=4,l.bili.bas=n.content;break;default:s=0;break}let u={...n,SOID:a,mode:s,senderID:o,ctime:D(n.ctime,`s`),weight:n.weight||+(c===3),pool:c,attr:pe.fromBin(n.attr,`bili`),platform:`bili`,extra:l};return{...u,mode:p.decode(s),pool:m.decode(c),DMID:e.$UniDB.DMIDGenerator({...u,mode:p.decode(s),pool:m.decode(c)})}}const k=(e,t)=>{switch(e){case`Normal`:return 1;case`Bottom`:return 4;case`Top`:return 5;case`Reverse`:return 6;case`Ext`:return t?t.adv?7:t.code?8:t.bas?9:1:1;default:return 1}};function A(e,t,n){if(n?.skipBiliCommand&&t.extra?.bili?.command)return null;let r=t.extra?.bili?.mode||k(t.mode,t.extra?.bili),i;switch(r){case 7:i=t.extra?.bili?.adv;break;case 8:i=t.extra?.bili?.code;break;case 9:i=t.extra?.bili?.bas;break;default:i=t.content;break}return{"#text":i??t.content,"@_p":[t.progress/1e3,r,t.fontsize,t.color,t.ctime.getTime()/1e3,t.extra?.bili?.pool||t.pool,n?.avoidSenderIDWithAt?t.senderID.replaceAll(`@bili`,``):t.senderID,t.extra?.bili?.dmid||t.DMID||e(t),t.weight].join(`,`)}}const j=Z(e=>async(t,n)=>{let r=n??await t.makeChunk({}),i=(0,o.fromBinary)(ce,new Uint8Array(e)).elems;return await r.upsertDanmakus(i.map(e=>O(r,e))),r}),M=$({type:`bili.binpb`,ext:[`.binpb`,`.bin`,`.pb.bin`,`.so`],check:{adapter:async(e,t)=>{try{return await e.import(j(await f(t,`bin`)))}catch{return null}}}}),N=Z(e=>async(t,n)=>{let r=n??await t.makeChunk({});return await r.upsertDanmakus(e.data.result.map(e=>{let t=e.attrs?e.attrs.split(`,`).map(Number).reduce((e,t)=>e|1<<t-1,0):0,n=O(r,{id:BigInt(e.id_str||e.id),idStr:e.id_str,progress:e.progress,mode:e.mode,fontsize:e.fontsize,color:Number.parseInt(e.color,16),mid:e.mid,midHash:e.mid_hash,content:e.msg,ctime:BigInt(e.ctime),pool:e.pool,attr:t,oid:BigInt(e.oid)});return n.extra.bili.up=e,n})),r}),P=$({type:`bili.up.json`,ext:[`.json`],check:{adapter:async(e,n)=>{try{return await e.import(N(await f(n,`json`,t.b)))}catch{return null}}}}),me=new s.XMLParser({ignoreAttributes:!1,parseTagValue:!1,parseAttributeValue:!1,isArray:(e,t,n,r)=>t===`i.d`}),he=new c.default({ignoreAttributes:!1});function ge(e,t){let n=e.split(`,`);return{content:t,progress:~~(Number.parseFloat(n[0])*1e3),mode:Number.parseInt(n[1]),fontsize:Number.parseInt(n[2]),color:Number.parseInt(n[3]),ctime:BigInt(n[4]),pool:Number.parseInt(n[5]),midHash:n[6],id:BigInt(n[7]),idStr:n[7],weight:Number.parseInt(n[8])}}const F=Z(e=>async(t,n)=>{let r=me.parse(e),i=r.i.d,a=!!r.i.danuni,o=BigInt(r.i.chatid),s=a?r.i.danuni?.data:void 0,c=n??await t.makeChunk({fromConverted:a});return await c.upsertDanmakus(i.map(e=>O(c,ge(e[`@_p`],e[`#text`]),o,s))),c}),_e=(e,n)=>{if(e){let r=t.u.fromStringSafe(e);if(r.domain===`bili`){let e=r.id.replaceAll(`def_bili+`,``);if(e)return e}return n?.cid||e}else return n?.cid||t.u.fromNull().toString()},I=e=>Q((n,r)=>{let i=n;if(e?.avoidSenderIDWithAt&&!i.every(e=>e.senderID.endsWith(`@bili`)))throw Error(`存在其他来源的senderID,请关闭该功能再试!`);let a=i.map(t=>A(r.DMIDGenerator,t,e));return e?.skipBiliCommand&&(a=a.filter(e=>e!==null)),he.build({"?xml":{"@_version":`1.0`,"@_encoding":`UTF-8`},i:{chatserver:`chat.bilibili.com`,chatid:_e(i[0]?.SOID),mission:0,maxlimit:i.length,state:0,real_name:0,source:`k-v`,danuni:{...t.o,data:[...new Set(i.map(e=>e.SOID))][0]},d:a}})}),L=$({type:`bili.xml`,ext:[`.xml`],check:{adapter:async(e,t)=>{try{return await e.import(F(await f(t,`string`)))}catch{return null}}}});function R(e,t){let n=`Normal`;switch(t){case`bili`:switch(e){case 4:n=`Bottom`;break;case 5:n=`Top`;break;case 6:n=`Reverse`;break;case 7:n=`Ext`;break;case 8:n=`Ext`;break;case 9:n=`Ext`;break}break;case`dplayer`:e===1?n=`Top`:e===2&&(n=`Bottom`);break;case`artplayer`:e===1?n=`Top`:e===2&&(n=`Bottom`);break;case`ddplay`:n=R(e,`bili`);break;case`vod`:e===`top`?n=`Top`:e===`bottom`&&(n=`Bottom`);break;default:n=`Normal`;break}return n}const z=Z((e,n,r=`other`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!!e.danuni}),s=n?t.u.fromUnknown(n,r).toString():t.u.fromNull(r).toString(),c=t.u.fromNull(r).toString(),l=new Date;return await o.upsertDanmakus(e.danmuku.map(e=>{let n=e.border?{artplayer:{border:e.border,style:{}}}:null;e.style&&(n=n?{...n,artplayer:{...n.artplayer,border:e.border,style:e.style}}:{artplayer:{border:e.border,style:e.style}});let i=R(e.mode??0,`artplayer`),a={attr:t.l.attr,fontsize:t.l.fontsize,ctime:l,weight:t.l.weight,pool:`Def`,content:e.text,progress:(e.time??0)*1e3,mode:i,color:Number((e.color||`FFFFFF`).replace(`#`,`0x`)),style:e.style,SOID:s,senderID:c,platform:r,extra:n};return{...a,DMID:o.$UniDB.DMIDGenerator(a)}})),o}),B=Q(e=>({danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0]},danmuku:e.map(e=>{let t=0;return e.mode===`Top`?t=1:e.mode===`Bottom`&&(t=2),{text:e.content,time:e.progress/1e3,mode:t,color:`#${e.color.toString(16).toUpperCase()||`FFFFFF`}`,border:e.extra?.artplayer?.border,style:e.extra?.artplayer?.style}})})),ve=$({type:`artplayer.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(z(await f(t,`json`))),z}catch{return null}}}}),V=Z((e,n=`0`,r=`ddplay`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!!e.danuni}),s=t.u.fromUnknown(`def_ddplay+${n}`,r).toString(),c=new Date;return await o.upsertDanmakus(e.comments.map(e=>{let n=e.p.split(`,`),i=n[3],a=t.u.fromUnknown(i,r).toString(),l=R(Number.parseInt(n[1]),`ddplay`),u={SOID:s,color:Number.parseInt(n[2]),progress:Number.parseFloat(n[0])*1e3,mode:l,senderID:a,content:e.m,platform:r,extra:{ddplay:{cid:e.cid,uid:i}},attr:t.l.attr,fontsize:t.l.fontsize,ctime:c,weight:t.l.weight,pool:`Def`};return{...u,DMID:o.$UniDB.DMIDGenerator(u)}})),o}),H=Q(e=>({danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0].replaceAll(`def_ddplay+`,``)},count:e.length,comments:e.map(e=>{let t=1;return e.mode===`Top`?t=5:e.mode===`Bottom`&&(t=4),{cid:e.extra?.ddplay?.cid??Number.parseInt(`0x${Buffer.from(e.DMID).toString(`hex`)}`)??0,p:`${e.progress/1e3},${t},${e.color},${e.extra?.ddplay?.uid??e.senderID}`,m:e.content}})})),U=$({type:`ddplay.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(V(await f(t,`json`))),V}catch{return null}}}}),W=Z((e,n,r=`other`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!!e.danuni}),s=n?t.u.fromUnknown(n,r).toString():t.u.fromNull(r).toString(),c=new Date;return await o.upsertDanmakus(e.data.map(([e,n,i,a,l])=>{let u=R(n,`dplayer`),d={attr:t.l.attr,fontsize:t.l.fontsize,ctime:c,weight:t.l.weight,extra:t.l.extra,pool:`Def`,progress:e*1e3,mode:u,color:i,midHash:a,content:l,SOID:s,senderID:t.u.fromUnknown(a,r).toString(),platform:r};return{...d,DMID:o.$UniDB.DMIDGenerator(d)}})),o}),G=Q(e=>({code:0,danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0]},data:e.map(e=>{let t=0;return e.mode===`Top`?t=1:e.mode===`Bottom`&&(t=2),[e.progress/1e3,t,e.color,e.senderID,e.content]})})),K=$({type:`dplayer.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(W(await f(t,`json`))),W}catch{return null}}}});function ye(e){return e===2?`Top`:e===3?`Bottom`:`Normal`}const be=r.z.object({color:r.z.string(),gradient_colors:r.z.tuple([r.z.string(),r.z.string()]),position:r.z.number()}),xe=r.z.string().transform(e=>{try{let t=JSON.parse(e);return be.parse(t)}catch{return}}).transform(e=>{let t=e?.gradient_colors?[Number(`0x${e.gradient_colors[0].replace(`#`,``)}`),Number(`0x${e.gradient_colors[1].replace(`#`,``)}`)]:void 0;return{color:e?.color?Number(`0x${e.color.replace(`#`,``)}`):void 0,gradient:t,mode:ye(e?.position)}}),q=`tencent`,J=Z((e,n)=>async(r,i)=>{let a=i??await r.makeChunk({fromConverted:!1}),o=n?t.u.fromUnknown(n,q).toString():t.u.fromNull(q).toString(),s=t.u.fromNull(q).toString(),c=Array.isArray(e?.barrage_list)?e.barrage_list:[],l=new Date;return await a.upsertDanmakus(c.map(e=>{let n=xe.parse(e.content_style),r={...e};delete r.content,delete r.time_offset,delete r.create_time;let i={attr:t.l.attr,fontsize:t.l.fontsize,ctime:e.create_time?D(e.create_time,`s`):l,weight:e.show_weight??t.l.weight,pool:`Def`,content:e.content,progress:Number.parseInt(e.time_offset)||0,mode:n.mode,color:n.color??n.gradient?.[0]??t.l.color,SOID:o,senderID:s,platform:q,extra:{danuni:{color:{gradient:n.gradient}},tencent:r}};return{...i,DMID:a.$UniDB.DMIDGenerator(i)}})),a}),Se=$({type:`tencent.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(J(await f(t,`json`))),J}catch{return null}}}}),Y=r.z.object({code:r.z.number(),name:r.z.string(),danum:r.z.number(),danmuku:r.z.array(r.z.tuple([r.z.coerce.number().min(0),r.z.union([r.z.literal(`right`),r.z.literal(`top`),r.z.literal(`bottom`)]),r.z.string().toUpperCase().regex(/^#([0-9a-fA-F]{3}){1,2}$/,{error:`Invalid hex color format`}).transform(e=>e.length>6?e.toUpperCase():`#${e.split(`#`)[1].toUpperCase()}`),r.z.string().prefault(``),r.z.string(),r.z.string().prefault(``).optional(),r.z.string().prefault(``).optional(),r.z.string().regex(/^\d+px$/).optional()]).rest(r.z.any()))}),X=Z((e,n,r=`other`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!1}),s=n?t.u.fromUnknown(n,r).toString():t.u.fromNull(r).toString(),c=t.u.fromNull(r).toString(),l=new Date;return await o.upsertDanmakus(e.danmuku.slice(-e.danum).map(e=>{let n={...t.l,pool:`Def`,ctime:l,SOID:s,senderID:c,progress:~~(e[0]*1e3),mode:R(e[1],`vod`),color:Number((e[2]||`FFFFFF`).replace(`#`,`0x`)),content:e[4],fontsize:e[7]?Number(e[7].replace(`px`,``)):t.l.fontsize};return{...n,DMID:o.$UniDB.DMIDGenerator(n)}})),o}),Ce=Q(e=>({danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0]},code:0,name:e[0]?.SOID??`unknown`,danum:e.length,danmuku:e.map(e=>{let t=`right`;switch(e.mode){case`Top`:t=`top`;break;case`Bottom`:t=`bottom`;break}return[e.progress/1e3,t,`#${e.color.toString(16).toUpperCase()||`FFFFFF`}`,``,e.content,``,``,`${e.fontsize}px`]})})),we=$({type:`vod.json`,ext:[`.json`],check:{body:e=>Y.safeParse(e).success?X:null,adapter:async(e,t)=>{try{return await e.import(X(await f(t,`json`))),X}catch{return null}}}});var Te=e.t({ArtplayerAdapter:()=>z,ArtplayerMetadata:()=>ve,ArtplayerTransformer:()=>B,BiliCommandGrpcAdapter:()=>T,BiliCommandGrpcMetadata:()=>E,BiliCommonBuilder:()=>A,BiliCommonModeRec:()=>k,BiliCommonParser:()=>O,BiliGrpcAdapter:()=>j,BiliGrpcMetadata:()=>M,BiliUpAdapter:()=>N,BiliUpMetadata:()=>P,BiliXmlAdapter:()=>F,BiliXmlMetadata:()=>L,BiliXmlTransformerConfigurator:()=>I,DanuniJsonAdapter:()=>g,DanuniJsonMetadata:()=>v,DanuniJsonTransformerConfigurator:()=>_,DanuniPbAdapter:()=>x,DanuniPbMetadata:()=>C,DanuniPbTransformer:()=>S,DdplayAdapter:()=>V,DdplayMetadata:()=>U,DdplayTransformer:()=>H,DplayerAdapter:()=>W,DplayerMetadata:()=>K,DplayerTransformer:()=>G,TencentAdapter:()=>J,TencentMetadata:()=>Se,VodAdapter:()=>X,VodMetadata:()=>we,VodTransformer:()=>Ce,VodZod:()=>Y,defineAdapter:()=>Z,defineMetadata:()=>$,definePlugin:()=>Ee,defineTransformer:()=>Q,enumAttrsCodec:()=>h,enumModeCodec:()=>p,enumPoolCodec:()=>m});function Z(e){return e}function Q(e){return e}function Ee(e){return e}function $(e){return e}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return h}});
1
+ const e=require("./rolldown-runtime-DWNI8pZO.cjs"),t=require("./core-BIxWu_32.cjs"),n=require("./core/db/schema.cjs");let r=require("zod"),i=require("@bufbuild/protobuf/codegenv2"),a=require("@bufbuild/protobuf/wkt"),o=require("@bufbuild/protobuf"),s=require("fast-xml-parser"),c=require("fast-xml-builder");c=e.n(c,1);const l=e=>e?[`adv`,`bas`,`code`,`command`].some(t=>e[t]):!1;function u(e){return e.mode!==`Ext`&&e.extra&&(e.extra.artplayer||l(e.extra.bili))?(e.mode=`Ext`,!0):!1}function d(e){let n=t.b.parse(e);return{...n,bili:n.bili?{...n.bili,dmid:n.bili.dmid?.toString(),mid:n.bili.mid?.toString()}:void 0}}const ee=r.z.float32(),te=r.z.int();function ne(e){return te.parse(~~(ee.parse(e)*1e3))}function f(e,t,n=globalThis.JSON){let r=e instanceof ArrayBuffer||e instanceof Uint8Array||e instanceof Buffer;switch(t){case`bin`:if(r)return e instanceof Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e;if(e instanceof File)return e.arrayBuffer();if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw TypeError(`Expected binary data for mod "bin"`);case`string`:if(typeof e==`string`)return e;if(e instanceof File)return e.text();if(r)return new TextDecoder().decode(e);if(ArrayBuffer.isView(e))return new TextDecoder().decode(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));throw TypeError(`Expected binary data or string for mod "string"`);case`json`:{if(e instanceof File)return e.text().then(e=>n.parse(e));if(typeof e==`object`&&e&&!r)return e;if(typeof e!=`string`&&!r&&!ArrayBuffer.isView(e))throw TypeError(`Expected object, JSON string, or binary data for mod "json"`);let t=typeof e==`string`?e:new TextDecoder().decode(r?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength));try{return n.parse(t)}catch{throw Error(`Invalid JSON string`)}}default:throw Error(`Unsupported mod`)}}const p=r.z.codec(r.z.enum(t.s).default(0),r.z.enum(n.danmakus.mode.enumValues),{decode:e=>n.danmakus.mode.enumValues[e]||`Normal`,encode:e=>t.s[e]||0}),m=r.z.codec(r.z.enum(t.c).default(0),r.z.enum(n.danmakus.pool.enumValues),{decode:e=>n.danmakus.pool.enumValues[e]||`Def`,encode:e=>t.c[e]||0}),h=r.z.codec(r.z.enum(t.a).array(),r.z.enum(n.danmakus.attr.enumValues).array(),{decode:e=>e,encode:e=>e.map(e=>t.a[e])});function re(e){let t=!Number.isInteger(e.progress),n=typeof e.extraStr==`string`;return t||n}const g=Z((e,n)=>async(r,i)=>{let a=new Date,o=i??await r.makeChunk({}),s=n?.isV1?!0:e.some(e=>re(e));return await o.upsertDanmakus(e.map(e=>{let n={SOID:e.SOID||t.l.SOID,progress:e.progress?s?ne(e.progress):e.progress:t.l.progress,mode:p.decode(e.mode),fontsize:e.fontsize??t.l.fontsize,color:e.color??t.l.color,senderID:e.senderID||t.l.senderID,content:e.content??t.l.content,ctime:e.ctime?new Date(e.ctime):a,weight:e.weight??t.l.weight,pool:m.decode(e.pool),attr:e.attr?h.decode(e.attr):t.l.attr,platform:e.platform??t.l.platform,extra:e.extra??(e.extraStr?d(e.extraStr):t.l.extra)};return u(n),{...n,DMID:!s&&e.DMID?e.DMID:o.$UniDB.DMIDGenerator(n)}})),o});function _(e){return Q(n=>e?.minify?n.map(e=>({SOID:e.SOID===t.l.SOID?void 0:e.SOID,progress:e.progress===t.l.progress?void 0:e.progress,mode:e.mode===`Normal`?void 0:p.encode(e.mode),fontsize:e.fontsize===t.l.fontsize?void 0:e.fontsize,color:e.color===t.l.color?void 0:e.color,senderID:e.senderID===t.l.senderID?void 0:e.senderID,content:e.content===t.l.content?void 0:e.content,ctime:e.ctime,weight:e.weight===t.l.weight?void 0:e.weight,pool:e.pool===`Def`?void 0:m.encode(e.pool),attr:e.attr&&e.attr.length>0?h.encode(e.attr):void 0,platform:e.platform??void 0,extra:e.extra??void 0,DMID:e.DMID})):n.map(e=>({...e,mode:p.encode(e.mode),pool:m.encode(e.pool),attr:h.encode(e.attr)})))}const v=$({type:`danuni.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(g(await f(t,`json`)))}catch{return null}}}}),ie=(0,i.fileDesc)(`Ch9kYW51bmkvZGFubWFrdS92MS9kYW5tYWt1LnByb3RvEhFkYW51bmkuZGFubWFrdS52MSI2Cg5MaXN0RGFuUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgNzZWcYAiABKAVIAIgBAUIGCgRfc2VnIpMDCgdEYW5tYWt1EhIKBHNvaWQYASABKAlSBFNPSUQSEgoEZG1pZBgCIAEoCVIERE1JRBIQCghwcm9ncmVzcxgDIAEoBRIlCgRtb2RlGAQgASgOMhcuZGFudW5pLmRhbm1ha3UudjEuTW9kZRIQCghmb250c2l6ZRgFIAEoBRINCgVjb2xvchgGIAEoBRIbCglzZW5kZXJfaWQYByABKAlSCHNlbmRlcklEEg8KB2NvbnRlbnQYCCABKAkSKQoFY3RpbWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBndlaWdodBgKIAEoBRIlCgRwb29sGAsgASgOMhcuZGFudW5pLmRhbm1ha3UudjEuUG9vbBIMCgRhdHRyGAwgAygJEhUKCHBsYXRmb3JtGA0gASgJSACIAQESGQoIZXh0cmFfdjEYDiABKAlCAhgBSAGIAQESEgoFZXh0cmEYDyABKAlIAogBAUILCglfcGxhdGZvcm1CCwoJX2V4dHJhX3YxQggKBl9leHRyYSI/Cg9MaXN0RGFuUmVzcG9uc2USLAoIZGFubWFrdXMYASADKAsyGi5kYW51bmkuZGFubWFrdS52MS5EYW5tYWt1KmIKBE1vZGUSGwoXTU9ERV9OT1JNQUxfVU5TUEVDSUZJRUQQABIPCgtNT0RFX0JPVFRPTRABEgwKCE1PREVfVE9QEAISEAoMTU9ERV9SRVZFUlNFEAMSDAoITU9ERV9FWFQQBCpJCgRQb29sEhgKFFBPT0xfREVGX1VOU1BFQ0lGSUVEEAASDAoIUE9PTF9TVUIQARIMCghQT09MX0FEVhACEgsKB1BPT0xfSVgQAzJkCg5EYW5tYWt1U2VydmljZRJSCgdMaXN0RGFuEiEuZGFudW5pLmRhbm1ha3UudjEuTGlzdERhblJlcXVlc3QaIi5kYW51bmkuZGFubWFrdS52MS5MaXN0RGFuUmVzcG9uc2UiAEKLAQoVY29tLmRhbnVuaS5kYW5tYWt1LnYxQgxEYW5tYWt1UHJvdG9QAaICA0REWKoCEURhbnVuaS5EYW5tYWt1LlYxygIRRGFudW5pXERhbm1ha3VcVjHiAh1EYW51bmlcRGFubWFrdVxWMVxHUEJNZXRhZGF0YeoCE0RhbnVuaTo6RGFubWFrdTo6VjFiBnByb3RvMw`,[a.file_google_protobuf_timestamp]),y=(0,i.messageDesc)(ie,2);let ae=function(e){return e[e.NORMAL_UNSPECIFIED=0]=`NORMAL_UNSPECIFIED`,e[e.BOTTOM=1]=`BOTTOM`,e[e.TOP=2]=`TOP`,e[e.REVERSE=3]=`REVERSE`,e[e.EXT=4]=`EXT`,e}({}),oe=function(e){return e[e.DEF_UNSPECIFIED=0]=`DEF_UNSPECIFIED`,e[e.SUB=1]=`SUB`,e[e.ADV=2]=`ADV`,e[e.IX=3]=`IX`,e}({});const se=r.z.codec(r.z.enum(ae),r.z.enum(n.danmakus.mode.enumValues),{decode:e=>n.danmakus.mode.enumValues[e]||`Normal`,encode:e=>{let t=n.danmakus.mode.enumValues.indexOf(e);return t===-1?0:t}}),b=r.z.codec(r.z.enum(oe),r.z.enum(n.danmakus.pool.enumValues),{decode:e=>n.danmakus.pool.enumValues[e]||`Def`,encode:e=>{let t=n.danmakus.pool.enumValues.indexOf(e);return t===-1?0:t}}),x=Z(e=>async(i,s)=>{let c=(0,o.fromBinary)(y,new Uint8Array(e)),l=s??await i.makeChunk({}),u=c.danmakus.some(e=>e.extraV1);return await l.upsertDanmakus(c.danmakus.map(e=>{let i={...e,SOID:e.soid,DMID:e.dmid,mode:se.decode(e.mode),senderID:e.senderId,ctime:(0,a.timestampDate)(e.ctime||(0,a.timestampNow)()),pool:b.decode(e.pool),attr:r.z.enum(n.danmakus.attr.enumValues).array().parse(e.attr),platform:e.platform??t.l.platform,extra:e.extra?t.b.parse(e.extra):e.extraV1?d(e.extraV1):void 0};return u?{...i,DMID:l.$UniDB.DMIDGenerator(i)}:i})),l}),S=Q(e=>(0,o.toBinary)(y,(0,o.create)(y,{danmakus:e.map(e=>({...e,soid:e.SOID,dmid:e.DMID,mode:se.encode(e.mode),senderId:e.senderID,ctime:(0,a.timestampFromDate)(e.ctime),pool:b.encode(e.pool),platform:e.platform??void 0,extra:t.b.stringify(e.extra)}))}))),C=$({type:`danuni.binpb`,ext:[`.binpb`,`.bin`,`.pb.bin`],check:{adapter:async(e,t)=>{try{return await e.import(x(await f(t,`bin`)))}catch{return null}}}}),w=(0,i.fileDesc)(`CiliaWxpYmlsaS9jb21tdW5pdHkvc2VydmljZS9kbS92MS9kbS5wcm90bxIgYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEiZAoGQXZhdGFyEgoKAmlkGAEgASgJEgsKA3VybBgCIAEoCRJBCgthdmF0YXJfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkF2YXRhclR5cGUiIwoGQnViYmxlEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJIsYBCghCdWJibGVWMhIMCgR0ZXh0GAEgASgJEgsKA3VybBgCIAEoCRJBCgtidWJibGVfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVR5cGUSFQoNZXhwb3N1cmVfb25jZRgEIAEoCBJFCg1leHBvc3VyZV90eXBlGAUgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIlsKBkJ1dHRvbhIMCgR0ZXh0GAEgASgJEkMKBmFjdGlvbhgCIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0RnVuY3Rpb25UeXBlIlgKDkJ1enp3b3JkQ29uZmlnEkYKCGtleXdvcmRzGAEgAygLMjQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnV6endvcmRTaG93Q29uZmlnIngKEkJ1enp3b3JkU2hvd0NvbmZpZxIMCgRuYW1lGAEgASgJEg4KBnNjaGVtYRgCIAEoCRIOCgZzb3VyY2UYAyABKAUSCgoCaWQYBCABKAMSEwoLYnV6endvcmRfaWQYBSABKAMSEwoLc2NoZW1hX3R5cGUYBiABKAUiewoIQ2hlY2tCb3gSDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgSDAoEc2hvdxgEIAEoCCJvCgpDaGVja0JveFYyEgwKBHRleHQYASABKAkSPAoEdHlwZRgCIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrYm94VHlwZRIVCg1kZWZhdWx0X3ZhbHVlGAMgASgIIoICCgtDbGlja0J1dHRvbhIVCg1wb3J0cmFpdF90ZXh0GAEgAygJEhYKDmxhbmRzY2FwZV90ZXh0GAIgAygJEhsKE3BvcnRyYWl0X3RleHRfZm9jdXMYAyADKAkSHAoUbGFuZHNjYXBlX3RleHRfZm9jdXMYBCADKAkSQQoLcmVuZGVyX3R5cGUYBSABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEgwKBHNob3cYBiABKAgSOAoGYnViYmxlGAcgASgLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlIrMCCg1DbGlja0J1dHRvblYyEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSFwoPdGV4dF9pbnB1dF9wb3N0GAYgASgIEhUKDWV4cG9zdXJlX29uY2UYByABKAgSRQoNZXhwb3N1cmVfdHlwZRgIIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cG9zdXJlVHlwZSJLCgdDb21tYW5kEkAKC2NvbW1hbmRfZG1zGAEgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZERtIuYBCglDb21tYW5kRG0SCgoCaWQYASABKAMSCwoDb2lkGAIgASgDEgsKA21pZBgDIAEoAxIPCgdjb21tYW5kGAQgASgJEg8KB2NvbnRlbnQYBSABKAkSEAoIcHJvZ3Jlc3MYBiABKAUSDQoFY3RpbWUYByABKAkSDQoFbXRpbWUYCCABKAkSDQoFZXh0cmEYCSABKAkSDQoFaWRTdHIYCiABKAkSDAoEdHlwZRgLIAEoBRITCgthdXRvX2NyZWF0ZRgMIAEoCBISCgpjb3VudF9kb3duGA0gASgFEgwKBGF0dHIYDiABKAUiUAoNRGFubWFrdUFJRmxhZxI/CghkbV9mbGFncxgBIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnIosDCgtEYW5tYWt1RWxlbRIKCgJpZBgBIAEoAxIQCghwcm9ncmVzcxgCIAEoBRIMCgRtb2RlGAMgASgFEhAKCGZvbnRzaXplGAQgASgFEj8KBWNvbG9yGAUgASgOMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1Db2xvcmZ1bFR5cGUSEAoIbWlkX2hhc2gYBiABKAkSDwoHY29udGVudBgHIAEoCRINCgVjdGltZRgIIAEoAxIOCgZ3ZWlnaHQYCSABKAUSDgoGYWN0aW9uGAogASgJEgwKBHBvb2wYCyABKAUSDgoGaWRfc3RyGAwgASgJEgwKBGF0dHIYDSABKAUSEQoJYW5pbWF0aW9uGBYgASgJEg0KBWV4dHJhGBcgASgJEkIKCGNvbG9yZnVsGBggASgOMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1Db2xvcmZ1bFR5cGUSDAoEdHlwZRgZIAEoBRILCgNvaWQYGiABKAMiKQoLRGFubWFrdUZsYWcSDAoEZG1pZBgBIAEoAxIMCgRmbGFnGAIgASgFIksKEURhbm1ha3VGbGFnQ29uZmlnEhAKCHJlY19mbGFnGAEgASgFEhAKCHJlY190ZXh0GAIgASgJEhIKCnJlY19zd2l0Y2gYAyABKAUiiwcKGERhbm11RGVmYXVsdFBsYXllckNvbmZpZxIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYASABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X3N3aXRjaBgQIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV9zZW5pb3JfbW9kZV9zd2l0Y2gYESABKAUSLgomcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjIYEiABKAUSmAEKKnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyX21hcBgTIAMoCzJkLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11RGVmYXVsdFBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgUIAEoCBpLCilQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIuwJChFEYW5tdVBsYXllckNvbmZpZxIdChVwbGF5ZXJfZGFubWFrdV9zd2l0Y2gYASABKAgSIgoacGxheWVyX2Rhbm1ha3Vfc3dpdGNoX3NhdmUYAiABKAgSKQohcGxheWVyX2Rhbm1ha3VfdXNlX2RlZmF1bHRfY29uZmlnGAMgASgIEiwKJHBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX3N3aXRjaBgEIAEoCBIrCiNwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbBgFIAEoBRIfChdwbGF5ZXJfZGFubWFrdV9ibG9ja3RvcBgGIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3Njcm9sbBgHIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja2JvdHRvbRgIIAEoCBIkChxwbGF5ZXJfZGFubWFrdV9ibG9ja2NvbG9yZnVsGAkgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrcmVwZWF0GAogASgIEiMKG3BsYXllcl9kYW5tYWt1X2Jsb2Nrc3BlY2lhbBgLIAEoCBIeChZwbGF5ZXJfZGFubWFrdV9vcGFjaXR5GAwgASgCEiQKHHBsYXllcl9kYW5tYWt1X3NjYWxpbmdmYWN0b3IYDSABKAISHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCEhwKFHBsYXllcl9kYW5tYWt1X3NwZWVkGA8gASgFEiYKHnBsYXllcl9kYW5tYWt1X2VuYWJsZWJsb2NrbGlzdBgQIAEoCBIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBEgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9jb25maWcYEiABKAUSJgoecGxheWVyX2Rhbm1ha3VfaW9zX3N3aXRjaF9zYXZlGBMgASgFEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgUIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgVIAEoBRKRAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBYgAygLMl0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyTWFwRW50cnkSJQodcGxheWVyX2Rhbm1ha3VfZW5hYmxlX2hlcmRfZG0YFyABKAgSJgoecGxheWVyX2Rhbm1ha3VfYmxvY2t0b3BfYm90dG9tGBggASgIEiAKGHBsYXllcl9kYW5tYWt1X2RvbWFpbl92MhgZIAEoBRIeChZwbGF5ZXJfZGFubWFrdV9kZW5zaXR5GBogASgFEiUKHXBsYXllcl9kYW5tYWt1X3N1YnRpdGxlX3Byb29mGBsgASgIEiMKG3BsYXllcl9kYW5tYWt1X3Blb3BsZV9wcm9vZhgcIAEoCBpLCilQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIjAKFkRhbm11UGxheWVyQ29uZmlnUGFuZWwSFgoOc2VsZWN0aW9uX3RleHQYASABKAkiSwoYRGFubXVQbGF5ZXJEeW5hbWljQ29uZmlnEhAKCHByb2dyZXNzGAEgASgFEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAiKQAwoVRGFubXVQbGF5ZXJWaWV3Q29uZmlnEmEKHWRhbm11a3VfZGVmYXVsdF9wbGF5ZXJfY29uZmlnGAEgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnElIKFWRhbm11a3VfcGxheWVyX2NvbmZpZxgCIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11UGxheWVyQ29uZmlnEmEKHWRhbm11a3VfcGxheWVyX2R5bmFtaWNfY29uZmlnGAMgAygLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJEeW5hbWljQ29uZmlnEl0KG2Rhbm11a3VfcGxheWVyX2NvbmZpZ19wYW5lbBgEIAEoCzI4LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11UGxheWVyQ29uZmlnUGFuZWwimQUKFERhbm11V2ViUGxheWVyQ29uZmlnEhEKCWRtX3N3aXRjaBgBIAEoCBIRCglhaV9zd2l0Y2gYAiABKAgSEAoIYWlfbGV2ZWwYAyABKAUSEAoIYmxvY2t0b3AYBCABKAgSEwoLYmxvY2tzY3JvbGwYBSABKAgSEwoLYmxvY2tib3R0b20YBiABKAgSEgoKYmxvY2tjb2xvchgHIAEoCBIUCgxibG9ja3NwZWNpYWwYCCABKAgSFAoMcHJldmVudHNoYWRlGAkgASgIEg0KBWRtYXNrGAogASgIEg8KB29wYWNpdHkYCyABKAISDgoGZG1hcmVhGAwgASgFEhEKCXNwZWVkcGx1cxgNIAEoAhIQCghmb250c2l6ZRgOIAEoAhISCgpzY3JlZW5zeW5jGA8gASgIEhEKCXNwZWVkc3luYxgQIAEoCBISCgpmb250ZmFtaWx5GBEgASgJEgwKBGJvbGQYEiABKAgSEgoKZm9udGJvcmRlchgTIAEoBRIRCglkcmF3X3R5cGUYFCABKAkSGgoSc2VuaW9yX21vZGVfc3dpdGNoGBUgASgFEhMKC2FpX2xldmVsX3YyGBYgASgFEmEKD2FpX2xldmVsX3YyX21hcBgXIAMoCzJILmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11V2ViUGxheWVyQ29uZmlnLkFpTGV2ZWxWMk1hcEVudHJ5EhcKD2Jsb2NrdG9wX2JvdHRvbRgYIAEoCBISCgpkbV9hcmVhX3YyGBkgASgFEhIKCmRtX2RlbnNpdHkYGiABKAUaMwoRQWlMZXZlbFYyTWFwRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ASJZCgpEbUNvbG9yZnVsEj4KBHR5cGUYASABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRILCgNzcmMYAiABKAkiUAoPRG1FeHBvUmVwb3J0UmVxEhIKCnNlc3Npb25faWQYASABKAkSCwoDb2lkGAIgASgDEg0KBWRtaWRzGAMgASgMEg0KBXNwbWlkGAQgASgJIhEKD0RtRXhwb1JlcG9ydFJlcyJtCgpEbUhlcmRWaWV3EhsKE2Rpc3BsYXlfaGVyZF9kbV9udW0YASABKAUSQgoIaGVyZF9kbXMYAiADKAsyMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWV3SGVyZERtRWxlbSKWAgoKRG1NYXNrV2FsbBINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSDwoHY29udGVudBgDIAEoCRJNCgxjb250ZW50X3R5cGUYBCABKA4yNy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbU1hc2tXYWxsQ29udGVudFR5cGUSRQoIYml6X3R5cGUYBSABKA4yMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbU1hc2tXYWxsQml6VHlwZRJFCghjb250ZW50cxgGIAMoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50ImsKEURtTWFza1dhbGxDb250ZW50EkUKBHR5cGUYASABKA4yNy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbU1hc2tXYWxsQ29udGVudFR5cGUSDwoHY29udGVudBgCIAEoCSLNEAoRRG1QbGF5ZXJDb25maWdSZXESCgoCdHMYASABKAMSRQoGc3dpdGNoGAIgASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaBJOCgtzd2l0Y2hfc2F2ZRgDIAEoCzI5LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTd2l0Y2hTYXZlElsKEnVzZV9kZWZhdWx0X2NvbmZpZxgEIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEmEKFWFpX3JlY29tbWVuZGVkX3N3aXRjaBgFIAEoCzJCLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkU3dpdGNoEl8KFGFpX3JlY29tbWVuZGVkX2xldmVsGAYgASgLMkEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbBJJCghibG9ja3RvcBgHIAEoCzI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3RvcBJPCgtibG9ja3Njcm9sbBgIIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBJPCgtibG9ja2JvdHRvbRgJIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja2JvdHRvbRJTCg1ibG9ja2NvbG9yZnVsGAogASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSTwoLYmxvY2tyZXBlYXQYCyABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tyZXBlYXQSUQoMYmxvY2tzcGVjaWFsGAwgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc3BlY2lhbBJHCgdvcGFjaXR5GA0gASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdU9wYWNpdHkSUwoNc2NhbGluZ2ZhY3RvchgOIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTY2FsaW5nZmFjdG9yEkUKBmRvbWFpbhgPIAEoCzI1LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VEb21haW4SQwoFc3BlZWQYECABKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3BlZWQSVwoPZW5hYmxlYmxvY2tsaXN0GBEgASgLMj4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZWJsb2NrbGlzdBJeChlpbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoGBIgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuSW5saW5lUGxheWVyRGFubWFrdVN3aXRjaBJbChJzZW5pb3JfbW9kZV9zd2l0Y2gYEyABKAsyPy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBJkChdhaV9yZWNvbW1lbmRlZF9sZXZlbF92MhgUIAEoCzJDLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhJTCg5lbmFibGVfaGVyZF9kbRgVIAEoCzI7LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VFbmFibGVIZXJkRG0SVgoPYmxvY2t0b3BfYm90dG9tGBYgASgLMj0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wQm90dG9tEkoKCWRvbWFpbl92MhgXIAEoCzI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VEb21haW5WMhJHCgdkZW5zaXR5GBggASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURlbnNpdHkSVAoOc3VidGl0bGVfcHJvb2YYGSABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3VidGl0bGVQcm9vZhJQCgxwZW9wbGVfcHJvb2YYGiABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1UGVvcGxlUHJvb2YiLwoLRG1TZWdDb25maWcSEQoJcGFnZV9zaXplGAEgASgDEg0KBXRvdGFsGAIgASgDIpECChBEbVNlZ01vYmlsZVJlcGx5EjwKBWVsZW1zGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUVsZW0SDQoFc3RhdGUYAiABKAUSQAoHYWlfZmxhZxgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VBSUZsYWcSFQoNc2VnbWVudF9ydWxlcxgEIAMoAxJCCgxjb2xvcmZ1bF9zcmMYBSADKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsEhMKC2NvbnRleHRfc3JjGAYgASgJIsoBCg5EbVNlZ01vYmlsZVJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAxIWCg50ZWVuYWdlcnNfbW9kZRgFIAEoBRIKCgJwcxgGIAEoAxIKCgJwZRgHIAEoAxIRCglwdWxsX21vZGUYCCABKAUSEgoKZnJvbV9zY2VuZRgJIAEoBRINCgVzcG1pZBgKIAEoCRITCgtjb250ZXh0X2V4dBgLIAEoCSJcCg1EbVNlZ090dFJlcGx5EjwKBWVsZW1zGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUVsZW0SDQoFc3RhdGUYAiABKAUiTAoLRG1TZWdPdHRSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEhUKDXNlZ21lbnRfaW5kZXgYBCABKAMiXQoNRG1TZWdTREtSZXBseRIOCgZjbG9zZWQYASABKAgSPAoFZWxlbXMYAiADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbSJMCgtEbVNlZ1NES1JlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJ3CglEbVN1YlZpZXcSDAoEdHlwZRgBIAEoBRILCgNvaWQYAiABKAMSCwoDcGlkGAMgASgDEkIKC3Bvc3RfcGFuZWwyGAQgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjIioQkKC0RtVmlld1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI5CgRtYXNrGAIgASgLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVmlkZW9NYXNrEkEKCHN1YnRpdGxlGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVmlkZW9TdWJ0aXRsZRITCgtzcGVjaWFsX2RtcxgEIAMoCRJECgdhaV9mbGFnGAUgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWdDb25maWcSTgoNcGxheWVyX2NvbmZpZxgGIAEoCzI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11UGxheWVyVmlld0NvbmZpZxIWCg5zZW5kX2JveF9zdHlsZRgHIAEoBRINCgVhbGxvdxgIIAEoCBIRCgljaGVja19ib3gYCSABKAgSGgoSY2hlY2tfYm94X3Nob3dfbXNnGAogASgJEhgKEHRleHRfcGxhY2Vob2xkZXIYCyABKAkSGQoRaW5wdXRfcGxhY2Vob2xkZXIYDCABKAkSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GA0gAygJEkEKC2V4cG9fcmVwb3J0GA4gASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb1JlcG9ydBJJCg9idXp6d29yZF9jb25maWcYDyABKAsyMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZENvbmZpZxJCCgtleHByZXNzaW9ucxgQIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cHJlc3Npb25zEj8KCnBvc3RfcGFuZWwYESADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWwSFQoNYWN0aXZpdHlfbWV0YRgSIAMoCRJCCgtwb3N0X3BhbmVsMhgTIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbFYyEkIKDGRtX21hc2tfd2FsbBgUIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGwSPQoHZG1faGVyZBgVIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtSGVyZFZpZXcSOgoHY29tbWFuZBgWIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmQSCgoCa3YYFyABKAkSPgoJc3ViX3ZpZXdzGBggAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgZIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8ibQoJRG1WaWV3UmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRINCgVzcG1pZBgEIAEoCRIUCgxpc19oYXJkX2Jvb3QYBSABKAUSEwoLY29udGV4dF9leHQYBiABKAkigQYKDkRtV2ViVmlld1JlcGx5Eg0KBXN0YXRlGAEgASgFEgwKBHRleHQYAiABKAkSEQoJdGV4dF9zaWRlGAMgASgJEj0KBmRtX3NnZRgEIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnQ29uZmlnEkEKBGZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxITCgtzcGVjaWFsX2RtcxgGIAMoCRIRCgljaGVja19ib3gYByABKAgSDQoFY291bnQYCCABKAMSQAoLY29tbWFuZF9kbXMYCSADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0STQoNcGxheWVyX2NvbmZpZxgKIAEoCzI2LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm11V2ViUGxheWVyQ29uZmlnEh0KFXJlcG9ydF9maWx0ZXJfY29udGVudBgLIAMoCRJCCgtleHByZXNzaW9ucxgMIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cHJlc3Npb25zEj8KCnBvc3RfcGFuZWwYDSADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWwSFQoNYWN0aXZpdHlfbWV0YRgOIAMoCRJCCgtwb3N0X3BhbmVsMhgPIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbFYyEj4KCXN1Yl92aWV3cxgQIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU3ViVmlldxI2CgNxb2UYESABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Rb2VJbmZvIioKCkV4cG9SZXBvcnQSHAoUc2hvdWxkX3JlcG9ydF9hdF9lbmQYASABKAgiZAoKRXhwcmVzc2lvbhIPCgdrZXl3b3JkGAEgAygJEgsKA3VybBgCIAEoCRI4CgZwZXJpb2QYAyADKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QZXJpb2QiSQoLRXhwcmVzc2lvbnMSOgoEZGF0YRgBIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkV4cHJlc3Npb24iKgoZSW5saW5lUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCCInCgVMYWJlbBINCgV0aXRsZRgBIAEoCRIPCgdjb250ZW50GAIgAygJIocBCgdMYWJlbFYyEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkSFQoNZXhwb3N1cmVfb25jZRgDIAEoCBJFCg1leHBvc3VyZV90eXBlGAQgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIiQKBlBlcmlvZBINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMiMAofUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbBINCgV2YWx1ZRgBIAEoBSIyCiFQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjISDQoFdmFsdWUYASABKAUiMQogUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrYm90dG9tEg0KBXZhbHVlGAEgASgIIisKGlBsYXllckRhbm1ha3VCbG9ja2NvbG9yZnVsEg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tzY3JvbGwSDQoFdmFsdWUYASABKAgiKgoZUGxheWVyRGFubWFrdUJsb2Nrc3BlY2lhbBINCgV2YWx1ZRgBIAEoCCImChVQbGF5ZXJEYW5tYWt1QmxvY2t0b3ASDQoFdmFsdWUYASABKAgiLAobUGxheWVyRGFubWFrdUJsb2NrdG9wQm90dG9tEg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VEZW5zaXR5Eg0KBXZhbHVlGAEgASgFIiQKE1BsYXllckRhbm1ha3VEb21haW4SDQoFdmFsdWUYASABKAIiJgoVUGxheWVyRGFubWFrdURvbWFpblYyEg0KBXZhbHVlGAEgASgFIioKGVBsYXllckRhbm1ha3VFbmFibGVIZXJkRG0SDQoFdmFsdWUYASABKAgiLQocUGxheWVyRGFubWFrdUVuYWJsZWJsb2NrbGlzdBINCgV2YWx1ZRgBIAEoCCIlChRQbGF5ZXJEYW5tYWt1T3BhY2l0eRINCgV2YWx1ZRgBIAEoAiIpChhQbGF5ZXJEYW5tYWt1UGVvcGxlUHJvb2YSDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISDQoFdmFsdWUYASABKAIiLgodUGxheWVyRGFubWFrdVNlbmlvck1vZGVTd2l0Y2gSDQoFdmFsdWUYASABKAUiIwoSUGxheWVyRGFubWFrdVNwZWVkEg0KBXZhbHVlGAEgASgFIisKGlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mEg0KBXZhbHVlGAEgASgIIjgKE1BsYXllckRhbm1ha3VTd2l0Y2gSDQoFdmFsdWUYASABKAgSEgoKY2FuX2lnbm9yZRgCIAEoCCIoChdQbGF5ZXJEYW5tYWt1U3dpdGNoU2F2ZRINCgV2YWx1ZRgBIAEoCCIuCh1QbGF5ZXJEYW5tYWt1VXNlRGVmYXVsdENvbmZpZxINCgV2YWx1ZRgBIAEoCCKMAwoJUG9zdFBhbmVsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIQCghwcmlvcml0eRgDIAEoAxIOCgZiaXpfaWQYBCABKAMSRAoIYml6X3R5cGUYBSABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkMKDGNsaWNrX2J1dHRvbhgGIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uEj8KCnRleHRfaW5wdXQYByABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5UZXh0SW5wdXQSPQoJY2hlY2tfYm94GAggASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tCb3gSNgoFdG9hc3QYCSABKAsyJy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdCKtBAoLUG9zdFBhbmVsVjISDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEkQKCGJpel90eXBlGAMgASgOMjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsQml6VHlwZRJFCgxjbGlja19idXR0b24YBCABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DbGlja0J1dHRvblYyEkEKCnRleHRfaW5wdXQYBSABKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5UZXh0SW5wdXRWMhI/CgljaGVja19ib3gYBiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveFYyEjgKBXRvYXN0GAcgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RWMhI6CgZidWJibGUYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGVWMhI4CgVsYWJlbBgJIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsVjISQQoLcG9zdF9zdGF0dXMYCiABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0U3RhdHVzIhcKB1FvZUluZm8SDAoEaW5mbxgBIAEoCSIpCghSZXNwb25zZRIMCgRjb2RlGAEgASgFEg8KB21lc3NhZ2UYAiABKAki+QIKDFN1YnRpdGxlSXRlbRIKCgJpZBgBIAEoAxIOCgZpZF9zdHIYAiABKAkSCwoDbGFuGAMgASgJEg8KB2xhbl9kb2MYBCABKAkSFAoMc3VidGl0bGVfdXJsGAUgASgJEjoKBmF1dGhvchgGIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlVzZXJJbmZvEjwKBHR5cGUYByABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZVR5cGUSFQoNbGFuX2RvY19icmllZhgIIAEoCRJBCgdhaV90eXBlGAkgASgOMjAuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuU3VidGl0bGVBaVR5cGUSRQoJYWlfc3RhdHVzGAogASgOMjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuU3VidGl0bGVBaVN0YXR1cyLoAgoJVGV4dElucHV0EhwKFHBvcnRyYWl0X3BsYWNlaG9sZGVyGAEgAygJEh0KFWxhbmRzY2FwZV9wbGFjZWhvbGRlchgCIAMoCRJBCgtyZW5kZXJfdHlwZRgDIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSGAoQcGxhY2Vob2xkZXJfcG9zdBgEIAEoCBIMCgRzaG93GAUgASgIEjgKBmF2YXRhchgGIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkF2YXRhchJBCgtwb3N0X3N0YXR1cxgHIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMSNgoFbGFiZWwYCCABKAsyJy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5MYWJlbCL7AQoLVGV4dElucHV0VjISHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEjgKBmF2YXRhchgFIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkF2YXRhchIYChB0ZXh0X2lucHV0X2xpbWl0GAYgASgFIm8KBVRvYXN0EgwKBHRleHQYASABKAkSEAoIZHVyYXRpb24YAiABKAUSDAoEc2hvdxgDIAEoCBI4CgZidXR0b24YBCABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXR0b24iYgoNVG9hc3RCdXR0b25WMhIMCgR0ZXh0GAEgASgJEkMKBmFjdGlvbhgCIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0RnVuY3Rpb25UeXBlInMKB1RvYXN0VjISDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRJICg90b2FzdF9idXR0b25fdjIYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdEJ1dHRvblYyIlwKCFVzZXJJbmZvEgsKA21pZBgBIAEoAxIMCgRuYW1lGAIgASgJEgsKA3NleBgDIAEoCRIMCgRmYWNlGAQgASgJEgwKBHNpZ24YBSABKAkSDAoEcmFuaxgGIAEoBSJTCglWaWRlb01hc2sSCwoDY2lkGAEgASgDEgwKBHBsYXQYAiABKAUSCwoDZnBzGAMgASgFEgwKBHRpbWUYBCABKAMSEAoIbWFza191cmwYBSABKAkicAoNVmlkZW9TdWJ0aXRsZRILCgNsYW4YASABKAkSDwoHbGFuX2RvYxgCIAEoCRJBCglzdWJ0aXRsZXMYAyADKAsyLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUl0ZW0ikgEKDlZpZXdIZXJkRG1FbGVtEhAKCGhlcmRfbXNnGAEgASgJEhYKDmhlcmRfc3RhcnRfY250GAIgASgFEhQKDGhlcmRfZW5kX2NudBgDIAEoBRISCgpyZWdleF9ydWxlGAQgASgJEhYKDnN0YXJ0X3Byb2dyZXNzGAUgASgFEhQKDGVuZF9wcm9ncmVzcxgGIAEoBSozCgpBdmF0YXJUeXBlEhIKDkF2YXRhclR5cGVOb25lEAASEQoNQXZhdGFyVHlwZU5GVBABKlkKCkJ1YmJsZVR5cGUSEgoOQnViYmxlVHlwZU5vbmUQABIZChVCdWJibGVUeXBlQ2xpY2tCdXR0b24QARIcChhCdWJibGVUeXBlRG1TZXR0aW5nUGFuZWwQAipYCgxDaGVja2JveFR5cGUSFAoQQ2hlY2tib3hUeXBlTm9uZRAAEhkKFUNoZWNrYm94VHlwZUVuY291cmFnZRABEhcKE0NoZWNrYm94VHlwZUNvbG9yRE0QAio1Cg5EbUNvbG9yZnVsVHlwZRIMCghOb25lVHlwZRAAEhUKD1ZpcEdyYWR1YWxDb2xvchDh1AMqYAoRRG1NYXNrV2FsbEJpelR5cGUSCwoHVW5rbm93bhAAEgcKA09HVhABEgoKBkJpelBpYxACEggKBE11dGUQAxIKCgZSZWNvcmQQBBIJCgVDbG91ZBAFEggKBEFJR0MQBip2ChVEbU1hc2tXYWxsQ29udGVudFR5cGUSIAocRG1NYXNrV2FsbENvbnRlbnRUeXBlVW5rbm93bhAAEh0KGURtTWFza1dhbGxDb250ZW50VHlwZVRleHQQARIcChhEbU1hc2tXYWxsQ29udGVudFR5cGVQaWMQAio8CgxFeHBvc3VyZVR5cGUSFAoQRXhwb3N1cmVUeXBlTm9uZRAAEhYKEkV4cG9zdXJlVHlwZURNU2VuZBABKoMCChBQb3N0UGFuZWxCaXpUeXBlEhgKFFBvc3RQYW5lbEJpelR5cGVOb25lEAASHQoZUG9zdFBhbmVsQml6VHlwZUVuY291cmFnZRABEhsKF1Bvc3RQYW5lbEJpelR5cGVDb2xvckRNEAISGQoVUG9zdFBhbmVsQml6VHlwZU5GVERNEAMSHQoZUG9zdFBhbmVsQml6VHlwZUZyYWdDbG9zZRAEEh0KGVBvc3RQYW5lbEJpelR5cGVSZWNvbW1lbmQQBRIcChhQb3N0UGFuZWxCaXpUeXBlUGxvdExlYWsQBhIiCh5Qb3N0UGFuZWxCaXpUeXBlQW50aUhhcmFzc21lbnQQByo4CgpQb3N0U3RhdHVzEhQKEFBvc3RTdGF0dXNOb3JtYWwQABIUChBQb3N0U3RhdHVzQ2xvc2VkEAEqTgoKUmVuZGVyVHlwZRISCg5SZW5kZXJUeXBlTm9uZRAAEhQKEFJlbmRlclR5cGVTaW5nbGUQARIWChJSZW5kZXJUeXBlUm90YXRpb24QAio2ChBTdWJ0aXRsZUFpU3RhdHVzEggKBE5vbmUQABIMCghFeHBvc3VyZRABEgoKBkFzc2lzdBACKisKDlN1YnRpdGxlQWlUeXBlEgoKBk5vcm1hbBAAEg0KCVRyYW5zbGF0ZRABKh4KDFN1YnRpdGxlVHlwZRIGCgJDQxAAEgYKAkFJEAEqTgoRVG9hc3RGdW5jdGlvblR5cGUSGQoVVG9hc3RGdW5jdGlvblR5cGVOb25lEAASHgoaVG9hc3RGdW5jdGlvblR5cGVQb3N0UGFuZWwQATKgBQoCRE0ScwoLRG1TZWdNb2JpbGUSMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ01vYmlsZVJlcRoyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVwbHkSZAoGRG1WaWV3EisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1WaWV3UmVxGi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1WaWV3UmVwbHkScQoORG1QbGF5ZXJDb25maWcSMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVBsYXllckNvbmZpZ1JlcRoqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlc3BvbnNlEmoKCERtU2VnT3R0Ei0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdPdHRSZXEaLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcGx5EmoKCERtU2VnU0RLEi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdTREtSZXEaLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcGx5EnQKDERtRXhwb1JlcG9ydBIxLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtRXhwb1JlcG9ydFJlcRoxLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtRXhwb1JlcG9ydFJlc0LUAQokY29tLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxQgdEbVByb3RvUAGiAgRCQ1NEqgIgQmlsaWJpbGkuQ29tbXVuaXR5LlNlcnZpY2UuRG0uVjHKAiBCaWxpYmlsaVxDb21tdW5pdHlcU2VydmljZVxEbVxWMeICLEJpbGliaWxpXENvbW11bml0eVxTZXJ2aWNlXERtXFYxXEdQQk1ldGFkYXRh6gIkQmlsaWJpbGk6OkNvbW11bml0eTo6U2VydmljZTo6RG06OlYxYgZwcm90bzM`),ce=(0,i.messageDesc)(w,30),le=(0,i.messageDesc)(w,39),T=Z(e=>async(n,r)=>{let i=r??await n.makeChunk({}),a=(0,o.fromBinary)(le,new Uint8Array(e)).commandDms;return await i.upsertDanmakus(a.map(e=>{let n=`def_bili+${t.u.fromBili({cid:e.oid}).toString()}`,r=t.u.fromBili({mid:e.mid}),a={SOID:n,progress:e.progress,mode:`Ext`,fontsize:t.l.fontsize,color:t.l.color,senderID:r.toString(),content:e.content,ctime:new Date(`${e.ctime} GMT+0800`),weight:11,pool:`Adv`,attr:[`Protect`],platform:`bili`,extra:{bili:{dmid:e.idStr,attr:e.attr,mid:e.mid?.toString(),command:e}}};return{...a,DMID:i.$UniDB.DMIDGenerator(a)}})),i}),E=$({type:`bili.cmd.binpb`,ext:[`.binpb`,`.bin`,`.pb.bin`,`.so`],check:{adapter:async(e,t)=>{try{return await e.import(T(await f(t,`bin`)))}catch{return null}}}});function ue(e,t){return t===`ms`?!0:t===`s`?!1:e<1e8}function D(e,t){return typeof e==`number`||typeof e==`bigint`?ue(e,t)?new Date(Number(e)):new Date(Number(e)*1e3):typeof e==`string`?/^\d+n$/.test(e)?D(Number(e.slice(0,-1)),t):D(Number(e),t):e}const de=e=>{let t=[];do t.unshift(!!(e&1)),e>>=1;while(e);return t.toReversed()};var fe=class{bin;constructor(e){this.bin=e}set1(e){this.bin|=1<<e}set0(e){this.bin&=~(1<<e)}};const pe={fromBin(e=0,t){let n=de(e),r=[];return t===`bili`&&(n[0]&&r.push(`Protect`),n[1]&&r.push(`FromLive`),n[2]&&r.push(`HighLike`)),r},toBin(e=[],t){let n=new fe(0);return t===`bili`&&(e.includes(`Protect`)&&n.set1(0),e.includes(`FromLive`)&&n.set1(1),e.includes(`HighLike`)&&n.set1(2)),n.bin}};function O(e,n,r,i){n.oid&&!r&&(r=n.oid);let a=i||`def_bili+${t.u.fromBili({cid:r}).toString()}`,o=t.u.validateString(n.midHash)?n.midHash:t.u.fromBili({midHash:n.midHash}).toString(),s,c=m.in.safeParse(n.pool).success?n.pool:0,l={bili:{mode:n.mode,pool:n.pool,dmid:n.idStr??n.id.toString(),attr:n.attr,mid:n.mid?.toString(),adv:void 0,code:void 0,bas:void 0}};switch(n.mode){case 4:s=1;break;case 5:s=2;break;case 6:s=3;break;case 7:s=4,l.bili.adv=n.content;break;case 8:s=4,l.bili.code=n.content;break;case 9:s=4,l.bili.bas=n.content;break;default:s=0;break}let u={...n,SOID:a,mode:s,senderID:o,ctime:D(n.ctime,`s`),weight:n.weight||+(c===3),pool:c,attr:pe.fromBin(n.attr,`bili`),platform:`bili`,extra:l};return{...u,mode:p.decode(s),pool:m.decode(c),DMID:e.$UniDB.DMIDGenerator({...u,mode:p.decode(s),pool:m.decode(c)})}}const k=(e,t)=>{switch(e){case`Normal`:return 1;case`Bottom`:return 4;case`Top`:return 5;case`Reverse`:return 6;case`Ext`:return t?t.adv?7:t.code?8:t.bas?9:1:1;default:return 1}};function A(e,t,n){if(n?.skipBiliCommand&&t.extra?.bili?.command)return null;let r=t.extra?.bili?.mode||k(t.mode,t.extra?.bili),i;switch(r){case 7:i=t.extra?.bili?.adv;break;case 8:i=t.extra?.bili?.code;break;case 9:i=t.extra?.bili?.bas;break;default:i=t.content;break}return{"#text":i??t.content,"@_p":[t.progress/1e3,r,t.fontsize,t.color,t.ctime.getTime()/1e3,t.extra?.bili?.pool||t.pool,n?.avoidSenderIDWithAt?t.senderID.replaceAll(`@bili`,``):t.senderID,t.extra?.bili?.dmid||t.DMID||e(t),t.weight].join(`,`)}}const j=Z(e=>async(t,n)=>{let r=n??await t.makeChunk({}),i=(0,o.fromBinary)(ce,new Uint8Array(e)).elems;return await r.upsertDanmakus(i.map(e=>O(r,e))),r}),M=$({type:`bili.binpb`,ext:[`.binpb`,`.bin`,`.pb.bin`,`.so`],check:{adapter:async(e,t)=>{try{return await e.import(j(await f(t,`bin`)))}catch{return null}}}}),N=Z(e=>async(t,n)=>{let r=n??await t.makeChunk({});return await r.upsertDanmakus(e.data.result.map(e=>{let t=e.attrs?e.attrs.split(`,`).map(Number).reduce((e,t)=>e|1<<t-1,0):0,n=O(r,{id:BigInt(e.id_str||e.id),idStr:e.id_str,progress:e.progress,mode:e.mode,fontsize:e.fontsize,color:Number.parseInt(e.color,16),mid:e.mid,midHash:e.mid_hash,content:e.msg,ctime:BigInt(e.ctime),pool:e.pool,attr:t,oid:BigInt(e.oid)});return n.extra.bili.up=e,n})),r}),P=$({type:`bili.up.json`,ext:[`.json`],check:{adapter:async(e,n)=>{try{return await e.import(N(await f(n,`json`,t.b)))}catch{return null}}}}),me=new s.XMLParser({ignoreAttributes:!1,parseTagValue:!1,parseAttributeValue:!1,isArray:(e,t,n,r)=>t===`i.d`}),he=new c.default({ignoreAttributes:!1});function ge(e,t){let n=e.split(`,`);return{content:t,progress:~~(Number.parseFloat(n[0])*1e3),mode:Number.parseInt(n[1]),fontsize:Number.parseInt(n[2]),color:Number.parseInt(n[3]),ctime:BigInt(n[4]),pool:Number.parseInt(n[5]),midHash:n[6],id:BigInt(n[7]),idStr:n[7],weight:Number.parseInt(n[8])}}const F=Z(e=>async(t,n)=>{let r=me.parse(e),i=r.i.d,a=!!r.i.danuni,o=BigInt(r.i.chatid),s=a?r.i.danuni?.data:void 0,c=n??await t.makeChunk({fromConverted:a});return await c.upsertDanmakus(i.map(e=>O(c,ge(e[`@_p`],e[`#text`]),o,s))),c}),_e=(e,n)=>{if(e){let r=t.u.fromStringSafe(e);if(r.domain===`bili`){let e=r.id.replaceAll(`def_bili+`,``);if(e)return e}return n?.cid||e}else return n?.cid||t.u.fromNull().toString()},I=e=>Q((n,r)=>{let i=n;if(e?.avoidSenderIDWithAt&&!i.every(e=>e.senderID.endsWith(`@bili`)))throw Error(`存在其他来源的senderID,请关闭该功能再试!`);let a=i.map(t=>A(r.DMIDGenerator,t,e));return e?.skipBiliCommand&&(a=a.filter(e=>e!==null)),he.build({"?xml":{"@_version":`1.0`,"@_encoding":`UTF-8`},i:{chatserver:`chat.bilibili.com`,chatid:_e(i[0]?.SOID),mission:0,maxlimit:i.length,state:0,real_name:0,source:`k-v`,danuni:{...t.o,data:[...new Set(i.map(e=>e.SOID))][0]},d:a}})}),L=$({type:`bili.xml`,ext:[`.xml`],check:{adapter:async(e,t)=>{try{return await e.import(F(await f(t,`string`)))}catch{return null}}}});function R(e,t){let n=`Normal`;switch(t){case`bili`:switch(e){case 4:n=`Bottom`;break;case 5:n=`Top`;break;case 6:n=`Reverse`;break;case 7:n=`Ext`;break;case 8:n=`Ext`;break;case 9:n=`Ext`;break}break;case`dplayer`:e===1?n=`Top`:e===2&&(n=`Bottom`);break;case`artplayer`:e===1?n=`Top`:e===2&&(n=`Bottom`);break;case`ddplay`:n=R(e,`bili`);break;case`vod`:e===`top`?n=`Top`:e===`bottom`&&(n=`Bottom`);break;default:n=`Normal`;break}return n}const z=Z((e,n,r=`other`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!!e.danuni}),s=n?t.u.fromUnknown(n,r).toString():t.u.fromNull(r).toString(),c=t.u.fromNull(r).toString(),l=new Date;return await o.upsertDanmakus(e.danmuku.map(e=>{let n=e.border?{artplayer:{border:e.border,style:{}}}:null;e.style&&(n=n?{...n,artplayer:{...n.artplayer,border:e.border,style:e.style}}:{artplayer:{border:e.border,style:e.style}});let i=R(e.mode??0,`artplayer`),a={attr:t.l.attr,fontsize:t.l.fontsize,ctime:l,weight:t.l.weight,pool:`Def`,content:e.text,progress:(e.time??0)*1e3,mode:i,color:Number((e.color||`FFFFFF`).replace(`#`,`0x`)),style:e.style,SOID:s,senderID:c,platform:r,extra:n};return{...a,DMID:o.$UniDB.DMIDGenerator(a)}})),o}),B=Q(e=>({danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0]},danmuku:e.map(e=>{let t=0;return e.mode===`Top`?t=1:e.mode===`Bottom`&&(t=2),{text:e.content,time:e.progress/1e3,mode:t,color:`#${e.color.toString(16).toUpperCase()||`FFFFFF`}`,border:e.extra?.artplayer?.border,style:e.extra?.artplayer?.style}})})),ve=$({type:`artplayer.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(z(await f(t,`json`))),z}catch{return null}}}}),V=Z((e,n=`0`,r=`ddplay`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!!e.danuni}),s=t.u.fromUnknown(`def_ddplay+${n}`,r).toString(),c=new Date;return await o.upsertDanmakus(e.comments.map(e=>{let n=e.p.split(`,`),i=n[3],a=t.u.fromUnknown(i,r).toString(),l=R(Number.parseInt(n[1]),`ddplay`),u={SOID:s,color:Number.parseInt(n[2]),progress:Number.parseFloat(n[0])*1e3,mode:l,senderID:a,content:e.m,platform:r,extra:{ddplay:{cid:e.cid,uid:i}},attr:t.l.attr,fontsize:t.l.fontsize,ctime:c,weight:t.l.weight,pool:`Def`};return{...u,DMID:o.$UniDB.DMIDGenerator(u)}})),o}),H=Q(e=>({danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0].replaceAll(`def_ddplay+`,``)},count:e.length,comments:e.map(e=>{let t=1;return e.mode===`Top`?t=5:e.mode===`Bottom`&&(t=4),{cid:e.extra?.ddplay?.cid??Number.parseInt(`0x${Buffer.from(e.DMID).toString(`hex`)}`)??0,p:`${e.progress/1e3},${t},${e.color},${e.extra?.ddplay?.uid??e.senderID}`,m:e.content}})})),U=$({type:`ddplay.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(V(await f(t,`json`))),V}catch{return null}}}}),W=Z((e,n,r=`other`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!!e.danuni}),s=n?t.u.fromUnknown(n,r).toString():t.u.fromNull(r).toString(),c=new Date;return await o.upsertDanmakus(e.data.map(([e,n,i,a,l])=>{let u=R(n,`dplayer`),d={attr:t.l.attr,fontsize:t.l.fontsize,ctime:c,weight:t.l.weight,extra:t.l.extra,pool:`Def`,progress:e*1e3,mode:u,color:i,midHash:a,content:l,SOID:s,senderID:t.u.fromUnknown(a,r).toString(),platform:r};return{...d,DMID:o.$UniDB.DMIDGenerator(d)}})),o}),G=Q(e=>({code:0,danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0]},data:e.map(e=>{let t=0;return e.mode===`Top`?t=1:e.mode===`Bottom`&&(t=2),[e.progress/1e3,t,e.color,e.senderID,e.content]})})),K=$({type:`dplayer.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(W(await f(t,`json`))),W}catch{return null}}}});function ye(e){return e===2?`Top`:e===3?`Bottom`:`Normal`}const be=r.z.object({color:r.z.string(),gradient_colors:r.z.tuple([r.z.string(),r.z.string()]).optional(),position:r.z.number()}),xe=r.z.string().transform(e=>{try{let t=JSON.parse(e);return be.parse(t)}catch{return}}).transform(e=>{let t=e?.gradient_colors?[Number(`0x${e.gradient_colors[0].replace(`#`,``)}`),Number(`0x${e.gradient_colors[1].replace(`#`,``)}`)]:void 0;return{color:e?.color?Number(`0x${e.color.replace(`#`,``)}`):void 0,gradient:t,mode:ye(e?.position)}}).default({color:void 0,gradient:void 0,mode:`Normal`}),q=`tencent`,J=Z((e,n)=>async(r,i)=>{let a=i??await r.makeChunk({fromConverted:!1}),o=n?t.u.fromUnknown(n,q).toString():t.u.fromNull(q).toString(),s=t.u.fromNull(q).toString(),c=Array.isArray(e?.barrage_list)?e.barrage_list:[],l=new Date;return await a.upsertDanmakus(c.map(e=>{let n=xe.parse(e.content_style),r={...e};delete r.content,delete r.time_offset,delete r.create_time;let i={attr:t.l.attr,fontsize:t.l.fontsize,ctime:e.create_time?D(e.create_time,`s`):l,weight:e.show_weight??t.l.weight,pool:`Def`,content:e.content,progress:Number.parseInt(e.time_offset)||0,mode:n.mode,color:n.color??n.gradient?.[0]??t.l.color,SOID:o,senderID:s,platform:q,extra:{danuni:{color:{gradient:n.gradient}},tencent:r}};return{...i,DMID:a.$UniDB.DMIDGenerator(i)}})),a}),Se=$({type:`tencent.json`,ext:[`.json`],check:{adapter:async(e,t)=>{try{return await e.import(J(await f(t,`json`))),J}catch{return null}}}}),Y=r.z.object({code:r.z.number(),name:r.z.string(),danum:r.z.number(),danmuku:r.z.array(r.z.tuple([r.z.coerce.number().min(0),r.z.union([r.z.literal(`right`),r.z.literal(`top`),r.z.literal(`bottom`)]),r.z.string().toUpperCase().regex(/^#([0-9a-fA-F]{3}){1,2}$/,{error:`Invalid hex color format`}).transform(e=>e.length>6?e.toUpperCase():`#${e.split(`#`)[1].toUpperCase()}`),r.z.string().prefault(``),r.z.string(),r.z.string().prefault(``).optional(),r.z.string().prefault(``).optional(),r.z.string().regex(/^\d+px$/).optional()]).rest(r.z.any()))}),X=Z((e,n,r=`other`)=>async(i,a)=>{let o=a??await i.makeChunk({fromConverted:!1}),s=n?t.u.fromUnknown(n,r).toString():t.u.fromNull(r).toString(),c=t.u.fromNull(r).toString(),l=new Date;return await o.upsertDanmakus(e.danmuku.slice(-e.danum).map(e=>{let n={...t.l,pool:`Def`,ctime:l,SOID:s,senderID:c,progress:~~(e[0]*1e3),mode:R(e[1],`vod`),color:Number((e[2]||`FFFFFF`).replace(`#`,`0x`)),content:e[4],fontsize:e[7]?Number(e[7].replace(`px`,``)):t.l.fontsize};return{...n,DMID:o.$UniDB.DMIDGenerator(n)}})),o}),Ce=Q(e=>({danuni:{...t.o,data:e[0]?.SOID.split(`@`)[0]},code:0,name:e[0]?.SOID??`unknown`,danum:e.length,danmuku:e.map(e=>{let t=`right`;switch(e.mode){case`Top`:t=`top`;break;case`Bottom`:t=`bottom`;break}return[e.progress/1e3,t,`#${e.color.toString(16).toUpperCase()||`FFFFFF`}`,``,e.content,``,``,`${e.fontsize}px`]})})),we=$({type:`vod.json`,ext:[`.json`],check:{body:e=>Y.safeParse(e).success?X:null,adapter:async(e,t)=>{try{return await e.import(X(await f(t,`json`))),X}catch{return null}}}});var Te=e.t({ArtplayerAdapter:()=>z,ArtplayerMetadata:()=>ve,ArtplayerTransformer:()=>B,BiliCommandGrpcAdapter:()=>T,BiliCommandGrpcMetadata:()=>E,BiliCommonBuilder:()=>A,BiliCommonModeRec:()=>k,BiliCommonParser:()=>O,BiliGrpcAdapter:()=>j,BiliGrpcMetadata:()=>M,BiliUpAdapter:()=>N,BiliUpMetadata:()=>P,BiliXmlAdapter:()=>F,BiliXmlMetadata:()=>L,BiliXmlTransformerConfigurator:()=>I,DanuniJsonAdapter:()=>g,DanuniJsonMetadata:()=>v,DanuniJsonTransformerConfigurator:()=>_,DanuniPbAdapter:()=>x,DanuniPbMetadata:()=>C,DanuniPbTransformer:()=>S,DdplayAdapter:()=>V,DdplayMetadata:()=>U,DdplayTransformer:()=>H,DplayerAdapter:()=>W,DplayerMetadata:()=>K,DplayerTransformer:()=>G,TencentAdapter:()=>J,TencentMetadata:()=>Se,VodAdapter:()=>X,VodMetadata:()=>we,VodTransformer:()=>Ce,VodZod:()=>Y,defineAdapter:()=>Z,defineMetadata:()=>$,definePlugin:()=>Ee,defineTransformer:()=>Q,enumAttrsCodec:()=>h,enumModeCodec:()=>p,enumPoolCodec:()=>m});function Z(e){return e}function Q(e){return e}function Ee(e){return e}function $(e){return e}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return h}});
package/dist/adapters.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./adapters-BEs_Fcjl.cjs");exports.ArtplayerAdapter=e.v,exports.ArtplayerMetadata=e.y,exports.ArtplayerTransformer=e.b,exports.BiliCommandGrpcAdapter=e.j,exports.BiliCommandGrpcMetadata=e.M,exports.BiliCommonBuilder=e.E,exports.BiliCommonModeRec=e.D,exports.BiliCommonParser=e.O,exports.BiliGrpcAdapter=e.k,exports.BiliGrpcMetadata=e.A,exports.BiliUpAdapter=e.w,exports.BiliUpMetadata=e.T,exports.BiliXmlAdapter=e.x,exports.BiliXmlMetadata=e.S,exports.BiliXmlTransformerConfigurator=e.C,exports.DanuniJsonAdapter=e.I,exports.DanuniJsonMetadata=e.L,exports.DanuniJsonTransformerConfigurator=e.R,exports.DanuniPbAdapter=e.N,exports.DanuniPbMetadata=e.P,exports.DanuniPbTransformer=e.F,exports.DdplayAdapter=e.h,exports.DdplayMetadata=e.g,exports.DdplayTransformer=e._,exports.DplayerAdapter=e.f,exports.DplayerMetadata=e.p,exports.DplayerTransformer=e.m,exports.TencentAdapter=e.u,exports.TencentMetadata=e.d,exports.VodAdapter=e.o,exports.VodMetadata=e.s,exports.VodTransformer=e.c,exports.VodZod=e.l,exports.defineAdapter=e.n,exports.defineMetadata=e.r,exports.definePlugin=e.i,exports.defineTransformer=e.a,exports.enumAttrsCodec=e.z,exports.enumModeCodec=e.B,exports.enumPoolCodec=e.V;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./adapters-DT0YPaW0.cjs");exports.ArtplayerAdapter=e.v,exports.ArtplayerMetadata=e.y,exports.ArtplayerTransformer=e.b,exports.BiliCommandGrpcAdapter=e.j,exports.BiliCommandGrpcMetadata=e.M,exports.BiliCommonBuilder=e.E,exports.BiliCommonModeRec=e.D,exports.BiliCommonParser=e.O,exports.BiliGrpcAdapter=e.k,exports.BiliGrpcMetadata=e.A,exports.BiliUpAdapter=e.w,exports.BiliUpMetadata=e.T,exports.BiliXmlAdapter=e.x,exports.BiliXmlMetadata=e.S,exports.BiliXmlTransformerConfigurator=e.C,exports.DanuniJsonAdapter=e.I,exports.DanuniJsonMetadata=e.L,exports.DanuniJsonTransformerConfigurator=e.R,exports.DanuniPbAdapter=e.N,exports.DanuniPbMetadata=e.P,exports.DanuniPbTransformer=e.F,exports.DdplayAdapter=e.h,exports.DdplayMetadata=e.g,exports.DdplayTransformer=e._,exports.DplayerAdapter=e.f,exports.DplayerMetadata=e.p,exports.DplayerTransformer=e.m,exports.TencentAdapter=e.u,exports.TencentMetadata=e.d,exports.VodAdapter=e.o,exports.VodMetadata=e.s,exports.VodTransformer=e.c,exports.VodZod=e.l,exports.defineAdapter=e.n,exports.defineMetadata=e.r,exports.definePlugin=e.i,exports.defineTransformer=e.a,exports.enumAttrsCodec=e.z,exports.enumModeCodec=e.B,exports.enumPoolCodec=e.V;
@@ -1,2 +1,2 @@
1
- import { A as BiliUpMetadata, B as DanuniPbTransformer, C as ArtplayerAdapter, D as BiliXmlMetadata, E as BiliXmlAdapter, F as BiliGrpcMetadata, G as enumModeCodec, H as DanuniJsonMetadata, I as BiliCommandGrpcAdapter, K as enumPoolCodec, L as BiliCommandGrpcMetadata, M as BiliCommonModeRec, N as BiliCommonParser, O as BiliXmlTransformerConfigurator, P as BiliGrpcAdapter, R as DanuniPbAdapter, S as DdplayTransformer, T as ArtplayerTransformer, U as DanuniJsonTransformerConfigurator, V as DanuniJsonAdapter, W as enumAttrsCodec, _ as DplayerAdapter, a as TransformerInput, b as DdplayAdapter, c as definePlugin, d as VodAdapter, f as VodMetadata, g as TencentMetadata, h as TencentAdapter, i as Transformer, j as BiliCommonBuilder, k as BiliUpAdapter, l as defineTransformer, m as VodZod, n as Metadata, o as defineAdapter, p as VodTransformer, r as Plugin, s as defineMetadata, t as Adapter, v as DplayerMetadata, w as ArtplayerMetadata, x as DdplayMetadata, y as DplayerTransformer, z as DanuniPbMetadata } from "./index-BM23CK6w.cjs";
1
+ import { A as BiliUpMetadata, B as DanuniPbTransformer, C as ArtplayerAdapter, D as BiliXmlMetadata, E as BiliXmlAdapter, F as BiliGrpcMetadata, G as enumModeCodec, H as DanuniJsonMetadata, I as BiliCommandGrpcAdapter, K as enumPoolCodec, L as BiliCommandGrpcMetadata, M as BiliCommonModeRec, N as BiliCommonParser, O as BiliXmlTransformerConfigurator, P as BiliGrpcAdapter, R as DanuniPbAdapter, S as DdplayTransformer, T as ArtplayerTransformer, U as DanuniJsonTransformerConfigurator, V as DanuniJsonAdapter, W as enumAttrsCodec, _ as DplayerAdapter, a as TransformerInput, b as DdplayAdapter, c as definePlugin, d as VodAdapter, f as VodMetadata, g as TencentMetadata, h as TencentAdapter, i as Transformer, j as BiliCommonBuilder, k as BiliUpAdapter, l as defineTransformer, m as VodZod, n as Metadata, o as defineAdapter, p as VodTransformer, r as Plugin, s as defineMetadata, t as Adapter, v as DplayerMetadata, w as ArtplayerMetadata, x as DdplayMetadata, y as DplayerTransformer, z as DanuniPbMetadata } from "./index-VhG0LiL2.cjs";
2
2
  export { Adapter, ArtplayerAdapter, ArtplayerMetadata, ArtplayerTransformer, BiliCommandGrpcAdapter, BiliCommandGrpcMetadata, BiliCommonBuilder, BiliCommonModeRec, BiliCommonParser, BiliGrpcAdapter, BiliGrpcMetadata, BiliUpAdapter, BiliUpMetadata, BiliXmlAdapter, BiliXmlMetadata, BiliXmlTransformerConfigurator, DanuniJsonAdapter, DanuniJsonMetadata, DanuniJsonTransformerConfigurator, DanuniPbAdapter, DanuniPbMetadata, DanuniPbTransformer, DdplayAdapter, DdplayMetadata, DdplayTransformer, DplayerAdapter, DplayerMetadata, DplayerTransformer, Metadata, Plugin, TencentAdapter, TencentMetadata, Transformer, TransformerInput, VodAdapter, VodMetadata, VodTransformer, VodZod, defineAdapter, defineMetadata, definePlugin, defineTransformer, enumAttrsCodec, enumModeCodec, enumPoolCodec };
@@ -1,2 +1,2 @@
1
- import { A as BiliUpMetadata, B as DanuniPbTransformer, C as ArtplayerAdapter, D as BiliXmlMetadata, E as BiliXmlAdapter, F as BiliGrpcMetadata, G as enumModeCodec, H as DanuniJsonMetadata, I as BiliCommandGrpcAdapter, K as enumPoolCodec, L as BiliCommandGrpcMetadata, M as BiliCommonModeRec, N as BiliCommonParser, O as BiliXmlTransformerConfigurator, P as BiliGrpcAdapter, R as DanuniPbAdapter, S as DdplayTransformer, T as ArtplayerTransformer, U as DanuniJsonTransformerConfigurator, V as DanuniJsonAdapter, W as enumAttrsCodec, _ as DplayerAdapter, a as TransformerInput, b as DdplayAdapter, c as definePlugin, d as VodAdapter, f as VodMetadata, g as TencentMetadata, h as TencentAdapter, i as Transformer, j as BiliCommonBuilder, k as BiliUpAdapter, l as defineTransformer, m as VodZod, n as Metadata, o as defineAdapter, p as VodTransformer, r as Plugin, s as defineMetadata, t as Adapter, v as DplayerMetadata, w as ArtplayerMetadata, x as DdplayMetadata, y as DplayerTransformer, z as DanuniPbMetadata } from "./index-DqnaW_ei.mjs";
1
+ import { A as BiliUpMetadata, B as DanuniPbTransformer, C as ArtplayerAdapter, D as BiliXmlMetadata, E as BiliXmlAdapter, F as BiliGrpcMetadata, G as enumModeCodec, H as DanuniJsonMetadata, I as BiliCommandGrpcAdapter, K as enumPoolCodec, L as BiliCommandGrpcMetadata, M as BiliCommonModeRec, N as BiliCommonParser, O as BiliXmlTransformerConfigurator, P as BiliGrpcAdapter, R as DanuniPbAdapter, S as DdplayTransformer, T as ArtplayerTransformer, U as DanuniJsonTransformerConfigurator, V as DanuniJsonAdapter, W as enumAttrsCodec, _ as DplayerAdapter, a as TransformerInput, b as DdplayAdapter, c as definePlugin, d as VodAdapter, f as VodMetadata, g as TencentMetadata, h as TencentAdapter, i as Transformer, j as BiliCommonBuilder, k as BiliUpAdapter, l as defineTransformer, m as VodZod, n as Metadata, o as defineAdapter, p as VodTransformer, r as Plugin, s as defineMetadata, t as Adapter, v as DplayerMetadata, w as ArtplayerMetadata, x as DdplayMetadata, y as DplayerTransformer, z as DanuniPbMetadata } from "./index-DGPhFGo_.mjs";
2
2
  export { Adapter, ArtplayerAdapter, ArtplayerMetadata, ArtplayerTransformer, BiliCommandGrpcAdapter, BiliCommandGrpcMetadata, BiliCommonBuilder, BiliCommonModeRec, BiliCommonParser, BiliGrpcAdapter, BiliGrpcMetadata, BiliUpAdapter, BiliUpMetadata, BiliXmlAdapter, BiliXmlMetadata, BiliXmlTransformerConfigurator, DanuniJsonAdapter, DanuniJsonMetadata, DanuniJsonTransformerConfigurator, DanuniPbAdapter, DanuniPbMetadata, DanuniPbTransformer, DdplayAdapter, DdplayMetadata, DdplayTransformer, DplayerAdapter, DplayerMetadata, DplayerTransformer, Metadata, Plugin, TencentAdapter, TencentMetadata, Transformer, TransformerInput, VodAdapter, VodMetadata, VodTransformer, VodZod, defineAdapter, defineMetadata, definePlugin, defineTransformer, enumAttrsCodec, enumModeCodec, enumPoolCodec };
package/dist/adapters.mjs CHANGED
@@ -1 +1 @@
1
- import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,L as s,M as c,N as l,O as u,P as d,R as f,S as p,T as m,V as h,_ as g,a as _,b as v,c as y,d as b,f as x,g as S,h as C,i as w,j as T,k as E,l as D,m as O,n as k,o as A,p as j,r as M,s as N,u as P,v as F,w as I,x as L,y as R,z}from"./adapters-CGnQfVqg.mjs";export{F as ArtplayerAdapter,R as ArtplayerMetadata,v as ArtplayerTransformer,T as BiliCommandGrpcAdapter,c as BiliCommandGrpcMetadata,i as BiliCommonBuilder,r as BiliCommonModeRec,u as BiliCommonParser,E as BiliGrpcAdapter,e as BiliGrpcMetadata,I as BiliUpAdapter,m as BiliUpMetadata,L as BiliXmlAdapter,p as BiliXmlMetadata,n as BiliXmlTransformerConfigurator,o as DanuniJsonAdapter,s as DanuniJsonMetadata,f as DanuniJsonTransformerConfigurator,l as DanuniPbAdapter,d as DanuniPbMetadata,a as DanuniPbTransformer,C as DdplayAdapter,S as DdplayMetadata,g as DdplayTransformer,x as DplayerAdapter,j as DplayerMetadata,O as DplayerTransformer,P as TencentAdapter,b as TencentMetadata,A as VodAdapter,N as VodMetadata,y as VodTransformer,D as VodZod,k as defineAdapter,M as defineMetadata,w as definePlugin,_ as defineTransformer,z as enumAttrsCodec,t as enumModeCodec,h as enumPoolCodec};
1
+ import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,L as s,M as c,N as l,O as u,P as d,R as f,S as p,T as m,V as h,_ as g,a as _,b as v,c as y,d as b,f as x,g as S,h as C,i as w,j as T,k as E,l as D,m as O,n as k,o as A,p as j,r as M,s as N,u as P,v as F,w as I,x as L,y as R,z}from"./adapters-BGeCLF-P.mjs";export{F as ArtplayerAdapter,R as ArtplayerMetadata,v as ArtplayerTransformer,T as BiliCommandGrpcAdapter,c as BiliCommandGrpcMetadata,i as BiliCommonBuilder,r as BiliCommonModeRec,u as BiliCommonParser,E as BiliGrpcAdapter,e as BiliGrpcMetadata,I as BiliUpAdapter,m as BiliUpMetadata,L as BiliXmlAdapter,p as BiliXmlMetadata,n as BiliXmlTransformerConfigurator,o as DanuniJsonAdapter,s as DanuniJsonMetadata,f as DanuniJsonTransformerConfigurator,l as DanuniPbAdapter,d as DanuniPbMetadata,a as DanuniPbTransformer,C as DdplayAdapter,S as DdplayMetadata,g as DdplayTransformer,x as DplayerAdapter,j as DplayerMetadata,O as DplayerTransformer,P as TencentAdapter,b as TencentMetadata,A as VodAdapter,N as VodMetadata,y as VodTransformer,D as VodZod,k as defineAdapter,M as defineMetadata,w as definePlugin,_ as defineTransformer,z as enumAttrsCodec,t as enumModeCodec,h as enumPoolCodec};
@@ -1,2 +1,2 @@
1
- import { _ as poolEnum, a as baseRelations, c as chunks, d as danmakusInsertZod, f as danmakusSelectZod, g as onConflictDoUpdateSet, h as onConflictDoUpdate, i as PoolSchema, l as chunksZod, m as modeEnum, n as DanmakusInsert, o as chunk2danmakus, p as dmAttrEnum, r as ModeSchema, s as chunk2danmakusZod, t as DMAttrSchema, u as danmakus, v as relations } from "../../schema-CwZvAYu6.cjs";
1
+ import { _ as poolEnum, a as baseRelations, c as chunks, d as danmakusInsertZod, f as danmakusSelectZod, g as onConflictDoUpdateSet, h as onConflictDoUpdate, i as PoolSchema, l as chunksZod, m as modeEnum, n as DanmakusInsert, o as chunk2danmakus, p as dmAttrEnum, r as ModeSchema, s as chunk2danmakusZod, t as DMAttrSchema, u as danmakus, v as relations } from "../../schema-DKQ-9LmS.cjs";
2
2
  export { DMAttrSchema, DanmakusInsert, ModeSchema, PoolSchema, baseRelations, chunk2danmakus, chunk2danmakusZod, chunks, chunksZod, danmakus, danmakusInsertZod, danmakusSelectZod, dmAttrEnum, modeEnum, onConflictDoUpdate, onConflictDoUpdateSet, poolEnum, relations };
@@ -1,2 +1,2 @@
1
- import { _ as poolEnum, a as baseRelations, c as chunks, d as danmakusInsertZod, f as danmakusSelectZod, g as onConflictDoUpdateSet, h as onConflictDoUpdate, i as PoolSchema, l as chunksZod, m as modeEnum, n as DanmakusInsert, o as chunk2danmakus, p as dmAttrEnum, r as ModeSchema, s as chunk2danmakusZod, t as DMAttrSchema, u as danmakus, v as relations } from "../../schema-DinusqmG.mjs";
1
+ import { _ as poolEnum, a as baseRelations, c as chunks, d as danmakusInsertZod, f as danmakusSelectZod, g as onConflictDoUpdateSet, h as onConflictDoUpdate, i as PoolSchema, l as chunksZod, m as modeEnum, n as DanmakusInsert, o as chunk2danmakus, p as dmAttrEnum, r as ModeSchema, s as chunk2danmakusZod, t as DMAttrSchema, u as danmakus, v as relations } from "../../schema-DBUuGpWR.mjs";
2
2
  export { DMAttrSchema, DanmakusInsert, ModeSchema, PoolSchema, baseRelations, chunk2danmakus, chunk2danmakusZod, chunks, chunksZod, danmakus, danmakusInsertZod, danmakusSelectZod, dmAttrEnum, modeEnum, onConflictDoUpdate, onConflictDoUpdateSet, poolEnum, relations };
@@ -1,4 +1,4 @@
1
- import { t as Extra } from "../../dm-extra-D2JR9olV.cjs";
1
+ import { t as Extra } from "../../dm-extra-DW2aFkQh.cjs";
2
2
  import { PGlite } from "@electric-sql/pglite";
3
3
  import { drizzle } from "drizzle-orm/pglite";
4
4
 
@@ -1,4 +1,4 @@
1
- import { t as Extra } from "../../dm-extra-D2JR9olV.mjs";
1
+ import { t as Extra } from "../../dm-extra-DW2aFkQh.mjs";
2
2
  import { PGlite } from "@electric-sql/pglite";
3
3
  import { drizzle } from "drizzle-orm/pglite";
4
4
 
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../main-drizzle-WzEKTK8J.cjs");exports.InitedUniDB=e.t,exports.UniChunk=e.n,exports.UniDB=e.r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../main-drizzle-DYtV1ClN.cjs");exports.InitedUniDB=e.t,exports.UniChunk=e.n,exports.UniDB=e.r;
@@ -1,7 +1,7 @@
1
- import { Et as __exportAll, St as DMIDGenerator, Tt as Promisable, X as InitedUniDB$1, a as TransformerInput, et as UniChunk$1, i as Transformer, nt as baseClassTrans$1, q as AdapterStore, r as Plugin, tt as UniDB$1, wt as Asyncify } from "../../index-BM23CK6w.cjs";
1
+ import { Et as __exportAll, St as DMIDGenerator, Tt as Promisable, X as InitedUniDB$1, a as TransformerInput, et as UniChunk$1, i as Transformer, nt as baseClassTrans$1, q as AdapterStore, r as Plugin, tt as UniDB$1, wt as Asyncify } from "../../index-VhG0LiL2.cjs";
2
2
  import { t as Simplify } from "../../simplify-d7VEIjlJ.cjs";
3
- import { t as Extra } from "../../dm-extra-D2JR9olV.cjs";
4
- import { l as chunksZod, n as DanmakusInsert } from "../../schema-CwZvAYu6.cjs";
3
+ import { t as Extra } from "../../dm-extra-DW2aFkQh.cjs";
4
+ import { l as chunksZod, n as DanmakusInsert } from "../../schema-DKQ-9LmS.cjs";
5
5
  import { z } from "zod";
6
6
 
7
7
  //#region src/core/main-drizzle.d.ts
@@ -1,7 +1,7 @@
1
- import { St as DMIDGenerator, Tt as Promisable, X as InitedUniDB$1, a as TransformerInput, et as UniChunk$1, i as Transformer, nt as baseClassTrans$1, q as AdapterStore, r as Plugin, tt as UniDB$1, wt as Asyncify } from "../../index-DqnaW_ei.mjs";
1
+ import { St as DMIDGenerator, Tt as Promisable, X as InitedUniDB$1, a as TransformerInput, et as UniChunk$1, i as Transformer, nt as baseClassTrans$1, q as AdapterStore, r as Plugin, tt as UniDB$1, wt as Asyncify } from "../../index-DGPhFGo_.mjs";
2
2
  import { t as Simplify } from "../../simplify-d7VEIjlJ.mjs";
3
- import { t as Extra } from "../../dm-extra-D2JR9olV.mjs";
4
- import { l as chunksZod, n as DanmakusInsert } from "../../schema-DinusqmG.mjs";
3
+ import { t as Extra } from "../../dm-extra-DW2aFkQh.mjs";
4
+ import { l as chunksZod, n as DanmakusInsert } from "../../schema-DBUuGpWR.mjs";
5
5
  import { z } from "zod";
6
6
 
7
7
  //#region src/core/main-drizzle.d.ts
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"../../main-drizzle-B8Rn_s5D.mjs";export{n as InitedUniDB,e as UniChunk,t as UniDB};
1
+ import{n as e,r as t,t as n}from"../../main-drizzle-t2QIMdOt.mjs";export{n as InitedUniDB,e as UniChunk,t as UniDB};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../main-pure-2gcLxO9T.cjs");exports.InitedUniDB=e.t,exports.UniChunk=e.n,exports.UniDB=e.r,exports.initNewDb=e.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../main-pure-B56SDMo6.cjs");exports.InitedUniDB=e.t,exports.UniChunk=e.n,exports.UniDB=e.r,exports.initNewDb=e.i;
@@ -1,2 +1,2 @@
1
- import { i as initNewDb, n as UniChunk, r as UniDB, t as InitedUniDB } from "../../main-pure-BpusnMEi.cjs";
1
+ import { i as initNewDb, n as UniChunk, r as UniDB, t as InitedUniDB } from "../../main-pure-BXT58v5N.cjs";
2
2
  export { InitedUniDB, UniChunk, UniDB, initNewDb };
@@ -1,2 +1,2 @@
1
- import { i as initNewDb, n as UniChunk, r as UniDB, t as InitedUniDB } from "../../main-pure-NLby0fmU.mjs";
1
+ import { i as initNewDb, n as UniChunk, r as UniDB, t as InitedUniDB } from "../../main-pure-CAPzq-ue.mjs";
2
2
  export { InitedUniDB, UniChunk, UniDB, initNewDb };
@@ -1 +1 @@
1
- import{i as e,n as t,r as n,t as r}from"../../main-pure-DOADbEvZ.mjs";export{r as InitedUniDB,t as UniChunk,n as UniDB,e as initNewDb};
1
+ import{i as e,n as t,r as n,t as r}from"../../main-pure-CLnUZB7g.mjs";export{r as InitedUniDB,t as UniChunk,n as UniDB,e as initNewDb};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../main-drizzle-WzEKTK8J.cjs"),t=require("../main-pure-2gcLxO9T.cjs");Object.defineProperty(exports,"drizzle",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(exports,"pure",{enumerable:!0,get:function(){return t.a}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../main-drizzle-DYtV1ClN.cjs"),t=require("../main-pure-B56SDMo6.cjs");Object.defineProperty(exports,"drizzle",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(exports,"pure",{enumerable:!0,get:function(){return t.a}});
@@ -1,3 +1,3 @@
1
1
  import { t as main_drizzle_d_exports } from "./main/drizzle.cjs";
2
- import { a as main_pure_d_exports } from "../main-pure-BpusnMEi.cjs";
2
+ import { a as main_pure_d_exports } from "../main-pure-BXT58v5N.cjs";
3
3
  export { main_drizzle_d_exports as drizzle, main_pure_d_exports as pure };
@@ -1,3 +1,3 @@
1
1
  import { t as main_drizzle_d_exports } from "./main/drizzle.mjs";
2
- import { a as main_pure_d_exports } from "../main-pure-NLby0fmU.mjs";
2
+ import { a as main_pure_d_exports } from "../main-pure-CAPzq-ue.mjs";
3
3
  export { main_drizzle_d_exports as drizzle, main_pure_d_exports as pure };
@@ -1 +1 @@
1
- import{i as e}from"../main-drizzle-B8Rn_s5D.mjs";import{a as t}from"../main-pure-DOADbEvZ.mjs";export{e as drizzle,t as pure};
1
+ import{i as e}from"../main-drizzle-t2QIMdOt.mjs";import{a as t}from"../main-pure-CLnUZB7g.mjs";export{e as drizzle,t as pure};
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-DWNI8pZO.cjs");let t=require("@noble/hashes/sha3.js"),n=require("json-bigint");n=e.n(n,1);let r=require("@noble/hashes/utils.js"),i=require("zod");const a=(0,n.default)({useNativeBigInt:!0}),o=(e,n=8)=>{let i=(0,r.utf8ToBytes)([e.SOID,e.progress,e.mode,e.fontsize,e.color,e.senderID,e.content,e.ctime.toISOString(),e.weight,e.pool,e.attr.toSorted().join(`,`),e.platform??null,a.stringify(e.extra)].join(`|`));return(0,r.bytesToHex)(t.sha3_256.create().update(i).digest()).slice(0,n)};var s=`@dan-uni/dan-any`,c=`2.3.1`;let l=function(e){return e.Bangumi=`bgm`,e.TMDB=`tmdb`,e}({});const u=Object.values(l);let d=function(e){return e.Acfun=`acfun`,e.Baha=`baha`,e.Bilibili=`bili`,e.BilibiliGlobal=`bglobal`,e.Iqiyi=`iqiyi`,e.Tencent=`tencent`,e.Youku=`youku`,e}({});const f=Object.values(d);let p=function(e){return e.DanDanPlay=`ddplay`,e.TuCao=`tucao`,e}({});const m=Object.values(p),h=[...f,...m],g=[...u,...h],_=i.z.templateLiteral([i.z.string(),`@`,i.z.string()]);var v=class e{id;domain;constructor(e,t){this.id=e,this.domain=t}static validateString(e){return _.safeParse(e).success}static fromStringSafe(e){return this.fromString(_.parse(e))}static fromString(t){let[n,r]=t.split(`@`);return new e(n,r)}toString(){return`${this.id}@${this.domain}`}static fromNull(t){return new e(t===`runtime`?`runtime`:`anonymous`,t||`danuni`)}static fromBili({cid:t,mid:n,midHash:r}){return t?new e(t.toString(),`bili`):n?new e(n.toString(),`bili`):r?new e(r,`bili`):this.fromNull(`bili`)}static fromUnknown(t,n){return t?new e(t,n):this.fromNull(n)}};let y=function(e){return e[e.Normal=0]=`Normal`,e[e.Bottom=1]=`Bottom`,e[e.Top=2]=`Top`,e[e.Reverse=3]=`Reverse`,e[e.Ext=4]=`Ext`,e}({}),b=function(e){return e[e.Def=0]=`Def`,e[e.Sub=1]=`Sub`,e[e.Adv=2]=`Adv`,e[e.Ix=3]=`Ix`,e}({}),x=function(e){return e.Protect=`Protect`,e.FromLive=`FromLive`,e.HighLike=`HighLike`,e.Compatible=`Compatible`,e.Reported=`Reported`,e.Unchecked=`Unchecked`,e.HasEvent=`HasEvent`,e.Hide=`Hide`,e}({});const S={SOID:v.fromNull().toString(),progress:0,mode:0,fontsize:25,color:16777215,senderID:v.fromNull().toString(),content:``,weight:0,pool:0,attr:[],platform:null,extra:null},C={meassage:`Converted by DanUni!`,version:`JS/TS ${s} (v${c})`};var w=e.t({DMAttr:()=>x,DanUniConvertTipTemplate:()=>C,InitedUniDB:()=>E,Modes:()=>y,PlatformDanmakuOnlySource:()=>p,PlatformDanmakuOnlySources:()=>m,PlatformDanmakuSources:()=>h,PlatformInfoSource:()=>l,PlatformInfoSources:()=>u,PlatformSources:()=>g,PlatformVideoSource:()=>d,PlatformVideoSources:()=>f,Pools:()=>b,UniChunk:()=>D,UniDB:()=>T,UniID:()=>v,createDMID:()=>o,defaultUniDM:()=>S}),T=class{$db;DMIDGenerator;__isUniDB=!0;static[Symbol.hasInstance](e){return e?.__isUniDB===!0}constructor(e,t=o){this.$db=e,this.DMIDGenerator=t}},E=class extends T{$db;DMIDGenerator;__isInitedUniDB=!0;static[Symbol.hasInstance](e){return e?.__isInitedUniDB===!0}constructor(e,t=o){super(e,t),this.$db=e,this.DMIDGenerator=t}},D=class{$UniDB;id;__isUniChunk=!0;static[Symbol.hasInstance](e){return e?.__isUniChunk===!0}constructor(e,t){this.$UniDB=e,this.id=t}static makeChunk(e,t){return e instanceof E?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(e,t){throw Error(`应当调用相应环境的实现`)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}};Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return o}});
1
+ const e=require("./rolldown-runtime-DWNI8pZO.cjs");let t=require("@noble/hashes/sha3.js"),n=require("json-bigint");n=e.n(n,1);let r=require("@noble/hashes/utils.js"),i=require("zod");const a=(0,n.default)({useNativeBigInt:!0}),o=(e,n=8)=>{let i=(0,r.utf8ToBytes)([e.SOID,e.progress,e.mode,e.fontsize,e.color,e.senderID,e.content,e.ctime.toISOString(),e.weight,e.pool,e.attr.toSorted().join(`,`),e.platform??null,a.stringify(e.extra)].join(`|`));return(0,r.bytesToHex)(t.sha3_256.create().update(i).digest()).slice(0,n)};var s=`@dan-uni/dan-any`,c=`2.3.2`;let l=function(e){return e.Bangumi=`bgm`,e.TMDB=`tmdb`,e}({});const u=Object.values(l);let d=function(e){return e.Acfun=`acfun`,e.Baha=`baha`,e.Bilibili=`bili`,e.BilibiliGlobal=`bglobal`,e.Iqiyi=`iqiyi`,e.Tencent=`tencent`,e.Youku=`youku`,e}({});const f=Object.values(d);let p=function(e){return e.DanDanPlay=`ddplay`,e.TuCao=`tucao`,e}({});const m=Object.values(p),h=[...f,...m],g=[...u,...h],_=i.z.templateLiteral([i.z.string(),`@`,i.z.string()]);var v=class e{id;domain;constructor(e,t){this.id=e,this.domain=t}static validateString(e){return _.safeParse(e).success}static fromStringSafe(e){return this.fromString(_.parse(e))}static fromString(t){let[n,r]=t.split(`@`);return new e(n,r)}toString(){return`${this.id}@${this.domain}`}static fromNull(t){return new e(t===`runtime`?`runtime`:`anonymous`,t||`danuni`)}static fromBili({cid:t,mid:n,midHash:r}){return t?new e(t.toString(),`bili`):n?new e(n.toString(),`bili`):r?new e(r,`bili`):this.fromNull(`bili`)}static fromUnknown(t,n){return t?new e(t,n):this.fromNull(n)}};let y=function(e){return e[e.Normal=0]=`Normal`,e[e.Bottom=1]=`Bottom`,e[e.Top=2]=`Top`,e[e.Reverse=3]=`Reverse`,e[e.Ext=4]=`Ext`,e}({}),b=function(e){return e[e.Def=0]=`Def`,e[e.Sub=1]=`Sub`,e[e.Adv=2]=`Adv`,e[e.Ix=3]=`Ix`,e}({}),x=function(e){return e.Protect=`Protect`,e.FromLive=`FromLive`,e.HighLike=`HighLike`,e.Compatible=`Compatible`,e.Reported=`Reported`,e.Unchecked=`Unchecked`,e.HasEvent=`HasEvent`,e.Hide=`Hide`,e}({});const S={SOID:v.fromNull().toString(),progress:0,mode:0,fontsize:25,color:16777215,senderID:v.fromNull().toString(),content:``,weight:0,pool:0,attr:[],platform:null,extra:null},C={meassage:`Converted by DanUni!`,version:`JS/TS ${s} (v${c})`};var w=e.t({DMAttr:()=>x,DanUniConvertTipTemplate:()=>C,InitedUniDB:()=>E,Modes:()=>y,PlatformDanmakuOnlySource:()=>p,PlatformDanmakuOnlySources:()=>m,PlatformDanmakuSources:()=>h,PlatformInfoSource:()=>l,PlatformInfoSources:()=>u,PlatformSources:()=>g,PlatformVideoSource:()=>d,PlatformVideoSources:()=>f,Pools:()=>b,UniChunk:()=>D,UniDB:()=>T,UniID:()=>v,createDMID:()=>o,defaultUniDM:()=>S}),T=class{$db;DMIDGenerator;__isUniDB=!0;static[Symbol.hasInstance](e){return e?.__isUniDB===!0}constructor(e,t=o){this.$db=e,this.DMIDGenerator=t}},E=class extends T{$db;DMIDGenerator;__isInitedUniDB=!0;static[Symbol.hasInstance](e){return e?.__isInitedUniDB===!0}constructor(e,t=o){super(e,t),this.$db=e,this.DMIDGenerator=t}},D=class{$UniDB;id;__isUniChunk=!0;static[Symbol.hasInstance](e){return e?.__isUniChunk===!0}constructor(e,t){this.$UniDB=e,this.id=t}static makeChunk(e,t){return e instanceof E?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(e,t){throw Error(`应当调用相应环境的实现`)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}};Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return o}});
@@ -1,2 +1,2 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{sha3_256 as t}from"@noble/hashes/sha3.js";import n from"json-bigint";import{bytesToHex as r,utf8ToBytes as i}from"@noble/hashes/utils.js";import{z as a}from"zod";const o=n({useNativeBigInt:!0}),s=(e,n=8)=>{let a=i([e.SOID,e.progress,e.mode,e.fontsize,e.color,e.senderID,e.content,e.ctime.toISOString(),e.weight,e.pool,e.attr.toSorted().join(`,`),e.platform??null,o.stringify(e.extra)].join(`|`));return r(t.create().update(a).digest()).slice(0,n)};var c=`@dan-uni/dan-any`,l=`2.3.1`;let u=function(e){return e.Bangumi=`bgm`,e.TMDB=`tmdb`,e}({});const d=Object.values(u);let f=function(e){return e.Acfun=`acfun`,e.Baha=`baha`,e.Bilibili=`bili`,e.BilibiliGlobal=`bglobal`,e.Iqiyi=`iqiyi`,e.Tencent=`tencent`,e.Youku=`youku`,e}({});const p=Object.values(f);let m=function(e){return e.DanDanPlay=`ddplay`,e.TuCao=`tucao`,e}({});const h=Object.values(m),g=[...p,...h],_=[...d,...g],v=a.templateLiteral([a.string(),`@`,a.string()]);var y=class e{id;domain;constructor(e,t){this.id=e,this.domain=t}static validateString(e){return v.safeParse(e).success}static fromStringSafe(e){return this.fromString(v.parse(e))}static fromString(t){let[n,r]=t.split(`@`);return new e(n,r)}toString(){return`${this.id}@${this.domain}`}static fromNull(t){return new e(t===`runtime`?`runtime`:`anonymous`,t||`danuni`)}static fromBili({cid:t,mid:n,midHash:r}){return t?new e(t.toString(),`bili`):n?new e(n.toString(),`bili`):r?new e(r,`bili`):this.fromNull(`bili`)}static fromUnknown(t,n){return t?new e(t,n):this.fromNull(n)}};let b=function(e){return e[e.Normal=0]=`Normal`,e[e.Bottom=1]=`Bottom`,e[e.Top=2]=`Top`,e[e.Reverse=3]=`Reverse`,e[e.Ext=4]=`Ext`,e}({}),x=function(e){return e[e.Def=0]=`Def`,e[e.Sub=1]=`Sub`,e[e.Adv=2]=`Adv`,e[e.Ix=3]=`Ix`,e}({}),S=function(e){return e.Protect=`Protect`,e.FromLive=`FromLive`,e.HighLike=`HighLike`,e.Compatible=`Compatible`,e.Reported=`Reported`,e.Unchecked=`Unchecked`,e.HasEvent=`HasEvent`,e.Hide=`Hide`,e}({});const C={SOID:y.fromNull().toString(),progress:0,mode:0,fontsize:25,color:16777215,senderID:y.fromNull().toString(),content:``,weight:0,pool:0,attr:[],platform:null,extra:null},w={meassage:`Converted by DanUni!`,version:`JS/TS ${c} (v${l})`};var T=e({DMAttr:()=>S,DanUniConvertTipTemplate:()=>w,InitedUniDB:()=>D,Modes:()=>b,PlatformDanmakuOnlySource:()=>m,PlatformDanmakuOnlySources:()=>h,PlatformDanmakuSources:()=>g,PlatformInfoSource:()=>u,PlatformInfoSources:()=>d,PlatformSources:()=>_,PlatformVideoSource:()=>f,PlatformVideoSources:()=>p,Pools:()=>x,UniChunk:()=>O,UniDB:()=>E,UniID:()=>y,createDMID:()=>s,defaultUniDM:()=>C}),E=class{$db;DMIDGenerator;__isUniDB=!0;static[Symbol.hasInstance](e){return e?.__isUniDB===!0}constructor(e,t=s){this.$db=e,this.DMIDGenerator=t}},D=class extends E{$db;DMIDGenerator;__isInitedUniDB=!0;static[Symbol.hasInstance](e){return e?.__isInitedUniDB===!0}constructor(e,t=s){super(e,t),this.$db=e,this.DMIDGenerator=t}},O=class{$UniDB;id;__isUniChunk=!0;static[Symbol.hasInstance](e){return e?.__isUniChunk===!0}constructor(e,t){this.$UniDB=e,this.id=t}static makeChunk(e,t){return e instanceof D?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(e,t){throw Error(`应当调用相应环境的实现`)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}};export{f as _,S as a,o as b,x as c,m as d,h as f,_ as g,d as h,T as i,C as l,u as m,O as n,w as o,g as p,E as r,b as s,D as t,y as u,p as v,s as y};
2
- //# sourceMappingURL=core-CKF1H7Si.mjs.map
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{sha3_256 as t}from"@noble/hashes/sha3.js";import n from"json-bigint";import{bytesToHex as r,utf8ToBytes as i}from"@noble/hashes/utils.js";import{z as a}from"zod";const o=n({useNativeBigInt:!0}),s=(e,n=8)=>{let a=i([e.SOID,e.progress,e.mode,e.fontsize,e.color,e.senderID,e.content,e.ctime.toISOString(),e.weight,e.pool,e.attr.toSorted().join(`,`),e.platform??null,o.stringify(e.extra)].join(`|`));return r(t.create().update(a).digest()).slice(0,n)};var c=`@dan-uni/dan-any`,l=`2.3.2`;let u=function(e){return e.Bangumi=`bgm`,e.TMDB=`tmdb`,e}({});const d=Object.values(u);let f=function(e){return e.Acfun=`acfun`,e.Baha=`baha`,e.Bilibili=`bili`,e.BilibiliGlobal=`bglobal`,e.Iqiyi=`iqiyi`,e.Tencent=`tencent`,e.Youku=`youku`,e}({});const p=Object.values(f);let m=function(e){return e.DanDanPlay=`ddplay`,e.TuCao=`tucao`,e}({});const h=Object.values(m),g=[...p,...h],_=[...d,...g],v=a.templateLiteral([a.string(),`@`,a.string()]);var y=class e{id;domain;constructor(e,t){this.id=e,this.domain=t}static validateString(e){return v.safeParse(e).success}static fromStringSafe(e){return this.fromString(v.parse(e))}static fromString(t){let[n,r]=t.split(`@`);return new e(n,r)}toString(){return`${this.id}@${this.domain}`}static fromNull(t){return new e(t===`runtime`?`runtime`:`anonymous`,t||`danuni`)}static fromBili({cid:t,mid:n,midHash:r}){return t?new e(t.toString(),`bili`):n?new e(n.toString(),`bili`):r?new e(r,`bili`):this.fromNull(`bili`)}static fromUnknown(t,n){return t?new e(t,n):this.fromNull(n)}};let b=function(e){return e[e.Normal=0]=`Normal`,e[e.Bottom=1]=`Bottom`,e[e.Top=2]=`Top`,e[e.Reverse=3]=`Reverse`,e[e.Ext=4]=`Ext`,e}({}),x=function(e){return e[e.Def=0]=`Def`,e[e.Sub=1]=`Sub`,e[e.Adv=2]=`Adv`,e[e.Ix=3]=`Ix`,e}({}),S=function(e){return e.Protect=`Protect`,e.FromLive=`FromLive`,e.HighLike=`HighLike`,e.Compatible=`Compatible`,e.Reported=`Reported`,e.Unchecked=`Unchecked`,e.HasEvent=`HasEvent`,e.Hide=`Hide`,e}({});const C={SOID:y.fromNull().toString(),progress:0,mode:0,fontsize:25,color:16777215,senderID:y.fromNull().toString(),content:``,weight:0,pool:0,attr:[],platform:null,extra:null},w={meassage:`Converted by DanUni!`,version:`JS/TS ${c} (v${l})`};var T=e({DMAttr:()=>S,DanUniConvertTipTemplate:()=>w,InitedUniDB:()=>D,Modes:()=>b,PlatformDanmakuOnlySource:()=>m,PlatformDanmakuOnlySources:()=>h,PlatformDanmakuSources:()=>g,PlatformInfoSource:()=>u,PlatformInfoSources:()=>d,PlatformSources:()=>_,PlatformVideoSource:()=>f,PlatformVideoSources:()=>p,Pools:()=>x,UniChunk:()=>O,UniDB:()=>E,UniID:()=>y,createDMID:()=>s,defaultUniDM:()=>C}),E=class{$db;DMIDGenerator;__isUniDB=!0;static[Symbol.hasInstance](e){return e?.__isUniDB===!0}constructor(e,t=s){this.$db=e,this.DMIDGenerator=t}},D=class extends E{$db;DMIDGenerator;__isInitedUniDB=!0;static[Symbol.hasInstance](e){return e?.__isInitedUniDB===!0}constructor(e,t=s){super(e,t),this.$db=e,this.DMIDGenerator=t}},O=class{$UniDB;id;__isUniChunk=!0;static[Symbol.hasInstance](e){return e?.__isUniChunk===!0}constructor(e,t){this.$UniDB=e,this.id=t}static makeChunk(e,t){return e instanceof D?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(e,t){throw Error(`应当调用相应环境的实现`)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}};export{f as _,S as a,o as b,x as c,m as d,h as f,_ as g,d as h,T as i,C as l,u as m,O as n,w as o,g as p,E as r,b as s,D as t,y as u,p as v,s as y};
2
+ //# sourceMappingURL=core-CMk2Mwxi.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-CKF1H7Si.mjs","names":["JSON","JSON","pkg.name","pkg.version"],"sources":["../src/utils/bigint.ts","../src/core/id.ts","../package.json","../src/core/platform.ts","../src/core/uni-id.ts","../src/core/dm.ts","../src/core/index.ts"],"sourcesContent":["import JSONbig from \"json-bigint\";\n\nexport const JSON = JSONbig({\n useNativeBigInt: true,\n});\n","import { sha3_256 } from \"@noble/hashes/sha3.js\";\nimport { JSON } from \"@/utils/bigint.ts\";\nimport { bytesToHex, utf8ToBytes } from \"@noble/hashes/utils.js\";\nimport type { UDanmaku } from \"./index.ts\";\n\ntype DMIDGeneratorDanmaku = Omit<UDanmaku, \"DMID\">;\nexport type DMIDGenerator = (dan: DMIDGeneratorDanmaku, slice?: number) => string;\n\nexport const createDMID: DMIDGenerator = (dan: DMIDGeneratorDanmaku, slice = 8) => {\n const raw = [\n dan.SOID, //\n dan.progress,\n dan.mode,\n dan.fontsize, //\n dan.color, //\n dan.senderID,\n dan.content,\n dan.ctime.toISOString(),\n dan.weight, //\n dan.pool,\n dan.attr.toSorted().join(\",\"), //\n dan.platform ?? null,\n JSON.stringify(dan.extra),\n ].join(\"|\");\n const data = utf8ToBytes(raw);\n const digest = sha3_256.create().update(data).digest();\n const str = bytesToHex(digest);\n return str.slice(0, slice);\n};\n","","export enum PlatformInfoSource {\n Bangumi = \"bgm\",\n TMDB = \"tmdb\",\n}\nexport const PlatformInfoSources = Object.values(PlatformInfoSource);\n\nexport enum PlatformVideoSource {\n Acfun = \"acfun\",\n Baha = \"baha\",\n Bilibili = \"bili\",\n BilibiliGlobal = \"bglobal\",\n Iqiyi = \"iqiyi\",\n Tencent = \"tencent\",\n Youku = \"youku\",\n}\nexport const PlatformVideoSources = Object.values(PlatformVideoSource);\n\nexport enum PlatformDanmakuOnlySource {\n DanDanPlay = \"ddplay\",\n TuCao = \"tucao\",\n}\nexport const PlatformDanmakuOnlySources = Object.values(PlatformDanmakuOnlySource);\n\nexport type PlatformDanmakuSource = PlatformVideoSource | PlatformDanmakuOnlySource;\nexport const PlatformDanmakuSources = [...PlatformVideoSources, ...PlatformDanmakuOnlySources];\n\nexport type PlatformSource = PlatformInfoSource | PlatformDanmakuSource;\nexport const PlatformSources = [...PlatformInfoSources, ...PlatformDanmakuSources];\n","import { z } from \"zod\";\nimport { type PlatformSource, PlatformVideoSource } from \"./platform.ts\";\n\nconst UniIDStrSchema = z.templateLiteral([z.string(), \"@\", z.string()]);\ntype UniIDStr = z.infer<typeof UniIDStrSchema>;\n\nexport class UniID {\n constructor(\n /**\n * @description 每个domain下应为唯一值\n * @example danuni: 推荐为UUID/ULID/NanoID\n * bili: midHash hash算法为CRC32\n */\n public id: string,\n /**\n * @description 弹幕首次出现的平台域名(注意可以为如localhost等根域名)\n * ### 预设\n * - `{any}.danuni` (若使用IP或无域名,请使用该domain,防止隐私泄露/无法解析)\n * #### 注意\n * - `any`值建议为UUID/ULID/NanoID以防同步错误\n * ### 非DanUni弹幕服务建议使用预设,或自行填写域名\n */\n public domain: PlatformSource | string,\n ) {}\n static validateString(str: string) {\n return UniIDStrSchema.safeParse(str).success;\n }\n static fromStringSafe(str: string) {\n return this.fromString(UniIDStrSchema.parse(str));\n }\n static fromString(str: UniIDStr) {\n const [id, domain] = str.split(\"@\");\n return new UniID(id, domain);\n }\n toString(): UniIDStr {\n return `${this.id}@${this.domain}`;\n }\n static fromNull(domain?: PlatformSource | string) {\n return new UniID(domain === \"runtime\" ? \"runtime\" : \"anonymous\", domain || \"danuni\");\n }\n static fromBili({\n cid,\n mid,\n midHash,\n }: {\n cid?: number | bigint | string;\n mid?: number | bigint;\n midHash?: string;\n }) {\n if (cid) return new UniID(cid.toString(), PlatformVideoSource.Bilibili);\n else if (mid) return new UniID(mid.toString(), PlatformVideoSource.Bilibili);\n else if (midHash) return new UniID(midHash, PlatformVideoSource.Bilibili);\n else return this.fromNull(PlatformVideoSource.Bilibili);\n }\n static fromUnknown(\n id: string,\n /**\n * 可使用预设\n */\n domain: PlatformSource | string,\n ) {\n if (id) return new UniID(id, domain);\n else return this.fromNull(domain);\n }\n}\n","import type { PlatformDanmakuSource } from \"./platform.ts\";\n\nimport pkg from \"../../package.json\" with { type: \"json\" };\nimport { UniID } from \"./uni-id.ts\";\nimport type { Extra } from \"./dm-extra.ts\";\n\nexport enum Modes {\n Normal,\n Bottom,\n Top,\n Reverse, //逆向弹幕\n Ext, //需要读取extra的弹幕,用于兼容bili等复杂弹幕\n}\nexport enum Pools {\n Def, //默认池\n Sub, //重要池,建议强制加载,含字幕、科普、空降等\n Adv, //高级弹幕专用池,均需读取extra\n Ix, //互动池\n}\nexport enum DMAttr {\n Protect = \"Protect\",\n FromLive = \"FromLive\",\n HighLike = \"HighLike\",\n Compatible = \"Compatible\", // 由dan-any进行过兼容处理的弹幕,可能丢失部分信息\n Reported = \"Reported\", // 在DanUni上被多人举报过的弹幕\n Unchecked = \"Unchecked\", // 在DanUni上未被审核过的弹幕\n HasEvent = \"HasEvent\", // 该弹幕当前在DanUni上存在事件(如点赞/举报等)\n Hide = \"Hide\", // 由于其它原因需要隐藏的弹幕(建议在server端不返回该类弹幕)\n}\n\nexport interface UniDMObj {\n SOID: string;\n progress: number; // int32, ms\n mode: Modes;\n fontsize: number;\n color: number;\n senderID: string;\n content: string;\n ctime: Date;\n weight: number;\n pool: Pools;\n attr: DMAttr[];\n platform: PlatformDanmakuSource | string | null;\n extra: Extra | null;\n // extraStr: string;\n DMID: string;\n}\n\nexport const defaultUniDM = {\n SOID: UniID.fromNull().toString(),\n progress: 0,\n mode: Modes.Normal,\n fontsize: 25,\n color: 0xffffff,\n senderID: UniID.fromNull().toString(),\n content: \"\",\n // ctime: new Date(), // ctime 应根据实际构建时间创建\n weight: 0,\n pool: Pools.Def,\n attr: [] as DMAttr[],\n platform: null,\n extra: null,\n} as const;\n\nexport interface DanUniConvertTip {\n meassage: string;\n version: string;\n data?: string;\n}\n\nexport const DanUniConvertTipTemplate: DanUniConvertTip = {\n meassage: \"Converted by DanUni!\",\n version: `JS/TS ${pkg.name} (v${pkg.version})`,\n};\n","import type { Plugin, Transformer, TransformerInput } from \"@/adapters/index.ts\";\nimport type { Asyncify, Promisable } from \"type-fest\";\nimport { createDMID, type DMIDGenerator } from \"./id.ts\";\nimport type { Extra } from \"./dm-extra.ts\";\n\nexport type AdapterStore = (udb: InitedUniDB, uchunk?: UniChunk) => Promisable<UniChunk>;\n\nexport interface UChunk {\n fromConverted: boolean;\n id: number;\n tmp: boolean;\n}\nexport interface UDanmaku {\n DMID: string;\n SOID: string;\n attr: (\n | \"Compatible\"\n | \"FromLive\"\n | \"HasEvent\"\n | \"Hide\"\n | \"HighLike\"\n | \"Protect\"\n | \"Reported\"\n | \"Unchecked\"\n )[];\n color: number;\n content: string;\n ctime: Date;\n extra: Extra | null;\n fontsize: number;\n mode: \"Bottom\" | \"Ext\" | \"Normal\" | \"Reverse\" | \"Top\";\n platform: string | null;\n pool: \"Adv\" | \"Def\" | \"Ix\" | \"Sub\";\n progress: number;\n senderID: string;\n weight: number;\n}\nexport interface UChunk2Danmaku {\n DMID: string;\n chunkID: number;\n id: bigint;\n}\n\nexport interface ChunksInsert {\n id?: number | undefined;\n fromConverted?: boolean | undefined;\n tmp?: boolean | undefined;\n}\nexport interface DanmakusInsert {\n SOID: string;\n DMID: string;\n progress: number;\n mode: \"Bottom\" | \"Ext\" | \"Normal\" | \"Reverse\" | \"Top\";\n fontsize: number;\n color: number;\n senderID: string;\n content: string;\n ctime: Date;\n weight: number;\n pool: \"Adv\" | \"Def\" | \"Ix\" | \"Sub\";\n attr: (\n | \"Compatible\"\n | \"FromLive\"\n | \"HasEvent\"\n | \"Hide\"\n | \"HighLike\"\n | \"Protect\"\n | \"Reported\"\n | \"Unchecked\"\n )[];\n platform?: string | null | undefined;\n extra: Extra | null;\n}\n\nexport type baseClassTrans<T, ImplUniDB, ImplInitedUniDB, ImplUniChunk> = baseUniChunkTransX<\n baseInitedUniDBTransX<baseUniDBTransX<T, ImplUniDB>, ImplInitedUniDB>,\n ImplUniChunk\n>;\n\ntype baseUniDBTrans<T, ImplClass> = T extends UniDB ? ImplClass : T;\ntype baseUniDBTransPromise<T, ImplClass> = T extends Promise<UniDB> ? Promise<ImplClass> : T;\ntype baseUniDBTransX<T, ImplClass> = baseUniDBTransPromise<baseUniDBTrans<T, ImplClass>, ImplClass>;\nexport abstract class UniDB {\n __isUniDB = true;\n static [Symbol.hasInstance](obj: any) {\n return obj?.__isUniDB === true;\n }\n constructor(\n public $db: any,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {}\n abstract init(dump?: unknown): Promisable<InitedUniDB>;\n abstract close(): Promisable<void>;\n}\n\ntype baseInitedUniDBTrans<T, ImplClass> = T extends InitedUniDB ? ImplClass : T;\ntype baseInitedUniDBTransPromise<T, ImplClass> =\n T extends Promise<InitedUniDB> ? Promise<ImplClass> : T;\ntype baseInitedUniDBTransX<T, ImplClass> = baseInitedUniDBTransPromise<\n baseInitedUniDBTrans<T, ImplClass>,\n ImplClass\n>;\nexport abstract class InitedUniDB extends UniDB {\n __isInitedUniDB = true;\n static [Symbol.hasInstance](obj: any) {\n return obj?.__isInitedUniDB === true;\n }\n constructor(\n public $db: NonNullable<UniDB[\"$db\"]>,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {\n super($db, DMIDGenerator);\n }\n abstract dump(): Promisable<any>;\n abstract get $chunks(): Promisable<UChunk[]>;\n abstract get $danmakus(): Promisable<UDanmaku[]>;\n abstract listChunks(): Promisable<UniChunk[]>;\n abstract makeChunk(data: Omit<ChunksInsert, \"id\">): Promisable<UniChunk>;\n abstract upsertDanmakus(\n data: DanmakusInsert[] | Map<string, DanmakusInsert>,\n dedupeDMID: boolean,\n ): Promisable<void>;\n /**\n * 清理临时chunks\n */\n abstract shrink(): Promisable<void>;\n abstract import(adapterStore: AdapterStore): Promisable<UniChunk>;\n abstract export<T extends Transformer | Asyncify<Transformer>>(\n transformer: T,\n ): Promisable<ReturnType<T>>;\n}\n\ntype baseUniChunkTrans<T, ImplClass> = T extends UniChunk ? ImplClass : T;\ntype baseUniChunkTransPromise<T, ImplClass> = T extends Promise<UniChunk> ? Promise<ImplClass> : T;\ntype baseUniChunkTransX<T, ImplClass> = baseUniChunkTransPromise<\n baseUniChunkTrans<T, ImplClass>,\n ImplClass\n>;\nexport abstract class UniChunk {\n __isUniChunk = true;\n static [Symbol.hasInstance](obj: any) {\n return obj?.__isUniChunk === true;\n }\n constructor(\n public $UniDB: InitedUniDB,\n public id: number,\n ) {}\n abstract get $db(): UniDB[\"$db\"];\n static makeChunk(\n u: TransformerInput<InitedUniDB | UniChunk>,\n data: ChunksInsert,\n ): Promisable<UniChunk> {\n return u instanceof InitedUniDB ? u.makeChunk(data) : u.$UniDB.makeChunk(data);\n }\n static assign(_base: UniChunk, _chunks: UniChunk[]): Promisable<UniChunk> {\n throw new Error(\"应当调用相应环境的实现\");\n }\n /**\n * 比较两个chunk的弹幕是否相同\n * @description 可用于跨DB比较\n * @deprecated 建议调用相应环境的实现\n */\n static async compare(u1: UniChunk, u2: UniChunk) {\n const dms1 = await u1.$danmakus;\n const dms2 = await u2.$danmakus;\n if (dms1.length !== dms2.length) return false;\n const dmidSet = new Set<string>();\n for (const dm of dms1) {\n dmidSet.add(dm.DMID);\n }\n for (const dm of dms2) {\n const target = dmidSet.has(dm.DMID);\n if (!target) return false;\n if (JSON.stringify(target) !== JSON.stringify(dm)) return false;\n }\n return true;\n }\n /**\n * 获取当前chunk的数据库记录\n * @description 虽然数组仅会包含一个值,但这里保持数据库原始返回\n */\n abstract get $chunks(): Promisable<UChunk[]>;\n abstract $chunk(): Promisable<UChunk>;\n abstract get $danmakus(): Promisable<UDanmaku[]>;\n abstract get $count(): Promisable<number>;\n abstract get isDeleted(): Promisable<boolean>;\n abstract upsertDanmakus(\n data:\n | (DanmakusInsert & { DMID?: string; platform: string | null })[]\n | Map<string, DanmakusInsert & { platform: string | null }>,\n autoSetDMID?: boolean,\n dedupeDMID?: boolean,\n ): Promisable<void>;\n abstract import(adapterStore: AdapterStore): Promisable<UniChunk>;\n abstract export<T extends Transformer | Asyncify<Transformer>>(\n transformer: T,\n ): Promise<ReturnType<T>>;\n abstract plugin<T extends Plugin | Asyncify<Plugin>>(plugin: T): Promisable<ReturnType<T>>;\n abstract delete(): Promisable<void>;\n}\n\nexport * from \"./dm-extra.ts\";\nexport * from \"./dm.ts\";\nexport * from \"./id.ts\";\nexport * from \"./platform.ts\";\nexport * from \"./uni-id.ts\";\n"],"mappings":"6NAEA,MAAaA,EAAO,EAAQ,CAC1B,gBAAiB,EACnB,CAAC,ECIY,GAA6B,EAA2B,EAAQ,IAAM,CAgBjF,IAAM,EAAO,EAfD,CACV,EAAI,KACJ,EAAI,SACJ,EAAI,KACJ,EAAI,SACJ,EAAI,MACJ,EAAI,SACJ,EAAI,QACJ,EAAI,MAAM,YAAY,EACtB,EAAI,OACJ,EAAI,KACJ,EAAI,KAAK,SAAS,CAAC,CAAC,KAAK,GAAG,EAC5B,EAAI,UAAY,KAChBC,EAAK,UAAU,EAAI,KAAK,CAC1B,CAAC,CAAC,KAAK,GACoB,CAAC,EAG5B,OADY,EADG,EAAS,OAAO,CAAC,CAAC,OAAO,CAAI,CAAC,CAAC,OAClB,CACnB,CAAC,CAAC,MAAM,EAAG,CAAK,CAC3B,qCE5BA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,MACA,EAAA,KAAA,QACF,EAAA,CAAA,CAAA,EACA,MAAa,EAAsB,OAAO,OAAO,CAAkB,EAEnE,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,MAAA,QACA,EAAA,KAAA,OACA,EAAA,SAAA,OACA,EAAA,eAAA,UACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA,EACA,MAAa,EAAuB,OAAO,OAAO,CAAmB,EAErE,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,WAAA,SACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA,EACA,MAAa,EAA6B,OAAO,OAAO,CAAyB,EAGpE,EAAyB,CAAC,GAAG,EAAsB,GAAG,CAA0B,EAGhF,EAAkB,CAAC,GAAG,EAAqB,GAAG,CAAsB,ECxB3E,EAAiB,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAK,EAAE,OAAO,CAAC,CAAC,EAGtE,IAAa,EAAb,MAAa,CAAM,CAOR,GASA,OAfT,YAME,EASA,EACA,CAVO,KAAA,GAAA,EASA,KAAA,OAAA,CACN,CACH,OAAO,eAAe,EAAa,CACjC,OAAO,EAAe,UAAU,CAAG,CAAC,CAAC,OACvC,CACA,OAAO,eAAe,EAAa,CACjC,OAAO,KAAK,WAAW,EAAe,MAAM,CAAG,CAAC,CAClD,CACA,OAAO,WAAW,EAAe,CAC/B,GAAM,CAAC,EAAI,GAAU,EAAI,MAAM,GAAG,EAClC,OAAO,IAAI,EAAM,EAAI,CAAM,CAC7B,CACA,UAAqB,CACnB,MAAO,GAAG,KAAK,GAAG,GAAG,KAAK,QAC5B,CACA,OAAO,SAAS,EAAkC,CAChD,OAAO,IAAI,EAAM,IAAW,UAAY,UAAY,YAAa,GAAU,QAAQ,CACrF,CACA,OAAO,SAAS,CACd,MACA,MACA,WAKC,CAII,OAHD,EAAY,IAAI,EAAM,EAAI,SAAS,EAAA,MAA+B,EAC7D,EAAY,IAAI,EAAM,EAAI,SAAS,EAAA,MAA+B,EAClE,EAAgB,IAAI,EAAM,EAAA,MAAqC,EAC5D,KAAK,SAAA,MAAqC,CACxD,CACA,OAAO,YACL,EAIA,EACA,CAEK,OADD,EAAW,IAAI,EAAM,EAAI,CAAM,EACvB,KAAK,SAAS,CAAM,CAClC,CACF,EC1DA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,IAAA,GAAA,OACF,EAAA,CAAA,CAAA,EACY,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,GAAA,GAAA,MACF,EAAA,CAAA,CAAA,EACY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,WAAA,aACA,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,SAAA,WACA,EAAA,KAAA,QACF,EAAA,CAAA,CAAA,EAoBA,MAAa,EAAe,CAC1B,KAAM,EAAM,SAAS,CAAC,CAAC,SAAS,EAChC,SAAU,EACV,KAAA,EACA,SAAU,GACV,MAAO,SACP,SAAU,EAAM,SAAS,CAAC,CAAC,SAAS,EACpC,QAAS,GAET,OAAQ,EACR,KAAA,EACA,KAAM,CAAC,EACP,SAAU,KACV,MAAO,IACT,EAQa,EAA6C,CACxD,SAAU,uBACV,QAAS,SAASC,EAAS,KAAKC,EAAY,EAC9C,0YCSsB,EAAtB,KAA4B,CAMjB,IACA,cANT,UAAY,GACZ,OAAQ,OAAO,aAAa,EAAU,CACpC,OAAO,GAAK,YAAc,EAC5B,CACA,YACE,EACA,EAAsC,EACtC,CAFO,KAAA,IAAA,EACA,KAAA,cAAA,CACN,CAGL,EASsB,EAAtB,cAA0C,CAAM,CAMrC,IACA,cANT,gBAAkB,GAClB,OAAQ,OAAO,aAAa,EAAU,CACpC,OAAO,GAAK,kBAAoB,EAClC,CACA,YACE,EACA,EAAsC,EACtC,CACA,MAAM,EAAK,CAAa,EAHjB,KAAA,IAAA,EACA,KAAA,cAAA,CAGT,CAkBF,EAQsB,EAAtB,KAA+B,CAMpB,OACA,GANT,aAAe,GACf,OAAQ,OAAO,aAAa,EAAU,CACpC,OAAO,GAAK,eAAiB,EAC/B,CACA,YACE,EACA,EACA,CAFO,KAAA,OAAA,EACA,KAAA,GAAA,CACN,CAEH,OAAO,UACL,EACA,EACsB,CACtB,OAAO,aAAa,EAAc,EAAE,UAAU,CAAI,EAAI,EAAE,OAAO,UAAU,CAAI,CAC/E,CACA,OAAO,OAAO,EAAiB,EAA2C,CACxE,MAAU,MAAM,aAAa,CAC/B,CAMA,aAAa,QAAQ,EAAc,EAAc,CAC/C,IAAM,EAAO,MAAM,EAAG,UAChB,EAAO,MAAM,EAAG,UACtB,GAAI,EAAK,SAAW,EAAK,OAAQ,MAAO,GACxC,IAAM,EAAU,IAAI,IACpB,IAAK,IAAM,KAAM,EACf,EAAQ,IAAI,EAAG,IAAI,EAErB,IAAK,IAAM,KAAM,EAAM,CACrB,IAAM,EAAS,EAAQ,IAAI,EAAG,IAAI,EAElC,GADI,CAAC,GACD,KAAK,UAAU,CAAM,IAAM,KAAK,UAAU,CAAE,EAAG,MAAO,EAC5D,CACA,MAAO,EACT,CAuBF"}
1
+ {"version":3,"file":"core-CMk2Mwxi.mjs","names":["JSON","JSON","pkg.name","pkg.version"],"sources":["../src/utils/bigint.ts","../src/core/id.ts","../package.json","../src/core/platform.ts","../src/core/uni-id.ts","../src/core/dm.ts","../src/core/index.ts"],"sourcesContent":["import JSONbig from \"json-bigint\";\n\nexport const JSON = JSONbig({\n useNativeBigInt: true,\n});\n","import { sha3_256 } from \"@noble/hashes/sha3.js\";\nimport { JSON } from \"@/utils/bigint.ts\";\nimport { bytesToHex, utf8ToBytes } from \"@noble/hashes/utils.js\";\nimport type { UDanmaku } from \"./index.ts\";\n\ntype DMIDGeneratorDanmaku = Omit<UDanmaku, \"DMID\">;\nexport type DMIDGenerator = (dan: DMIDGeneratorDanmaku, slice?: number) => string;\n\nexport const createDMID: DMIDGenerator = (dan: DMIDGeneratorDanmaku, slice = 8) => {\n const raw = [\n dan.SOID, //\n dan.progress,\n dan.mode,\n dan.fontsize, //\n dan.color, //\n dan.senderID,\n dan.content,\n dan.ctime.toISOString(),\n dan.weight, //\n dan.pool,\n dan.attr.toSorted().join(\",\"), //\n dan.platform ?? null,\n JSON.stringify(dan.extra),\n ].join(\"|\");\n const data = utf8ToBytes(raw);\n const digest = sha3_256.create().update(data).digest();\n const str = bytesToHex(digest);\n return str.slice(0, slice);\n};\n","","export enum PlatformInfoSource {\n Bangumi = \"bgm\",\n TMDB = \"tmdb\",\n}\nexport const PlatformInfoSources = Object.values(PlatformInfoSource);\n\nexport enum PlatformVideoSource {\n Acfun = \"acfun\",\n Baha = \"baha\",\n Bilibili = \"bili\",\n BilibiliGlobal = \"bglobal\",\n Iqiyi = \"iqiyi\",\n Tencent = \"tencent\",\n Youku = \"youku\",\n}\nexport const PlatformVideoSources = Object.values(PlatformVideoSource);\n\nexport enum PlatformDanmakuOnlySource {\n DanDanPlay = \"ddplay\",\n TuCao = \"tucao\",\n}\nexport const PlatformDanmakuOnlySources = Object.values(PlatformDanmakuOnlySource);\n\nexport type PlatformDanmakuSource = PlatformVideoSource | PlatformDanmakuOnlySource;\nexport const PlatformDanmakuSources = [...PlatformVideoSources, ...PlatformDanmakuOnlySources];\n\nexport type PlatformSource = PlatformInfoSource | PlatformDanmakuSource;\nexport const PlatformSources = [...PlatformInfoSources, ...PlatformDanmakuSources];\n","import { z } from \"zod\";\nimport { type PlatformSource, PlatformVideoSource } from \"./platform.ts\";\n\nconst UniIDStrSchema = z.templateLiteral([z.string(), \"@\", z.string()]);\ntype UniIDStr = z.infer<typeof UniIDStrSchema>;\n\nexport class UniID {\n constructor(\n /**\n * @description 每个domain下应为唯一值\n * @example danuni: 推荐为UUID/ULID/NanoID\n * bili: midHash hash算法为CRC32\n */\n public id: string,\n /**\n * @description 弹幕首次出现的平台域名(注意可以为如localhost等根域名)\n * ### 预设\n * - `{any}.danuni` (若使用IP或无域名,请使用该domain,防止隐私泄露/无法解析)\n * #### 注意\n * - `any`值建议为UUID/ULID/NanoID以防同步错误\n * ### 非DanUni弹幕服务建议使用预设,或自行填写域名\n */\n public domain: PlatformSource | string,\n ) {}\n static validateString(str: string) {\n return UniIDStrSchema.safeParse(str).success;\n }\n static fromStringSafe(str: string) {\n return this.fromString(UniIDStrSchema.parse(str));\n }\n static fromString(str: UniIDStr) {\n const [id, domain] = str.split(\"@\");\n return new UniID(id, domain);\n }\n toString(): UniIDStr {\n return `${this.id}@${this.domain}`;\n }\n static fromNull(domain?: PlatformSource | string) {\n return new UniID(domain === \"runtime\" ? \"runtime\" : \"anonymous\", domain || \"danuni\");\n }\n static fromBili({\n cid,\n mid,\n midHash,\n }: {\n cid?: number | bigint | string;\n mid?: number | bigint;\n midHash?: string;\n }) {\n if (cid) return new UniID(cid.toString(), PlatformVideoSource.Bilibili);\n else if (mid) return new UniID(mid.toString(), PlatformVideoSource.Bilibili);\n else if (midHash) return new UniID(midHash, PlatformVideoSource.Bilibili);\n else return this.fromNull(PlatformVideoSource.Bilibili);\n }\n static fromUnknown(\n id: string,\n /**\n * 可使用预设\n */\n domain: PlatformSource | string,\n ) {\n if (id) return new UniID(id, domain);\n else return this.fromNull(domain);\n }\n}\n","import type { PlatformDanmakuSource } from \"./platform.ts\";\n\nimport pkg from \"../../package.json\" with { type: \"json\" };\nimport { UniID } from \"./uni-id.ts\";\nimport type { Extra } from \"./dm-extra.ts\";\n\nexport enum Modes {\n Normal,\n Bottom,\n Top,\n Reverse, //逆向弹幕\n Ext, //需要读取extra的弹幕,用于兼容bili等复杂弹幕\n}\nexport enum Pools {\n Def, //默认池\n Sub, //重要池,建议强制加载,含字幕、科普、空降等\n Adv, //高级弹幕专用池,均需读取extra\n Ix, //互动池\n}\nexport enum DMAttr {\n Protect = \"Protect\",\n FromLive = \"FromLive\",\n HighLike = \"HighLike\",\n Compatible = \"Compatible\", // 由dan-any进行过兼容处理的弹幕,可能丢失部分信息\n Reported = \"Reported\", // 在DanUni上被多人举报过的弹幕\n Unchecked = \"Unchecked\", // 在DanUni上未被审核过的弹幕\n HasEvent = \"HasEvent\", // 该弹幕当前在DanUni上存在事件(如点赞/举报等)\n Hide = \"Hide\", // 由于其它原因需要隐藏的弹幕(建议在server端不返回该类弹幕)\n}\n\nexport interface UniDMObj {\n SOID: string;\n progress: number; // int32, ms\n mode: Modes;\n fontsize: number;\n color: number;\n senderID: string;\n content: string;\n ctime: Date;\n weight: number;\n pool: Pools;\n attr: DMAttr[];\n platform: PlatformDanmakuSource | string | null;\n extra: Extra | null;\n // extraStr: string;\n DMID: string;\n}\n\nexport const defaultUniDM = {\n SOID: UniID.fromNull().toString(),\n progress: 0,\n mode: Modes.Normal,\n fontsize: 25,\n color: 0xffffff,\n senderID: UniID.fromNull().toString(),\n content: \"\",\n // ctime: new Date(), // ctime 应根据实际构建时间创建\n weight: 0,\n pool: Pools.Def,\n attr: [] as DMAttr[],\n platform: null,\n extra: null,\n} as const;\n\nexport interface DanUniConvertTip {\n meassage: string;\n version: string;\n data?: string;\n}\n\nexport const DanUniConvertTipTemplate: DanUniConvertTip = {\n meassage: \"Converted by DanUni!\",\n version: `JS/TS ${pkg.name} (v${pkg.version})`,\n};\n","import type { Plugin, Transformer, TransformerInput } from \"@/adapters/index.ts\";\nimport type { Asyncify, Promisable } from \"type-fest\";\nimport { createDMID, type DMIDGenerator } from \"./id.ts\";\nimport type { Extra } from \"./dm-extra.ts\";\n\nexport type AdapterStore = (udb: InitedUniDB, uchunk?: UniChunk) => Promisable<UniChunk>;\n\nexport interface UChunk {\n fromConverted: boolean;\n id: number;\n tmp: boolean;\n}\nexport interface UDanmaku {\n DMID: string;\n SOID: string;\n attr: (\n | \"Compatible\"\n | \"FromLive\"\n | \"HasEvent\"\n | \"Hide\"\n | \"HighLike\"\n | \"Protect\"\n | \"Reported\"\n | \"Unchecked\"\n )[];\n color: number;\n content: string;\n ctime: Date;\n extra: Extra | null;\n fontsize: number;\n mode: \"Bottom\" | \"Ext\" | \"Normal\" | \"Reverse\" | \"Top\";\n platform: string | null;\n pool: \"Adv\" | \"Def\" | \"Ix\" | \"Sub\";\n progress: number;\n senderID: string;\n weight: number;\n}\nexport interface UChunk2Danmaku {\n DMID: string;\n chunkID: number;\n id: bigint;\n}\n\nexport interface ChunksInsert {\n id?: number | undefined;\n fromConverted?: boolean | undefined;\n tmp?: boolean | undefined;\n}\nexport interface DanmakusInsert {\n SOID: string;\n DMID: string;\n progress: number;\n mode: \"Bottom\" | \"Ext\" | \"Normal\" | \"Reverse\" | \"Top\";\n fontsize: number;\n color: number;\n senderID: string;\n content: string;\n ctime: Date;\n weight: number;\n pool: \"Adv\" | \"Def\" | \"Ix\" | \"Sub\";\n attr: (\n | \"Compatible\"\n | \"FromLive\"\n | \"HasEvent\"\n | \"Hide\"\n | \"HighLike\"\n | \"Protect\"\n | \"Reported\"\n | \"Unchecked\"\n )[];\n platform?: string | null | undefined;\n extra: Extra | null;\n}\n\nexport type baseClassTrans<T, ImplUniDB, ImplInitedUniDB, ImplUniChunk> = baseUniChunkTransX<\n baseInitedUniDBTransX<baseUniDBTransX<T, ImplUniDB>, ImplInitedUniDB>,\n ImplUniChunk\n>;\n\ntype baseUniDBTrans<T, ImplClass> = T extends UniDB ? ImplClass : T;\ntype baseUniDBTransPromise<T, ImplClass> = T extends Promise<UniDB> ? Promise<ImplClass> : T;\ntype baseUniDBTransX<T, ImplClass> = baseUniDBTransPromise<baseUniDBTrans<T, ImplClass>, ImplClass>;\nexport abstract class UniDB {\n __isUniDB = true;\n static [Symbol.hasInstance](obj: any) {\n return obj?.__isUniDB === true;\n }\n constructor(\n public $db: any,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {}\n abstract init(dump?: unknown): Promisable<InitedUniDB>;\n abstract close(): Promisable<void>;\n}\n\ntype baseInitedUniDBTrans<T, ImplClass> = T extends InitedUniDB ? ImplClass : T;\ntype baseInitedUniDBTransPromise<T, ImplClass> =\n T extends Promise<InitedUniDB> ? Promise<ImplClass> : T;\ntype baseInitedUniDBTransX<T, ImplClass> = baseInitedUniDBTransPromise<\n baseInitedUniDBTrans<T, ImplClass>,\n ImplClass\n>;\nexport abstract class InitedUniDB extends UniDB {\n __isInitedUniDB = true;\n static [Symbol.hasInstance](obj: any) {\n return obj?.__isInitedUniDB === true;\n }\n constructor(\n public $db: NonNullable<UniDB[\"$db\"]>,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {\n super($db, DMIDGenerator);\n }\n abstract dump(): Promisable<any>;\n abstract get $chunks(): Promisable<UChunk[]>;\n abstract get $danmakus(): Promisable<UDanmaku[]>;\n abstract listChunks(): Promisable<UniChunk[]>;\n abstract makeChunk(data: Omit<ChunksInsert, \"id\">): Promisable<UniChunk>;\n abstract upsertDanmakus(\n data: DanmakusInsert[] | Map<string, DanmakusInsert>,\n dedupeDMID: boolean,\n ): Promisable<void>;\n /**\n * 清理临时chunks\n */\n abstract shrink(): Promisable<void>;\n abstract import(adapterStore: AdapterStore): Promisable<UniChunk>;\n abstract export<T extends Transformer | Asyncify<Transformer>>(\n transformer: T,\n ): Promisable<ReturnType<T>>;\n}\n\ntype baseUniChunkTrans<T, ImplClass> = T extends UniChunk ? ImplClass : T;\ntype baseUniChunkTransPromise<T, ImplClass> = T extends Promise<UniChunk> ? Promise<ImplClass> : T;\ntype baseUniChunkTransX<T, ImplClass> = baseUniChunkTransPromise<\n baseUniChunkTrans<T, ImplClass>,\n ImplClass\n>;\nexport abstract class UniChunk {\n __isUniChunk = true;\n static [Symbol.hasInstance](obj: any) {\n return obj?.__isUniChunk === true;\n }\n constructor(\n public $UniDB: InitedUniDB,\n public id: number,\n ) {}\n abstract get $db(): UniDB[\"$db\"];\n static makeChunk(\n u: TransformerInput<InitedUniDB | UniChunk>,\n data: ChunksInsert,\n ): Promisable<UniChunk> {\n return u instanceof InitedUniDB ? u.makeChunk(data) : u.$UniDB.makeChunk(data);\n }\n static assign(_base: UniChunk, _chunks: UniChunk[]): Promisable<UniChunk> {\n throw new Error(\"应当调用相应环境的实现\");\n }\n /**\n * 比较两个chunk的弹幕是否相同\n * @description 可用于跨DB比较\n * @deprecated 建议调用相应环境的实现\n */\n static async compare(u1: UniChunk, u2: UniChunk) {\n const dms1 = await u1.$danmakus;\n const dms2 = await u2.$danmakus;\n if (dms1.length !== dms2.length) return false;\n const dmidSet = new Set<string>();\n for (const dm of dms1) {\n dmidSet.add(dm.DMID);\n }\n for (const dm of dms2) {\n const target = dmidSet.has(dm.DMID);\n if (!target) return false;\n if (JSON.stringify(target) !== JSON.stringify(dm)) return false;\n }\n return true;\n }\n /**\n * 获取当前chunk的数据库记录\n * @description 虽然数组仅会包含一个值,但这里保持数据库原始返回\n */\n abstract get $chunks(): Promisable<UChunk[]>;\n abstract $chunk(): Promisable<UChunk>;\n abstract get $danmakus(): Promisable<UDanmaku[]>;\n abstract get $count(): Promisable<number>;\n abstract get isDeleted(): Promisable<boolean>;\n abstract upsertDanmakus(\n data:\n | (DanmakusInsert & { DMID?: string; platform: string | null })[]\n | Map<string, DanmakusInsert & { platform: string | null }>,\n autoSetDMID?: boolean,\n dedupeDMID?: boolean,\n ): Promisable<void>;\n abstract import(adapterStore: AdapterStore): Promisable<UniChunk>;\n abstract export<T extends Transformer | Asyncify<Transformer>>(\n transformer: T,\n ): Promise<ReturnType<T>>;\n abstract plugin<T extends Plugin | Asyncify<Plugin>>(plugin: T): Promisable<ReturnType<T>>;\n abstract delete(): Promisable<void>;\n}\n\nexport * from \"./dm-extra.ts\";\nexport * from \"./dm.ts\";\nexport * from \"./id.ts\";\nexport * from \"./platform.ts\";\nexport * from \"./uni-id.ts\";\n"],"mappings":"6NAEA,MAAaA,EAAO,EAAQ,CAC1B,gBAAiB,EACnB,CAAC,ECIY,GAA6B,EAA2B,EAAQ,IAAM,CAgBjF,IAAM,EAAO,EAfD,CACV,EAAI,KACJ,EAAI,SACJ,EAAI,KACJ,EAAI,SACJ,EAAI,MACJ,EAAI,SACJ,EAAI,QACJ,EAAI,MAAM,YAAY,EACtB,EAAI,OACJ,EAAI,KACJ,EAAI,KAAK,SAAS,CAAC,CAAC,KAAK,GAAG,EAC5B,EAAI,UAAY,KAChBC,EAAK,UAAU,EAAI,KAAK,CAC1B,CAAC,CAAC,KAAK,GACoB,CAAC,EAG5B,OADY,EADG,EAAS,OAAO,CAAC,CAAC,OAAO,CAAI,CAAC,CAAC,OAClB,CACnB,CAAC,CAAC,MAAM,EAAG,CAAK,CAC3B,qCE5BA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,MACA,EAAA,KAAA,QACF,EAAA,CAAA,CAAA,EACA,MAAa,EAAsB,OAAO,OAAO,CAAkB,EAEnE,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,MAAA,QACA,EAAA,KAAA,OACA,EAAA,SAAA,OACA,EAAA,eAAA,UACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA,EACA,MAAa,EAAuB,OAAO,OAAO,CAAmB,EAErE,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,WAAA,SACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA,EACA,MAAa,EAA6B,OAAO,OAAO,CAAyB,EAGpE,EAAyB,CAAC,GAAG,EAAsB,GAAG,CAA0B,EAGhF,EAAkB,CAAC,GAAG,EAAqB,GAAG,CAAsB,ECxB3E,EAAiB,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAK,EAAE,OAAO,CAAC,CAAC,EAGtE,IAAa,EAAb,MAAa,CAAM,CAOR,GASA,OAfT,YAME,EASA,EACA,CAVO,KAAA,GAAA,EASA,KAAA,OAAA,CACN,CACH,OAAO,eAAe,EAAa,CACjC,OAAO,EAAe,UAAU,CAAG,CAAC,CAAC,OACvC,CACA,OAAO,eAAe,EAAa,CACjC,OAAO,KAAK,WAAW,EAAe,MAAM,CAAG,CAAC,CAClD,CACA,OAAO,WAAW,EAAe,CAC/B,GAAM,CAAC,EAAI,GAAU,EAAI,MAAM,GAAG,EAClC,OAAO,IAAI,EAAM,EAAI,CAAM,CAC7B,CACA,UAAqB,CACnB,MAAO,GAAG,KAAK,GAAG,GAAG,KAAK,QAC5B,CACA,OAAO,SAAS,EAAkC,CAChD,OAAO,IAAI,EAAM,IAAW,UAAY,UAAY,YAAa,GAAU,QAAQ,CACrF,CACA,OAAO,SAAS,CACd,MACA,MACA,WAKC,CAII,OAHD,EAAY,IAAI,EAAM,EAAI,SAAS,EAAA,MAA+B,EAC7D,EAAY,IAAI,EAAM,EAAI,SAAS,EAAA,MAA+B,EAClE,EAAgB,IAAI,EAAM,EAAA,MAAqC,EAC5D,KAAK,SAAA,MAAqC,CACxD,CACA,OAAO,YACL,EAIA,EACA,CAEK,OADD,EAAW,IAAI,EAAM,EAAI,CAAM,EACvB,KAAK,SAAS,CAAM,CAClC,CACF,EC1DA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,IAAA,GAAA,OACF,EAAA,CAAA,CAAA,EACY,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,GAAA,GAAA,MACF,EAAA,CAAA,CAAA,EACY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,WAAA,aACA,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,SAAA,WACA,EAAA,KAAA,QACF,EAAA,CAAA,CAAA,EAoBA,MAAa,EAAe,CAC1B,KAAM,EAAM,SAAS,CAAC,CAAC,SAAS,EAChC,SAAU,EACV,KAAA,EACA,SAAU,GACV,MAAO,SACP,SAAU,EAAM,SAAS,CAAC,CAAC,SAAS,EACpC,QAAS,GAET,OAAQ,EACR,KAAA,EACA,KAAM,CAAC,EACP,SAAU,KACV,MAAO,IACT,EAQa,EAA6C,CACxD,SAAU,uBACV,QAAS,SAASC,EAAS,KAAKC,EAAY,EAC9C,0YCSsB,EAAtB,KAA4B,CAMjB,IACA,cANT,UAAY,GACZ,OAAQ,OAAO,aAAa,EAAU,CACpC,OAAO,GAAK,YAAc,EAC5B,CACA,YACE,EACA,EAAsC,EACtC,CAFO,KAAA,IAAA,EACA,KAAA,cAAA,CACN,CAGL,EASsB,EAAtB,cAA0C,CAAM,CAMrC,IACA,cANT,gBAAkB,GAClB,OAAQ,OAAO,aAAa,EAAU,CACpC,OAAO,GAAK,kBAAoB,EAClC,CACA,YACE,EACA,EAAsC,EACtC,CACA,MAAM,EAAK,CAAa,EAHjB,KAAA,IAAA,EACA,KAAA,cAAA,CAGT,CAkBF,EAQsB,EAAtB,KAA+B,CAMpB,OACA,GANT,aAAe,GACf,OAAQ,OAAO,aAAa,EAAU,CACpC,OAAO,GAAK,eAAiB,EAC/B,CACA,YACE,EACA,EACA,CAFO,KAAA,OAAA,EACA,KAAA,GAAA,CACN,CAEH,OAAO,UACL,EACA,EACsB,CACtB,OAAO,aAAa,EAAc,EAAE,UAAU,CAAI,EAAI,EAAE,OAAO,UAAU,CAAI,CAC/E,CACA,OAAO,OAAO,EAAiB,EAA2C,CACxE,MAAU,MAAM,aAAa,CAC/B,CAMA,aAAa,QAAQ,EAAc,EAAc,CAC/C,IAAM,EAAO,MAAM,EAAG,UAChB,EAAO,MAAM,EAAG,UACtB,GAAI,EAAK,SAAW,EAAK,OAAQ,MAAO,GACxC,IAAM,EAAU,IAAI,IACpB,IAAK,IAAM,KAAM,EACf,EAAQ,IAAI,EAAG,IAAI,EAErB,IAAK,IAAM,KAAM,EAAM,CACrB,IAAM,EAAS,EAAQ,IAAI,EAAG,IAAI,EAElC,GADI,CAAC,GACD,KAAK,UAAU,CAAM,IAAM,KAAK,UAAU,CAAE,EAAG,MAAO,EAC5D,CACA,MAAO,EACT,CAuBF"}
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./core-CxJrRDES.cjs");exports.DMAttr=e.a,exports.DanUniConvertTipTemplate=e.o,exports.InitedUniDB=e.t,exports.Modes=e.s,exports.PlatformDanmakuOnlySource=e.d,exports.PlatformDanmakuOnlySources=e.f,exports.PlatformDanmakuSources=e.p,exports.PlatformInfoSource=e.m,exports.PlatformInfoSources=e.h,exports.PlatformSources=e.g,exports.PlatformVideoSource=e._,exports.PlatformVideoSources=e.v,exports.Pools=e.c,exports.UniChunk=e.n,exports.UniDB=e.r,exports.UniID=e.u,exports.createDMID=e.y,exports.defaultUniDM=e.l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./core-BIxWu_32.cjs");exports.DMAttr=e.a,exports.DanUniConvertTipTemplate=e.o,exports.InitedUniDB=e.t,exports.Modes=e.s,exports.PlatformDanmakuOnlySource=e.d,exports.PlatformDanmakuOnlySources=e.f,exports.PlatformDanmakuSources=e.p,exports.PlatformInfoSource=e.m,exports.PlatformInfoSources=e.h,exports.PlatformSources=e.g,exports.PlatformVideoSource=e._,exports.PlatformVideoSources=e.v,exports.Pools=e.c,exports.UniChunk=e.n,exports.UniDB=e.r,exports.UniID=e.u,exports.createDMID=e.y,exports.defaultUniDM=e.l;
package/dist/core.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as UDanmaku, Ct as createDMID, J as ChunksInsert, Q as UChunk2Danmaku, St as DMIDGenerator, X as InitedUniDB, Y as DanmakusInsert, Z as UChunk, _t as PlatformInfoSources, at as DMAttr, bt as PlatformVideoSource, ct as Modes, dt as defaultUniDM, et as UniChunk, ft as PlatformDanmakuOnlySource, gt as PlatformInfoSource, ht as PlatformDanmakuSources, it as UniID, lt as Pools, mt as PlatformDanmakuSource, nt as baseClassTrans, ot as DanUniConvertTip, pt as PlatformDanmakuOnlySources, q as AdapterStore, st as DanUniConvertTipTemplate, tt as UniDB, ut as UniDMObj, vt as PlatformSource, xt as PlatformVideoSources, yt as PlatformSources } from "./index-BM23CK6w.cjs";
2
- import { a as ExtraDanUni, c as ExtraDanUniRaw, i as ExtraBiliUp, l as ExtraDdPlay, n as ExtraArtplayer, o as ExtraDanUniColor, r as ExtraBili, s as ExtraDanUniMerge, t as Extra, u as ExtraTencent } from "./dm-extra-D2JR9olV.cjs";
1
+ import { $ as UDanmaku, Ct as createDMID, J as ChunksInsert, Q as UChunk2Danmaku, St as DMIDGenerator, X as InitedUniDB, Y as DanmakusInsert, Z as UChunk, _t as PlatformInfoSources, at as DMAttr, bt as PlatformVideoSource, ct as Modes, dt as defaultUniDM, et as UniChunk, ft as PlatformDanmakuOnlySource, gt as PlatformInfoSource, ht as PlatformDanmakuSources, it as UniID, lt as Pools, mt as PlatformDanmakuSource, nt as baseClassTrans, ot as DanUniConvertTip, pt as PlatformDanmakuOnlySources, q as AdapterStore, st as DanUniConvertTipTemplate, tt as UniDB, ut as UniDMObj, vt as PlatformSource, xt as PlatformVideoSources, yt as PlatformSources } from "./index-VhG0LiL2.cjs";
2
+ import { a as ExtraDanUni, c as ExtraDanUniRaw, i as ExtraBiliUp, l as ExtraDdPlay, n as ExtraArtplayer, o as ExtraDanUniColor, r as ExtraBili, s as ExtraDanUniMerge, t as Extra, u as ExtraTencent } from "./dm-extra-DW2aFkQh.cjs";
3
3
  export { AdapterStore, ChunksInsert, DMAttr, DMIDGenerator, DanUniConvertTip, DanUniConvertTipTemplate, DanmakusInsert, Extra, ExtraArtplayer, ExtraBili, ExtraBiliUp, ExtraDanUni, ExtraDanUniColor, ExtraDanUniMerge, ExtraDanUniRaw, ExtraDdPlay, ExtraTencent, InitedUniDB, Modes, PlatformDanmakuOnlySource, PlatformDanmakuOnlySources, PlatformDanmakuSource, PlatformDanmakuSources, PlatformInfoSource, PlatformInfoSources, PlatformSource, PlatformSources, PlatformVideoSource, PlatformVideoSources, Pools, UChunk, UChunk2Danmaku, UDanmaku, UniChunk, UniDB, UniDMObj, UniID, baseClassTrans, createDMID, defaultUniDM };
package/dist/core.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as UDanmaku, Ct as createDMID, J as ChunksInsert, Q as UChunk2Danmaku, St as DMIDGenerator, X as InitedUniDB, Y as DanmakusInsert, Z as UChunk, _t as PlatformInfoSources, at as DMAttr, bt as PlatformVideoSource, ct as Modes, dt as defaultUniDM, et as UniChunk, ft as PlatformDanmakuOnlySource, gt as PlatformInfoSource, ht as PlatformDanmakuSources, it as UniID, lt as Pools, mt as PlatformDanmakuSource, nt as baseClassTrans, ot as DanUniConvertTip, pt as PlatformDanmakuOnlySources, q as AdapterStore, st as DanUniConvertTipTemplate, tt as UniDB, ut as UniDMObj, vt as PlatformSource, xt as PlatformVideoSources, yt as PlatformSources } from "./index-DqnaW_ei.mjs";
2
- import { a as ExtraDanUni, c as ExtraDanUniRaw, i as ExtraBiliUp, l as ExtraDdPlay, n as ExtraArtplayer, o as ExtraDanUniColor, r as ExtraBili, s as ExtraDanUniMerge, t as Extra, u as ExtraTencent } from "./dm-extra-D2JR9olV.mjs";
1
+ import { $ as UDanmaku, Ct as createDMID, J as ChunksInsert, Q as UChunk2Danmaku, St as DMIDGenerator, X as InitedUniDB, Y as DanmakusInsert, Z as UChunk, _t as PlatformInfoSources, at as DMAttr, bt as PlatformVideoSource, ct as Modes, dt as defaultUniDM, et as UniChunk, ft as PlatformDanmakuOnlySource, gt as PlatformInfoSource, ht as PlatformDanmakuSources, it as UniID, lt as Pools, mt as PlatformDanmakuSource, nt as baseClassTrans, ot as DanUniConvertTip, pt as PlatformDanmakuOnlySources, q as AdapterStore, st as DanUniConvertTipTemplate, tt as UniDB, ut as UniDMObj, vt as PlatformSource, xt as PlatformVideoSources, yt as PlatformSources } from "./index-DGPhFGo_.mjs";
2
+ import { a as ExtraDanUni, c as ExtraDanUniRaw, i as ExtraBiliUp, l as ExtraDdPlay, n as ExtraArtplayer, o as ExtraDanUniColor, r as ExtraBili, s as ExtraDanUniMerge, t as Extra, u as ExtraTencent } from "./dm-extra-DW2aFkQh.mjs";
3
3
  export { AdapterStore, ChunksInsert, DMAttr, DMIDGenerator, DanUniConvertTip, DanUniConvertTipTemplate, DanmakusInsert, Extra, ExtraArtplayer, ExtraBili, ExtraBiliUp, ExtraDanUni, ExtraDanUniColor, ExtraDanUniMerge, ExtraDanUniRaw, ExtraDdPlay, ExtraTencent, InitedUniDB, Modes, PlatformDanmakuOnlySource, PlatformDanmakuOnlySources, PlatformDanmakuSource, PlatformDanmakuSources, PlatformInfoSource, PlatformInfoSources, PlatformSource, PlatformSources, PlatformVideoSource, PlatformVideoSources, Pools, UChunk, UChunk2Danmaku, UDanmaku, UniChunk, UniDB, UniDMObj, UniID, baseClassTrans, createDMID, defaultUniDM };
package/dist/core.mjs CHANGED
@@ -1 +1 @@
1
- import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h,v as g,y as _}from"./core-CKF1H7Si.mjs";export{t as DMAttr,u as DanUniConvertTipTemplate,m as InitedUniDB,p as Modes,r as PlatformDanmakuOnlySource,i as PlatformDanmakuOnlySources,d as PlatformDanmakuSources,c as PlatformInfoSource,o as PlatformInfoSources,a as PlatformSources,e as PlatformVideoSource,g as PlatformVideoSources,n as Pools,l as UniChunk,f as UniDB,h as UniID,_ as createDMID,s as defaultUniDM};
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h,v as g,y as _}from"./core-CMk2Mwxi.mjs";export{t as DMAttr,u as DanUniConvertTipTemplate,m as InitedUniDB,p as Modes,r as PlatformDanmakuOnlySource,i as PlatformDanmakuOnlySources,d as PlatformDanmakuSources,c as PlatformInfoSource,o as PlatformInfoSources,a as PlatformSources,e as PlatformVideoSource,g as PlatformVideoSources,n as Pools,l as UniChunk,f as UniDB,h as UniID,_ as createDMID,s as defaultUniDM};
@@ -156,7 +156,7 @@ interface ExtraTencent {
156
156
  bubble_level?: string;
157
157
  bubble_id?: string;
158
158
  rick_type?: number;
159
- content_style: string;
159
+ content_style?: string;
160
160
  user_vip_degree?: number;
161
161
  hot_type?: number;
162
162
  gift_info?: null;
@@ -173,4 +173,4 @@ interface ExtraTencent {
173
173
  }
174
174
  //#endregion
175
175
  export { ExtraDanUni as a, ExtraDanUniRaw as c, ExtraBiliUp as i, ExtraDdPlay as l, ExtraArtplayer as n, ExtraDanUniColor as o, ExtraBili as r, ExtraDanUniMerge as s, Extra as t, ExtraTencent as u };
176
- //# sourceMappingURL=dm-extra-D2JR9olV.d.cts.map
176
+ //# sourceMappingURL=dm-extra-DW2aFkQh.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dm-extra-D2JR9olV.d.cts","names":[],"sources":["../src/utils/proto/gen/bilibili/community/service/dm/v1/dm_pb.ts","../src/core/dm-extra.ts"],"mappings":";;;;;;;;KAiXY,SAAA,GAAY,OAAO;;;;;;EAM7B,EAAA;;;;;;EAOA,GAAA;;;;;;EAOA,GAAA;;;;;;EAOA,OAAA;;;;;;EAOA,OAAA;;;;;;EAOA,QAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,IAAA;;;;;;EAOA,UAAA;;;;;;EAOA,SAAA;;;;;;EAOA,IAAA;AAAA;;;KChdG,aAAA,GAAgB,SAAuB;AAAA,UAE3B,KAAA;EACf,SAAA,GAAY,cAAA;EACZ,IAAA,GAAO,SAAA;EACP,MAAA,GAAS,WAAA;EACT,MAAA,GAAS,WAAA;EACT,OAAA,GAAU,YAAA;AAAA;AAAA,UAEK,cAAA;EACf,KAAA;EACA,MAAM;AAAA;AAAA,UAES,SAAA;EACf,IAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA,GAAU,aAAA;EACV,EAAA,GAAK,WAAW;AAAA;AAAA,UAED,WAAA;EACf,KAAA;EAIA,SAAA;EACA,UAAA;EACA,SAAA;EAMA,SAAA;AAAA;AAAA,UAEe,WAAA;EACf,KAAA,GAAQ,gBAAA;EACR,GAAA,GAAM,cAAA;EACN,KAAA,GAAQ,gBAAA;AAAA;AAAA,UAEO,gBAAA;EACf,QAAA;EACA,KAAA;EACA,OAAA;EACA,WAAA;EACA,aAAA;AAAA;AAAA,UAEe,cAAA;EACf,OAAO;AAAA;AAAA,UAEQ,gBAAA;EACf,QAAA,IAAY,KAAA,UAAe,GAAA;AAAA;AAAA,UAEZ,WAAA;EACf,GAAA;EACA,GAAG;AAAA;AAAA,UAEY,YAAA;EACf,EAAA;EACA,KAAA;EACA,QAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,SAAA;EACA,aAAA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,aAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,iBAAA;EACA,eAAA;AAAA"}
1
+ {"version":3,"file":"dm-extra-DW2aFkQh.d.cts","names":[],"sources":["../src/utils/proto/gen/bilibili/community/service/dm/v1/dm_pb.ts","../src/core/dm-extra.ts"],"mappings":";;;;;;;;KAiXY,SAAA,GAAY,OAAO;;;;;;EAM7B,EAAA;;;;;;EAOA,GAAA;;;;;;EAOA,GAAA;;;;;;EAOA,OAAA;;;;;;EAOA,OAAA;;;;;;EAOA,QAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,IAAA;;;;;;EAOA,UAAA;;;;;;EAOA,SAAA;;;;;;EAOA,IAAA;AAAA;;;KChdG,aAAA,GAAgB,SAAuB;AAAA,UAE3B,KAAA;EACf,SAAA,GAAY,cAAA;EACZ,IAAA,GAAO,SAAA;EACP,MAAA,GAAS,WAAA;EACT,MAAA,GAAS,WAAA;EACT,OAAA,GAAU,YAAA;AAAA;AAAA,UAEK,cAAA;EACf,KAAA;EACA,MAAM;AAAA;AAAA,UAES,SAAA;EACf,IAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA,GAAU,aAAA;EACV,EAAA,GAAK,WAAW;AAAA;AAAA,UAED,WAAA;EACf,KAAA;EAIA,SAAA;EACA,UAAA;EACA,SAAA;EAMA,SAAA;AAAA;AAAA,UAEe,WAAA;EACf,KAAA,GAAQ,gBAAA;EACR,GAAA,GAAM,cAAA;EACN,KAAA,GAAQ,gBAAA;AAAA;AAAA,UAEO,gBAAA;EACf,QAAA;EACA,KAAA;EACA,OAAA;EACA,WAAA;EACA,aAAA;AAAA;AAAA,UAEe,cAAA;EACf,OAAO;AAAA;AAAA,UAEQ,gBAAA;EACf,QAAA,IAAY,KAAA,UAAe,GAAA;AAAA;AAAA,UAEZ,WAAA;EACf,GAAA;EACA,GAAG;AAAA;AAAA,UAEY,YAAA;EACf,EAAA;EACA,KAAA;EACA,QAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,SAAA;EACA,aAAA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,aAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,iBAAA;EACA,eAAA;AAAA"}