@dan-uni/dan-any 0.9.2 → 0.9.3
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.
- package/README.md +1 -1
- package/dist/index.js +107 -254
- package/dist/index.min.js +107 -254
- package/dist/index.umd.min.js +110 -256
- package/dist/src/index.d.ts +10 -40
- package/package.json +5 -5
- package/src/ass-gen/ass/create.ts +2 -2
- package/src/ass-gen/ass/raw.ts +19 -19
- package/src/index.test.ts +19 -12
- package/src/index.ts +57 -104
- package/src/proto/gen/bili/dm_pb.ts +1 -1
- package/src/proto/gen/danuni_pb.ts +1 -1
- package/src/utils/dm-gen.test.ts +3 -3
- package/src/utils/dm-gen.ts +30 -31
package/dist/index.min.js
CHANGED
|
@@ -11500,7 +11500,7 @@ __webpack_require__.d(dm_gen_namespaceObject, {
|
|
|
11500
11500
|
Pools: ()=>dm_gen_Pools,
|
|
11501
11501
|
UniDM: ()=>UniDM
|
|
11502
11502
|
});
|
|
11503
|
-
var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.9.
|
|
11503
|
+
var package_namespaceObject = JSON.parse('{"u2":"@dan-uni/dan-any","i8":"0.9.3","e8":"https://github.com/ani-uni/danuni/tree/master/packages/dan-any#readme"}');
|
|
11504
11504
|
const file_bili_dm = /*@__PURE__*/ fileDesc("Cg1iaWxpL2RtLnByb3RvEiBiaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MSJkCgZBdmF0YXISCgoCaWQYASABKAkSCwoDdXJsGAIgASgJEkEKC2F2YXRhcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyVHlwZSIjCgZCdWJibGUSDAoEdGV4dBgBIAEoCRILCgN1cmwYAiABKAkixgEKCEJ1YmJsZVYyEgwKBHRleHQYASABKAkSCwoDdXJsGAIgASgJEkEKC2J1YmJsZV90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQnViYmxlVHlwZRIVCg1leHBvc3VyZV9vbmNlGAQgASgIEkUKDWV4cG9zdXJlX3R5cGUYBSABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiWwoGQnV0dG9uEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUiWAoOQnV6endvcmRDb25maWcSRgoIa2V5d29yZHMYASADKAsyNC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdXp6d29yZFNob3dDb25maWcieAoSQnV6endvcmRTaG93Q29uZmlnEgwKBG5hbWUYASABKAkSDgoGc2NoZW1hGAIgASgJEg4KBnNvdXJjZRgDIAEoBRIKCgJpZBgEIAEoAxITCgtidXp6d29yZF9pZBgFIAEoAxITCgtzY2hlbWFfdHlwZRgGIAEoBSJ7CghDaGVja0JveBIMCgR0ZXh0GAEgASgJEjwKBHR5cGUYAiABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja2JveFR5cGUSFQoNZGVmYXVsdF92YWx1ZRgDIAEoCBIMCgRzaG93GAQgASgIIm8KCkNoZWNrQm94VjISDAoEdGV4dBgBIAEoCRI8CgR0eXBlGAIgASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2hlY2tib3hUeXBlEhUKDWRlZmF1bHRfdmFsdWUYAyABKAgiggIKC0NsaWNrQnV0dG9uEhUKDXBvcnRyYWl0X3RleHQYASADKAkSFgoObGFuZHNjYXBlX3RleHQYAiADKAkSGwoTcG9ydHJhaXRfdGV4dF9mb2N1cxgDIAMoCRIcChRsYW5kc2NhcGVfdGV4dF9mb2N1cxgEIAMoCRJBCgtyZW5kZXJfdHlwZRgFIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlJlbmRlclR5cGUSDAoEc2hvdxgGIAEoCBI4CgZidWJibGUYByABKAsyKC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5CdWJibGUiswIKDUNsaWNrQnV0dG9uVjISFQoNcG9ydHJhaXRfdGV4dBgBIAMoCRIWCg5sYW5kc2NhcGVfdGV4dBgCIAMoCRIbChNwb3J0cmFpdF90ZXh0X2ZvY3VzGAMgAygJEhwKFGxhbmRzY2FwZV90ZXh0X2ZvY3VzGAQgAygJEkEKC3JlbmRlcl90eXBlGAUgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIXCg90ZXh0X2lucHV0X3Bvc3QYBiABKAgSFQoNZXhwb3N1cmVfb25jZRgHIAEoCBJFCg1leHBvc3VyZV90eXBlGAggASgOMi4uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwb3N1cmVUeXBlIksKB0NvbW1hbmQSQAoLY29tbWFuZF9kbXMYASADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Db21tYW5kRG0i5gEKCUNvbW1hbmREbRIKCgJpZBgBIAEoAxILCgNvaWQYAiABKAMSCwoDbWlkGAMgASgDEg8KB2NvbW1hbmQYBCABKAkSDwoHY29udGVudBgFIAEoCRIQCghwcm9ncmVzcxgGIAEoBRINCgVjdGltZRgHIAEoCRINCgVtdGltZRgIIAEoCRINCgVleHRyYRgJIAEoCRINCgVpZFN0chgKIAEoCRIMCgR0eXBlGAsgASgFEhMKC2F1dG9fY3JlYXRlGAwgASgIEhIKCmNvdW50X2Rvd24YDSABKAUSDAoEYXR0chgOIAEoBSJQCg1EYW5tYWt1QUlGbGFnEj8KCGRtX2ZsYWdzGAEgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUZsYWciiwMKC0Rhbm1ha3VFbGVtEgoKAmlkGAEgASgDEhAKCHByb2dyZXNzGAIgASgFEgwKBG1vZGUYAyABKAUSEAoIZm9udHNpemUYBCABKAUSPwoFY29sb3IYBSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIQCghtaWRfaGFzaBgGIAEoCRIPCgdjb250ZW50GAcgASgJEg0KBWN0aW1lGAggASgDEg4KBndlaWdodBgJIAEoBRIOCgZhY3Rpb24YCiABKAkSDAoEcG9vbBgLIAEoBRIOCgZpZF9zdHIYDCABKAkSDAoEYXR0chgNIAEoBRIRCglhbmltYXRpb24YFiABKAkSDQoFZXh0cmEYFyABKAkSQgoIY29sb3JmdWwYGCABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbUNvbG9yZnVsVHlwZRIMCgR0eXBlGBkgASgFEgsKA29pZBgaIAEoAyIpCgtEYW5tYWt1RmxhZxIMCgRkbWlkGAEgASgDEgwKBGZsYWcYAiABKAUiSwoRRGFubWFrdUZsYWdDb25maWcSEAoIcmVjX2ZsYWcYASABKAUSEAoIcmVjX3RleHQYAiABKAkSEgoKcmVjX3N3aXRjaBgDIAEoBSKLBwoYRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnEikKIXBsYXllcl9kYW5tYWt1X3VzZV9kZWZhdWx0X2NvbmZpZxgBIAEoCBIsCiRwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9zd2l0Y2gYBCABKAgSKwojcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWwYBSABKAUSHwoXcGxheWVyX2Rhbm1ha3VfYmxvY2t0b3AYBiABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tzY3JvbGwYByABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tib3R0b20YCCABKAgSJAoccGxheWVyX2Rhbm1ha3VfYmxvY2tjb2xvcmZ1bBgJIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9ibG9ja3JlcGVhdBgKIAEoCBIjChtwbGF5ZXJfZGFubWFrdV9ibG9ja3NwZWNpYWwYCyABKAgSHgoWcGxheWVyX2Rhbm1ha3Vfb3BhY2l0eRgMIAEoAhIkChxwbGF5ZXJfZGFubWFrdV9zY2FsaW5nZmFjdG9yGA0gASgCEh0KFXBsYXllcl9kYW5tYWt1X2RvbWFpbhgOIAEoAhIcChRwbGF5ZXJfZGFubWFrdV9zcGVlZBgPIAEoBRIkChxpbmxpbmVfcGxheWVyX2Rhbm1ha3Vfc3dpdGNoGBAgASgIEikKIXBsYXllcl9kYW5tYWt1X3Nlbmlvcl9tb2RlX3N3aXRjaBgRIAEoBRIuCiZwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92MhgSIAEoBRKYAQoqcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfbGV2ZWxfdjJfbWFwGBMgAygLMmQuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVEZWZhdWx0UGxheWVyQ29uZmlnLlBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EiUKHXBsYXllcl9kYW5tYWt1X2VuYWJsZV9oZXJkX2RtGBQgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEi7AkKEURhbm11UGxheWVyQ29uZmlnEh0KFXBsYXllcl9kYW5tYWt1X3N3aXRjaBgBIAEoCBIiChpwbGF5ZXJfZGFubWFrdV9zd2l0Y2hfc2F2ZRgCIAEoCBIpCiFwbGF5ZXJfZGFubWFrdV91c2VfZGVmYXVsdF9jb25maWcYAyABKAgSLAokcGxheWVyX2Rhbm1ha3VfYWlfcmVjb21tZW5kZWRfc3dpdGNoGAQgASgIEisKI3BsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsGAUgASgFEh8KF3BsYXllcl9kYW5tYWt1X2Jsb2NrdG9wGAYgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2Nrc2Nyb2xsGAcgASgIEiIKGnBsYXllcl9kYW5tYWt1X2Jsb2NrYm90dG9tGAggASgIEiQKHHBsYXllcl9kYW5tYWt1X2Jsb2NrY29sb3JmdWwYCSABKAgSIgoacGxheWVyX2Rhbm1ha3VfYmxvY2tyZXBlYXQYCiABKAgSIwobcGxheWVyX2Rhbm1ha3VfYmxvY2tzcGVjaWFsGAsgASgIEh4KFnBsYXllcl9kYW5tYWt1X29wYWNpdHkYDCABKAISJAoccGxheWVyX2Rhbm1ha3Vfc2NhbGluZ2ZhY3RvchgNIAEoAhIdChVwbGF5ZXJfZGFubWFrdV9kb21haW4YDiABKAISHAoUcGxheWVyX2Rhbm1ha3Vfc3BlZWQYDyABKAUSJgoecGxheWVyX2Rhbm1ha3VfZW5hYmxlYmxvY2tsaXN0GBAgASgIEiQKHGlubGluZV9wbGF5ZXJfZGFubWFrdV9zd2l0Y2gYESABKAgSJAocaW5saW5lX3BsYXllcl9kYW5tYWt1X2NvbmZpZxgSIAEoBRImCh5wbGF5ZXJfZGFubWFrdV9pb3Nfc3dpdGNoX3NhdmUYEyABKAUSKQohcGxheWVyX2Rhbm1ha3Vfc2VuaW9yX21vZGVfc3dpdGNoGBQgASgFEi4KJnBsYXllcl9kYW5tYWt1X2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBUgASgFEpEBCipwbGF5ZXJfZGFubWFrdV9haV9yZWNvbW1lbmRlZF9sZXZlbF92Ml9tYXAYFiADKAsyXS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckNvbmZpZy5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsVjJNYXBFbnRyeRIlCh1wbGF5ZXJfZGFubWFrdV9lbmFibGVfaGVyZF9kbRgXIAEoCBImCh5wbGF5ZXJfZGFubWFrdV9ibG9ja3RvcF9ib3R0b20YGCABKAgSIAoYcGxheWVyX2Rhbm1ha3VfZG9tYWluX3YyGBkgASgFEh4KFnBsYXllcl9kYW5tYWt1X2RlbnNpdHkYGiABKAUSJQodcGxheWVyX2Rhbm1ha3Vfc3VidGl0bGVfcHJvb2YYGyABKAgSIwobcGxheWVyX2Rhbm1ha3VfcGVvcGxlX3Byb29mGBwgASgIGksKKVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMk1hcEVudHJ5EgsKA2tleRgBIAEoBRINCgV2YWx1ZRgCIAEoBToCOAEiMAoWRGFubXVQbGF5ZXJDb25maWdQYW5lbBIWCg5zZWxlY3Rpb25fdGV4dBgBIAEoCSJLChhEYW5tdVBsYXllckR5bmFtaWNDb25maWcSEAoIcHJvZ3Jlc3MYASABKAUSHQoVcGxheWVyX2Rhbm1ha3VfZG9tYWluGA4gASgCIpADChVEYW5tdVBsYXllclZpZXdDb25maWcSYQodZGFubXVrdV9kZWZhdWx0X3BsYXllcl9jb25maWcYASABKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdURlZmF1bHRQbGF5ZXJDb25maWcSUgoVZGFubXVrdV9wbGF5ZXJfY29uZmlnGAIgASgLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWcSYQodZGFubXVrdV9wbGF5ZXJfZHluYW1pY19jb25maWcYAyADKAsyOi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tdVBsYXllckR5bmFtaWNDb25maWcSXQobZGFubXVrdV9wbGF5ZXJfY29uZmlnX3BhbmVsGAQgASgLMjguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJDb25maWdQYW5lbCKZBQoURGFubXVXZWJQbGF5ZXJDb25maWcSEQoJZG1fc3dpdGNoGAEgASgIEhEKCWFpX3N3aXRjaBgCIAEoCBIQCghhaV9sZXZlbBgDIAEoBRIQCghibG9ja3RvcBgEIAEoCBITCgtibG9ja3Njcm9sbBgFIAEoCBITCgtibG9ja2JvdHRvbRgGIAEoCBISCgpibG9ja2NvbG9yGAcgASgIEhQKDGJsb2Nrc3BlY2lhbBgIIAEoCBIUCgxwcmV2ZW50c2hhZGUYCSABKAgSDQoFZG1hc2sYCiABKAgSDwoHb3BhY2l0eRgLIAEoAhIOCgZkbWFyZWEYDCABKAUSEQoJc3BlZWRwbHVzGA0gASgCEhAKCGZvbnRzaXplGA4gASgCEhIKCnNjcmVlbnN5bmMYDyABKAgSEQoJc3BlZWRzeW5jGBAgASgIEhIKCmZvbnRmYW1pbHkYESABKAkSDAoEYm9sZBgSIAEoCBISCgpmb250Ym9yZGVyGBMgASgFEhEKCWRyYXdfdHlwZRgUIAEoCRIaChJzZW5pb3JfbW9kZV9zd2l0Y2gYFSABKAUSEwoLYWlfbGV2ZWxfdjIYFiABKAUSYQoPYWlfbGV2ZWxfdjJfbWFwGBcgAygLMkguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcuQWlMZXZlbFYyTWFwRW50cnkSFwoPYmxvY2t0b3BfYm90dG9tGBggASgIEhIKCmRtX2FyZWFfdjIYGSABKAUSEgoKZG1fZGVuc2l0eRgaIAEoBRozChFBaUxldmVsVjJNYXBFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIlkKCkRtQ29sb3JmdWwSPgoEdHlwZRgBIAEoDjIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWxUeXBlEgsKA3NyYxgCIAEoCSJQCg9EbUV4cG9SZXBvcnRSZXESEgoKc2Vzc2lvbl9pZBgBIAEoCRILCgNvaWQYAiABKAMSDQoFZG1pZHMYAyABKAwSDQoFc3BtaWQYBCABKAkiEQoPRG1FeHBvUmVwb3J0UmVzIm0KCkRtSGVyZFZpZXcSGwoTZGlzcGxheV9oZXJkX2RtX251bRgBIAEoBRJCCghoZXJkX2RtcxgCIAMoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlZpZXdIZXJkRG1FbGVtIpYCCgpEbU1hc2tXYWxsEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEk0KDGNvbnRlbnRfdHlwZRgEIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRJFCghiaXpfdHlwZRgFIAEoDjIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxCaXpUeXBlEkUKCGNvbnRlbnRzGAYgAygLMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbENvbnRlbnQiawoRRG1NYXNrV2FsbENvbnRlbnQSRQoEdHlwZRgBIAEoDjI3LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtTWFza1dhbGxDb250ZW50VHlwZRIPCgdjb250ZW50GAIgASgJIs0QChFEbVBsYXllckNvbmZpZ1JlcRIKCgJ0cxgBIAEoAxJFCgZzd2l0Y2gYAiABKAsyNS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1U3dpdGNoEk4KC3N3aXRjaF9zYXZlGAMgASgLMjkuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVN3aXRjaFNhdmUSWwoSdXNlX2RlZmF1bHRfY29uZmlnGAQgASgLMj8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVVzZURlZmF1bHRDb25maWcSYQoVYWlfcmVjb21tZW5kZWRfc3dpdGNoGAUgASgLMkIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRTd2l0Y2gSXwoUYWlfcmVjb21tZW5kZWRfbGV2ZWwYBiABKAsyQS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEkkKCGJsb2NrdG9wGAcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrdG9wEk8KC2Jsb2Nrc2Nyb2xsGAggASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2Nrc2Nyb2xsEk8KC2Jsb2NrYm90dG9tGAkgASgLMjouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUJsb2NrYm90dG9tElMKDWJsb2NrY29sb3JmdWwYCiABKAsyPC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tjb2xvcmZ1bBJPCgtibG9ja3JlcGVhdBgLIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VCbG9ja3JlcGVhdBJRCgxibG9ja3NwZWNpYWwYDCABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEkcKB29wYWNpdHkYDSABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1T3BhY2l0eRJTCg1zY2FsaW5nZmFjdG9yGA4gASgLMjwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdVNjYWxpbmdmYWN0b3ISRQoGZG9tYWluGA8gASgLMjUuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpbhJDCgVzcGVlZBgQIAEoCzI0LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTcGVlZBJXCg9lbmFibGVibG9ja2xpc3QYESABKAsyPi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0El4KGWlubGluZVBsYXllckRhbm1ha3VTd2l0Y2gYEiABKAsyOy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5JbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoElsKEnNlbmlvcl9tb2RlX3N3aXRjaBgTIAEoCzI/LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTZW5pb3JNb2RlU3dpdGNoEmQKF2FpX3JlY29tbWVuZGVkX2xldmVsX3YyGBQgASgLMkMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUFpUmVjb21tZW5kZWRMZXZlbFYyElMKDmVuYWJsZV9oZXJkX2RtGBUgASgLMjsuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRJWCg9ibG9ja3RvcF9ib3R0b20YFiABKAsyPS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SSgoJZG9tYWluX3YyGBcgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUGxheWVyRGFubWFrdURvbWFpblYyEkcKB2RlbnNpdHkYGCABKAsyNi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5QbGF5ZXJEYW5tYWt1RGVuc2l0eRJUCg5zdWJ0aXRsZV9wcm9vZhgZIAEoCzI8LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VTdWJ0aXRsZVByb29mElAKDHBlb3BsZV9wcm9vZhgaIAEoCzI6LmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBsYXllckRhbm1ha3VQZW9wbGVQcm9vZiIvCgtEbVNlZ0NvbmZpZxIRCglwYWdlX3NpemUYASABKAMSDQoFdG90YWwYAiABKAMikQIKEERtU2VnTW9iaWxlUmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBRJACgdhaV9mbGFnGAMgASgLMi8uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubWFrdUFJRmxhZxIVCg1zZWdtZW50X3J1bGVzGAQgAygDEkIKDGNvbG9yZnVsX3NyYxgFIAMoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtQ29sb3JmdWwSEwoLY29udGV4dF9zcmMYBiABKAkiygEKDkRtU2VnTW9iaWxlUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDEhYKDnRlZW5hZ2Vyc19tb2RlGAUgASgFEgoKAnBzGAYgASgDEgoKAnBlGAcgASgDEhEKCXB1bGxfbW9kZRgIIAEoBRISCgpmcm9tX3NjZW5lGAkgASgFEg0KBXNwbWlkGAogASgJEhMKC2NvbnRleHRfZXh0GAsgASgJIlwKDURtU2VnT3R0UmVwbHkSPAoFZWxlbXMYASADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RWxlbRINCgVzdGF0ZRgCIAEoBSJMCgtEbVNlZ090dFJlcRILCgNwaWQYASABKAMSCwoDb2lkGAIgASgDEgwKBHR5cGUYAyABKAUSFQoNc2VnbWVudF9pbmRleBgEIAEoAyJdCg1EbVNlZ1NES1JlcGx5Eg4KBmNsb3NlZBgBIAEoCBI8CgVlbGVtcxgCIAMoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VFbGVtIkwKC0RtU2VnU0RLUmVxEgsKA3BpZBgBIAEoAxILCgNvaWQYAiABKAMSDAoEdHlwZRgDIAEoBRIVCg1zZWdtZW50X2luZGV4GAQgASgDIncKCURtU3ViVmlldxIMCgR0eXBlGAEgASgFEgsKA29pZBgCIAEoAxILCgNwaWQYAyABKAMSQgoLcG9zdF9wYW5lbDIYBCADKAsyLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxWMiKhCQoLRG1WaWV3UmVwbHkSDgoGY2xvc2VkGAEgASgIEjkKBG1hc2sYAiABKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb01hc2sSQQoIc3VidGl0bGUYAyABKAsyLy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5WaWRlb1N1YnRpdGxlEhMKC3NwZWNpYWxfZG1zGAQgAygJEkQKB2FpX2ZsYWcYBSABKAsyMy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EYW5tYWt1RmxhZ0NvbmZpZxJOCg1wbGF5ZXJfY29uZmlnGAYgASgLMjcuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVQbGF5ZXJWaWV3Q29uZmlnEhYKDnNlbmRfYm94X3N0eWxlGAcgASgFEg0KBWFsbG93GAggASgIEhEKCWNoZWNrX2JveBgJIAEoCBIaChJjaGVja19ib3hfc2hvd19tc2cYCiABKAkSGAoQdGV4dF9wbGFjZWhvbGRlchgLIAEoCRIZChFpbnB1dF9wbGFjZWhvbGRlchgMIAEoCRIdChVyZXBvcnRfZmlsdGVyX2NvbnRlbnQYDSADKAkSQQoLZXhwb19yZXBvcnQYDiABKAsyLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvUmVwb3J0EkkKD2J1enp3b3JkX2NvbmZpZxgPIAEoCzIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1enp3b3JkQ29uZmlnEkIKC2V4cHJlc3Npb25zGBAgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgRIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGBIgAygJEkIKC3Bvc3RfcGFuZWwyGBMgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISQgoMZG1fbWFza193YWxsGBQgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1NYXNrV2FsbBI9CgdkbV9oZXJkGBUgASgLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1IZXJkVmlldxI6Cgdjb21tYW5kGBYgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ29tbWFuZBIKCgJrdhgXIAEoCRI+CglzdWJfdmlld3MYGCADKAsyKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVN1YlZpZXcSNgoDcW9lGBkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUW9lSW5mbyJtCglEbVZpZXdSZXESCwoDcGlkGAEgASgDEgsKA29pZBgCIAEoAxIMCgR0eXBlGAMgASgFEg0KBXNwbWlkGAQgASgJEhQKDGlzX2hhcmRfYm9vdBgFIAEoBRITCgtjb250ZXh0X2V4dBgGIAEoCSKBBgoORG1XZWJWaWV3UmVwbHkSDQoFc3RhdGUYASABKAUSDAoEdGV4dBgCIAEoCRIRCgl0ZXh0X3NpZGUYAyABKAkSPQoGZG1fc2dlGAQgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdDb25maWcSQQoEZmxhZxgFIAEoCzIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRhbm1ha3VGbGFnQ29uZmlnEhMKC3NwZWNpYWxfZG1zGAYgAygJEhEKCWNoZWNrX2JveBgHIAEoCBINCgVjb3VudBgIIAEoAxJACgtjb21tYW5kX2RtcxgJIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNvbW1hbmREbRJNCg1wbGF5ZXJfY29uZmlnGAogASgLMjYuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRGFubXVXZWJQbGF5ZXJDb25maWcSHQoVcmVwb3J0X2ZpbHRlcl9jb250ZW50GAsgAygJEkIKC2V4cHJlc3Npb25zGAwgAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbnMSPwoKcG9zdF9wYW5lbBgNIAMoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbBIVCg1hY3Rpdml0eV9tZXRhGA4gAygJEkIKC3Bvc3RfcGFuZWwyGA8gAygLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFBhbmVsVjISPgoJc3ViX3ZpZXdzGBAgAygLMisuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TdWJWaWV3EjYKA3FvZRgRIAEoCzIpLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlFvZUluZm8iKgoKRXhwb1JlcG9ydBIcChRzaG91bGRfcmVwb3J0X2F0X2VuZBgBIAEoCCJkCgpFeHByZXNzaW9uEg8KB2tleXdvcmQYASADKAkSCwoDdXJsGAIgASgJEjgKBnBlcmlvZBgDIAMoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBlcmlvZCJJCgtFeHByZXNzaW9ucxI6CgRkYXRhGAEgAygLMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRXhwcmVzc2lvbiIqChlJbmxpbmVQbGF5ZXJEYW5tYWt1U3dpdGNoEg0KBXZhbHVlGAEgASgIIicKBUxhYmVsEg0KBXRpdGxlGAEgASgJEg8KB2NvbnRlbnQYAiADKAkihwEKB0xhYmVsVjISDQoFdGl0bGUYASABKAkSDwoHY29udGVudBgCIAMoCRIVCg1leHBvc3VyZV9vbmNlGAMgASgIEkUKDWV4cG9zdXJlX3R5cGUYBCABKA4yLi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5FeHBvc3VyZVR5cGUiJAoGUGVyaW9kEg0KBXN0YXJ0GAEgASgDEgsKA2VuZBgCIAEoAyIwCh9QbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZExldmVsEg0KBXZhbHVlGAEgASgFIjIKIVBsYXllckRhbm1ha3VBaVJlY29tbWVuZGVkTGV2ZWxWMhINCgV2YWx1ZRgBIAEoBSIxCiBQbGF5ZXJEYW5tYWt1QWlSZWNvbW1lbmRlZFN3aXRjaBINCgV2YWx1ZRgBIAEoCCIpChhQbGF5ZXJEYW5tYWt1QmxvY2tib3R0b20SDQoFdmFsdWUYASABKAgiKwoaUGxheWVyRGFubWFrdUJsb2NrY29sb3JmdWwSDQoFdmFsdWUYASABKAgiKQoYUGxheWVyRGFubWFrdUJsb2NrcmVwZWF0Eg0KBXZhbHVlGAEgASgIIikKGFBsYXllckRhbm1ha3VCbG9ja3Njcm9sbBINCgV2YWx1ZRgBIAEoCCIqChlQbGF5ZXJEYW5tYWt1QmxvY2tzcGVjaWFsEg0KBXZhbHVlGAEgASgIIiYKFVBsYXllckRhbm1ha3VCbG9ja3RvcBINCgV2YWx1ZRgBIAEoCCIsChtQbGF5ZXJEYW5tYWt1QmxvY2t0b3BCb3R0b20SDQoFdmFsdWUYASABKAgiJQoUUGxheWVyRGFubWFrdURlbnNpdHkSDQoFdmFsdWUYASABKAUiJAoTUGxheWVyRGFubWFrdURvbWFpbhINCgV2YWx1ZRgBIAEoAiImChVQbGF5ZXJEYW5tYWt1RG9tYWluVjISDQoFdmFsdWUYASABKAUiKgoZUGxheWVyRGFubWFrdUVuYWJsZUhlcmREbRINCgV2YWx1ZRgBIAEoCCItChxQbGF5ZXJEYW5tYWt1RW5hYmxlYmxvY2tsaXN0Eg0KBXZhbHVlGAEgASgIIiUKFFBsYXllckRhbm1ha3VPcGFjaXR5Eg0KBXZhbHVlGAEgASgCIikKGFBsYXllckRhbm1ha3VQZW9wbGVQcm9vZhINCgV2YWx1ZRgBIAEoCCIrChpQbGF5ZXJEYW5tYWt1U2NhbGluZ2ZhY3RvchINCgV2YWx1ZRgBIAEoAiIuCh1QbGF5ZXJEYW5tYWt1U2VuaW9yTW9kZVN3aXRjaBINCgV2YWx1ZRgBIAEoBSIjChJQbGF5ZXJEYW5tYWt1U3BlZWQSDQoFdmFsdWUYASABKAUiKwoaUGxheWVyRGFubWFrdVN1YnRpdGxlUHJvb2YSDQoFdmFsdWUYASABKAgiOAoTUGxheWVyRGFubWFrdVN3aXRjaBINCgV2YWx1ZRgBIAEoCBISCgpjYW5faWdub3JlGAIgASgIIigKF1BsYXllckRhbm1ha3VTd2l0Y2hTYXZlEg0KBXZhbHVlGAEgASgIIi4KHVBsYXllckRhbm1ha3VVc2VEZWZhdWx0Q29uZmlnEg0KBXZhbHVlGAEgASgIIowDCglQb3N0UGFuZWwSDQoFc3RhcnQYASABKAMSCwoDZW5kGAIgASgDEhAKCHByaW9yaXR5GAMgASgDEg4KBmJpel9pZBgEIAEoAxJECghiaXpfdHlwZRgFIAEoDjIyLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RQYW5lbEJpelR5cGUSQwoMY2xpY2tfYnV0dG9uGAYgASgLMi0uYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQ2xpY2tCdXR0b24SPwoKdGV4dF9pbnB1dBgHIAEoCzIrLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dBI9CgljaGVja19ib3gYCCABKAsyKi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5DaGVja0JveBI2CgV0b2FzdBgJIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0Iq0ECgtQb3N0UGFuZWxWMhINCgVzdGFydBgBIAEoAxILCgNlbmQYAiABKAMSRAoIYml6X3R5cGUYAyABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Qb3N0UGFuZWxCaXpUeXBlEkUKDGNsaWNrX2J1dHRvbhgEIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNsaWNrQnV0dG9uVjISQQoKdGV4dF9pbnB1dBgFIAEoCzItLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRleHRJbnB1dFYyEj8KCWNoZWNrX2JveBgGIAEoCzIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkNoZWNrQm94VjISOAoFdG9hc3QYByABKAsyKS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5Ub2FzdFYyEjoKBmJ1YmJsZRgIIAEoCzIqLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1YmJsZVYyEjgKBWxhYmVsGAkgASgLMikuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuTGFiZWxWMhJBCgtwb3N0X3N0YXR1cxgKIAEoDjIsLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlBvc3RTdGF0dXMiFwoHUW9lSW5mbxIMCgRpbmZvGAEgASgJIikKCFJlc3BvbnNlEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCSL5AgoMU3VidGl0bGVJdGVtEgoKAmlkGAEgASgDEg4KBmlkX3N0chgCIAEoCRILCgNsYW4YAyABKAkSDwoHbGFuX2RvYxgEIAEoCRIUCgxzdWJ0aXRsZV91cmwYBSABKAkSOgoGYXV0aG9yGAYgASgLMiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVXNlckluZm8SPAoEdHlwZRgHIAEoDjIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlVHlwZRIVCg1sYW5fZG9jX2JyaWVmGAggASgJEkEKB2FpX3R5cGUYCSABKA4yMC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpVHlwZRJFCglhaV9zdGF0dXMYCiABKA4yMi5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5TdWJ0aXRsZUFpU3RhdHVzIugCCglUZXh0SW5wdXQSHAoUcG9ydHJhaXRfcGxhY2Vob2xkZXIYASADKAkSHQoVbGFuZHNjYXBlX3BsYWNlaG9sZGVyGAIgAygJEkEKC3JlbmRlcl90eXBlGAMgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVuZGVyVHlwZRIYChBwbGFjZWhvbGRlcl9wb3N0GAQgASgIEgwKBHNob3cYBSABKAgSOAoGYXZhdGFyGAYgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEkEKC3Bvc3Rfc3RhdHVzGAcgASgOMiwuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUG9zdFN0YXR1cxI2CgVsYWJlbBgIIAEoCzInLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkxhYmVsIvsBCgtUZXh0SW5wdXRWMhIcChRwb3J0cmFpdF9wbGFjZWhvbGRlchgBIAMoCRIdChVsYW5kc2NhcGVfcGxhY2Vob2xkZXIYAiADKAkSQQoLcmVuZGVyX3R5cGUYAyABKA4yLC5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5SZW5kZXJUeXBlEhgKEHBsYWNlaG9sZGVyX3Bvc3QYBCABKAgSOAoGYXZhdGFyGAUgAygLMiguYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuQXZhdGFyEhgKEHRleHRfaW5wdXRfbGltaXQYBiABKAUibwoFVG9hc3QSDAoEdGV4dBgBIAEoCRIQCghkdXJhdGlvbhgCIAEoBRIMCgRzaG93GAMgASgIEjgKBmJ1dHRvbhgEIAEoCzIoLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkJ1dHRvbiJiCg1Ub2FzdEJ1dHRvblYyEgwKBHRleHQYASABKAkSQwoGYWN0aW9uGAIgASgOMjMuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuVG9hc3RGdW5jdGlvblR5cGUicwoHVG9hc3RWMhIMCgR0ZXh0GAEgASgJEhAKCGR1cmF0aW9uGAIgASgFEkgKD3RvYXN0X2J1dHRvbl92MhgDIAEoCzIvLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlRvYXN0QnV0dG9uVjIiXAoIVXNlckluZm8SCwoDbWlkGAEgASgDEgwKBG5hbWUYAiABKAkSCwoDc2V4GAMgASgJEgwKBGZhY2UYBCABKAkSDAoEc2lnbhgFIAEoCRIMCgRyYW5rGAYgASgFIlMKCVZpZGVvTWFzaxILCgNjaWQYASABKAMSDAoEcGxhdBgCIAEoBRILCgNmcHMYAyABKAUSDAoEdGltZRgEIAEoAxIQCghtYXNrX3VybBgFIAEoCSJwCg1WaWRlb1N1YnRpdGxlEgsKA2xhbhgBIAEoCRIPCgdsYW5fZG9jGAIgASgJEkEKCXN1YnRpdGxlcxgDIAMoCzIuLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLlN1YnRpdGxlSXRlbSKSAQoOVmlld0hlcmREbUVsZW0SEAoIaGVyZF9tc2cYASABKAkSFgoOaGVyZF9zdGFydF9jbnQYAiABKAUSFAoMaGVyZF9lbmRfY250GAMgASgFEhIKCnJlZ2V4X3J1bGUYBCABKAkSFgoOc3RhcnRfcHJvZ3Jlc3MYBSABKAUSFAoMZW5kX3Byb2dyZXNzGAYgASgFKjMKCkF2YXRhclR5cGUSEgoOQXZhdGFyVHlwZU5vbmUQABIRCg1BdmF0YXJUeXBlTkZUEAEqWQoKQnViYmxlVHlwZRISCg5CdWJibGVUeXBlTm9uZRAAEhkKFUJ1YmJsZVR5cGVDbGlja0J1dHRvbhABEhwKGEJ1YmJsZVR5cGVEbVNldHRpbmdQYW5lbBACKlgKDENoZWNrYm94VHlwZRIUChBDaGVja2JveFR5cGVOb25lEAASGQoVQ2hlY2tib3hUeXBlRW5jb3VyYWdlEAESFwoTQ2hlY2tib3hUeXBlQ29sb3JETRACKjUKDkRtQ29sb3JmdWxUeXBlEgwKCE5vbmVUeXBlEAASFQoPVmlwR3JhZHVhbENvbG9yEOHUAypgChFEbU1hc2tXYWxsQml6VHlwZRILCgdVbmtub3duEAASBwoDT0dWEAESCgoGQml6UGljEAISCAoETXV0ZRADEgoKBlJlY29yZBAEEgkKBUNsb3VkEAUSCAoEQUlHQxAGKnYKFURtTWFza1dhbGxDb250ZW50VHlwZRIgChxEbU1hc2tXYWxsQ29udGVudFR5cGVVbmtub3duEAASHQoZRG1NYXNrV2FsbENvbnRlbnRUeXBlVGV4dBABEhwKGERtTWFza1dhbGxDb250ZW50VHlwZVBpYxACKjwKDEV4cG9zdXJlVHlwZRIUChBFeHBvc3VyZVR5cGVOb25lEAASFgoSRXhwb3N1cmVUeXBlRE1TZW5kEAEqgwIKEFBvc3RQYW5lbEJpelR5cGUSGAoUUG9zdFBhbmVsQml6VHlwZU5vbmUQABIdChlQb3N0UGFuZWxCaXpUeXBlRW5jb3VyYWdlEAESGwoXUG9zdFBhbmVsQml6VHlwZUNvbG9yRE0QAhIZChVQb3N0UGFuZWxCaXpUeXBlTkZURE0QAxIdChlQb3N0UGFuZWxCaXpUeXBlRnJhZ0Nsb3NlEAQSHQoZUG9zdFBhbmVsQml6VHlwZVJlY29tbWVuZBAFEhwKGFBvc3RQYW5lbEJpelR5cGVQbG90TGVhaxAGEiIKHlBvc3RQYW5lbEJpelR5cGVBbnRpSGFyYXNzbWVudBAHKjgKClBvc3RTdGF0dXMSFAoQUG9zdFN0YXR1c05vcm1hbBAAEhQKEFBvc3RTdGF0dXNDbG9zZWQQASpOCgpSZW5kZXJUeXBlEhIKDlJlbmRlclR5cGVOb25lEAASFAoQUmVuZGVyVHlwZVNpbmdsZRABEhYKElJlbmRlclR5cGVSb3RhdGlvbhACKjYKEFN1YnRpdGxlQWlTdGF0dXMSCAoETm9uZRAAEgwKCEV4cG9zdXJlEAESCgoGQXNzaXN0EAIqKwoOU3VidGl0bGVBaVR5cGUSCgoGTm9ybWFsEAASDQoJVHJhbnNsYXRlEAEqHgoMU3VidGl0bGVUeXBlEgYKAkNDEAASBgoCQUkQASpOChFUb2FzdEZ1bmN0aW9uVHlwZRIZChVUb2FzdEZ1bmN0aW9uVHlwZU5vbmUQABIeChpUb2FzdEZ1bmN0aW9uVHlwZVBvc3RQYW5lbBABMqAFCgJETRJzCgtEbVNlZ01vYmlsZRIwLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnTW9iaWxlUmVxGjIuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1TZWdNb2JpbGVSZXBseRJkCgZEbVZpZXcSKy5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXEaLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVZpZXdSZXBseRJxCg5EbVBsYXllckNvbmZpZxIzLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtUGxheWVyQ29uZmlnUmVxGiouYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuUmVzcG9uc2USagoIRG1TZWdPdHQSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ090dFJlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnT3R0UmVwbHkSagoIRG1TZWdTREsSLS5iaWxpYmlsaS5jb21tdW5pdHkuc2VydmljZS5kbS52MS5EbVNlZ1NES1JlcRovLmJpbGliaWxpLmNvbW11bml0eS5zZXJ2aWNlLmRtLnYxLkRtU2VnU0RLUmVwbHkSdAoMRG1FeHBvUmVwb3J0EjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVxGjEuYmlsaWJpbGkuY29tbXVuaXR5LnNlcnZpY2UuZG0udjEuRG1FeHBvUmVwb3J0UmVzYgZwcm90bzM");
|
|
11505
11505
|
const DmSegMobileReplySchema = /*@__PURE__*/ codegenv2_messageDesc(file_bili_dm, 30);
|
|
11506
11506
|
const DmWebViewReplySchema = /*@__PURE__*/ codegenv2_messageDesc(file_bili_dm, 39);
|
|
@@ -11623,7 +11623,8 @@ var dm_gen_DMAttr = /*#__PURE__*/ function(DMAttr) {
|
|
|
11623
11623
|
}({});
|
|
11624
11624
|
const DMAttrUtils = {
|
|
11625
11625
|
fromBin (bin = 0, format) {
|
|
11626
|
-
const array = toBits(bin)
|
|
11626
|
+
const array = toBits(bin);
|
|
11627
|
+
const attr = [];
|
|
11627
11628
|
if ('bili' === format) {
|
|
11628
11629
|
if (array[0]) attr.push("Protect");
|
|
11629
11630
|
if (array[1]) attr.push("FromLive");
|
|
@@ -11751,7 +11752,8 @@ class UniDM {
|
|
|
11751
11752
|
isSameAs(dan, options) {
|
|
11752
11753
|
if (4 === this.mode || 4 === dan.mode) return false;
|
|
11753
11754
|
if (!options?.skipDanuniMerge && (this.extra.danuni?.merge || dan.extra.danuni?.merge)) return false;
|
|
11754
|
-
const isSame = (k)=>this[k] === dan[k]
|
|
11755
|
+
const isSame = (k)=>this[k] === dan[k];
|
|
11756
|
+
const checks = [
|
|
11755
11757
|
'SOID',
|
|
11756
11758
|
'content',
|
|
11757
11759
|
'mode',
|
|
@@ -11761,9 +11763,11 @@ class UniDM {
|
|
|
11761
11763
|
return checks;
|
|
11762
11764
|
}
|
|
11763
11765
|
minify() {
|
|
11764
|
-
const def = UniDM.create()
|
|
11766
|
+
const def = UniDM.create();
|
|
11767
|
+
const dan = UniDM.create(this);
|
|
11765
11768
|
for(const key in dan){
|
|
11766
|
-
const k = key
|
|
11769
|
+
const k = key;
|
|
11770
|
+
const v = dan[k];
|
|
11767
11771
|
if ('SOID' !== key) if (v) if (v === def[k]) delete dan[k];
|
|
11768
11772
|
else {
|
|
11769
11773
|
if ('attr' === k && Array.isArray(v) && 0 === v.length) delete dan[k];
|
|
@@ -11868,13 +11872,15 @@ class UniDM {
|
|
|
11868
11872
|
if (args.oid && !cid) cid = args.oid;
|
|
11869
11873
|
const SOID = recSOID || `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
|
|
11870
11874
|
cid
|
|
11871
|
-
})}
|
|
11875
|
+
})}`;
|
|
11876
|
+
const senderID = isEmail(args.midHash, {
|
|
11872
11877
|
require_tld: false
|
|
11873
11878
|
}) ? args.midHash : id_gen_UniID.fromBili({
|
|
11874
11879
|
midHash: args.midHash
|
|
11875
11880
|
});
|
|
11876
11881
|
let mode = 0;
|
|
11877
|
-
const pool = args.pool
|
|
11882
|
+
const pool = args.pool;
|
|
11883
|
+
const extra = {
|
|
11878
11884
|
bili: {
|
|
11879
11885
|
mode: args.mode,
|
|
11880
11886
|
pool: args.pool,
|
|
@@ -11977,7 +11983,8 @@ class UniDM {
|
|
|
11977
11983
|
if (args.oid && !cid) cid = args.oid;
|
|
11978
11984
|
const SOID = `def_${platform_PlatformVideoSource.Bilibili}+${id_gen_UniID.fromBili({
|
|
11979
11985
|
cid
|
|
11980
|
-
})}
|
|
11986
|
+
})}`;
|
|
11987
|
+
const senderID = id_gen_UniID.fromBili({
|
|
11981
11988
|
mid: args.mid
|
|
11982
11989
|
});
|
|
11983
11990
|
return this.create({
|
|
@@ -12000,7 +12007,8 @@ class UniDM {
|
|
|
12000
12007
|
}, options);
|
|
12001
12008
|
}
|
|
12002
12009
|
static fromDplayer(args, playerID, domain, options) {
|
|
12003
|
-
const SOID = id_gen_UniID.fromUnknown(playerID, domain)
|
|
12010
|
+
const SOID = id_gen_UniID.fromUnknown(playerID, domain);
|
|
12011
|
+
const senderID = id_gen_UniID.fromUnknown(args.midHash, domain);
|
|
12004
12012
|
return this.create({
|
|
12005
12013
|
...args,
|
|
12006
12014
|
SOID: SOID.toString(),
|
|
@@ -12022,7 +12030,8 @@ class UniDM {
|
|
|
12022
12030
|
};
|
|
12023
12031
|
}
|
|
12024
12032
|
static fromArtplayer(args, playerID, domain, options) {
|
|
12025
|
-
const SOID = id_gen_UniID.fromUnknown(playerID, domain)
|
|
12033
|
+
const SOID = id_gen_UniID.fromUnknown(playerID, domain);
|
|
12034
|
+
const senderID = id_gen_UniID.fromUnknown('', domain);
|
|
12026
12035
|
let extra = args.border ? {
|
|
12027
12036
|
artplayer: {
|
|
12028
12037
|
border: args.border,
|
|
@@ -12313,126 +12322,36 @@ class UniPool {
|
|
|
12313
12322
|
color: isShared('color') ? this.dans[0].color : void 0
|
|
12314
12323
|
};
|
|
12315
12324
|
}
|
|
12316
|
-
|
|
12317
|
-
const
|
|
12318
|
-
|
|
12319
|
-
|
|
12320
|
-
|
|
12321
|
-
|
|
12322
|
-
|
|
12323
|
-
|
|
12324
|
-
|
|
12325
|
-
|
|
12326
|
-
|
|
12327
|
-
},
|
|
12328
|
-
{
|
|
12329
|
-
val: dm_gen_Modes.Top,
|
|
12330
|
-
count: 0
|
|
12331
|
-
},
|
|
12332
|
-
{
|
|
12333
|
-
val: dm_gen_Modes.Reverse,
|
|
12334
|
-
count: 0
|
|
12335
|
-
},
|
|
12336
|
-
{
|
|
12337
|
-
val: dm_gen_Modes.Ext,
|
|
12338
|
-
count: 0
|
|
12339
|
-
}
|
|
12340
|
-
],
|
|
12341
|
-
fontsize: [],
|
|
12342
|
-
color: [],
|
|
12343
|
-
senderID: [],
|
|
12344
|
-
content: [],
|
|
12345
|
-
weight: [],
|
|
12346
|
-
pool: [
|
|
12347
|
-
{
|
|
12348
|
-
val: dm_gen_Pools.Def,
|
|
12349
|
-
count: 0
|
|
12350
|
-
},
|
|
12351
|
-
{
|
|
12352
|
-
val: dm_gen_Pools.Sub,
|
|
12353
|
-
count: 0
|
|
12354
|
-
},
|
|
12355
|
-
{
|
|
12356
|
-
val: dm_gen_Pools.Adv,
|
|
12357
|
-
count: 0
|
|
12358
|
-
},
|
|
12359
|
-
{
|
|
12360
|
-
val: dm_gen_Pools.Ix,
|
|
12361
|
-
count: 0
|
|
12362
|
-
}
|
|
12363
|
-
],
|
|
12364
|
-
platform: []
|
|
12365
|
-
};
|
|
12366
|
-
const stat = this.dans.reduce((s, d)=>{
|
|
12367
|
-
const SOID = s.SOID.find((i)=>i.val === d.SOID);
|
|
12368
|
-
if (SOID) SOID.count++;
|
|
12369
|
-
else s.SOID.push({
|
|
12370
|
-
val: d.SOID,
|
|
12371
|
-
count: 1
|
|
12372
|
-
});
|
|
12373
|
-
const mode = s.mode.find((i)=>i.val === d.mode);
|
|
12374
|
-
if (mode) mode.count++;
|
|
12375
|
-
else s.mode.push({
|
|
12376
|
-
val: d.mode,
|
|
12377
|
-
count: 1
|
|
12378
|
-
});
|
|
12379
|
-
const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
|
|
12380
|
-
if (fontsize) fontsize.count++;
|
|
12381
|
-
else s.fontsize.push({
|
|
12382
|
-
val: d.fontsize,
|
|
12383
|
-
count: 1
|
|
12384
|
-
});
|
|
12385
|
-
const color = s.color.find((i)=>i.val === d.color);
|
|
12386
|
-
if (color) color.count++;
|
|
12387
|
-
else s.color.push({
|
|
12388
|
-
val: d.color,
|
|
12389
|
-
count: 1
|
|
12390
|
-
});
|
|
12391
|
-
const senderID = s.senderID.find((i)=>i.val === d.senderID);
|
|
12392
|
-
if (senderID) senderID.count++;
|
|
12393
|
-
else s.senderID.push({
|
|
12394
|
-
val: d.senderID,
|
|
12395
|
-
count: 1
|
|
12396
|
-
});
|
|
12397
|
-
const content = s.content.find((i)=>i.val === d.content);
|
|
12398
|
-
if (content) content.count++;
|
|
12399
|
-
else s.content.push({
|
|
12400
|
-
val: d.content,
|
|
12401
|
-
count: 1
|
|
12402
|
-
});
|
|
12403
|
-
const weight = s.weight.find((i)=>i.val === d.weight);
|
|
12404
|
-
if (weight) weight.count++;
|
|
12405
|
-
else s.weight.push({
|
|
12406
|
-
val: d.weight,
|
|
12407
|
-
count: 1
|
|
12408
|
-
});
|
|
12409
|
-
const pool = s.pool.find((i)=>i.val === d.pool);
|
|
12410
|
-
if (pool) pool.count++;
|
|
12411
|
-
else s.pool.push({
|
|
12412
|
-
val: d.pool,
|
|
12413
|
-
count: 1
|
|
12414
|
-
});
|
|
12415
|
-
const platform = s.platform.find((i)=>i.val === d.platform);
|
|
12416
|
-
if (platform) platform.count++;
|
|
12417
|
-
else s.platform.push({
|
|
12418
|
-
val: d.platform,
|
|
12325
|
+
getShared(key) {
|
|
12326
|
+
const isShared = (key)=>this.dans.every((d)=>d[key]);
|
|
12327
|
+
return isShared(key) ? this.dans[0][key] : void 0;
|
|
12328
|
+
}
|
|
12329
|
+
getStat(key) {
|
|
12330
|
+
const default_stat = [];
|
|
12331
|
+
const stats = this.dans.reduce((stat, dan)=>{
|
|
12332
|
+
const valWithCount = stat.find((i)=>i.val === dan[key]);
|
|
12333
|
+
if (valWithCount) valWithCount.count++;
|
|
12334
|
+
else stat.push({
|
|
12335
|
+
val: dan[key],
|
|
12419
12336
|
count: 1
|
|
12420
12337
|
});
|
|
12421
|
-
return
|
|
12338
|
+
return stat;
|
|
12422
12339
|
}, default_stat);
|
|
12423
|
-
return
|
|
12340
|
+
return stats;
|
|
12341
|
+
}
|
|
12342
|
+
getMost(key) {
|
|
12343
|
+
return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
|
|
12424
12344
|
}
|
|
12425
12345
|
get most() {
|
|
12426
|
-
const s = this.stat;
|
|
12427
12346
|
return {
|
|
12428
|
-
mode:
|
|
12429
|
-
fontsize:
|
|
12430
|
-
color:
|
|
12431
|
-
senderID:
|
|
12432
|
-
content:
|
|
12433
|
-
weight:
|
|
12434
|
-
pool:
|
|
12435
|
-
platform:
|
|
12347
|
+
mode: this.getMost('mode').val,
|
|
12348
|
+
fontsize: this.getMost('fontsize').val,
|
|
12349
|
+
color: this.getMost('color').val,
|
|
12350
|
+
senderID: this.getMost('senderID').val,
|
|
12351
|
+
content: this.getMost('content').val,
|
|
12352
|
+
weight: this.getMost('weight').val,
|
|
12353
|
+
pool: this.getMost('pool').val,
|
|
12354
|
+
platform: this.getMost('platform').val
|
|
12436
12355
|
};
|
|
12437
12356
|
}
|
|
12438
12357
|
static create(options) {
|
|
@@ -12556,7 +12475,8 @@ class UniPool {
|
|
|
12556
12475
|
'platform',
|
|
12557
12476
|
'pool'
|
|
12558
12477
|
].map((k)=>danmaku[k]).join('|');
|
|
12559
|
-
const extra = result[i].extra
|
|
12478
|
+
const extra = result[i].extra;
|
|
12479
|
+
const mergeData = mergeObj[key];
|
|
12560
12480
|
result[i].extraStr = src_JSON.stringify({
|
|
12561
12481
|
...extra,
|
|
12562
12482
|
danuni: {
|
|
@@ -12727,9 +12647,14 @@ class UniPool {
|
|
|
12727
12647
|
static fromBiliXML(xml, options) {
|
|
12728
12648
|
const parser = new XMLParser({
|
|
12729
12649
|
ignoreAttributes: false
|
|
12730
|
-
})
|
|
12650
|
+
});
|
|
12651
|
+
const oriData = parser.parse(xml);
|
|
12652
|
+
const dans = oriData.i.d;
|
|
12653
|
+
const fromConverted = !!oriData.danuni;
|
|
12654
|
+
const cid = BigInt(oriData.i.chatid);
|
|
12731
12655
|
return new UniPool(dans.map((d)=>{
|
|
12732
|
-
const p_str = d['@_p']
|
|
12656
|
+
const p_str = d['@_p'];
|
|
12657
|
+
const p_arr = p_str.split(',');
|
|
12733
12658
|
return UniDM.fromBili({
|
|
12734
12659
|
content: d['#text'],
|
|
12735
12660
|
progress: Number.parseFloat(p_arr[0]),
|
|
@@ -12784,14 +12709,16 @@ class UniPool {
|
|
|
12784
12709
|
});
|
|
12785
12710
|
}
|
|
12786
12711
|
static fromBiliGrpc(bin, options) {
|
|
12787
|
-
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin))
|
|
12712
|
+
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
|
|
12713
|
+
const json = data.elems;
|
|
12788
12714
|
return new UniPool(json.map((d)=>UniDM.fromBili({
|
|
12789
12715
|
...d,
|
|
12790
12716
|
progress: d.progress / 1000
|
|
12791
12717
|
}, d.oid, options)), options);
|
|
12792
12718
|
}
|
|
12793
12719
|
static fromBiliCommandGrpc(bin, options) {
|
|
12794
|
-
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin))
|
|
12720
|
+
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
|
|
12721
|
+
const json = data.commandDms;
|
|
12795
12722
|
return new UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
|
|
12796
12723
|
}
|
|
12797
12724
|
static fromDplayer(json, playerID, domain = 'other', options) {
|
|
@@ -13199,7 +13126,8 @@ var raw_Buffer = __webpack_require__("../../node_modules/.pnpm/buffer@5.7.1/node
|
|
|
13199
13126
|
const compressTypes = [
|
|
13200
13127
|
'brotli',
|
|
13201
13128
|
'gzip'
|
|
13202
|
-
]
|
|
13129
|
+
];
|
|
13130
|
+
const baseTypes = [
|
|
13203
13131
|
'base64',
|
|
13204
13132
|
'base18384'
|
|
13205
13133
|
];
|
|
@@ -13213,19 +13141,25 @@ function raw_raw(list, config, context, compressType = 'brotli', baseType = 'bas
|
|
|
13213
13141
|
list,
|
|
13214
13142
|
config,
|
|
13215
13143
|
context
|
|
13216
|
-
}
|
|
13144
|
+
};
|
|
13145
|
+
const rawText = JSON.stringify(raw1);
|
|
13217
13146
|
let compress;
|
|
13218
13147
|
compress = 'brotli' === compressType ? (0, lib.brotliCompressSync)(rawText) : (0, lib.gzipSync)(rawText);
|
|
13219
13148
|
return `;RawCompressType: ${compressType}\n;RawBaseType: ${baseType}\n;Raw: ${'base64' === baseType ? compress.toString('base64') : fromUint16Array(external_base16384_encode(compress))}`;
|
|
13220
13149
|
}
|
|
13221
13150
|
function deRaw(ass) {
|
|
13222
|
-
const arr = ass.split('\n')
|
|
13151
|
+
const arr = ass.split('\n');
|
|
13152
|
+
const lineCompressType = arr.find((line)=>line.startsWith(';RawCompressType:'));
|
|
13153
|
+
const lineBaseType = arr.find((line)=>line.startsWith(';RawBaseType:'));
|
|
13154
|
+
const lineRaw = arr.find((line)=>line.startsWith(';Raw:'));
|
|
13223
13155
|
if (!lineCompressType || !lineBaseType || !lineRaw) return;
|
|
13224
13156
|
{
|
|
13225
|
-
let compressType = lineCompressType.replace(';RawCompressType: ', '').trim()
|
|
13157
|
+
let compressType = lineCompressType.replace(';RawCompressType: ', '').trim();
|
|
13158
|
+
let baseType = lineBaseType.replace(';RawBaseType: ', '').trim();
|
|
13226
13159
|
if (!compressTypes.includes(compressType)) compressType = 'gzip';
|
|
13227
13160
|
if (!baseTypes.includes(baseType)) baseType = 'base64';
|
|
13228
|
-
const text = lineRaw.replace(';Raw: ', '').trim()
|
|
13161
|
+
const text = lineRaw.replace(';Raw: ', '').trim();
|
|
13162
|
+
const buffer = 'base64' === baseType ? raw_Buffer.from(text, 'base64') : raw_Buffer.from(decode(raw_Buffer.from(text, 'utf-8').toString('utf-8')));
|
|
13229
13163
|
let decompress;
|
|
13230
13164
|
decompress = 'brotli' === compressType ? (0, lib.brotliDecompressSync)(buffer) : (0, lib.gunzipSync)(buffer);
|
|
13231
13165
|
try {
|
|
@@ -13280,7 +13214,8 @@ const ass_create = (list, rawList, config, context = {
|
|
|
13280
13214
|
filename: 'unknown',
|
|
13281
13215
|
title: 'unknown'
|
|
13282
13216
|
}, rawConfig)=>{
|
|
13283
|
-
const Elist = UniPool2DanmakuLists(list)
|
|
13217
|
+
const Elist = UniPool2DanmakuLists(list);
|
|
13218
|
+
const ErawList = UniPool2DanmakuLists(rawList);
|
|
13284
13219
|
const content = [
|
|
13285
13220
|
ass_info(config, context),
|
|
13286
13221
|
style(config),
|
|
@@ -13373,126 +13308,36 @@ class src_UniPool {
|
|
|
13373
13308
|
color: isShared('color') ? this.dans[0].color : void 0
|
|
13374
13309
|
};
|
|
13375
13310
|
}
|
|
13376
|
-
|
|
13377
|
-
const
|
|
13378
|
-
|
|
13379
|
-
|
|
13380
|
-
|
|
13381
|
-
|
|
13382
|
-
|
|
13383
|
-
|
|
13384
|
-
|
|
13385
|
-
|
|
13386
|
-
|
|
13387
|
-
},
|
|
13388
|
-
{
|
|
13389
|
-
val: dm_gen_Modes.Top,
|
|
13390
|
-
count: 0
|
|
13391
|
-
},
|
|
13392
|
-
{
|
|
13393
|
-
val: dm_gen_Modes.Reverse,
|
|
13394
|
-
count: 0
|
|
13395
|
-
},
|
|
13396
|
-
{
|
|
13397
|
-
val: dm_gen_Modes.Ext,
|
|
13398
|
-
count: 0
|
|
13399
|
-
}
|
|
13400
|
-
],
|
|
13401
|
-
fontsize: [],
|
|
13402
|
-
color: [],
|
|
13403
|
-
senderID: [],
|
|
13404
|
-
content: [],
|
|
13405
|
-
weight: [],
|
|
13406
|
-
pool: [
|
|
13407
|
-
{
|
|
13408
|
-
val: dm_gen_Pools.Def,
|
|
13409
|
-
count: 0
|
|
13410
|
-
},
|
|
13411
|
-
{
|
|
13412
|
-
val: dm_gen_Pools.Sub,
|
|
13413
|
-
count: 0
|
|
13414
|
-
},
|
|
13415
|
-
{
|
|
13416
|
-
val: dm_gen_Pools.Adv,
|
|
13417
|
-
count: 0
|
|
13418
|
-
},
|
|
13419
|
-
{
|
|
13420
|
-
val: dm_gen_Pools.Ix,
|
|
13421
|
-
count: 0
|
|
13422
|
-
}
|
|
13423
|
-
],
|
|
13424
|
-
platform: []
|
|
13425
|
-
};
|
|
13426
|
-
const stat = this.dans.reduce((s, d)=>{
|
|
13427
|
-
const SOID = s.SOID.find((i)=>i.val === d.SOID);
|
|
13428
|
-
if (SOID) SOID.count++;
|
|
13429
|
-
else s.SOID.push({
|
|
13430
|
-
val: d.SOID,
|
|
13431
|
-
count: 1
|
|
13432
|
-
});
|
|
13433
|
-
const mode = s.mode.find((i)=>i.val === d.mode);
|
|
13434
|
-
if (mode) mode.count++;
|
|
13435
|
-
else s.mode.push({
|
|
13436
|
-
val: d.mode,
|
|
13437
|
-
count: 1
|
|
13438
|
-
});
|
|
13439
|
-
const fontsize = s.fontsize.find((i)=>i.val === d.fontsize);
|
|
13440
|
-
if (fontsize) fontsize.count++;
|
|
13441
|
-
else s.fontsize.push({
|
|
13442
|
-
val: d.fontsize,
|
|
13443
|
-
count: 1
|
|
13444
|
-
});
|
|
13445
|
-
const color = s.color.find((i)=>i.val === d.color);
|
|
13446
|
-
if (color) color.count++;
|
|
13447
|
-
else s.color.push({
|
|
13448
|
-
val: d.color,
|
|
13449
|
-
count: 1
|
|
13450
|
-
});
|
|
13451
|
-
const senderID = s.senderID.find((i)=>i.val === d.senderID);
|
|
13452
|
-
if (senderID) senderID.count++;
|
|
13453
|
-
else s.senderID.push({
|
|
13454
|
-
val: d.senderID,
|
|
13455
|
-
count: 1
|
|
13456
|
-
});
|
|
13457
|
-
const content = s.content.find((i)=>i.val === d.content);
|
|
13458
|
-
if (content) content.count++;
|
|
13459
|
-
else s.content.push({
|
|
13460
|
-
val: d.content,
|
|
13461
|
-
count: 1
|
|
13462
|
-
});
|
|
13463
|
-
const weight = s.weight.find((i)=>i.val === d.weight);
|
|
13464
|
-
if (weight) weight.count++;
|
|
13465
|
-
else s.weight.push({
|
|
13466
|
-
val: d.weight,
|
|
13467
|
-
count: 1
|
|
13468
|
-
});
|
|
13469
|
-
const pool = s.pool.find((i)=>i.val === d.pool);
|
|
13470
|
-
if (pool) pool.count++;
|
|
13471
|
-
else s.pool.push({
|
|
13472
|
-
val: d.pool,
|
|
13473
|
-
count: 1
|
|
13474
|
-
});
|
|
13475
|
-
const platform = s.platform.find((i)=>i.val === d.platform);
|
|
13476
|
-
if (platform) platform.count++;
|
|
13477
|
-
else s.platform.push({
|
|
13478
|
-
val: d.platform,
|
|
13311
|
+
getShared(key) {
|
|
13312
|
+
const isShared = (key)=>this.dans.every((d)=>d[key]);
|
|
13313
|
+
return isShared(key) ? this.dans[0][key] : void 0;
|
|
13314
|
+
}
|
|
13315
|
+
getStat(key) {
|
|
13316
|
+
const default_stat = [];
|
|
13317
|
+
const stats = this.dans.reduce((stat, dan)=>{
|
|
13318
|
+
const valWithCount = stat.find((i)=>i.val === dan[key]);
|
|
13319
|
+
if (valWithCount) valWithCount.count++;
|
|
13320
|
+
else stat.push({
|
|
13321
|
+
val: dan[key],
|
|
13479
13322
|
count: 1
|
|
13480
13323
|
});
|
|
13481
|
-
return
|
|
13324
|
+
return stat;
|
|
13482
13325
|
}, default_stat);
|
|
13483
|
-
return
|
|
13326
|
+
return stats;
|
|
13327
|
+
}
|
|
13328
|
+
getMost(key) {
|
|
13329
|
+
return this.getStat(key).sort((a, b)=>b.count - a.count)[0];
|
|
13484
13330
|
}
|
|
13485
13331
|
get most() {
|
|
13486
|
-
const s = this.stat;
|
|
13487
13332
|
return {
|
|
13488
|
-
mode:
|
|
13489
|
-
fontsize:
|
|
13490
|
-
color:
|
|
13491
|
-
senderID:
|
|
13492
|
-
content:
|
|
13493
|
-
weight:
|
|
13494
|
-
pool:
|
|
13495
|
-
platform:
|
|
13333
|
+
mode: this.getMost('mode').val,
|
|
13334
|
+
fontsize: this.getMost('fontsize').val,
|
|
13335
|
+
color: this.getMost('color').val,
|
|
13336
|
+
senderID: this.getMost('senderID').val,
|
|
13337
|
+
content: this.getMost('content').val,
|
|
13338
|
+
weight: this.getMost('weight').val,
|
|
13339
|
+
pool: this.getMost('pool').val,
|
|
13340
|
+
platform: this.getMost('platform').val
|
|
13496
13341
|
};
|
|
13497
13342
|
}
|
|
13498
13343
|
static create(options) {
|
|
@@ -13616,7 +13461,8 @@ class src_UniPool {
|
|
|
13616
13461
|
'platform',
|
|
13617
13462
|
'pool'
|
|
13618
13463
|
].map((k)=>danmaku[k]).join('|');
|
|
13619
|
-
const extra = result[i].extra
|
|
13464
|
+
const extra = result[i].extra;
|
|
13465
|
+
const mergeData = mergeObj[key];
|
|
13620
13466
|
result[i].extraStr = src_JSON_0.stringify({
|
|
13621
13467
|
...extra,
|
|
13622
13468
|
danuni: {
|
|
@@ -13787,9 +13633,14 @@ class src_UniPool {
|
|
|
13787
13633
|
static fromBiliXML(xml, options) {
|
|
13788
13634
|
const parser = new XMLParser({
|
|
13789
13635
|
ignoreAttributes: false
|
|
13790
|
-
})
|
|
13636
|
+
});
|
|
13637
|
+
const oriData = parser.parse(xml);
|
|
13638
|
+
const dans = oriData.i.d;
|
|
13639
|
+
const fromConverted = !!oriData.danuni;
|
|
13640
|
+
const cid = BigInt(oriData.i.chatid);
|
|
13791
13641
|
return new src_UniPool(dans.map((d)=>{
|
|
13792
|
-
const p_str = d['@_p']
|
|
13642
|
+
const p_str = d['@_p'];
|
|
13643
|
+
const p_arr = p_str.split(',');
|
|
13793
13644
|
return UniDM.fromBili({
|
|
13794
13645
|
content: d['#text'],
|
|
13795
13646
|
progress: Number.parseFloat(p_arr[0]),
|
|
@@ -13844,14 +13695,16 @@ class src_UniPool {
|
|
|
13844
13695
|
});
|
|
13845
13696
|
}
|
|
13846
13697
|
static fromBiliGrpc(bin, options) {
|
|
13847
|
-
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin))
|
|
13698
|
+
const data = fromBinary(DmSegMobileReplySchema, new Uint8Array(bin));
|
|
13699
|
+
const json = data.elems;
|
|
13848
13700
|
return new src_UniPool(json.map((d)=>UniDM.fromBili({
|
|
13849
13701
|
...d,
|
|
13850
13702
|
progress: d.progress / 1000
|
|
13851
13703
|
}, d.oid, options)), options);
|
|
13852
13704
|
}
|
|
13853
13705
|
static fromBiliCommandGrpc(bin, options) {
|
|
13854
|
-
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin))
|
|
13706
|
+
const data = fromBinary(DmWebViewReplySchema, new Uint8Array(bin));
|
|
13707
|
+
const json = data.commandDms;
|
|
13855
13708
|
return new src_UniPool(json.map((d)=>UniDM.fromBiliCommand(d, d.oid, options)), options);
|
|
13856
13709
|
}
|
|
13857
13710
|
static fromDplayer(json, playerID, domain = 'other', options) {
|