icecat: update to upstream version 128.0.14-1gnu1
This commit is contained in:
parent
0cdda4f34e
commit
56c3deff60
77 changed files with 8997 additions and 3862 deletions
|
|
@ -79,7 +79,6 @@ dom/media/gmp/rlz/.*
|
|||
dom/media/gmp/widevine-adapter/content_decryption_module.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module_export.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module_ext.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module_proxy.h
|
||||
dom/media/platforms/ffmpeg/ffmpeg57/.*
|
||||
dom/media/platforms/ffmpeg/ffmpeg58/.*
|
||||
dom/media/platforms/ffmpeg/ffmpeg59/.*
|
||||
|
|
|
|||
|
|
@ -1289,7 +1289,6 @@ dom/media/gmp/rlz/
|
|||
dom/media/gmp/widevine-adapter/content_decryption_module_export.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module_ext.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module_proxy.h
|
||||
dom/media/platforms/ffmpeg/ffmpeg57/
|
||||
dom/media/platforms/ffmpeg/ffmpeg58/
|
||||
dom/media/platforms/ffmpeg/ffmpeg59/
|
||||
|
|
|
|||
|
|
@ -22,4 +22,4 @@
|
|||
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
|
||||
# don't change CLOBBER for WebIDL changes any more.
|
||||
|
||||
Merge day clobber 2025-06-23
|
||||
Merge day clobber 2025-07-21
|
||||
|
|
@ -202,7 +202,11 @@ RemoteAccessible* DocAccessibleParent::CreateAcc(
|
|||
RemoteAccessible* newProxy;
|
||||
if ((newProxy = GetAccessible(aAccData.ID()))) {
|
||||
// This is a move. Reuse the Accessible; don't destroy it.
|
||||
MOZ_ASSERT(!newProxy->RemoteParent());
|
||||
if (newProxy->RemoteParent()) {
|
||||
MOZ_ASSERT_UNREACHABLE(
|
||||
"Attempt to move RemoteAccessible which still has a parent!");
|
||||
return nullptr;
|
||||
}
|
||||
return newProxy;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
128.13.0
|
||||
128.14.0
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
128.13.0esr
|
||||
128.14.0esr
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ MOZ_DEVTOOLS=all
|
|||
MOZ_APP_BASENAME=IceCat
|
||||
MOZ_APP_UA_NAME=Firefox
|
||||
MOZ_APP_VENDOR=GNU
|
||||
MOZ_APP_VERSION=128.13.0
|
||||
MOZ_APP_VERSION=128.14.0
|
||||
MOZ_APP_PROFILE=mozilla/icecat
|
||||
MOZ_PAY=0
|
||||
MOZ_SERVICES_HEALTHREPORT=0
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@
|
|||
# hardcoded milestones in the tree from these two files.
|
||||
#--------------------------------------------------------
|
||||
|
||||
128.13.0
|
||||
128.14.0
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
icecat (128.14.0-1gnu1+build1-0.12.0) ecne; urgency=medium
|
||||
|
||||
* New upstream stable release (icecat-128.14.0-1gnu1)
|
||||
|
||||
-- Capitulo Mexicano de Software Libre <devel@cmxsl.org> Tue, 19 Aug 2025 23:07:15 -0600
|
||||
|
||||
icecat (128.13.0-1gnu1+build1-0.12.0) ecne; urgency=medium
|
||||
|
||||
* New upstream stable release (icecat-128.13.0-1gnu1)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
#include "GLContext.h"
|
||||
#include "ImageBitmapRenderingContext.h"
|
||||
#include "ImageEncoder.h"
|
||||
#include "mozilla/dom/BlobImpl.h"
|
||||
#include "mozilla/dom/CanvasRenderingContext2D.h"
|
||||
#include "mozilla/dom/OffscreenCanvasRenderingContext2D.h"
|
||||
#include "mozilla/GfxMessageUtils.h"
|
||||
|
|
@ -26,55 +25,6 @@ namespace mozilla::dom {
|
|||
CanvasRenderingContextHelper::CanvasRenderingContextHelper()
|
||||
: mCurrentContextType(CanvasContextType::NoContext) {}
|
||||
|
||||
void CanvasRenderingContextHelper::ToBlob(
|
||||
JSContext* aCx, nsIGlobalObject* aGlobal, BlobCallback& aCallback,
|
||||
const nsAString& aType, JS::Handle<JS::Value> aParams, bool aUsePlaceholder,
|
||||
ErrorResult& aRv) {
|
||||
// Encoder callback when encoding is complete.
|
||||
class EncodeCallback : public EncodeCompleteCallback {
|
||||
public:
|
||||
EncodeCallback(nsIGlobalObject* aGlobal, BlobCallback* aCallback)
|
||||
: mGlobal(aGlobal), mBlobCallback(aCallback) {}
|
||||
|
||||
// This is called on main thread.
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
nsresult ReceiveBlobImpl(already_AddRefed<BlobImpl> aBlobImpl) override {
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
RefPtr<BlobImpl> blobImpl = aBlobImpl;
|
||||
|
||||
RefPtr<Blob> blob;
|
||||
|
||||
if (blobImpl) {
|
||||
blob = Blob::Create(mGlobal, blobImpl);
|
||||
}
|
||||
|
||||
RefPtr<BlobCallback> callback(std::move(mBlobCallback));
|
||||
ErrorResult rv;
|
||||
|
||||
callback->Call(blob, rv);
|
||||
|
||||
mGlobal = nullptr;
|
||||
MOZ_ASSERT(!mBlobCallback);
|
||||
|
||||
return rv.StealNSResult();
|
||||
}
|
||||
|
||||
bool CanBeDeletedOnAnyThread() override {
|
||||
// EncodeCallback is used from the main thread only.
|
||||
return false;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIGlobalObject> mGlobal;
|
||||
RefPtr<BlobCallback> mBlobCallback;
|
||||
};
|
||||
|
||||
RefPtr<EncodeCompleteCallback> callback =
|
||||
new EncodeCallback(aGlobal, &aCallback);
|
||||
|
||||
ToBlob(aCx, callback, aType, aParams, aUsePlaceholder, aRv);
|
||||
}
|
||||
|
||||
void CanvasRenderingContextHelper::ToBlob(
|
||||
JSContext* aCx, EncodeCompleteCallback* aCallback, const nsAString& aType,
|
||||
JS::Handle<JS::Value> aParams, bool aUsePlaceholder, ErrorResult& aRv) {
|
||||
|
|
|
|||
|
|
@ -54,10 +54,6 @@ class CanvasRenderingContextHelper {
|
|||
nsAString& outParams,
|
||||
bool* const outCustomParseOptions);
|
||||
|
||||
void ToBlob(JSContext* aCx, nsIGlobalObject* global, BlobCallback& aCallback,
|
||||
const nsAString& aType, JS::Handle<JS::Value> aParams,
|
||||
bool aUsePlaceholder, ErrorResult& aRv);
|
||||
|
||||
void ToBlob(JSContext* aCx, EncodeCompleteCallback* aCallback,
|
||||
const nsAString& aType, JS::Handle<JS::Value> aParams,
|
||||
bool aUsePlaceholder, ErrorResult& aRv);
|
||||
|
|
|
|||
|
|
@ -570,6 +570,10 @@ void OffscreenCanvas::SetWriteOnly(RefPtr<nsIPrincipal>&& aExpandedReader) {
|
|||
mExpandedReader.forget());
|
||||
mExpandedReader = std::move(aExpandedReader);
|
||||
mIsWriteOnly = true;
|
||||
|
||||
if (mDisplay) {
|
||||
mDisplay->SetWriteOnly(mExpandedReader);
|
||||
}
|
||||
}
|
||||
|
||||
bool OffscreenCanvas::CallerCanRead(nsIPrincipal& aPrincipal) const {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,11 @@ OffscreenCanvasDisplayHelper::OffscreenCanvasDisplayHelper(
|
|||
mData.mSize.height = aHeight;
|
||||
}
|
||||
|
||||
OffscreenCanvasDisplayHelper::~OffscreenCanvasDisplayHelper() = default;
|
||||
OffscreenCanvasDisplayHelper::~OffscreenCanvasDisplayHelper() {
|
||||
MutexAutoLock lock(mMutex);
|
||||
NS_ReleaseOnMainThread("OffscreenCanvas::mExpandedReader",
|
||||
mExpandedReader.forget());
|
||||
}
|
||||
|
||||
void OffscreenCanvasDisplayHelper::DestroyElement() {
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
|
@ -61,6 +65,32 @@ void OffscreenCanvasDisplayHelper::DestroyCanvas() {
|
|||
mWorkerRef = nullptr;
|
||||
}
|
||||
|
||||
void OffscreenCanvasDisplayHelper::SetWriteOnly(nsIPrincipal* aExpandedReader) {
|
||||
MutexAutoLock lock(mMutex);
|
||||
NS_ReleaseOnMainThread("OffscreenCanvasDisplayHelper::mExpandedReader",
|
||||
mExpandedReader.forget());
|
||||
mExpandedReader = aExpandedReader;
|
||||
mIsWriteOnly = true;
|
||||
}
|
||||
|
||||
bool OffscreenCanvasDisplayHelper::CallerCanRead(
|
||||
nsIPrincipal& aPrincipal) const {
|
||||
MutexAutoLock lock(mMutex);
|
||||
if (!mIsWriteOnly) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If mExpandedReader is set, this canvas was tainted only by
|
||||
// mExpandedReader's resources. So allow reading if the subject
|
||||
// principal subsumes mExpandedReader.
|
||||
if (mExpandedReader && aPrincipal.Subsumes(mExpandedReader)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return nsContentUtils::PrincipalHasPermission(aPrincipal,
|
||||
nsGkAtoms::all_urlsPermission);
|
||||
}
|
||||
|
||||
bool OffscreenCanvasDisplayHelper::CanElementCaptureStream() const {
|
||||
MutexAutoLock lock(mMutex);
|
||||
return !!mWorkerRef;
|
||||
|
|
|
|||
|
|
@ -57,6 +57,19 @@ class OffscreenCanvasDisplayHelper final {
|
|||
void DestroyCanvas();
|
||||
void DestroyElement();
|
||||
|
||||
bool IsWriteOnly() const {
|
||||
MutexAutoLock lock(mMutex);
|
||||
return mIsWriteOnly;
|
||||
}
|
||||
|
||||
bool HasWorkerRef() const {
|
||||
MutexAutoLock lock(mMutex);
|
||||
return !!mWorkerRef;
|
||||
}
|
||||
|
||||
void SetWriteOnly(nsIPrincipal* aExpandedReader = nullptr);
|
||||
bool CallerCanRead(nsIPrincipal& aPrincipal) const;
|
||||
|
||||
bool CanElementCaptureStream() const;
|
||||
bool UsingElementCaptureStream() const;
|
||||
|
||||
|
|
@ -90,6 +103,8 @@ class OffscreenCanvasDisplayHelper final {
|
|||
mozilla::layers::ImageContainer::FrameID mLastFrameID MOZ_GUARDED_BY(mMutex) =
|
||||
0;
|
||||
bool mPendingInvalidate MOZ_GUARDED_BY(mMutex) = false;
|
||||
bool mIsWriteOnly MOZ_GUARDED_BY(mMutex) = false;
|
||||
RefPtr<nsIPrincipal> mExpandedReader MOZ_GUARDED_BY(mMutex);
|
||||
};
|
||||
|
||||
} // namespace mozilla::dom
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include "mozilla/BasePrincipal.h"
|
||||
#include "mozilla/CheckedInt.h"
|
||||
#include "mozilla/PresShell.h"
|
||||
#include "mozilla/dom/BlobImpl.h"
|
||||
#include "mozilla/dom/CanvasCaptureMediaStream.h"
|
||||
#include "mozilla/dom/CanvasRenderingContext2D.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
|
|
@ -768,16 +769,26 @@ void HTMLCanvasElement::ToDataURL(JSContext* aCx, const nsAString& aType,
|
|||
nsAString& aDataURL,
|
||||
nsIPrincipal& aSubjectPrincipal,
|
||||
ErrorResult& aRv) {
|
||||
// mWriteOnly check is redundant, but optimizes for the common case.
|
||||
if (mWriteOnly && !CallerCanRead(aSubjectPrincipal)) {
|
||||
bool recheckCanRead = mOffscreenDisplay && mOffscreenDisplay->HasWorkerRef();
|
||||
|
||||
if (!CallerCanRead(aSubjectPrincipal)) {
|
||||
aRv.Throw(NS_ERROR_DOM_SECURITY_ERR);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = ToDataURLImpl(aCx, aSubjectPrincipal, aType, aParams, aDataURL);
|
||||
if (NS_FAILED(rv)) {
|
||||
aDataURL.AssignLiteral("data:,");
|
||||
nsString dataURL;
|
||||
nsresult rv = ToDataURLImpl(aCx, aSubjectPrincipal, aType, aParams, dataURL);
|
||||
if (recheckCanRead && !CallerCanRead(aSubjectPrincipal)) {
|
||||
aRv.Throw(NS_ERROR_DOM_SECURITY_ERR);
|
||||
return;
|
||||
}
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
aDataURL.Assign(u"data:,"_ns);
|
||||
return;
|
||||
}
|
||||
|
||||
aDataURL = std::move(dataURL);
|
||||
}
|
||||
|
||||
void HTMLCanvasElement::SetMozPrintCallback(PrintCallback* aCallback) {
|
||||
|
|
@ -993,8 +1004,9 @@ void HTMLCanvasElement::ToBlob(JSContext* aCx, BlobCallback& aCallback,
|
|||
JS::Handle<JS::Value> aParams,
|
||||
nsIPrincipal& aSubjectPrincipal,
|
||||
ErrorResult& aRv) {
|
||||
// mWriteOnly check is redundant, but optimizes for the common case.
|
||||
if (mWriteOnly && !CallerCanRead(aSubjectPrincipal)) {
|
||||
bool recheckCanRead = mOffscreenDisplay && mOffscreenDisplay->HasWorkerRef();
|
||||
|
||||
if (!CallerCanRead(aSubjectPrincipal)) {
|
||||
aRv.Throw(NS_ERROR_DOM_SECURITY_ERR);
|
||||
return;
|
||||
}
|
||||
|
|
@ -1019,7 +1031,59 @@ void HTMLCanvasElement::ToBlob(JSContext* aCx, BlobCallback& aCallback,
|
|||
// If no permission, return all-white, opaque image data.
|
||||
bool usePlaceholder = !CanvasUtils::IsImageExtractionAllowed(
|
||||
OwnerDoc(), aCx, aSubjectPrincipal);
|
||||
CanvasRenderingContextHelper::ToBlob(aCx, global, aCallback, aType, aParams,
|
||||
|
||||
// Encoder callback when encoding is complete.
|
||||
class EncodeCallback : public EncodeCompleteCallback {
|
||||
public:
|
||||
EncodeCallback(nsIGlobalObject* aGlobal, BlobCallback* aCallback,
|
||||
OffscreenCanvasDisplayHelper* aOffscreenDisplay,
|
||||
nsIPrincipal* aSubjectPrincipal)
|
||||
: mGlobal(aGlobal),
|
||||
mBlobCallback(aCallback),
|
||||
mOffscreenDisplay(aOffscreenDisplay),
|
||||
mSubjectPrincipal(aSubjectPrincipal) {}
|
||||
|
||||
// This is called on main thread.
|
||||
MOZ_CAN_RUN_SCRIPT
|
||||
nsresult ReceiveBlobImpl(already_AddRefed<BlobImpl> aBlobImpl) override {
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
||||
RefPtr<BlobImpl> blobImpl = aBlobImpl;
|
||||
|
||||
RefPtr<Blob> blob;
|
||||
|
||||
if (blobImpl && (!mOffscreenDisplay ||
|
||||
mOffscreenDisplay->CallerCanRead(*mSubjectPrincipal))) {
|
||||
blob = Blob::Create(mGlobal, blobImpl);
|
||||
}
|
||||
|
||||
RefPtr<BlobCallback> callback(std::move(mBlobCallback));
|
||||
ErrorResult rv;
|
||||
|
||||
callback->Call(blob, rv);
|
||||
|
||||
mGlobal = nullptr;
|
||||
MOZ_ASSERT(!mBlobCallback);
|
||||
|
||||
return rv.StealNSResult();
|
||||
}
|
||||
|
||||
bool CanBeDeletedOnAnyThread() override {
|
||||
// EncodeCallback is used from the main thread only.
|
||||
return false;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIGlobalObject> mGlobal;
|
||||
RefPtr<BlobCallback> mBlobCallback;
|
||||
RefPtr<OffscreenCanvasDisplayHelper> mOffscreenDisplay;
|
||||
RefPtr<nsIPrincipal> mSubjectPrincipal;
|
||||
};
|
||||
|
||||
RefPtr<EncodeCompleteCallback> callback = new EncodeCallback(
|
||||
global, &aCallback, recheckCanRead ? mOffscreenDisplay.get() : nullptr,
|
||||
recheckCanRead ? &aSubjectPrincipal : nullptr);
|
||||
|
||||
CanvasRenderingContextHelper::ToBlob(aCx, callback, aType, aParams,
|
||||
usePlaceholder, aRv);
|
||||
}
|
||||
|
||||
|
|
@ -1090,7 +1154,12 @@ already_AddRefed<nsISupports> HTMLCanvasElement::GetContext(
|
|||
|
||||
nsIntSize HTMLCanvasElement::GetSize() { return GetWidthHeight(); }
|
||||
|
||||
bool HTMLCanvasElement::IsWriteOnly() const { return mWriteOnly; }
|
||||
bool HTMLCanvasElement::IsWriteOnly() const {
|
||||
if (mOffscreenDisplay && mOffscreenDisplay->IsWriteOnly()) {
|
||||
return true;
|
||||
}
|
||||
return mWriteOnly;
|
||||
}
|
||||
|
||||
void HTMLCanvasElement::SetWriteOnly(
|
||||
nsIPrincipal* aExpandedReader /* = nullptr */) {
|
||||
|
|
@ -1102,6 +1171,10 @@ void HTMLCanvasElement::SetWriteOnly(
|
|||
}
|
||||
|
||||
bool HTMLCanvasElement::CallerCanRead(nsIPrincipal& aPrincipal) const {
|
||||
if (mOffscreenDisplay && !mOffscreenDisplay->CallerCanRead(aPrincipal)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!mWriteOnly) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -372,13 +372,13 @@ class HTMLCanvasElement final : public nsGenericHTMLElement,
|
|||
RefPtr<layers::ImageContainer> mImageContainer;
|
||||
RefPtr<HTMLCanvasElementObserver> mContextObserver;
|
||||
|
||||
public:
|
||||
// Record whether this canvas should be write-only or not.
|
||||
// We set this when script paints an image from a different origin.
|
||||
// We also transitively set it when script paints a canvas which
|
||||
// is itself write-only.
|
||||
bool mWriteOnly;
|
||||
|
||||
public:
|
||||
// When this canvas is (only) tainted by an image from an extension
|
||||
// content script, allow reads from the same extension afterwards.
|
||||
RefPtr<nsIPrincipal> mExpandedReader;
|
||||
|
|
|
|||
|
|
@ -96,9 +96,7 @@ void ClearKeyPersistence::WriteIndex() {
|
|||
std::move(onIndexFail));
|
||||
}
|
||||
|
||||
ClearKeyPersistence::ClearKeyPersistence(Host_10* aHost) {
|
||||
this->mHost = aHost;
|
||||
}
|
||||
ClearKeyPersistence::ClearKeyPersistence(Host_11* aHost) : mHost(aHost) {}
|
||||
|
||||
void ClearKeyPersistence::EnsureInitialized(bool aPersistentStateAllowed,
|
||||
function<void()>&& aOnInitialized) {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ enum PersistentKeyState { UNINITIALIZED, LOADING, LOADED };
|
|||
|
||||
class ClearKeyPersistence : public RefCounted {
|
||||
public:
|
||||
explicit ClearKeyPersistence(cdm::Host_10* aHost);
|
||||
explicit ClearKeyPersistence(cdm::Host_11* aHost);
|
||||
|
||||
void EnsureInitialized(bool aPersistentStateAllowed,
|
||||
std::function<void()>&& aOnInitialized);
|
||||
|
|
@ -51,7 +51,7 @@ class ClearKeyPersistence : public RefCounted {
|
|||
void PersistentSessionRemoved(std::string& aSid);
|
||||
|
||||
private:
|
||||
cdm::Host_10* mHost = nullptr;
|
||||
cdm::Host_11* mHost = nullptr;
|
||||
|
||||
PersistentKeyState mPersistentKeyState = PersistentKeyState::UNINITIALIZED;
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ using std::function;
|
|||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
ClearKeySessionManager::ClearKeySessionManager(Host_10* aHost)
|
||||
ClearKeySessionManager::ClearKeySessionManager(Host_11* aHost)
|
||||
: mDecryptionManager(ClearKeyDecryptionManager::Get()) {
|
||||
CK_LOGD("ClearKeySessionManager ctor %p", this);
|
||||
AddRef();
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
class ClearKeySessionManager final : public RefCounted {
|
||||
public:
|
||||
explicit ClearKeySessionManager(cdm::Host_10* aHost);
|
||||
explicit ClearKeySessionManager(cdm::Host_11* aHost);
|
||||
|
||||
void Init(bool aDistinctiveIdentifierAllowed, bool aPersistentStateAllowed);
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ class ClearKeySessionManager final : public RefCounted {
|
|||
RefPtr<ClearKeyDecryptionManager> mDecryptionManager;
|
||||
RefPtr<ClearKeyPersistence> mPersistence;
|
||||
|
||||
cdm::Host_10* mHost = nullptr;
|
||||
cdm::Host_11* mHost = nullptr;
|
||||
|
||||
std::set<KeyId> mKeyIds;
|
||||
std::map<std::string, ClearKeySession*> mSessions;
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class WriteRecordClient : public FileIOClient {
|
|||
* This function will take the memory ownership of the parameters and
|
||||
* delete them when done.
|
||||
*/
|
||||
static void Write(Host_10* aHost, string& aRecordName,
|
||||
static void Write(Host_11* aHost, string& aRecordName,
|
||||
const vector<uint8_t>& aData, function<void()>&& aOnSuccess,
|
||||
function<void()>&& aOnFailure) {
|
||||
WriteRecordClient* client = new WriteRecordClient(
|
||||
|
|
@ -75,7 +75,7 @@ class WriteRecordClient : public FileIOClient {
|
|||
mOnFailure(std::move(aOnFailure)),
|
||||
mData(aData) {}
|
||||
|
||||
void Do(const string& aName, Host_10* aHost) {
|
||||
void Do(const string& aName, Host_11* aHost) {
|
||||
// Initialize the FileIO.
|
||||
mFileIO = aHost->CreateFileIO(this);
|
||||
mFileIO->Open(aName.c_str(), aName.size());
|
||||
|
|
@ -108,7 +108,7 @@ class WriteRecordClient : public FileIOClient {
|
|||
const vector<uint8_t> mData;
|
||||
};
|
||||
|
||||
void WriteData(Host_10* aHost, string& aRecordName,
|
||||
void WriteData(Host_11* aHost, string& aRecordName,
|
||||
const vector<uint8_t>& aData, function<void()>&& aOnSuccess,
|
||||
function<void()>&& aOnFailure) {
|
||||
WriteRecordClient::Write(aHost, aRecordName, aData, std::move(aOnSuccess),
|
||||
|
|
@ -121,7 +121,7 @@ class ReadRecordClient : public FileIOClient {
|
|||
* This function will take the memory ownership of the parameters and
|
||||
* delete them when done.
|
||||
*/
|
||||
static void Read(Host_10* aHost, string& aRecordName,
|
||||
static void Read(Host_11* aHost, string& aRecordName,
|
||||
function<void(const uint8_t*, uint32_t)>&& aOnSuccess,
|
||||
function<void()>&& aOnFailure) {
|
||||
(new ReadRecordClient(std::move(aOnSuccess), std::move(aOnFailure)))
|
||||
|
|
@ -155,7 +155,7 @@ class ReadRecordClient : public FileIOClient {
|
|||
mOnSuccess(std::move(aOnSuccess)),
|
||||
mOnFailure(std::move(aOnFailure)) {}
|
||||
|
||||
void Do(const string& aName, Host_10* aHost) {
|
||||
void Do(const string& aName, Host_11* aHost) {
|
||||
mFileIO = aHost->CreateFileIO(this);
|
||||
mFileIO->Open(aName.c_str(), aName.size());
|
||||
}
|
||||
|
|
@ -186,7 +186,7 @@ class ReadRecordClient : public FileIOClient {
|
|||
function<void()> mOnFailure;
|
||||
};
|
||||
|
||||
void ReadData(Host_10* aHost, string& aRecordName,
|
||||
void ReadData(Host_11* aHost, string& aRecordName,
|
||||
function<void(const uint8_t*, uint32_t)>&& aOnSuccess,
|
||||
function<void()>&& aOnFailure) {
|
||||
ReadRecordClient::Read(aHost, aRecordName, std::move(aOnSuccess),
|
||||
|
|
|
|||
|
|
@ -29,13 +29,13 @@
|
|||
#define IO_FAILED(x) ((x) != cdm::FileIOClient::Status::kSuccess)
|
||||
|
||||
// Writes data to a file and fires the appropriate callback when complete.
|
||||
void WriteData(cdm::Host_10* aHost, std::string& aRecordName,
|
||||
void WriteData(cdm::Host_11* aHost, std::string& aRecordName,
|
||||
const std::vector<uint8_t>& aData,
|
||||
std::function<void()>&& aOnSuccess,
|
||||
std::function<void()>&& aOnFailure);
|
||||
|
||||
// Reads data from a file and fires the appropriate callback when complete.
|
||||
void ReadData(cdm::Host_10* aHost, std::string& aRecordName,
|
||||
void ReadData(cdm::Host_11* aHost, std::string& aRecordName,
|
||||
std::function<void(const uint8_t*, uint32_t)>&& aOnSuccess,
|
||||
std::function<void()>&& aOnFailure);
|
||||
|
||||
|
|
|
|||
|
|
@ -46,11 +46,11 @@ CDM_API
|
|||
void* CreateCdmInstance(int cdm_interface_version, const char* key_system,
|
||||
uint32_t key_system_size,
|
||||
GetCdmHostFunc get_cdm_host_func, void* user_data) {
|
||||
if (cdm_interface_version != cdm::ContentDecryptionModule_10::kVersion) {
|
||||
// Only support CDM version 10 currently.
|
||||
if (cdm_interface_version != cdm::ContentDecryptionModule_11::kVersion) {
|
||||
// Only support CDM version 11 currently.
|
||||
return nullptr;
|
||||
}
|
||||
cdm::Host_10* host = static_cast<cdm::Host_10*>(
|
||||
cdm::Host_11* host = static_cast<cdm::Host_11*>(
|
||||
get_cdm_host_func(cdm_interface_version, user_data));
|
||||
return new FakeDecryptor(host);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class TestManager {
|
|||
std::set<std::string> mTestIDs;
|
||||
};
|
||||
|
||||
FakeDecryptor::FakeDecryptor(cdm::Host_10* aHost) : mHost(aHost) {
|
||||
FakeDecryptor::FakeDecryptor(cdm::Host_11* aHost) : mHost(aHost) {
|
||||
MOZ_ASSERT(!sInstance);
|
||||
sInstance = this;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
class FakeDecryptor : public cdm::ContentDecryptionModule_10 {
|
||||
public:
|
||||
explicit FakeDecryptor(cdm::Host_10* aHost);
|
||||
explicit FakeDecryptor(cdm::Host_11* aHost);
|
||||
|
||||
void Initialize(bool aAllowDistinctiveIdentifier, bool aAllowPersistentState,
|
||||
bool aUseHardwareSecureCodecs) override {
|
||||
|
|
@ -93,7 +93,7 @@ class FakeDecryptor : public cdm::ContentDecryptionModule_10 {
|
|||
|
||||
static void Message(const std::string& aMessage);
|
||||
|
||||
cdm::Host_10* mHost;
|
||||
cdm::Host_11* mHost;
|
||||
|
||||
static FakeDecryptor* sInstance;
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class WriteRecordClient : public FileIOClient {
|
|||
|
||||
void OnWriteComplete(Status aStatus) override { Done(aStatus); }
|
||||
|
||||
void Do(const std::string& aName, Host_10* aHost) {
|
||||
void Do(const std::string& aName, Host_11* aHost) {
|
||||
// Initialize the FileIO.
|
||||
mFileIO = aHost->CreateFileIO(this);
|
||||
mFileIO->Open(aName.c_str(), aName.size());
|
||||
|
|
@ -64,7 +64,7 @@ class WriteRecordClient : public FileIOClient {
|
|||
std::vector<uint8_t> mData;
|
||||
};
|
||||
|
||||
void WriteRecord(Host_10* aHost, const std::string& aRecordName,
|
||||
void WriteRecord(Host_11* aHost, const std::string& aRecordName,
|
||||
const uint8_t* aData, uint32_t aNumBytes,
|
||||
std::function<void()>&& aOnSuccess,
|
||||
std::function<void()>&& aOnFailure) {
|
||||
|
|
@ -74,7 +74,7 @@ void WriteRecord(Host_10* aHost, const std::string& aRecordName,
|
|||
client->Do(aRecordName, aHost);
|
||||
}
|
||||
|
||||
void WriteRecord(Host_10* aHost, const std::string& aRecordName,
|
||||
void WriteRecord(Host_11* aHost, const std::string& aRecordName,
|
||||
const std::string& aData, std::function<void()>&& aOnSuccess,
|
||||
std::function<void()>&& aOnFailure) {
|
||||
return WriteRecord(aHost, aRecordName, (const uint8_t*)aData.c_str(),
|
||||
|
|
@ -104,7 +104,7 @@ class ReadRecordClient : public FileIOClient {
|
|||
|
||||
void OnWriteComplete(Status aStatus) override {}
|
||||
|
||||
void Do(const std::string& aName, Host_10* aHost) {
|
||||
void Do(const std::string& aName, Host_11* aHost) {
|
||||
mFileIO = aHost->CreateFileIO(this);
|
||||
mFileIO->Open(aName.c_str(), aName.size());
|
||||
}
|
||||
|
|
@ -136,7 +136,7 @@ class ReadRecordClient : public FileIOClient {
|
|||
};
|
||||
|
||||
void ReadRecord(
|
||||
Host_10* aHost, const std::string& aRecordName,
|
||||
Host_11* aHost, const std::string& aRecordName,
|
||||
std::function<void(bool, const uint8_t*, uint32_t)>&& aOnReadComplete) {
|
||||
// client will be delete in ReadRecordClient::Done
|
||||
ReadRecordClient* client = new ReadRecordClient(std::move(aOnReadComplete));
|
||||
|
|
@ -155,7 +155,7 @@ class OpenRecordClient : public FileIOClient {
|
|||
|
||||
void OnWriteComplete(Status aStatus) override {}
|
||||
|
||||
void Do(const std::string& aName, Host_10* aHost) {
|
||||
void Do(const std::string& aName, Host_11* aHost) {
|
||||
// Initialize the FileIO.
|
||||
mFileIO = aHost->CreateFileIO(this);
|
||||
mFileIO->Open(aName.c_str(), aName.size());
|
||||
|
|
@ -186,7 +186,7 @@ class OpenRecordClient : public FileIOClient {
|
|||
std::function<void(bool)> mOpenComplete;
|
||||
};
|
||||
|
||||
void OpenRecord(Host_10* aHost, const std::string& aRecordName,
|
||||
void OpenRecord(Host_11* aHost, const std::string& aRecordName,
|
||||
std::function<void(bool)>&& aOpenComplete) {
|
||||
// client will be delete in OpenRecordClient::Done
|
||||
OpenRecordClient* client = new OpenRecordClient(std::move(aOpenComplete));
|
||||
|
|
|
|||
|
|
@ -21,17 +21,17 @@ class ReadContinuation {
|
|||
uint32_t aDataSize) = 0;
|
||||
};
|
||||
|
||||
void WriteRecord(cdm::Host_10* aHost, const std::string& aRecordName,
|
||||
void WriteRecord(cdm::Host_11* aHost, const std::string& aRecordName,
|
||||
const std::string& aData, std::function<void()>&& aOnSuccess,
|
||||
std::function<void()>&& aOnFailure);
|
||||
|
||||
void WriteRecord(cdm::Host_10* aHost, const std::string& aRecordName,
|
||||
void WriteRecord(cdm::Host_11* aHost, const std::string& aRecordName,
|
||||
const uint8_t* aData, uint32_t aNumBytes,
|
||||
std::function<void()>&& aOnSuccess,
|
||||
std::function<void()>&& aOnFailure);
|
||||
|
||||
void ReadRecord(
|
||||
cdm::Host_10* aHost, const std::string& aRecordName,
|
||||
cdm::Host_11* aHost, const std::string& aRecordName,
|
||||
std::function<void(bool, const uint8_t*, uint32_t)>&& aOnReadComplete);
|
||||
|
||||
class OpenContinuation {
|
||||
|
|
@ -40,6 +40,6 @@ class OpenContinuation {
|
|||
virtual void operator()(bool aSuccess) = 0;
|
||||
};
|
||||
|
||||
void OpenRecord(cdm::Host_10* aHost, const std::string& aRecordName,
|
||||
void OpenRecord(cdm::Host_11* aHost, const std::string& aRecordName,
|
||||
std::function<void(bool)>&& aOpenComplete);
|
||||
#endif // TEST_CDM_STORAGE_H__
|
||||
|
|
|
|||
|
|
@ -52,6 +52,15 @@ void ChromiumCDMAdapter::SetAdaptee(PRLibrary* aLib) { mLib = aLib; }
|
|||
void* ChromiumCdmHost(int aHostInterfaceVersion, void* aUserData) {
|
||||
GMP_LOG_DEBUG("ChromiumCdmHostFunc(%d, %p)", aHostInterfaceVersion,
|
||||
aUserData);
|
||||
if (aHostInterfaceVersion != cdm::Host_11::kVersion) {
|
||||
return nullptr;
|
||||
}
|
||||
return aUserData;
|
||||
}
|
||||
|
||||
void* ChromiumCdmHostCompat(int aHostInterfaceVersion, void* aUserData) {
|
||||
GMP_LOG_DEBUG("ChromiumCdmHostCompatFunc(%d, %p)", aHostInterfaceVersion,
|
||||
aUserData);
|
||||
if (aHostInterfaceVersion != cdm::Host_10::kVersion) {
|
||||
return nullptr;
|
||||
}
|
||||
|
|
@ -116,16 +125,24 @@ GMPErr ChromiumCDMAdapter::GMPGetAPI(const char* aAPIName, void* aHostAPI,
|
|||
GMP_LOG_DEBUG("ChromiumCDMAdapter::GMPGetAPI(%s, 0x%p, 0x%p, %s) this=0x%p",
|
||||
aAPIName, aHostAPI, aPluginAPI,
|
||||
PromiseFlatCString(aKeySystem).get(), this);
|
||||
bool isCdm10 = !strcmp(aAPIName, CHROMIUM_CDM_API);
|
||||
|
||||
if (!isCdm10) {
|
||||
MOZ_ASSERT_UNREACHABLE("We only support and expect cdm10!");
|
||||
int version;
|
||||
GetCdmHostFunc getCdmHostFunc;
|
||||
if (!strcmp(aAPIName, CHROMIUM_CDM_API)) {
|
||||
version = cdm::ContentDecryptionModule_11::kVersion;
|
||||
getCdmHostFunc = &ChromiumCdmHost;
|
||||
} else if (!strcmp(aAPIName, CHROMIUM_CDM_API_BACKWARD_COMPAT)) {
|
||||
version = cdm::ContentDecryptionModule_10::kVersion;
|
||||
getCdmHostFunc = &ChromiumCdmHostCompat;
|
||||
} else {
|
||||
MOZ_ASSERT_UNREACHABLE("We only support and expect cdm10/11!");
|
||||
GMP_LOG_DEBUG(
|
||||
"ChromiumCDMAdapter::GMPGetAPI(%s, 0x%p, 0x%p) this=0x%p got "
|
||||
"unsupported CDM version!",
|
||||
aAPIName, aHostAPI, aPluginAPI, this);
|
||||
return GMPGenericErr;
|
||||
}
|
||||
|
||||
auto create = reinterpret_cast<decltype(::CreateCdmInstance)*>(
|
||||
PR_FindFunctionSymbol(mLib, "CreateCdmInstance"));
|
||||
if (!create) {
|
||||
|
|
@ -136,9 +153,8 @@ GMPErr ChromiumCDMAdapter::GMPGetAPI(const char* aAPIName, void* aHostAPI,
|
|||
return GMPGenericErr;
|
||||
}
|
||||
|
||||
const int version = cdm::ContentDecryptionModule_10::kVersion;
|
||||
void* cdm = create(version, aKeySystem.BeginReading(), aKeySystem.Length(),
|
||||
&ChromiumCdmHost, aHostAPI);
|
||||
getCdmHostFunc, aHostAPI);
|
||||
if (!cdm) {
|
||||
GMP_LOG_DEBUG(
|
||||
"ChromiumCDMAdapter::GMPGetAPI(%s, 0x%p, 0x%p) this=0x%p "
|
||||
|
|
@ -169,8 +185,10 @@ bool ChromiumCDMAdapter::Supports(int32_t aModuleVersion,
|
|||
int32_t aInterfaceVersion,
|
||||
int32_t aHostVersion) {
|
||||
return aModuleVersion == CDM_MODULE_VERSION &&
|
||||
aInterfaceVersion == cdm::ContentDecryptionModule_10::kVersion &&
|
||||
aHostVersion == cdm::Host_10::kVersion;
|
||||
((aInterfaceVersion == cdm::ContentDecryptionModule_11::kVersion &&
|
||||
aHostVersion == cdm::Host_11::kVersion) ||
|
||||
(aInterfaceVersion == cdm::ContentDecryptionModule_10::kVersion &&
|
||||
aHostVersion == cdm::Host_10::kVersion));
|
||||
}
|
||||
|
||||
#ifdef XP_WIN
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ ChromiumCDMChild::ChromiumCDMChild(GMPContentChild* aPlugin)
|
|||
GMP_LOG_DEBUG("ChromiumCDMChild:: ctor this=%p", this);
|
||||
}
|
||||
|
||||
void ChromiumCDMChild::Init(cdm::ContentDecryptionModule_10* aCDM,
|
||||
void ChromiumCDMChild::Init(cdm::ContentDecryptionModule_11* aCDM,
|
||||
const nsACString& aStorageId) {
|
||||
MOZ_ASSERT(IsOnMessageLoopThread());
|
||||
mCDM = aCDM;
|
||||
|
|
@ -367,6 +367,13 @@ void ChromiumCDMChild::RequestStorageId(uint32_t aVersion) {
|
|||
mStorageId.Length());
|
||||
}
|
||||
|
||||
void ChromiumCDMChild::ReportMetrics(cdm::MetricName aMetricName,
|
||||
uint64_t aValue) {
|
||||
GMP_LOG_DEBUG("ChromiumCDMChild::ReportMetrics() aMetricName=%" PRIu32
|
||||
", aValue=%" PRIu64,
|
||||
aMetricName, aValue);
|
||||
}
|
||||
|
||||
ChromiumCDMChild::~ChromiumCDMChild() {
|
||||
GMP_LOG_DEBUG("ChromiumCDMChild:: dtor this=%p", this);
|
||||
}
|
||||
|
|
@ -637,25 +644,32 @@ mozilla::ipc::IPCResult ChromiumCDMChild::RecvDecrypt(
|
|||
cdm::Status status = mCDM->Decrypt(input, &output);
|
||||
|
||||
// CDM should have allocated a cdm::Buffer for output.
|
||||
CDMShmemBuffer* buffer =
|
||||
output.DecryptedBuffer()
|
||||
? static_cast<CDMShmemBuffer*>(output.DecryptedBuffer())
|
||||
: nullptr;
|
||||
MOZ_ASSERT_IF(buffer, buffer->AsShmemBuffer());
|
||||
if (status != cdm::kSuccess || !buffer) {
|
||||
if (status != cdm::kSuccess || !output.DecryptedBuffer()) {
|
||||
Unused << SendDecryptFailed(aId, status);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
// Success! Return the decrypted sample to parent.
|
||||
auto* buffer = static_cast<CDMBuffer*>(output.DecryptedBuffer());
|
||||
if (auto* shmemBuffer = buffer->AsShmemBuffer()) {
|
||||
MOZ_ASSERT(!HasShmemOfSize(outputShmemSize));
|
||||
ipc::Shmem shmem = buffer->ExtractShmem();
|
||||
if (SendDecrypted(aId, cdm::kSuccess, std::move(shmem))) {
|
||||
ipc::Shmem shmem = shmemBuffer->ExtractShmem();
|
||||
if (SendDecryptedShmem(aId, cdm::kSuccess, std::move(shmem))) {
|
||||
// No need to deallocate the output shmem; it should have been returned
|
||||
// to the content process.
|
||||
autoDeallocateOutputShmem.release();
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
if (auto* arrayBuffer = buffer->AsArrayBuffer()) {
|
||||
Unused << SendDecryptedData(aId, cdm::kSuccess,
|
||||
arrayBuffer->ExtractBuffer());
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
MOZ_ASSERT_UNREACHABLE("Unexpected CDMBuffer type!");
|
||||
GMP_LOG_DEBUG("ChromiumCDMChild::RecvDecrypt() unexpected CDMBuffer type");
|
||||
Unused << SendDecryptFailed(aId, cdm::kDecryptError);
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
|
|
@ -783,12 +797,12 @@ void ChromiumCDMChild::ReturnOutput(WidevineVideoFrame& aFrame) {
|
|||
output.mFormat() = static_cast<cdm::VideoFormat>(aFrame.Format());
|
||||
output.mImageWidth() = aFrame.Size().width;
|
||||
output.mImageHeight() = aFrame.Size().height;
|
||||
output.mYPlane() = {aFrame.PlaneOffset(cdm::VideoPlane::kYPlane),
|
||||
aFrame.Stride(cdm::VideoPlane::kYPlane)};
|
||||
output.mUPlane() = {aFrame.PlaneOffset(cdm::VideoPlane::kUPlane),
|
||||
aFrame.Stride(cdm::VideoPlane::kUPlane)};
|
||||
output.mVPlane() = {aFrame.PlaneOffset(cdm::VideoPlane::kVPlane),
|
||||
aFrame.Stride(cdm::VideoPlane::kVPlane)};
|
||||
output.mYPlane() = {aFrame.PlaneOffset(cdm::kYPlane),
|
||||
aFrame.Stride(cdm::kYPlane)};
|
||||
output.mUPlane() = {aFrame.PlaneOffset(cdm::kUPlane),
|
||||
aFrame.Stride(cdm::kUPlane)};
|
||||
output.mVPlane() = {aFrame.PlaneOffset(cdm::kVPlane),
|
||||
aFrame.Stride(cdm::kVPlane)};
|
||||
output.mTimestamp() = aFrame.Timestamp();
|
||||
|
||||
uint64_t duration = 0;
|
||||
|
|
@ -797,13 +811,18 @@ void ChromiumCDMChild::ReturnOutput(WidevineVideoFrame& aFrame) {
|
|||
}
|
||||
|
||||
CDMBuffer* base = reinterpret_cast<CDMBuffer*>(aFrame.FrameBuffer());
|
||||
if (base->AsShmemBuffer()) {
|
||||
ipc::Shmem shmem = base->AsShmemBuffer()->ExtractShmem();
|
||||
if (auto* shmemBase = base->AsShmemBuffer()) {
|
||||
ipc::Shmem shmem = shmemBase->ExtractShmem();
|
||||
Unused << SendDecodedShmem(output, std::move(shmem));
|
||||
} else {
|
||||
MOZ_ASSERT(base->AsArrayBuffer());
|
||||
Unused << SendDecodedData(output, base->AsArrayBuffer()->ExtractBuffer());
|
||||
return;
|
||||
}
|
||||
|
||||
if (auto* arrayBase = base->AsArrayBuffer()) {
|
||||
Unused << SendDecodedData(output, arrayBase->ExtractBuffer());
|
||||
return;
|
||||
}
|
||||
|
||||
MOZ_ASSERT_UNREACHABLE("Unexpected CDMBuffer type!");
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult ChromiumCDMChild::RecvDrain() {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@ namespace mozilla::gmp {
|
|||
|
||||
class GMPContentChild;
|
||||
|
||||
class ChromiumCDMChild : public PChromiumCDMChild, public cdm::Host_10 {
|
||||
class ChromiumCDMChild final : public PChromiumCDMChild,
|
||||
public cdm::Host_10,
|
||||
public cdm::Host_11 {
|
||||
public:
|
||||
// Mark AddRef and Release as `final`, as they overload pure virtual
|
||||
// implementations in PChromiumCDMChild.
|
||||
|
|
@ -23,12 +25,12 @@ class ChromiumCDMChild : public PChromiumCDMChild, public cdm::Host_10 {
|
|||
|
||||
explicit ChromiumCDMChild(GMPContentChild* aPlugin);
|
||||
|
||||
void Init(cdm::ContentDecryptionModule_10* aCDM,
|
||||
void Init(cdm::ContentDecryptionModule_11* aCDM,
|
||||
const nsACString& aStorageId);
|
||||
|
||||
void TimerExpired(void* aContext);
|
||||
|
||||
// cdm::Host_10 implementation
|
||||
// cdm::Host_10/cdm::Host_11 implementation
|
||||
cdm::Buffer* Allocate(uint32_t aCapacity) override;
|
||||
void SetTimer(int64_t aDelayMs, void* aContext) override;
|
||||
cdm::Time GetCurrentWallTime() override;
|
||||
|
|
@ -59,9 +61,10 @@ class ChromiumCDMChild : public PChromiumCDMChild, public cdm::Host_10 {
|
|||
void OnDeferredInitializationDone(cdm::StreamType aStreamType,
|
||||
cdm::Status aDecoderStatus) override {}
|
||||
void RequestStorageId(uint32_t aVersion) override;
|
||||
void ReportMetrics(cdm::MetricName aMetricName, uint64_t aValue) override;
|
||||
cdm::FileIO* CreateFileIO(cdm::FileIOClient* aClient) override;
|
||||
void OnInitialized(bool aSuccess) override;
|
||||
// end cdm::Host_10 specific methods
|
||||
// end cdm::Host_10/cdm::Host_11 specific methods
|
||||
|
||||
void GiveBuffer(ipc::Shmem&& aBuffer);
|
||||
|
||||
|
|
@ -123,7 +126,7 @@ class ChromiumCDMChild : public PChromiumCDMChild, public cdm::Host_10 {
|
|||
void CallOnMessageLoopThread(const char* const, MethodType, ParamType&&...);
|
||||
|
||||
GMPContentChild* mPlugin = nullptr;
|
||||
cdm::ContentDecryptionModule_10* mCDM = nullptr;
|
||||
cdm::ContentDecryptionModule_11* mCDM = nullptr;
|
||||
|
||||
typedef SimpleMap<int64_t, uint64_t, ThreadSafePolicy> DurationMap;
|
||||
DurationMap mFrameDurations;
|
||||
|
|
|
|||
134
icecat/dom/media/gmp/ChromiumCDMCompat.h
Normal file
134
icecat/dom/media/gmp/ChromiumCDMCompat.h
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef ChromiumCDMCompat_h_
|
||||
#define ChromiumCDMCompat_h_
|
||||
|
||||
#include "content_decryption_module.h"
|
||||
|
||||
namespace mozilla::gmp {
|
||||
|
||||
class ChromiumCDMCompat final : public cdm::ContentDecryptionModule_11 {
|
||||
public:
|
||||
explicit ChromiumCDMCompat(cdm::ContentDecryptionModule_10* aCDM)
|
||||
: mCDM(aCDM) {}
|
||||
|
||||
void Initialize(bool aAllowDistinctiveIdentifier, bool aAllowPersistentState,
|
||||
bool aUseHwSecureCodecs) override {
|
||||
mCDM->Initialize(aAllowDistinctiveIdentifier, aAllowPersistentState,
|
||||
aUseHwSecureCodecs);
|
||||
}
|
||||
|
||||
void GetStatusForPolicy(uint32_t aPromiseId,
|
||||
const cdm::Policy& aPolicy) override {
|
||||
mCDM->GetStatusForPolicy(aPromiseId, aPolicy);
|
||||
}
|
||||
|
||||
void SetServerCertificate(uint32_t aPromiseId,
|
||||
const uint8_t* aServerCertificateData,
|
||||
uint32_t aServerCertificateDataSize) override {
|
||||
mCDM->SetServerCertificate(aPromiseId, aServerCertificateData,
|
||||
aServerCertificateDataSize);
|
||||
}
|
||||
|
||||
void CreateSessionAndGenerateRequest(uint32_t aPromiseId,
|
||||
cdm::SessionType aSessionType,
|
||||
cdm::InitDataType aInitDataType,
|
||||
const uint8_t* aInitData,
|
||||
uint32_t aInitDataSize) override {
|
||||
mCDM->CreateSessionAndGenerateRequest(aPromiseId, aSessionType,
|
||||
aInitDataType, aInitData, aInitDataSize);
|
||||
};
|
||||
|
||||
void LoadSession(uint32_t aPromiseId, cdm::SessionType aSessionType,
|
||||
const char* aSessionId, uint32_t aSessionIdSize) override {
|
||||
mCDM->LoadSession(aPromiseId, aSessionType, aSessionId, aSessionIdSize);
|
||||
};
|
||||
|
||||
void UpdateSession(uint32_t aPromiseId, const char* aSessionId,
|
||||
uint32_t aSessionIdSize, const uint8_t* aResponse,
|
||||
uint32_t aResponseSize) override {
|
||||
mCDM->UpdateSession(aPromiseId, aSessionId, aSessionIdSize, aResponse,
|
||||
aResponseSize);
|
||||
};
|
||||
|
||||
void CloseSession(uint32_t aPromiseId, const char* aSessionId,
|
||||
uint32_t aSessionIdSize) override {
|
||||
mCDM->CloseSession(aPromiseId, aSessionId, aSessionIdSize);
|
||||
};
|
||||
|
||||
void RemoveSession(uint32_t aPromiseId, const char* aSessionId,
|
||||
uint32_t aSessionIdSize) override {
|
||||
mCDM->RemoveSession(aPromiseId, aSessionId, aSessionIdSize);
|
||||
};
|
||||
|
||||
void TimerExpired(void* aContext) override { mCDM->TimerExpired(aContext); };
|
||||
|
||||
cdm::Status Decrypt(const cdm::InputBuffer_2& aEncryptedBuffer,
|
||||
cdm::DecryptedBlock* aDecryptedBuffer) override {
|
||||
return mCDM->Decrypt(aEncryptedBuffer, aDecryptedBuffer);
|
||||
};
|
||||
|
||||
cdm::Status InitializeAudioDecoder(
|
||||
const cdm::AudioDecoderConfig_2& aAudioDecoderConfig) override {
|
||||
return mCDM->InitializeAudioDecoder(aAudioDecoderConfig);
|
||||
};
|
||||
|
||||
cdm::Status InitializeVideoDecoder(
|
||||
const cdm::VideoDecoderConfig_2& aVideoDecoderConfig) override {
|
||||
return mCDM->InitializeVideoDecoder(aVideoDecoderConfig);
|
||||
};
|
||||
|
||||
void DeinitializeDecoder(cdm::StreamType aDecoderType) override {
|
||||
mCDM->DeinitializeDecoder(aDecoderType);
|
||||
};
|
||||
|
||||
void ResetDecoder(cdm::StreamType aDecoderType) override {
|
||||
mCDM->ResetDecoder(aDecoderType);
|
||||
};
|
||||
|
||||
cdm::Status DecryptAndDecodeFrame(const cdm::InputBuffer_2& aEncryptedBuffer,
|
||||
cdm::VideoFrame* aVideoFrame) override {
|
||||
return mCDM->DecryptAndDecodeFrame(aEncryptedBuffer, aVideoFrame);
|
||||
};
|
||||
|
||||
cdm::Status DecryptAndDecodeSamples(
|
||||
const cdm::InputBuffer_2& aEncryptedBuffer,
|
||||
cdm::AudioFrames* aAudioFrames) override {
|
||||
return mCDM->DecryptAndDecodeSamples(aEncryptedBuffer, aAudioFrames);
|
||||
};
|
||||
|
||||
void OnPlatformChallengeResponse(
|
||||
const cdm::PlatformChallengeResponse& aResponse) override {
|
||||
mCDM->OnPlatformChallengeResponse(aResponse);
|
||||
};
|
||||
|
||||
void OnQueryOutputProtectionStatus(cdm::QueryResult aResult,
|
||||
uint32_t aLinkMask,
|
||||
uint32_t aOutputProtectionMask) override {
|
||||
mCDM->OnQueryOutputProtectionStatus(aResult, aLinkMask,
|
||||
aOutputProtectionMask);
|
||||
};
|
||||
|
||||
void OnStorageId(uint32_t aVersion, const uint8_t* aStorageId,
|
||||
uint32_t aStorageIdSize) override {
|
||||
mCDM->OnStorageId(aVersion, aStorageId, aStorageIdSize);
|
||||
}
|
||||
|
||||
// Destroys the object in the same aContext as it was created.
|
||||
void Destroy() override {
|
||||
mCDM->Destroy();
|
||||
delete this;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual ~ChromiumCDMCompat() = default;
|
||||
|
||||
cdm::ContentDecryptionModule_10* mCDM;
|
||||
};
|
||||
|
||||
} // namespace mozilla::gmp
|
||||
|
||||
#endif // ChromiumCDMCompat_h_
|
||||
|
|
@ -686,11 +686,11 @@ ipc::IPCResult ChromiumCDMParent::RecvDecryptFailed(const uint32_t& aId,
|
|||
return IPC_OK();
|
||||
}
|
||||
|
||||
ipc::IPCResult ChromiumCDMParent::RecvDecrypted(const uint32_t& aId,
|
||||
ipc::IPCResult ChromiumCDMParent::RecvDecryptedShmem(const uint32_t& aId,
|
||||
const uint32_t& aStatus,
|
||||
ipc::Shmem&& aShmem) {
|
||||
MOZ_ASSERT(mGMPThread->IsOnCurrentThread());
|
||||
GMP_LOG_DEBUG("ChromiumCDMParent::RecvDecrypted(this=%p, id=%" PRIu32
|
||||
GMP_LOG_DEBUG("ChromiumCDMParent::RecvDecryptedShmem(this=%p, id=%" PRIu32
|
||||
", status=%" PRIu32 ")",
|
||||
this, aId, aStatus);
|
||||
|
||||
|
|
@ -704,9 +704,33 @@ ipc::IPCResult ChromiumCDMParent::RecvDecrypted(const uint32_t& aId,
|
|||
}
|
||||
for (size_t i = 0; i < mDecrypts.Length(); i++) {
|
||||
if (mDecrypts[i]->mId == aId) {
|
||||
mDecrypts[i]->PostResult(
|
||||
ToDecryptStatus(aStatus),
|
||||
Span<const uint8_t>(aShmem.get<uint8_t>(), aShmem.Size<uint8_t>()));
|
||||
mDecrypts[i]->PostResult(ToDecryptStatus(aStatus),
|
||||
aShmem.IsReadable()
|
||||
? Span<const uint8_t>(aShmem.get<uint8_t>(),
|
||||
aShmem.Size<uint8_t>())
|
||||
: Span<const uint8_t>());
|
||||
mDecrypts.RemoveElementAt(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
ipc::IPCResult ChromiumCDMParent::RecvDecryptedData(const uint32_t& aId,
|
||||
const uint32_t& aStatus,
|
||||
nsTArray<uint8_t>&& aData) {
|
||||
MOZ_ASSERT(mGMPThread->IsOnCurrentThread());
|
||||
GMP_LOG_DEBUG("ChromiumCDMParent::RecvDecryptedData(this=%p, id=%" PRIu32
|
||||
", status=%" PRIu32 ")",
|
||||
this, aId, aStatus);
|
||||
|
||||
if (mIsShutdown) {
|
||||
MOZ_ASSERT(mDecrypts.IsEmpty());
|
||||
return IPC_OK();
|
||||
}
|
||||
for (size_t i = 0; i < mDecrypts.Length(); i++) {
|
||||
if (mDecrypts[i]->mId == aId) {
|
||||
mDecrypts[i]->PostResult(ToDecryptStatus(aStatus), aData);
|
||||
mDecrypts.RemoveElementAt(i);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,8 +126,11 @@ class ChromiumCDMParent final : public PChromiumCDMParent,
|
|||
const double& aSecondsSinceEpoch);
|
||||
ipc::IPCResult RecvOnSessionClosed(const nsCString& aSessionId);
|
||||
ipc::IPCResult RecvOnQueryOutputProtectionStatus();
|
||||
ipc::IPCResult RecvDecrypted(const uint32_t& aId, const uint32_t& aStatus,
|
||||
ipc::IPCResult RecvDecryptedShmem(const uint32_t& aId,
|
||||
const uint32_t& aStatus,
|
||||
ipc::Shmem&& aData);
|
||||
ipc::IPCResult RecvDecryptedData(const uint32_t& aId, const uint32_t& aStatus,
|
||||
nsTArray<uint8_t>&& aData);
|
||||
ipc::IPCResult RecvDecryptFailed(const uint32_t& aId,
|
||||
const uint32_t& aStatus);
|
||||
ipc::IPCResult RecvOnDecoderInitDone(const uint32_t& aStatus);
|
||||
|
|
|
|||
|
|
@ -27,11 +27,13 @@ void DecryptJob::PostResult(DecryptStatus aResult,
|
|||
if (aDecryptedData.Length() != mSample->Size()) {
|
||||
NS_WARNING("CDM returned incorrect number of decrypted bytes");
|
||||
}
|
||||
if (aResult == eme::Ok) {
|
||||
if (aResult == DecryptStatus::Ok) {
|
||||
UniquePtr<MediaRawDataWriter> writer(mSample->CreateWriter());
|
||||
PodCopy(writer->Data(), aDecryptedData.Elements(),
|
||||
std::min<size_t>(aDecryptedData.Length(), mSample->Size()));
|
||||
} else if (aResult == eme::NoKeyErr) {
|
||||
if (NS_WARN_IF(!writer->Replace(aDecryptedData.Elements(),
|
||||
aDecryptedData.Length()))) {
|
||||
aResult = DecryptStatus::GenericErr;
|
||||
}
|
||||
} else if (aResult == DecryptStatus::NoKeyErr) {
|
||||
NS_WARNING("CDM returned NoKeyErr");
|
||||
// We still have the encrypted sample, so we can re-enqueue it to be
|
||||
// decrypted again once the key is usable again.
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "GMPVideoDecoderChild.h"
|
||||
#include "GMPVideoEncoderChild.h"
|
||||
#include "ChromiumCDMChild.h"
|
||||
#include "ChromiumCDMCompat.h"
|
||||
#include "base/task.h"
|
||||
#include "GMPUtils.h"
|
||||
|
||||
|
|
@ -88,15 +89,23 @@ mozilla::ipc::IPCResult GMPContentChild::RecvPGMPVideoEncoderConstructor(
|
|||
mozilla::ipc::IPCResult GMPContentChild::RecvPChromiumCDMConstructor(
|
||||
PChromiumCDMChild* aActor, const nsACString& aKeySystem) {
|
||||
ChromiumCDMChild* child = static_cast<ChromiumCDMChild*>(aActor);
|
||||
cdm::Host_10* host10 = child;
|
||||
|
||||
void* cdm = nullptr;
|
||||
GMPErr err = mGMPChild->GetAPI(CHROMIUM_CDM_API, host10, &cdm, aKeySystem);
|
||||
GMPErr err = mGMPChild->GetAPI(
|
||||
CHROMIUM_CDM_API, static_cast<cdm::Host_11*>(child), &cdm, aKeySystem);
|
||||
if (err != GMPNoErr || !cdm) {
|
||||
err =
|
||||
mGMPChild->GetAPI(CHROMIUM_CDM_API_BACKWARD_COMPAT,
|
||||
static_cast<cdm::Host_10*>(child), &cdm, aKeySystem);
|
||||
if (err != GMPNoErr || !cdm) {
|
||||
return IPC_FAIL(this, "GMPGetAPI call failed trying to get CDM.");
|
||||
}
|
||||
|
||||
child->Init(static_cast<cdm::ContentDecryptionModule_10*>(cdm),
|
||||
cdm = new ChromiumCDMCompat(
|
||||
static_cast<cdm::ContentDecryptionModule_10*>(cdm));
|
||||
}
|
||||
|
||||
child->Init(static_cast<cdm::ContentDecryptionModule_11*>(cdm),
|
||||
mGMPChild->mStorageId);
|
||||
|
||||
return IPC_OK();
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
#include "nsStringFwd.h"
|
||||
#include "nsTArray.h"
|
||||
|
||||
#define CHROMIUM_CDM_API_BACKWARD_COMPAT "chromium-cdm9-host4"
|
||||
#define CHROMIUM_CDM_API "chromium-cdm10-host4"
|
||||
#define CHROMIUM_CDM_API_BACKWARD_COMPAT "chromium-cdm10-host4"
|
||||
#define CHROMIUM_CDM_API "chromium-cdm11-host4"
|
||||
|
||||
class GMPVideoEncodedFrame;
|
||||
class nsIFile;
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ child:
|
|||
parent:
|
||||
async __delete__();
|
||||
|
||||
// cdm::Host_10
|
||||
// cdm::Host_11
|
||||
async OnResolvePromiseWithKeyStatus(uint32_t aPromiseId, uint32_t aKeyStatus);
|
||||
|
||||
async OnResolveNewSessionPromise(uint32_t aPromiseId, nsCString aSessionId);
|
||||
|
|
@ -106,7 +106,8 @@ parent:
|
|||
async ResolveLoadSessionPromise(uint32_t aPromiseId, bool aSuccessful);
|
||||
|
||||
// Return values of cdm::ContentDecryptionModule_10::Decrypt
|
||||
async Decrypted(uint32_t aId, uint32_t aStatus, Shmem aDecryptedData);
|
||||
async DecryptedShmem(uint32_t aId, uint32_t aStatus, Shmem aData);
|
||||
async DecryptedData(uint32_t aId, uint32_t aStatus, uint8_t[] aData);
|
||||
async DecryptFailed(uint32_t aId, uint32_t aStatus);
|
||||
|
||||
async OnDecoderInitDone(uint32_t aStatus);
|
||||
|
|
|
|||
|
|
@ -62,10 +62,6 @@ EXPORTS += [
|
|||
"GMPVideoHost.h",
|
||||
"GMPVideoi420FrameImpl.h",
|
||||
"GMPVideoPlaneImpl.h",
|
||||
"widevine-adapter/content_decryption_module.h",
|
||||
"widevine-adapter/content_decryption_module_export.h",
|
||||
"widevine-adapter/content_decryption_module_ext.h",
|
||||
"widevine-adapter/content_decryption_module_proxy.h",
|
||||
]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
|
|
|
|||
|
|
@ -127,14 +127,14 @@ bool WidevineVideoFrame::InitToBlack(int32_t aWidth, int32_t aHeight,
|
|||
SetFormat(cdm::VideoFormat::kI420);
|
||||
SetSize(cdm::Size{aWidth, aHeight});
|
||||
SetFrameBuffer(buffer);
|
||||
SetPlaneOffset(cdm::VideoPlane::kYPlane, 0);
|
||||
SetStride(cdm::VideoPlane::kYPlane, aWidth);
|
||||
SetPlaneOffset(cdm::kYPlane, 0);
|
||||
SetStride(cdm::kYPlane, aWidth);
|
||||
// Note: U and V planes are stored at the same place in order to
|
||||
// save memory since their contents are the same.
|
||||
SetPlaneOffset(cdm::VideoPlane::kUPlane, ySize);
|
||||
SetStride(cdm::VideoPlane::kUPlane, halfWidth);
|
||||
SetPlaneOffset(cdm::VideoPlane::kVPlane, ySize);
|
||||
SetStride(cdm::VideoPlane::kVPlane, halfWidth);
|
||||
SetPlaneOffset(cdm::kUPlane, ySize);
|
||||
SetStride(cdm::kUPlane, halfWidth);
|
||||
SetPlaneOffset(cdm::kVPlane, ySize);
|
||||
SetStride(cdm::kVPlane, halfWidth);
|
||||
SetTimestamp(aTimeStamp);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ class WidevineVideoFrame : public cdm::VideoFrame {
|
|||
cdm::VideoFormat mFormat;
|
||||
cdm::Size mSize;
|
||||
cdm::Buffer* mBuffer;
|
||||
uint32_t mPlaneOffsets[cdm::VideoPlane::kMaxPlanes];
|
||||
uint32_t mPlaneStrides[cdm::VideoPlane::kMaxPlanes];
|
||||
uint32_t mPlaneOffsets[cdm::kMaxPlanes];
|
||||
uint32_t mPlaneStrides[cdm::kMaxPlanes];
|
||||
int64_t mTimestamp;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#include <type_traits>
|
||||
|
||||
#include "content_decryption_module_export.h"
|
||||
#include "content_decryption_module_proxy.h"
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
typedef unsigned char uint8_t;
|
||||
|
|
@ -16,7 +15,7 @@ typedef unsigned int uint32_t;
|
|||
typedef int int32_t;
|
||||
typedef __int64 int64_t;
|
||||
#else
|
||||
# include <stdint.h>
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
// The version number must be rolled when the exported functions are updated!
|
||||
|
|
@ -411,6 +410,7 @@ CHECK_TYPE(InitDataType, 4, 4);
|
|||
enum SessionType : uint32_t {
|
||||
kTemporary = 0,
|
||||
kPersistentLicense = 1,
|
||||
kPersistentUsageRecord = 2
|
||||
};
|
||||
CHECK_TYPE(SessionType, 4, 4);
|
||||
|
||||
|
|
@ -479,12 +479,13 @@ class CDM_CLASS_API DecryptedBlock {
|
|||
virtual ~DecryptedBlock() {}
|
||||
};
|
||||
|
||||
enum VideoPlane : uint32_t {
|
||||
kYPlane = 0,
|
||||
kUPlane = 1,
|
||||
kVPlane = 2,
|
||||
kMaxPlanes = 3,
|
||||
};
|
||||
// This intentionally avoids using an enum, since it will be used to do math
|
||||
// with other enums, which is deprecated in C++20.
|
||||
using VideoPlane = uint32_t;
|
||||
constexpr VideoPlane kYPlane = 0;
|
||||
constexpr VideoPlane kUPlane = 1;
|
||||
constexpr VideoPlane kVPlane = 2;
|
||||
constexpr VideoPlane kMaxPlanes = 3;
|
||||
CHECK_TYPE(VideoPlane, 4, 4);
|
||||
|
||||
class CDM_CLASS_API VideoFrame {
|
||||
|
|
@ -622,7 +623,8 @@ class CDM_CLASS_API FileIOClient {
|
|||
// - kInUse indicates that there are other read/write operations pending.
|
||||
// - kError indicates read failure, e.g. the storage is not open or cannot be
|
||||
// fully read.
|
||||
virtual void OnReadComplete(Status status, const uint8_t* data,
|
||||
virtual void OnReadComplete(Status status,
|
||||
const uint8_t* data,
|
||||
uint32_t data_size) = 0;
|
||||
|
||||
// Response to a FileIO::Write() call.
|
||||
|
|
@ -639,8 +641,21 @@ class CDM_CLASS_API FileIOClient {
|
|||
virtual ~FileIOClient() {}
|
||||
};
|
||||
|
||||
// Metrics that will be reported from the CDM through the ReportMetrics()
|
||||
// function. To add a new metric, please add it to the end of this enum list
|
||||
// without changing any existing enum values.
|
||||
// Note: For forward compatibility, Host implementations must gracefully handle
|
||||
// unexpected (new) enum values, e.g. no-op.
|
||||
enum MetricName : uint32_t {
|
||||
kSdkVersion,
|
||||
kCertificateSerialNumber,
|
||||
kDecoderBypassBlockCount,
|
||||
};
|
||||
CHECK_TYPE(MetricName, 4, 4);
|
||||
|
||||
class CDM_CLASS_API Host_10;
|
||||
class CDM_CLASS_API Host_11;
|
||||
class CDM_CLASS_API Host_12;
|
||||
|
||||
// ContentDecryptionModule interface that all CDMs need to implement.
|
||||
// The interface is versioned for backward compatibility.
|
||||
|
|
@ -708,28 +723,33 @@ class CDM_CLASS_API ContentDecryptionModule_10 {
|
|||
// The CDM must respond by calling either Host::OnResolveNewSessionPromise()
|
||||
// or Host::OnRejectPromise(). If the session is not found, call
|
||||
// Host::OnResolveNewSessionPromise() with session_id = NULL.
|
||||
virtual void LoadSession(uint32_t promise_id, SessionType session_type,
|
||||
virtual void LoadSession(uint32_t promise_id,
|
||||
SessionType session_type,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Updates the session with |response|. The CDM must respond by calling
|
||||
// either Host::OnResolvePromise() or Host::OnRejectPromise().
|
||||
virtual void UpdateSession(uint32_t promise_id, const char* session_id,
|
||||
uint32_t session_id_size, const uint8_t* response,
|
||||
virtual void UpdateSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
const uint8_t* response,
|
||||
uint32_t response_size) = 0;
|
||||
|
||||
// Requests that the CDM close the session. The CDM must respond by calling
|
||||
// either Host::OnResolvePromise() or Host::OnRejectPromise() when the request
|
||||
// has been processed. This may be before the session is closed. Once the
|
||||
// session is closed, Host::OnSessionClosed() must also be called.
|
||||
virtual void CloseSession(uint32_t promise_id, const char* session_id,
|
||||
virtual void CloseSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Removes any stored session data associated with this session. Will only be
|
||||
// called for persistent sessions. The CDM must respond by calling either
|
||||
// Host::OnResolvePromise() or Host::OnRejectPromise() when the request has
|
||||
// been processed.
|
||||
virtual void RemoveSession(uint32_t promise_id, const char* session_id,
|
||||
virtual void RemoveSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Performs scheduled operation with |context| when the timer fires.
|
||||
|
|
@ -833,7 +853,8 @@ class CDM_CLASS_API ContentDecryptionModule_10 {
|
|||
// then |link_mask| and |output_protection_mask| are undefined and should
|
||||
// be ignored.
|
||||
virtual void OnQueryOutputProtectionStatus(
|
||||
QueryResult result, uint32_t link_mask,
|
||||
QueryResult result,
|
||||
uint32_t link_mask,
|
||||
uint32_t output_protection_mask) = 0;
|
||||
|
||||
// Called by the host after a call to Host::RequestStorageId(). If the
|
||||
|
|
@ -844,7 +865,8 @@ class CDM_CLASS_API ContentDecryptionModule_10 {
|
|||
// If the requested version is not available, null/zero will be provided as
|
||||
// |storage_id| and |storage_id_size|, respectively, and |version| should be
|
||||
// ignored.
|
||||
virtual void OnStorageId(uint32_t version, const uint8_t* storage_id,
|
||||
virtual void OnStorageId(uint32_t version,
|
||||
const uint8_t* storage_id,
|
||||
uint32_t storage_id_size) = 0;
|
||||
|
||||
// Destroys the object in the same context as it was created.
|
||||
|
|
@ -855,8 +877,6 @@ class CDM_CLASS_API ContentDecryptionModule_10 {
|
|||
virtual ~ContentDecryptionModule_10() {}
|
||||
};
|
||||
|
||||
// ----- Note: CDM interface(s) below still in development and not stable! -----
|
||||
|
||||
// ContentDecryptionModule interface that all CDMs need to implement.
|
||||
// The interface is versioned for backward compatibility.
|
||||
// Note: ContentDecryptionModule implementations must use the allocator
|
||||
|
|
@ -866,7 +886,7 @@ class CDM_CLASS_API ContentDecryptionModule_10 {
|
|||
class CDM_CLASS_API ContentDecryptionModule_11 {
|
||||
public:
|
||||
static const int kVersion = 11;
|
||||
static const bool kIsStable = false;
|
||||
static const bool kIsStable = true;
|
||||
typedef Host_11 Host;
|
||||
|
||||
// Initializes the CDM instance, providing information about permitted
|
||||
|
|
@ -923,21 +943,247 @@ class CDM_CLASS_API ContentDecryptionModule_11 {
|
|||
// The CDM must respond by calling either Host::OnResolveNewSessionPromise()
|
||||
// or Host::OnRejectPromise(). If the session is not found, call
|
||||
// Host::OnResolveNewSessionPromise() with session_id = NULL.
|
||||
virtual void LoadSession(uint32_t promise_id, SessionType session_type,
|
||||
virtual void LoadSession(uint32_t promise_id,
|
||||
SessionType session_type,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Updates the session with |response|. The CDM must respond by calling
|
||||
// either Host::OnResolvePromise() or Host::OnRejectPromise().
|
||||
virtual void UpdateSession(uint32_t promise_id, const char* session_id,
|
||||
uint32_t session_id_size, const uint8_t* response,
|
||||
virtual void UpdateSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
const uint8_t* response,
|
||||
uint32_t response_size) = 0;
|
||||
|
||||
// Requests that the CDM close the session. The CDM must respond by calling
|
||||
// either Host::OnResolvePromise() or Host::OnRejectPromise() when the request
|
||||
// has been processed. This may be before the session is closed. Once the
|
||||
// session is closed, Host::OnSessionClosed() must also be called.
|
||||
virtual void CloseSession(uint32_t promise_id, const char* session_id,
|
||||
virtual void CloseSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Removes any stored session data associated with this session. Will only be
|
||||
// called for persistent sessions. The CDM must respond by calling either
|
||||
// Host::OnResolvePromise() or Host::OnRejectPromise() when the request has
|
||||
// been processed.
|
||||
virtual void RemoveSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Performs scheduled operation with |context| when the timer fires.
|
||||
virtual void TimerExpired(void* context) = 0;
|
||||
|
||||
// Decrypts the |encrypted_buffer|.
|
||||
//
|
||||
// Returns kSuccess if decryption succeeded, in which case the callee
|
||||
// should have filled the |decrypted_buffer| and passed the ownership of
|
||||
// |data| in |decrypted_buffer| to the caller.
|
||||
// Returns kNoKey if the CDM did not have the necessary decryption key
|
||||
// to decrypt.
|
||||
// Returns kDecryptError if any other error happened.
|
||||
// If the return value is not kSuccess, |decrypted_buffer| should be ignored
|
||||
// by the caller.
|
||||
virtual Status Decrypt(const InputBuffer_2& encrypted_buffer,
|
||||
DecryptedBlock* decrypted_buffer) = 0;
|
||||
|
||||
// Initializes the CDM audio decoder with |audio_decoder_config|. This
|
||||
// function must be called before DecryptAndDecodeSamples() is called.
|
||||
//
|
||||
// Returns kSuccess if the |audio_decoder_config| is supported and the CDM
|
||||
// audio decoder is successfully initialized.
|
||||
// Returns kInitializationError if |audio_decoder_config| is not supported.
|
||||
// The CDM may still be able to do Decrypt().
|
||||
// Returns kDeferredInitialization if the CDM is not ready to initialize the
|
||||
// decoder at this time. Must call Host::OnDeferredInitializationDone() once
|
||||
// initialization is complete.
|
||||
virtual Status InitializeAudioDecoder(
|
||||
const AudioDecoderConfig_2& audio_decoder_config) = 0;
|
||||
|
||||
// Initializes the CDM video decoder with |video_decoder_config|. This
|
||||
// function must be called before DecryptAndDecodeFrame() is called.
|
||||
//
|
||||
// Returns kSuccess if the |video_decoder_config| is supported and the CDM
|
||||
// video decoder is successfully initialized.
|
||||
// Returns kInitializationError if |video_decoder_config| is not supported.
|
||||
// The CDM may still be able to do Decrypt().
|
||||
// Returns kDeferredInitialization if the CDM is not ready to initialize the
|
||||
// decoder at this time. Must call Host::OnDeferredInitializationDone() once
|
||||
// initialization is complete.
|
||||
virtual Status InitializeVideoDecoder(
|
||||
const VideoDecoderConfig_2& video_decoder_config) = 0;
|
||||
|
||||
// De-initializes the CDM decoder and sets it to an uninitialized state. The
|
||||
// caller can initialize the decoder again after this call to re-initialize
|
||||
// it. This can be used to reconfigure the decoder if the configuration
|
||||
// changes.
|
||||
virtual void DeinitializeDecoder(StreamType decoder_type) = 0;
|
||||
|
||||
// Resets the CDM decoder to an initialized clean state. All internal buffers
|
||||
// MUST be flushed.
|
||||
virtual void ResetDecoder(StreamType decoder_type) = 0;
|
||||
|
||||
// Decrypts the |encrypted_buffer| and decodes the decrypted buffer into a
|
||||
// |video_frame|. Upon end-of-stream, the caller should call this function
|
||||
// repeatedly with empty |encrypted_buffer| (|data| == NULL) until
|
||||
// kNeedMoreData is returned.
|
||||
//
|
||||
// Returns kSuccess if decryption and decoding both succeeded, in which case
|
||||
// the callee will have filled the |video_frame| and passed the ownership of
|
||||
// |frame_buffer| in |video_frame| to the caller.
|
||||
// Returns kNoKey if the CDM did not have the necessary decryption key
|
||||
// to decrypt.
|
||||
// Returns kNeedMoreData if more data was needed by the decoder to generate
|
||||
// a decoded frame (e.g. during initialization and end-of-stream).
|
||||
// Returns kDecryptError if any decryption error happened.
|
||||
// Returns kDecodeError if any decoding error happened.
|
||||
// If the return value is not kSuccess, |video_frame| should be ignored by
|
||||
// the caller.
|
||||
virtual Status DecryptAndDecodeFrame(const InputBuffer_2& encrypted_buffer,
|
||||
VideoFrame* video_frame) = 0;
|
||||
|
||||
// Decrypts the |encrypted_buffer| and decodes the decrypted buffer into
|
||||
// |audio_frames|. Upon end-of-stream, the caller should call this function
|
||||
// repeatedly with empty |encrypted_buffer| (|data| == NULL) until only empty
|
||||
// |audio_frames| is produced.
|
||||
//
|
||||
// Returns kSuccess if decryption and decoding both succeeded, in which case
|
||||
// the callee will have filled |audio_frames| and passed the ownership of
|
||||
// |data| in |audio_frames| to the caller.
|
||||
// Returns kNoKey if the CDM did not have the necessary decryption key
|
||||
// to decrypt.
|
||||
// Returns kNeedMoreData if more data was needed by the decoder to generate
|
||||
// audio samples (e.g. during initialization and end-of-stream).
|
||||
// Returns kDecryptError if any decryption error happened.
|
||||
// Returns kDecodeError if any decoding error happened.
|
||||
// If the return value is not kSuccess, |audio_frames| should be ignored by
|
||||
// the caller.
|
||||
virtual Status DecryptAndDecodeSamples(const InputBuffer_2& encrypted_buffer,
|
||||
AudioFrames* audio_frames) = 0;
|
||||
|
||||
// Called by the host after a platform challenge was initiated via
|
||||
// Host::SendPlatformChallenge().
|
||||
virtual void OnPlatformChallengeResponse(
|
||||
const PlatformChallengeResponse& response) = 0;
|
||||
|
||||
// Called by the host after a call to Host::QueryOutputProtectionStatus(). The
|
||||
// |link_mask| is a bit mask of OutputLinkTypes and |output_protection_mask|
|
||||
// is a bit mask of OutputProtectionMethods. If |result| is kQueryFailed,
|
||||
// then |link_mask| and |output_protection_mask| are undefined and should
|
||||
// be ignored.
|
||||
virtual void OnQueryOutputProtectionStatus(
|
||||
QueryResult result,
|
||||
uint32_t link_mask,
|
||||
uint32_t output_protection_mask) = 0;
|
||||
|
||||
// Called by the host after a call to Host::RequestStorageId(). If the
|
||||
// version of the storage ID requested is available, |storage_id| and
|
||||
// |storage_id_size| are set appropriately. |version| will be the same as
|
||||
// what was requested, unless 0 (latest) was requested, in which case
|
||||
// |version| will be the actual version number for the |storage_id| returned.
|
||||
// If the requested version is not available, null/zero will be provided as
|
||||
// |storage_id| and |storage_id_size|, respectively, and |version| should be
|
||||
// ignored.
|
||||
virtual void OnStorageId(uint32_t version,
|
||||
const uint8_t* storage_id,
|
||||
uint32_t storage_id_size) = 0;
|
||||
|
||||
// Destroys the object in the same context as it was created.
|
||||
virtual void Destroy() = 0;
|
||||
|
||||
protected:
|
||||
ContentDecryptionModule_11() {}
|
||||
virtual ~ContentDecryptionModule_11() {}
|
||||
};
|
||||
|
||||
// ----- Note: CDM interface(s) below still in development and not stable! -----
|
||||
|
||||
// ContentDecryptionModule interface that all CDMs need to implement.
|
||||
// The interface is versioned for backward compatibility.
|
||||
// Note: ContentDecryptionModule implementations must use the allocator
|
||||
// provided in CreateCdmInstance() to allocate any Buffer that needs to
|
||||
// be passed back to the caller. Implementations must call Buffer::Destroy()
|
||||
// when a Buffer is created that will never be returned to the caller.
|
||||
class CDM_CLASS_API ContentDecryptionModule_12 {
|
||||
public:
|
||||
static const int kVersion = 12;
|
||||
static const bool kIsStable = false;
|
||||
typedef Host_12 Host;
|
||||
|
||||
// Initializes the CDM instance, providing information about permitted
|
||||
// functionalities. The CDM must respond by calling Host::OnInitialized()
|
||||
// with whether the initialization succeeded. No other calls will be made by
|
||||
// the host before Host::OnInitialized() returns.
|
||||
// If |allow_distinctive_identifier| is false, messages from the CDM,
|
||||
// such as message events, must not contain a Distinctive Identifier,
|
||||
// even in an encrypted form.
|
||||
// If |allow_persistent_state| is false, the CDM must not attempt to
|
||||
// persist state. Calls to CreateFileIO() will fail.
|
||||
// If |use_hw_secure_codecs| is true, the CDM must ensure the decryption key
|
||||
// and video buffers (compressed and uncompressed) are securely protected by
|
||||
// hardware.
|
||||
virtual void Initialize(bool allow_distinctive_identifier,
|
||||
bool allow_persistent_state,
|
||||
bool use_hw_secure_codecs) = 0;
|
||||
|
||||
// Gets the key status if the CDM has a hypothetical key with the |policy|.
|
||||
// The CDM must respond by calling either Host::OnResolveKeyStatusPromise()
|
||||
// with the result key status or Host::OnRejectPromise() if an unexpected
|
||||
// error happened or this method is not supported.
|
||||
virtual void GetStatusForPolicy(uint32_t promise_id,
|
||||
const Policy& policy) = 0;
|
||||
|
||||
// SetServerCertificate(), CreateSessionAndGenerateRequest(), LoadSession(),
|
||||
// UpdateSession(), CloseSession(), and RemoveSession() all accept a
|
||||
// |promise_id|, which must be passed to the completion Host method
|
||||
// (e.g. Host::OnResolveNewSessionPromise()).
|
||||
|
||||
// Provides a server certificate to be used to encrypt messages to the
|
||||
// license server. The CDM must respond by calling either
|
||||
// Host::OnResolvePromise() or Host::OnRejectPromise().
|
||||
// If the CDM does not support server certificates, the promise should be
|
||||
// rejected with kExceptionNotSupportedError. If |server_certificate_data|
|
||||
// is empty, reject with kExceptionTypeError. Any other error should be
|
||||
// rejected with kExceptionInvalidStateError or kExceptionQuotaExceededError.
|
||||
// TODO(crbug.com/796417): Add support for the promise to return true or
|
||||
// false, rather than using kExceptionNotSupportedError to mean false.
|
||||
virtual void SetServerCertificate(uint32_t promise_id,
|
||||
const uint8_t* server_certificate_data,
|
||||
uint32_t server_certificate_data_size) = 0;
|
||||
|
||||
// Creates a session given |session_type|, |init_data_type|, and |init_data|.
|
||||
// The CDM must respond by calling either Host::OnResolveNewSessionPromise()
|
||||
// or Host::OnRejectPromise().
|
||||
virtual void CreateSessionAndGenerateRequest(uint32_t promise_id,
|
||||
SessionType session_type,
|
||||
InitDataType init_data_type,
|
||||
const uint8_t* init_data,
|
||||
uint32_t init_data_size) = 0;
|
||||
|
||||
// Loads the session of type |session_type| specified by |session_id|.
|
||||
// The CDM must respond by calling either Host::OnResolveNewSessionPromise()
|
||||
// or Host::OnRejectPromise(). If the session is not found, call
|
||||
// Host::OnResolveNewSessionPromise() with session_id = NULL.
|
||||
virtual void LoadSession(uint32_t promise_id,
|
||||
SessionType session_type,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Updates the session with |response|. The CDM must respond by calling
|
||||
// either Host::OnResolvePromise() or Host::OnRejectPromise().
|
||||
virtual void UpdateSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
const uint8_t* response,
|
||||
uint32_t response_size) = 0;
|
||||
|
||||
// Requests that the CDM close the session. The CDM must respond by calling
|
||||
// either Host::OnResolvePromise() or Host::OnRejectPromise() when the request
|
||||
// has been processed. This may be before the session is closed. Once the
|
||||
// session is closed, Host::OnSessionClosed() must also be called.
|
||||
virtual void CloseSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Removes any stored session data associated with this session. Removes all
|
||||
|
|
@ -948,7 +1194,8 @@ class CDM_CLASS_API ContentDecryptionModule_11 {
|
|||
// processed by UpdateSession(). The CDM must respond by calling either
|
||||
// Host::OnResolvePromise() or Host::OnRejectPromise() when the request has
|
||||
// been processed.
|
||||
virtual void RemoveSession(uint32_t promise_id, const char* session_id,
|
||||
virtual void RemoveSession(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Performs scheduled operation with |context| when the timer fires.
|
||||
|
|
@ -1052,7 +1299,8 @@ class CDM_CLASS_API ContentDecryptionModule_11 {
|
|||
// then |link_mask| and |output_protection_mask| are undefined and should
|
||||
// be ignored.
|
||||
virtual void OnQueryOutputProtectionStatus(
|
||||
QueryResult result, uint32_t link_mask,
|
||||
QueryResult result,
|
||||
uint32_t link_mask,
|
||||
uint32_t output_protection_mask) = 0;
|
||||
|
||||
// Called by the host after a call to Host::RequestStorageId(). If the
|
||||
|
|
@ -1063,15 +1311,16 @@ class CDM_CLASS_API ContentDecryptionModule_11 {
|
|||
// If the requested version is not available, null/zero will be provided as
|
||||
// |storage_id| and |storage_id_size|, respectively, and |version| should be
|
||||
// ignored.
|
||||
virtual void OnStorageId(uint32_t version, const uint8_t* storage_id,
|
||||
virtual void OnStorageId(uint32_t version,
|
||||
const uint8_t* storage_id,
|
||||
uint32_t storage_id_size) = 0;
|
||||
|
||||
// Destroys the object in the same context as it was created.
|
||||
virtual void Destroy() = 0;
|
||||
|
||||
protected:
|
||||
ContentDecryptionModule_11() {}
|
||||
virtual ~ContentDecryptionModule_11() {}
|
||||
ContentDecryptionModule_12() {}
|
||||
virtual ~ContentDecryptionModule_12() {}
|
||||
};
|
||||
|
||||
class CDM_CLASS_API Host_10 {
|
||||
|
|
@ -1118,15 +1367,18 @@ class CDM_CLASS_API Host_10 {
|
|||
// ContentDecryptionModule calls that accept a |promise_id|.
|
||||
// |exception| must be specified. |error_message| and |system_code|
|
||||
// are optional. |error_message_size| should not include null termination.
|
||||
virtual void OnRejectPromise(uint32_t promise_id, Exception exception,
|
||||
uint32_t system_code, const char* error_message,
|
||||
virtual void OnRejectPromise(uint32_t promise_id,
|
||||
Exception exception,
|
||||
uint32_t system_code,
|
||||
const char* error_message,
|
||||
uint32_t error_message_size) = 0;
|
||||
|
||||
// Called by the CDM when it has a message for session |session_id|.
|
||||
// Size parameters should not include null termination.
|
||||
virtual void OnSessionMessage(const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
MessageType message_type, const char* message,
|
||||
MessageType message_type,
|
||||
const char* message,
|
||||
uint32_t message_size) = 0;
|
||||
|
||||
// Called by the CDM when there has been a change in keys or their status for
|
||||
|
|
@ -1251,15 +1503,18 @@ class CDM_CLASS_API Host_11 {
|
|||
// ContentDecryptionModule calls that accept a |promise_id|.
|
||||
// |exception| must be specified. |error_message| and |system_code|
|
||||
// are optional. |error_message_size| should not include null termination.
|
||||
virtual void OnRejectPromise(uint32_t promise_id, Exception exception,
|
||||
uint32_t system_code, const char* error_message,
|
||||
virtual void OnRejectPromise(uint32_t promise_id,
|
||||
Exception exception,
|
||||
uint32_t system_code,
|
||||
const char* error_message,
|
||||
uint32_t error_message_size) = 0;
|
||||
|
||||
// Called by the CDM when it has a message for session |session_id|.
|
||||
// Size parameters should not include null termination.
|
||||
virtual void OnSessionMessage(const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
MessageType message_type, const char* message,
|
||||
MessageType message_type,
|
||||
const char* message,
|
||||
uint32_t message_size) = 0;
|
||||
|
||||
// Called by the CDM when there has been a change in keys or their status for
|
||||
|
|
@ -1326,18 +1581,146 @@ class CDM_CLASS_API Host_11 {
|
|||
// CDM can call this method multiple times to operate on different files.
|
||||
virtual FileIO* CreateFileIO(FileIOClient* client) = 0;
|
||||
|
||||
// Requests a CdmProxy that proxies part of CDM functionalities to a different
|
||||
// entity, e.g. a hardware CDM module. A CDM instance can have at most one
|
||||
// CdmProxy throughout its lifetime, which must be requested and initialized
|
||||
// during CDM instance initialization time, i.e. in or after CDM::Initialize()
|
||||
// and before OnInitialized() is called, to ensure proper connection of the
|
||||
// CdmProxy and the media player (e.g. hardware decoder). The CdmProxy is
|
||||
// owned by the host and is guaranteed to be valid throughout the CDM
|
||||
// instance's lifetime. The CDM must ensure that the |client| remain valid
|
||||
// before the CDM instance is destroyed. Returns null if CdmProxy is not
|
||||
// supported, called before CDM::Initialize(), RequestCdmProxy() is called
|
||||
// more than once, or called after the CDM instance has been initialized.
|
||||
virtual CdmProxy* RequestCdmProxy(CdmProxyClient* client) = 0;
|
||||
// Requests a specific version of the storage ID. A storage ID is a stable,
|
||||
// device specific ID used by the CDM to securely store persistent data. The
|
||||
// ID will be returned by the host via ContentDecryptionModule::OnStorageId().
|
||||
// If |version| is 0, the latest version will be returned. All |version|s
|
||||
// that are greater than or equal to 0x80000000 are reserved for the CDM and
|
||||
// should not be supported or returned by the host. The CDM must not expose
|
||||
// the ID outside the client device, even in encrypted form.
|
||||
virtual void RequestStorageId(uint32_t version) = 0;
|
||||
|
||||
// Reports the metric |metric_name| with value |value| to the host. Can be
|
||||
// called by the CDM at any time. May report the same metric multiple times
|
||||
// during the lifetime of the CDM.
|
||||
virtual void ReportMetrics(MetricName metric_name, uint64_t value) = 0;
|
||||
|
||||
protected:
|
||||
Host_11() {}
|
||||
virtual ~Host_11() {}
|
||||
};
|
||||
|
||||
class CDM_CLASS_API Host_12 {
|
||||
public:
|
||||
static const int kVersion = 12;
|
||||
|
||||
// Returns a Buffer* containing non-zero members upon success, or NULL on
|
||||
// failure. The caller owns the Buffer* after this call. The buffer is not
|
||||
// guaranteed to be zero initialized. The capacity of the allocated Buffer
|
||||
// is guaranteed to be not less than |capacity|.
|
||||
virtual Buffer* Allocate(uint32_t capacity) = 0;
|
||||
|
||||
// Requests the host to call ContentDecryptionModule::TimerFired() |delay_ms|
|
||||
// from now with |context|.
|
||||
virtual void SetTimer(int64_t delay_ms, void* context) = 0;
|
||||
|
||||
// Returns the current wall time.
|
||||
virtual Time GetCurrentWallTime() = 0;
|
||||
|
||||
// Called by the CDM with the result after the CDM instance was initialized.
|
||||
virtual void OnInitialized(bool success) = 0;
|
||||
|
||||
// Called by the CDM when a key status is available in response to
|
||||
// GetStatusForPolicy().
|
||||
virtual void OnResolveKeyStatusPromise(uint32_t promise_id,
|
||||
KeyStatus key_status) = 0;
|
||||
|
||||
// Called by the CDM when a session is created or loaded and the value for the
|
||||
// MediaKeySession's sessionId attribute is available (|session_id|).
|
||||
// This must be called before OnSessionMessage() or
|
||||
// OnSessionKeysChange() is called for the same session. |session_id_size|
|
||||
// should not include null termination.
|
||||
// When called in response to LoadSession(), the |session_id| must be the
|
||||
// same as the |session_id| passed in LoadSession(), or NULL if the
|
||||
// session could not be loaded.
|
||||
virtual void OnResolveNewSessionPromise(uint32_t promise_id,
|
||||
const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// Called by the CDM when a session is updated or released.
|
||||
virtual void OnResolvePromise(uint32_t promise_id) = 0;
|
||||
|
||||
// Called by the CDM when an error occurs as a result of one of the
|
||||
// ContentDecryptionModule calls that accept a |promise_id|.
|
||||
// |exception| must be specified. |error_message| and |system_code|
|
||||
// are optional. |error_message_size| should not include null termination.
|
||||
virtual void OnRejectPromise(uint32_t promise_id,
|
||||
Exception exception,
|
||||
uint32_t system_code,
|
||||
const char* error_message,
|
||||
uint32_t error_message_size) = 0;
|
||||
|
||||
// Called by the CDM when it has a message for session |session_id|.
|
||||
// Size parameters should not include null termination.
|
||||
virtual void OnSessionMessage(const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
MessageType message_type,
|
||||
const char* message,
|
||||
uint32_t message_size) = 0;
|
||||
|
||||
// Called by the CDM when there has been a change in keys or their status for
|
||||
// session |session_id|. |has_additional_usable_key| should be set if a
|
||||
// key is newly usable (e.g. new key available, previously expired key has
|
||||
// been renewed, etc.) and the browser should attempt to resume playback.
|
||||
// |keys_info| is the list of key IDs for this session along with their
|
||||
// current status. |keys_info_count| is the number of entries in |keys_info|.
|
||||
// Size parameter for |session_id| should not include null termination.
|
||||
virtual void OnSessionKeysChange(const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
bool has_additional_usable_key,
|
||||
const KeyInformation* keys_info,
|
||||
uint32_t keys_info_count) = 0;
|
||||
|
||||
// Called by the CDM when there has been a change in the expiration time for
|
||||
// session |session_id|. This can happen as the result of an Update() call
|
||||
// or some other event. If this happens as a result of a call to Update(),
|
||||
// it must be called before resolving the Update() promise. |new_expiry_time|
|
||||
// represents the time after which the key(s) in the session will no longer
|
||||
// be usable for decryption. It can be 0 if no such time exists or if the
|
||||
// license explicitly never expires. Size parameter should not include null
|
||||
// termination.
|
||||
virtual void OnExpirationChange(const char* session_id,
|
||||
uint32_t session_id_size,
|
||||
Time new_expiry_time) = 0;
|
||||
|
||||
// Called by the CDM when session |session_id| is closed. Size
|
||||
// parameter should not include null termination.
|
||||
virtual void OnSessionClosed(const char* session_id,
|
||||
uint32_t session_id_size) = 0;
|
||||
|
||||
// The following are optional methods that may not be implemented on all
|
||||
// platforms.
|
||||
|
||||
// Sends a platform challenge for the given |service_id|. |challenge| is at
|
||||
// most 256 bits of data to be signed. Once the challenge has been completed,
|
||||
// the host will call ContentDecryptionModule::OnPlatformChallengeResponse()
|
||||
// with the signed challenge response and platform certificate. Size
|
||||
// parameters should not include null termination.
|
||||
virtual void SendPlatformChallenge(const char* service_id,
|
||||
uint32_t service_id_size,
|
||||
const char* challenge,
|
||||
uint32_t challenge_size) = 0;
|
||||
|
||||
// Attempts to enable output protection (e.g. HDCP) on the display link. The
|
||||
// |desired_protection_mask| is a bit mask of OutputProtectionMethods. No
|
||||
// status callback is issued, the CDM must call QueryOutputProtectionStatus()
|
||||
// periodically to ensure the desired protections are applied.
|
||||
virtual void EnableOutputProtection(uint32_t desired_protection_mask) = 0;
|
||||
|
||||
// Requests the current output protection status. Once the host has the status
|
||||
// it will call ContentDecryptionModule::OnQueryOutputProtectionStatus().
|
||||
virtual void QueryOutputProtectionStatus() = 0;
|
||||
|
||||
// Must be called by the CDM if it returned kDeferredInitialization during
|
||||
// InitializeAudioDecoder() or InitializeVideoDecoder().
|
||||
virtual void OnDeferredInitializationDone(StreamType stream_type,
|
||||
Status decoder_status) = 0;
|
||||
|
||||
// Creates a FileIO object from the host to do file IO operation. Returns NULL
|
||||
// if a FileIO object cannot be obtained. Once a valid FileIO object is
|
||||
// returned, |client| must be valid until FileIO::Close() is called. The
|
||||
// CDM can call this method multiple times to operate on different files.
|
||||
virtual FileIO* CreateFileIO(FileIOClient* client) = 0;
|
||||
|
||||
// Requests a specific version of the storage ID. A storage ID is a stable,
|
||||
// device specific ID used by the CDM to securely store persistent data. The
|
||||
|
|
@ -1348,9 +1731,14 @@ class CDM_CLASS_API Host_11 {
|
|||
// the ID outside the client device, even in encrypted form.
|
||||
virtual void RequestStorageId(uint32_t version) = 0;
|
||||
|
||||
// Reports the metric |metric_name| with value |value| to the host. Can be
|
||||
// called by the CDM at any time. May report the same metric multiple times
|
||||
// during the lifetime of the CDM.
|
||||
virtual void ReportMetrics(MetricName metric_name, uint64_t value) = 0;
|
||||
|
||||
protected:
|
||||
Host_11() {}
|
||||
virtual ~Host_11() {}
|
||||
Host_12() {}
|
||||
virtual ~Host_12() {}
|
||||
};
|
||||
|
||||
} // namespace cdm
|
||||
|
|
|
|||
|
|
@ -1,121 +0,0 @@
|
|||
// Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CDM_CONTENT_DECRYPTION_MODULE_PROXY_H_
|
||||
#define CDM_CONTENT_DECRYPTION_MODULE_PROXY_H_
|
||||
|
||||
#include "content_decryption_module_export.h"
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
|
||||
namespace cdm {
|
||||
|
||||
class CDM_CLASS_API CdmProxyClient;
|
||||
|
||||
// A proxy class for the CDM.
|
||||
// In general, the interpretation of the CdmProxy and CdmProxyClient method
|
||||
// parameters are protocol dependent. For enum parameters, values outside the
|
||||
// enum range may not work.
|
||||
class CDM_CLASS_API CdmProxy {
|
||||
public:
|
||||
enum Function : uint32_t {
|
||||
// For Intel Negotiate Crypto SessionKey Exchange (CSME) path to call
|
||||
// ID3D11VideoContext::NegotiateCryptoSessionKeyExchange.
|
||||
kIntelNegotiateCryptoSessionKeyExchange = 1,
|
||||
// There will be more values in the future e.g. for D3D11 RSA method.
|
||||
};
|
||||
|
||||
enum KeyType : uint32_t {
|
||||
kDecryptOnly = 0,
|
||||
kDecryptAndDecode = 1,
|
||||
};
|
||||
|
||||
// Initializes the proxy. The results will be returned in
|
||||
// CdmProxyClient::OnInitialized().
|
||||
virtual void Initialize() = 0;
|
||||
|
||||
// Processes and updates the state of the proxy.
|
||||
// |output_data_size| is required by some protocol to set up the output data.
|
||||
// The operation may fail if the |output_data_size| is wrong. The results will
|
||||
// be returned in CdmProxyClient::OnProcessed().
|
||||
virtual void Process(Function function, uint32_t crypto_session_id,
|
||||
const uint8_t* input_data, uint32_t input_data_size,
|
||||
uint32_t output_data_size) = 0;
|
||||
|
||||
// Creates a crypto session for handling media.
|
||||
// If extra data has to be passed to further setup the media crypto session,
|
||||
// pass the data as |input_data|. The results will be returned in
|
||||
// CdmProxyClient::OnMediaCryptoSessionCreated().
|
||||
virtual void CreateMediaCryptoSession(const uint8_t* input_data,
|
||||
uint32_t input_data_size) = 0;
|
||||
|
||||
// Sets a key for the session identified by |crypto_session_id|.
|
||||
virtual void SetKey(uint32_t crypto_session_id, const uint8_t* key_id,
|
||||
uint32_t key_id_size, KeyType key_type,
|
||||
const uint8_t* key_blob, uint32_t key_blob_size) = 0;
|
||||
|
||||
// Removes a key for the session identified by |crypto_session_id|.
|
||||
virtual void RemoveKey(uint32_t crypto_session_id, const uint8_t* key_id,
|
||||
uint32_t key_id_size) = 0;
|
||||
|
||||
protected:
|
||||
CdmProxy() {}
|
||||
virtual ~CdmProxy() {}
|
||||
};
|
||||
|
||||
// Responses to CdmProxy calls. All responses will be called asynchronously.
|
||||
class CDM_CLASS_API CdmProxyClient {
|
||||
public:
|
||||
enum Status : uint32_t {
|
||||
kOk,
|
||||
kFail,
|
||||
};
|
||||
|
||||
enum Protocol : uint32_t {
|
||||
kNone = 0, // No protocol supported. Can be used in failure cases.
|
||||
kIntel, // Method using Intel CSME.
|
||||
// There will be more values in the future e.g. kD3D11RsaHardware,
|
||||
// kD3D11RsaSoftware to use the D3D11 RSA method.
|
||||
};
|
||||
|
||||
// Callback for Initialize(). If the proxy created a crypto session, then the
|
||||
// ID for the crypto session is |crypto_session_id|.
|
||||
virtual void OnInitialized(Status status, Protocol protocol,
|
||||
uint32_t crypto_session_id) = 0;
|
||||
|
||||
// Callback for Process(). |output_data| is the output of processing.
|
||||
virtual void OnProcessed(Status status, const uint8_t* output_data,
|
||||
uint32_t output_data_size) = 0;
|
||||
|
||||
// Callback for CreateMediaCryptoSession(). On success:
|
||||
// - |crypto_session_id| is the ID for the created crypto session.
|
||||
// - |output_data| is extra value, if any.
|
||||
// Otherwise, |crypto_session_id| and |output_data| should be ignored.
|
||||
virtual void OnMediaCryptoSessionCreated(Status status,
|
||||
uint32_t crypto_session_id,
|
||||
uint64_t output_data) = 0;
|
||||
|
||||
// Callback for SetKey().
|
||||
virtual void OnKeySet(Status status) = 0;
|
||||
|
||||
// Callback for RemoveKey().
|
||||
virtual void OnKeyRemoved(Status status) = 0;
|
||||
|
||||
// Called when there is a hardware reset and all the hardware context is lost.
|
||||
virtual void NotifyHardwareReset() = 0;
|
||||
|
||||
protected:
|
||||
CdmProxyClient() {}
|
||||
virtual ~CdmProxyClient() {}
|
||||
};
|
||||
|
||||
} // namespace cdm
|
||||
|
||||
#endif // CDM_CONTENT_DECRYPTION_MODULE_PROXY_H_
|
||||
|
|
@ -10,7 +10,14 @@ SOURCES += [
|
|||
"WidevineVideoFrame.cpp",
|
||||
]
|
||||
|
||||
EXPORTS += ["WidevineFileIO.h", "WidevineUtils.h", "WidevineVideoFrame.h"]
|
||||
EXPORTS += [
|
||||
"content_decryption_module.h",
|
||||
"content_decryption_module_export.h",
|
||||
"content_decryption_module_ext.h",
|
||||
"WidevineFileIO.h",
|
||||
"WidevineUtils.h",
|
||||
"WidevineVideoFrame.h",
|
||||
]
|
||||
|
||||
FINAL_LIBRARY = "xul"
|
||||
|
||||
|
|
|
|||
|
|
@ -16,23 +16,35 @@ namespace mozilla::dom {
|
|||
// https://streams.spec.whatwg.org/#transfer-array-buffer
|
||||
// As some parts of the specifcation want to use the abrupt completion value,
|
||||
// this function may leave a pending exception if it returns nullptr.
|
||||
//
|
||||
// This can be called with a CCW to an ArrayBuffer Object as we handle the
|
||||
// case explicitly.
|
||||
JSObject* TransferArrayBuffer(JSContext* aCx, JS::Handle<JSObject*> aObject) {
|
||||
MOZ_ASSERT(JS::IsArrayBufferObject(aObject));
|
||||
JS::Rooted<JSObject*> unwrappedObj(aCx, JS::UnwrapArrayBuffer(aObject));
|
||||
if (!unwrappedObj) {
|
||||
js::ReportAccessDenied(aCx);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
size_t bufferLength = 0;
|
||||
UniquePtr<void, JS::FreePolicy> bufferData;
|
||||
{
|
||||
JSAutoRealm ar(aCx, unwrappedObj);
|
||||
|
||||
// Step 1.
|
||||
MOZ_ASSERT(!JS::IsDetachedArrayBufferObject(aObject));
|
||||
MOZ_ASSERT(!JS::IsDetachedArrayBufferObject(unwrappedObj));
|
||||
|
||||
// Step 3 (Reordered)
|
||||
size_t bufferLength = JS::GetArrayBufferByteLength(aObject);
|
||||
bufferLength = JS::GetArrayBufferByteLength(unwrappedObj);
|
||||
|
||||
// Step 2 (Reordered)
|
||||
UniquePtr<void, JS::FreePolicy> bufferData{
|
||||
JS::StealArrayBufferContents(aCx, aObject)};
|
||||
bufferData.reset(JS::StealArrayBufferContents(aCx, unwrappedObj));
|
||||
|
||||
// Step 4.
|
||||
if (!JS::DetachArrayBuffer(aCx, aObject)) {
|
||||
if (!JS::DetachArrayBuffer(aCx, unwrappedObj)) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
// Step 5.
|
||||
return JS::NewArrayBufferWithContents(aCx, bufferLength,
|
||||
|
|
|
|||
|
|
@ -453,7 +453,7 @@ class gfxFontEntry::FontTableBlobData {
|
|||
|
||||
private:
|
||||
// The font table data block
|
||||
nsTArray<uint8_t> mTableData;
|
||||
const nsTArray<uint8_t> mTableData;
|
||||
|
||||
// The blob destroy function needs to know the owning font entry
|
||||
// so that it can take the font-entry's lock while modifying the
|
||||
|
|
@ -555,11 +555,17 @@ hb_blob_t* gfxFontEntry::ShareFontTableAndGetBlob(uint32_t aTag,
|
|||
MOZ_POP_THREAD_SAFETY
|
||||
|
||||
AutoWriteLock lock(mLock);
|
||||
FontTableHashEntry* entry = cache->PutEntry(aTag);
|
||||
if (MOZ_UNLIKELY(!entry)) { // OOM
|
||||
return nullptr;
|
||||
|
||||
FontTableHashEntry* entry;
|
||||
if (MOZ_UNLIKELY(entry = cache->GetEntry(aTag))) {
|
||||
// We must have been racing with another GetFontTable for the same table,
|
||||
// and it won the race and filled in the entry before we took the lock.
|
||||
// Ignore `aBuffer` and return a reference to the existing blob.
|
||||
return entry->GetBlob();
|
||||
}
|
||||
|
||||
entry = cache->PutEntry(aTag);
|
||||
|
||||
if (!aBuffer) {
|
||||
// ensure the entry is null
|
||||
entry->Clear();
|
||||
|
|
|
|||
|
|
@ -408,7 +408,7 @@ class gfxFontEntry {
|
|||
// unregisters the table from the font entry.
|
||||
//
|
||||
// Pass nullptr for aBuffer to indicate that the table is not present and
|
||||
// nullptr will be returned. Also returns nullptr on OOM.
|
||||
// nullptr will be returned.
|
||||
hb_blob_t* ShareFontTableAndGetBlob(uint32_t aTag, nsTArray<uint8_t>* aTable);
|
||||
|
||||
// Get the font's unitsPerEm from the 'head' table, in the case of an
|
||||
|
|
|
|||
|
|
@ -95,17 +95,16 @@ void* js::GetNativeStackBaseImpl() {
|
|||
pthread_t thread = pthread_self();
|
||||
pthread_attr_t sattr;
|
||||
pthread_attr_init(&sattr);
|
||||
pthread_getattr_np(thread, &sattr);
|
||||
int rc = pthread_getattr_np(thread, &sattr);
|
||||
MOZ_RELEASE_ASSERT(rc == 0, "pthread_getattr_np failed");
|
||||
|
||||
// stackBase will be the *lowest* address on all architectures.
|
||||
void* stackBase = nullptr;
|
||||
size_t stackSize = 0;
|
||||
int rc = pthread_attr_getstack(&sattr, &stackBase, &stackSize);
|
||||
if (rc) {
|
||||
MOZ_CRASH(
|
||||
"call to pthread_attr_getstack failed, unable to setup stack range for "
|
||||
"JS");
|
||||
}
|
||||
rc = pthread_attr_getstack(&sattr, &stackBase, &stackSize);
|
||||
MOZ_RELEASE_ASSERT(rc == 0,
|
||||
"call to pthread_attr_getstack failed, unable to setup "
|
||||
"stack range for JS");
|
||||
MOZ_RELEASE_ASSERT(stackBase,
|
||||
"invalid stack base, unable to setup stack range for JS");
|
||||
pthread_attr_destroy(&sattr);
|
||||
|
|
@ -148,7 +147,8 @@ void* js::GetNativeStackBaseImpl() {
|
|||
* FIXME: this function is non-portable;
|
||||
* other POSIX systems may have different np alternatives
|
||||
*/
|
||||
pthread_getattr_np(thread, &sattr);
|
||||
MOZ_RELEASE_ASSERT(pthread_getattr_np(thread, &sattr) == 0,
|
||||
"pthread_getattr_np failed");
|
||||
# endif
|
||||
|
||||
void* stackBase = 0;
|
||||
|
|
|
|||
|
|
@ -450,7 +450,6 @@ JS_PUBLIC_API JSObject* JS_GetArrayBufferViewBuffer(JSContext* cx,
|
|||
bool* isSharedMemory) {
|
||||
AssertHeapIsIdle();
|
||||
CHECK_THREAD(cx);
|
||||
cx->check(obj);
|
||||
|
||||
Rooted<ArrayBufferViewObject*> unwrappedView(
|
||||
cx, obj->maybeUnwrapAs<ArrayBufferViewObject>());
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
using namespace cdm;
|
||||
|
||||
ClearKeyCDM::ClearKeyCDM(Host_10* aHost) {
|
||||
ClearKeyCDM::ClearKeyCDM(Host_11* aHost) {
|
||||
mHost = aHost;
|
||||
mSessionManager = new ClearKeySessionManager(mHost);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
# include "WMFUtils.h"
|
||||
#endif
|
||||
|
||||
class ClearKeyCDM : public cdm::ContentDecryptionModule_10 {
|
||||
class ClearKeyCDM final : public cdm::ContentDecryptionModule_11 {
|
||||
private:
|
||||
RefPtr<ClearKeySessionManager> mSessionManager;
|
||||
#ifdef ENABLE_WMF
|
||||
|
|
@ -29,10 +29,10 @@ class ClearKeyCDM : public cdm::ContentDecryptionModule_10 {
|
|||
bool mIsProtectionQueryEnabled = false;
|
||||
|
||||
protected:
|
||||
cdm::Host_10* mHost;
|
||||
cdm::Host_11* mHost;
|
||||
|
||||
public:
|
||||
explicit ClearKeyCDM(cdm::Host_10* aHost);
|
||||
explicit ClearKeyCDM(cdm::Host_11* aHost);
|
||||
|
||||
void Initialize(bool aAllowDistinctiveIdentifier, bool aAllowPersistentState,
|
||||
bool aUseHardwareSecureCodecs) override;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
using namespace wmf;
|
||||
|
||||
VideoDecoder::VideoDecoder(cdm::Host_10* aHost)
|
||||
VideoDecoder::VideoDecoder(cdm::Host_11* aHost)
|
||||
: mHost(aHost), mHasShutdown(false) {
|
||||
CK_LOGD("VideoDecoder created");
|
||||
|
||||
|
|
@ -219,9 +219,9 @@ VideoDecoder::SampleToVideoFrame(IMFSample* aSample, int32_t aPictureWidth,
|
|||
uint32_t srcUVSize = stride * (aFrameHeight + padding) / 4;
|
||||
uint32_t halfStride = (stride + 1) / 2;
|
||||
|
||||
aVideoFrame->SetStride(cdm::VideoPlane::kYPlane, stride);
|
||||
aVideoFrame->SetStride(cdm::VideoPlane::kUPlane, halfStride);
|
||||
aVideoFrame->SetStride(cdm::VideoPlane::kVPlane, halfStride);
|
||||
aVideoFrame->SetStride(cdm::kYPlane, stride);
|
||||
aVideoFrame->SetStride(cdm::kUPlane, halfStride);
|
||||
aVideoFrame->SetStride(cdm::kVPlane, halfStride);
|
||||
|
||||
aVideoFrame->SetSize(cdm::Size{aPictureWidth, aPictureHeight});
|
||||
|
||||
|
|
@ -252,17 +252,17 @@ VideoDecoder::SampleToVideoFrame(IMFSample* aSample, int32_t aPictureWidth,
|
|||
|
||||
uint8_t* outBuffer = buffer->Data();
|
||||
|
||||
aVideoFrame->SetPlaneOffset(cdm::VideoPlane::kYPlane, 0);
|
||||
aVideoFrame->SetPlaneOffset(cdm::kYPlane, 0);
|
||||
|
||||
// Offset of U plane is the size of the Y plane, excluding the padding that
|
||||
// WMF adds.
|
||||
uint32_t dstUOffset = stride * aPictureHeight;
|
||||
aVideoFrame->SetPlaneOffset(cdm::VideoPlane::kUPlane, dstUOffset);
|
||||
aVideoFrame->SetPlaneOffset(cdm::kUPlane, dstUOffset);
|
||||
|
||||
// Offset of the V plane is the size of the Y plane + the size of the U plane,
|
||||
// excluding any padding WMF adds.
|
||||
uint32_t dstVOffset = stride * aPictureHeight + (stride * aPictureHeight) / 4;
|
||||
aVideoFrame->SetPlaneOffset(cdm::VideoPlane::kVPlane, dstVOffset);
|
||||
aVideoFrame->SetPlaneOffset(cdm::kVPlane, dstVOffset);
|
||||
|
||||
// Copy the pixel data, excluding WMF's padding.
|
||||
memcpy(outBuffer, data, stride * aPictureHeight);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
class VideoDecoder : public RefCounted {
|
||||
public:
|
||||
explicit VideoDecoder(cdm::Host_10* aHost);
|
||||
explicit VideoDecoder(cdm::Host_11* aHost);
|
||||
|
||||
cdm::Status InitDecode(const cdm::VideoDecoderConfig_2& aConfig);
|
||||
|
||||
|
|
@ -61,7 +61,7 @@ class VideoDecoder : public RefCounted {
|
|||
int32_t aFrameHeight,
|
||||
cdm::VideoFrame* aVideoFrame);
|
||||
|
||||
cdm::Host_10* mHost;
|
||||
cdm::Host_11* mHost;
|
||||
wmf::AutoPtr<wmf::WMFH264Decoder> mDecoder;
|
||||
|
||||
std::queue<wmf::CComPtr<IMFSample>> mOutputQueue;
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ void* CreateCdmInstance(int cdm_interface_version, const char* key_system,
|
|||
GetCdmHostFunc get_cdm_host_func, void* user_data) {
|
||||
CK_LOGE("ClearKey CreateCDMInstance");
|
||||
|
||||
if (cdm_interface_version != cdm::ContentDecryptionModule_10::kVersion) {
|
||||
if (cdm_interface_version != cdm::ContentDecryptionModule_11::kVersion) {
|
||||
CK_LOGE(
|
||||
"ClearKey CreateCDMInstance failed due to requesting unsupported "
|
||||
"version %d.",
|
||||
|
|
@ -81,7 +81,7 @@ void* CreateCdmInstance(int cdm_interface_version, const char* key_system,
|
|||
}
|
||||
#endif
|
||||
|
||||
cdm::Host_10* host = static_cast<cdm::Host_10*>(
|
||||
cdm::Host_11* host = static_cast<cdm::Host_11*>(
|
||||
get_cdm_host_func(cdm_interface_version, user_data));
|
||||
ClearKeyCDM* clearKey = new ClearKeyCDM(host);
|
||||
|
||||
|
|
|
|||
|
|
@ -70,10 +70,10 @@ class WMFClearKeyCDM final
|
|||
};
|
||||
|
||||
// In order to reuse existing Gecko clearkey implementation, we need to
|
||||
// inherit the class `cdm::Host_10`.
|
||||
// inherit the class `cdm::Host_11`.
|
||||
// TODO : add a way to assert thread usage. It would be used on MF thread pool
|
||||
// and the media supervisor thread pool.
|
||||
class SessionManagerWrapper final : public RefCounted, private cdm::Host_10 {
|
||||
class SessionManagerWrapper final : public RefCounted, private cdm::Host_11 {
|
||||
public:
|
||||
explicit SessionManagerWrapper(WMFClearKeyCDM* aCDM);
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ class SessionManagerWrapper final : public RefCounted, private cdm::Host_10 {
|
|||
|
||||
private:
|
||||
~SessionManagerWrapper();
|
||||
// cdm::Host_10
|
||||
// cdm::Host_11
|
||||
void OnInitialized(bool aSuccess) override {}
|
||||
void OnResolveKeyStatusPromise(uint32_t aPromiseId,
|
||||
cdm::KeyStatus aKeyStatus) override {}
|
||||
|
|
@ -133,6 +133,7 @@ class SessionManagerWrapper final : public RefCounted, private cdm::Host_10 {
|
|||
void OnDeferredInitializationDone(cdm::StreamType aStreamType,
|
||||
cdm::Status aDecoderStatus) override {}
|
||||
void RequestStorageId(uint32_t aVersion) override {}
|
||||
void ReportMetrics(cdm::MetricName aMetricName, uint64_t aValue) override {}
|
||||
cdm::Buffer* Allocate(uint32_t aCapacity) override;
|
||||
void SetTimer(int64_t aDelayMs, void* aContext) override {}
|
||||
cdm::Time GetCurrentWallTime() override { return 0.0; }
|
||||
|
|
@ -145,7 +146,7 @@ class SessionManagerWrapper final : public RefCounted, private cdm::Host_10 {
|
|||
|
||||
// This is a RAII helper class to use ClearKeySessionManager::XXXSession
|
||||
// methods in a sync style, which is what MFCDM is required.
|
||||
// ClearKeySessionManager uses cdm::Host_10's OnResolve/RejectXXX as callback
|
||||
// ClearKeySessionManager uses cdm::Host_11's OnResolve/RejectXXX as callback
|
||||
// to report whether those function calls relatd with specific promise id
|
||||
// succeed or not. As we only do temporary session for ClearKey testing, we
|
||||
// don't need to wait to setup the storage so calling those XXXsession
|
||||
|
|
@ -155,7 +156,7 @@ class SessionManagerWrapper final : public RefCounted, private cdm::Host_10 {
|
|||
// [How to to use this class, not thread-safe]
|
||||
// 1. create it on the stack
|
||||
// 2. use GetPromiseId() to generate a fake promise id for tracking
|
||||
// 3. in cdm::Host_10's callback function, check promise id to know what
|
||||
// 3. in cdm::Host_11's callback function, check promise id to know what
|
||||
// result needs to be set
|
||||
// 4. check result to see if the session method succeed or not
|
||||
class SyncResultChecker final {
|
||||
|
|
|
|||
|
|
@ -762,7 +762,8 @@ MFBT_API void MozStackWalk(MozWalkStackCallback aCallback,
|
|||
# elif defined(ANDROID)
|
||||
pthread_attr_t sattr;
|
||||
pthread_attr_init(&sattr);
|
||||
pthread_getattr_np(pthread_self(), &sattr);
|
||||
int rc = pthread_getattr_np(pthread_self(), &sattr);
|
||||
MOZ_RELEASE_ASSERT(rc == 0, "pthread_getattr_np failed");
|
||||
void* stackBase = stackEnd = nullptr;
|
||||
size_t stackSize = 0;
|
||||
if (gettid() != getpid()) {
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
// Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat,
|
||||
// rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported.
|
||||
|
||||
// VERSION: 2025-07-09_15-23-09_UTC
|
||||
// COMMIT: c38a2f8e8862ad65d91af25dee90002c61329953
|
||||
// VERSION: 2025-08-08_07-48-13_UTC
|
||||
// COMMIT: 9375d3415dea4bfcc974248b676bf0f6e6f2daa8
|
||||
|
||||
// Instructions on pulling and using this list can be found at https://publicsuffix.org/list/.
|
||||
|
||||
|
|
@ -6792,7 +6792,7 @@ org.zw
|
|||
|
||||
// newGTLDs
|
||||
|
||||
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-07-09T15:20:49Z
|
||||
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-07-16T15:22:08Z
|
||||
// This list is auto-generated, don't edit it manually.
|
||||
// aaa : American Automobile Association, Inc.
|
||||
// https://www.iana.org/domains/root/db/aaa.html
|
||||
|
|
@ -7566,7 +7566,7 @@ claims
|
|||
// https://www.iana.org/domains/root/db/cleaning.html
|
||||
cleaning
|
||||
|
||||
// click : Internet Naming Company LLC
|
||||
// click : Waterford Limited
|
||||
// https://www.iana.org/domains/root/db/click.html
|
||||
click
|
||||
|
||||
|
|
@ -11431,7 +11431,7 @@ cloudfront.net
|
|||
|
||||
// Amazon Cognito
|
||||
// Submitted by AWS Security <psl-maintainers@amazon.com>
|
||||
// Reference: eb4652f0-20f0-43f5-b323-e6cc6ae02ad7
|
||||
// Reference: e7c02dc1-02f4-4a23-bde3-a8527c830127
|
||||
auth.af-south-1.amazoncognito.com
|
||||
auth.ap-east-1.amazoncognito.com
|
||||
auth.ap-northeast-1.amazoncognito.com
|
||||
|
|
@ -11444,6 +11444,7 @@ auth.ap-southeast-2.amazoncognito.com
|
|||
auth.ap-southeast-3.amazoncognito.com
|
||||
auth.ap-southeast-4.amazoncognito.com
|
||||
auth.ap-southeast-5.amazoncognito.com
|
||||
auth.ap-southeast-7.amazoncognito.com
|
||||
auth.ca-central-1.amazoncognito.com
|
||||
auth.ca-west-1.amazoncognito.com
|
||||
auth.eu-central-1.amazoncognito.com
|
||||
|
|
@ -11457,6 +11458,7 @@ auth.eu-west-3.amazoncognito.com
|
|||
auth.il-central-1.amazoncognito.com
|
||||
auth.me-central-1.amazoncognito.com
|
||||
auth.me-south-1.amazoncognito.com
|
||||
auth.mx-central-1.amazoncognito.com
|
||||
auth.sa-east-1.amazoncognito.com
|
||||
auth.us-east-1.amazoncognito.com
|
||||
auth-fips.us-east-1.amazoncognito.com
|
||||
|
|
@ -11582,9 +11584,41 @@ emrstudio-prod.us-west-2.amazonaws.com
|
|||
|
||||
// Amazon Managed Workflows for Apache Airflow
|
||||
// Submitted by AWS Security <psl-maintainers@amazon.com>
|
||||
// Reference: f5ea5d0a-ec6a-4f23-ac1c-553fbff13f5c
|
||||
// Reference: 2f697e23-58d6-4b97-be6b-77a26e811dad
|
||||
*.airflow.af-south-1.on.aws
|
||||
*.airflow.ap-east-1.on.aws
|
||||
*.airflow.ap-northeast-1.on.aws
|
||||
*.airflow.ap-northeast-2.on.aws
|
||||
*.airflow.ap-northeast-3.on.aws
|
||||
*.airflow.ap-south-1.on.aws
|
||||
*.airflow.ap-south-2.on.aws
|
||||
*.airflow.ap-southeast-1.on.aws
|
||||
*.airflow.ap-southeast-2.on.aws
|
||||
*.airflow.ap-southeast-3.on.aws
|
||||
*.airflow.ap-southeast-4.on.aws
|
||||
*.airflow.ap-southeast-5.on.aws
|
||||
*.airflow.ca-central-1.on.aws
|
||||
*.airflow.ca-west-1.on.aws
|
||||
*.airflow.eu-central-1.on.aws
|
||||
*.airflow.eu-central-2.on.aws
|
||||
*.airflow.eu-north-1.on.aws
|
||||
*.airflow.eu-south-1.on.aws
|
||||
*.airflow.eu-south-2.on.aws
|
||||
*.airflow.eu-west-1.on.aws
|
||||
*.airflow.eu-west-2.on.aws
|
||||
*.airflow.eu-west-3.on.aws
|
||||
*.airflow.il-central-1.on.aws
|
||||
*.airflow.me-central-1.on.aws
|
||||
*.airflow.me-south-1.on.aws
|
||||
*.airflow.sa-east-1.on.aws
|
||||
*.airflow.us-east-1.on.aws
|
||||
*.airflow.us-east-2.on.aws
|
||||
*.airflow.us-west-1.on.aws
|
||||
*.airflow.us-west-2.on.aws
|
||||
*.cn-north-1.airflow.amazonaws.com.cn
|
||||
*.cn-northwest-1.airflow.amazonaws.com.cn
|
||||
*.airflow.cn-north-1.on.amazonwebservices.com.cn
|
||||
*.airflow.cn-northwest-1.on.amazonwebservices.com.cn
|
||||
*.af-south-1.airflow.amazonaws.com
|
||||
*.ap-east-1.airflow.amazonaws.com
|
||||
*.ap-northeast-1.airflow.amazonaws.com
|
||||
|
|
@ -11596,6 +11630,7 @@ emrstudio-prod.us-west-2.amazonaws.com
|
|||
*.ap-southeast-2.airflow.amazonaws.com
|
||||
*.ap-southeast-3.airflow.amazonaws.com
|
||||
*.ap-southeast-4.airflow.amazonaws.com
|
||||
*.ap-southeast-5.airflow.amazonaws.com
|
||||
*.ca-central-1.airflow.amazonaws.com
|
||||
*.ca-west-1.airflow.amazonaws.com
|
||||
*.eu-central-1.airflow.amazonaws.com
|
||||
|
|
@ -12173,16 +12208,43 @@ awsglobalaccelerator.com
|
|||
|
||||
// AWS Transfer Family web apps
|
||||
// Submitted by AWS Security <psl-maintainers@amazon.com>
|
||||
// Reference: 67e9cfe6-ac57-49c7-b197-6652711c8e8d
|
||||
// Reference: 57a658c4-8899-410c-aa24-5b01e4a178d2
|
||||
transfer-webapp.af-south-1.on.aws
|
||||
transfer-webapp.ap-east-1.on.aws
|
||||
transfer-webapp.ap-northeast-1.on.aws
|
||||
transfer-webapp.ap-northeast-2.on.aws
|
||||
transfer-webapp.ap-northeast-3.on.aws
|
||||
transfer-webapp.ap-south-1.on.aws
|
||||
transfer-webapp.ap-south-2.on.aws
|
||||
transfer-webapp.ap-southeast-1.on.aws
|
||||
transfer-webapp.ap-southeast-2.on.aws
|
||||
transfer-webapp.ap-southeast-3.on.aws
|
||||
transfer-webapp.ap-southeast-4.on.aws
|
||||
transfer-webapp.ap-southeast-5.on.aws
|
||||
transfer-webapp.ca-central-1.on.aws
|
||||
transfer-webapp.ca-west-1.on.aws
|
||||
transfer-webapp.eu-central-1.on.aws
|
||||
transfer-webapp.eu-central-2.on.aws
|
||||
transfer-webapp.eu-north-1.on.aws
|
||||
transfer-webapp.eu-south-1.on.aws
|
||||
transfer-webapp.eu-south-2.on.aws
|
||||
transfer-webapp.eu-west-1.on.aws
|
||||
transfer-webapp.eu-west-2.on.aws
|
||||
transfer-webapp.eu-west-3.on.aws
|
||||
transfer-webapp.il-central-1.on.aws
|
||||
transfer-webapp.me-central-1.on.aws
|
||||
transfer-webapp.me-south-1.on.aws
|
||||
transfer-webapp.sa-east-1.on.aws
|
||||
transfer-webapp.us-east-1.on.aws
|
||||
transfer-webapp.us-east-2.on.aws
|
||||
transfer-webapp.us-gov-east-1.on.aws
|
||||
transfer-webapp-fips.us-gov-east-1.on.aws
|
||||
transfer-webapp.us-gov-west-1.on.aws
|
||||
transfer-webapp-fips.us-gov-west-1.on.aws
|
||||
transfer-webapp.us-west-1.on.aws
|
||||
transfer-webapp.us-west-2.on.aws
|
||||
transfer-webapp.cn-north-1.on.amazonwebservices.com.cn
|
||||
transfer-webapp.cn-northwest-1.on.amazonwebservices.com.cn
|
||||
|
||||
// eero
|
||||
// Submitted by Yue Kang <eero-dynamic-dns@amazon.com>
|
||||
|
|
@ -12711,9 +12773,6 @@ deta.dev
|
|||
|
||||
// Dfinity Foundation: https://dfinity.org/
|
||||
// Submitted by Dfinity Team <domains@dfinity.org>
|
||||
caffeine.ai
|
||||
id.ai
|
||||
icp-api.io
|
||||
icp0.io
|
||||
*.raw.icp0.io
|
||||
icp1.io
|
||||
|
|
@ -13756,6 +13815,11 @@ ravendb.community
|
|||
development.run
|
||||
ravendb.run
|
||||
|
||||
// HiDNS : https://www.hidoha.net
|
||||
// Submitted by ifeng <admin@hidoha.net>
|
||||
hidns.co
|
||||
hidns.vip
|
||||
|
||||
// home.pl S.A. : https://home.pl
|
||||
// Submitted by Krzysztof Wolski <krzysztof.wolski@home.eu>
|
||||
homesklep.pl
|
||||
|
|
@ -13773,7 +13837,6 @@ hoplix.shop
|
|||
// HOSTBIP REGISTRY : https://www.hostbip.com/
|
||||
// Submitted by Atanunu Igbunuroghene <publicsuffixlist@hostbip.com>
|
||||
orx.biz
|
||||
biz.gl
|
||||
biz.ng
|
||||
co.biz.ng
|
||||
dl.biz.ng
|
||||
|
|
@ -14091,6 +14154,11 @@ krellian.net
|
|||
// Submitted by DisposaBoy <security@oya.to>
|
||||
oya.to
|
||||
|
||||
// KV GmbH : https://www.nic.co.de
|
||||
// Submitted by KV GmbH <registry@kv-gmbh.de>
|
||||
// Abuse reports to <registry@kv-gmbh.de>
|
||||
co.de
|
||||
|
||||
// Laravel Holdings, Inc. : https://laravel.com
|
||||
// Submitted by André Valentin <security@laravel.com>
|
||||
laravel.cloud
|
||||
|
|
@ -14193,6 +14261,8 @@ servers.run
|
|||
// Submitted by Fabian Hedin <security@lovable.dev>
|
||||
lovable.app
|
||||
lovableproject.com
|
||||
lovable.run
|
||||
lovable.sh
|
||||
|
||||
// LubMAN UMCS Sp. z o.o : https://lubman.pl/
|
||||
// Submitted by Ireneusz Maliszewski <ireneusz.maliszewski@lubman.pl>
|
||||
|
|
@ -15618,7 +15688,6 @@ pro.typeform.com
|
|||
|
||||
// Uberspace : https://uberspace.de
|
||||
// Submitted by Moritz Werner <mwerner@jonaspasche.com>
|
||||
*.uberspace.de
|
||||
uber.space
|
||||
|
||||
// UDR Limited : http://www.udr.hk.com
|
||||
|
|
@ -15760,10 +15829,11 @@ box.ca
|
|||
// Submitted by Kidd Hustle <kiddhustle@wiardweb.com>
|
||||
pages.wiardweb.com
|
||||
|
||||
// Wikimedia Labs : https://wikitech.wikimedia.org
|
||||
// Submitted by Arturo Borrero Gonzalez <aborrero@wikimedia.org>
|
||||
// Wikimedia Foundation : https://wikitech.wikimedia.org
|
||||
// Submitted by Timo Tijhof <noc@wikimedia.org>
|
||||
toolforge.org
|
||||
wmcloud.org
|
||||
beta.wmcloud.org
|
||||
wmflabs.org
|
||||
|
||||
// William Harrison : https://wharrison.com.au
|
||||
|
|
|
|||
|
|
@ -107,6 +107,10 @@ static const char kEntrust_net_Premium_2048_Secure_Server_CAFingerprint[] =
|
|||
static const char kFacebookBackupFingerprint[] =
|
||||
"q4PO2G2cbkZhZ82+JgmRUyGMoAeozA+BSXVXQWB8XWQ=";
|
||||
|
||||
/* GOOGLE_PIN_AE1_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_AE1_GoogleTrustServicesFingerprint[] =
|
||||
"IGnQeIPjbxiR+JteR7AkUXl7pV+19BT4x3o15saZBNE=";
|
||||
|
||||
/* GOOGLE_PIN_DigiCertECCSecureServerCA */
|
||||
static const char kGOOGLE_PIN_DigiCertECCSecureServerCAFingerprint[] =
|
||||
"PZXN3lRAy+8tBKk2Ox6F7jIlnzr2Yzmwqc3JnyfXoCw=";
|
||||
|
|
@ -115,6 +119,46 @@ static const char kGOOGLE_PIN_DigiCertECCSecureServerCAFingerprint[] =
|
|||
static const char kGOOGLE_PIN_SymantecClass3EVG3Fingerprint[] =
|
||||
"gMxWOrX4PMQesK9qFNbYBxjBfjUvlkn/vN1n+L9lE5E=";
|
||||
|
||||
/* GOOGLE_PIN_WE1_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WE1_GoogleTrustServicesFingerprint[] =
|
||||
"kIdp6NNEd8wsugYyyIYFsi1ylMCED3hZbSR8ZFsa/A4=";
|
||||
|
||||
/* GOOGLE_PIN_WE2_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WE2_GoogleTrustServicesFingerprint[] =
|
||||
"vh78KSg1Ry4NaqGDV10w/cTb9VH3BQUZoCWNa93W/EY=";
|
||||
|
||||
/* GOOGLE_PIN_WE3_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WE3_GoogleTrustServicesFingerprint[] =
|
||||
"daBIAnKdRIX3bqM85I6We7wBUh0DPycNFBMvYkXGX2Q=";
|
||||
|
||||
/* GOOGLE_PIN_WE4_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WE4_GoogleTrustServicesFingerprint[] =
|
||||
"O5TQDB/wa4SkRjBrQL2Aq9CG317H9MDDgpTVcrpJDa4=";
|
||||
|
||||
/* GOOGLE_PIN_WE5_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WE5_GoogleTrustServicesFingerprint[] =
|
||||
"8yZxLgpR8EbO8ANRrWKAzIzz9XdlSUgtYPkXKYUlGSY=";
|
||||
|
||||
/* GOOGLE_PIN_WR1_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WR1_GoogleTrustServicesFingerprint[] =
|
||||
"yDu9og255NN5GEf+Bwa9rTrqFQ0EydZ0r1FCh9TdAW4=";
|
||||
|
||||
/* GOOGLE_PIN_WR2_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WR2_GoogleTrustServicesFingerprint[] =
|
||||
"YPtHaftLw6/0vnc2BnNKGF54xiCA28WFcccjkA4ypCM=";
|
||||
|
||||
/* GOOGLE_PIN_WR3_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WR3_GoogleTrustServicesFingerprint[] =
|
||||
"OdSlmQD9NWJh4EbcOHBxkhygPwNSwA9Q91eounfbcoE=";
|
||||
|
||||
/* GOOGLE_PIN_WR4_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WR4_GoogleTrustServicesFingerprint[] =
|
||||
"hZe1OerqJ1Pnq6F4N0gVjjpHqm037Ndf4aLLVpZZdAE=";
|
||||
|
||||
/* GOOGLE_PIN_WR5_GoogleTrustServices */
|
||||
static const char kGOOGLE_PIN_WR5_GoogleTrustServicesFingerprint[] =
|
||||
"/RoweMyX8j8/fAaaeAIwzhWXigZDrh/J2BBJaHrjX90=";
|
||||
|
||||
/* GTS Root R1 */
|
||||
static const char kGTS_Root_R1Fingerprint[] =
|
||||
"hxqRlPTu1bMS/0DITB1SSu0vd4u/8l8TjPgfaAp63Gc=";
|
||||
|
|
@ -277,12 +321,23 @@ static const StaticFingerprints kPinset_test = {
|
|||
};
|
||||
|
||||
static const char* const kPinset_google_Data[] = {
|
||||
kGOOGLE_PIN_WR5_GoogleTrustServicesFingerprint,
|
||||
kGOOGLE_PIN_WE5_GoogleTrustServicesFingerprint,
|
||||
kGlobalSign_ECC_Root_CA___R4Fingerprint,
|
||||
kGOOGLE_PIN_AE1_GoogleTrustServicesFingerprint,
|
||||
kGoogleBackup2048Fingerprint,
|
||||
kGOOGLE_PIN_WE4_GoogleTrustServicesFingerprint,
|
||||
kGOOGLE_PIN_WR3_GoogleTrustServicesFingerprint,
|
||||
kGTS_Root_R3Fingerprint,
|
||||
kGTS_Root_R2Fingerprint,
|
||||
kGOOGLE_PIN_WR2_GoogleTrustServicesFingerprint,
|
||||
kGOOGLE_PIN_WE3_GoogleTrustServicesFingerprint,
|
||||
kGOOGLE_PIN_WR4_GoogleTrustServicesFingerprint,
|
||||
kGTS_Root_R1Fingerprint,
|
||||
kGOOGLE_PIN_WE1_GoogleTrustServicesFingerprint,
|
||||
kGTS_Root_R4Fingerprint,
|
||||
kGOOGLE_PIN_WE2_GoogleTrustServicesFingerprint,
|
||||
kGOOGLE_PIN_WR1_GoogleTrustServicesFingerprint,
|
||||
};
|
||||
static const StaticFingerprints kPinset_google = {
|
||||
sizeof(kPinset_google_Data) / sizeof(const char*),
|
||||
|
|
@ -736,4 +791,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
|||
|
||||
static const int32_t kUnknownId = -1;
|
||||
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1760959658369000);
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1763379032408000);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -2,219 +2,291 @@
|
|||
"data": [
|
||||
{
|
||||
"name": "Edge",
|
||||
"schema": 1751069103311,
|
||||
"schema": 1754784303244,
|
||||
"status": "planned",
|
||||
"version": "142",
|
||||
"browserid": "edge",
|
||||
"id": "7d644a9d-4167-44d0-b58a-165beedf43e5",
|
||||
"last_modified": 1754902587193
|
||||
},
|
||||
{
|
||||
"name": "Edge",
|
||||
"schema": 1754784303188,
|
||||
"status": "nightly",
|
||||
"version": "141",
|
||||
"browserid": "edge",
|
||||
"id": "1276177b-8e2c-4677-9839-c39cdb272d9f",
|
||||
"last_modified": 1751266171953
|
||||
"last_modified": 1754902587190
|
||||
},
|
||||
{
|
||||
"name": "Edge",
|
||||
"schema": 1751069103253,
|
||||
"status": "nightly",
|
||||
"schema": 1754784303129,
|
||||
"status": "beta",
|
||||
"version": "140",
|
||||
"browserid": "edge",
|
||||
"id": "2f6ded78-f30e-4477-9175-c32d040041c7",
|
||||
"last_modified": 1751266171946
|
||||
"last_modified": 1754902587186
|
||||
},
|
||||
{
|
||||
"name": "Edge",
|
||||
"schema": 1751069103200,
|
||||
"status": "beta",
|
||||
"schema": 1754784303073,
|
||||
"status": "current",
|
||||
"version": "139",
|
||||
"browserid": "edge",
|
||||
"id": "c652a9a5-3a1c-4272-8a52-68dd4e9ae1b4",
|
||||
"last_modified": 1751266171943
|
||||
},
|
||||
{
|
||||
"name": "Edge",
|
||||
"schema": 1751069103137,
|
||||
"status": "current",
|
||||
"version": "138",
|
||||
"browserid": "edge",
|
||||
"id": "c9aa191e-ce6c-4f14-89b3-67877f64bc92",
|
||||
"last_modified": 1751266171940
|
||||
"last_modified": 1754902587183
|
||||
},
|
||||
{
|
||||
"name": "WebView Android",
|
||||
"schema": 1750809904832,
|
||||
"schema": 1754438705864,
|
||||
"status": "planned",
|
||||
"version": "142",
|
||||
"browserid": "webview_android",
|
||||
"id": "d1917e2a-614b-4b6c-8bb4-683132e1fd64",
|
||||
"last_modified": 1754642891103
|
||||
},
|
||||
{
|
||||
"name": "Chrome",
|
||||
"schema": 1754438705284,
|
||||
"status": "planned",
|
||||
"version": "142",
|
||||
"browserid": "chrome",
|
||||
"id": "80f03197-a17b-4032-ba47-0e81e04ffce2",
|
||||
"last_modified": 1754642891100
|
||||
},
|
||||
{
|
||||
"name": "Chrome Android",
|
||||
"schema": 1754438705561,
|
||||
"status": "planned",
|
||||
"version": "142",
|
||||
"browserid": "chrome_android",
|
||||
"id": "0b5cf19b-6816-4a96-aeb8-de25f776b025",
|
||||
"last_modified": 1754642891097
|
||||
},
|
||||
{
|
||||
"name": "IceCat for Android",
|
||||
"schema": 1753574703585,
|
||||
"status": "planned",
|
||||
"version": "144",
|
||||
"browserid": "icecat_android",
|
||||
"id": "6e20e090-5795-4f55-bfe3-b202305eedee",
|
||||
"last_modified": 1754642891094
|
||||
},
|
||||
{
|
||||
"name": "IceCat",
|
||||
"schema": 1753574703283,
|
||||
"status": "planned",
|
||||
"version": "144",
|
||||
"browserid": "icecat",
|
||||
"id": "759d8212-1e45-4ccc-ac65-75ecfc260633",
|
||||
"last_modified": 1754642891090
|
||||
},
|
||||
{
|
||||
"name": "Safari on iOS",
|
||||
"schema": 1751673903549,
|
||||
"status": "beta",
|
||||
"version": "18.6",
|
||||
"browserid": "safari_ios",
|
||||
"id": "3993a35c-f47d-4ad1-9e8c-5127b8390c0c",
|
||||
"last_modified": 1754642891087
|
||||
},
|
||||
{
|
||||
"name": "Safari",
|
||||
"schema": 1751673903488,
|
||||
"status": "beta",
|
||||
"version": "18.6",
|
||||
"browserid": "safari",
|
||||
"id": "9c6309f8-1f2e-41fd-8728-3d8211dac298",
|
||||
"last_modified": 1754642891084
|
||||
},
|
||||
{
|
||||
"name": "WebView on iOS",
|
||||
"schema": 1751673903634,
|
||||
"status": "beta",
|
||||
"version": "18.6",
|
||||
"browserid": "webview_ios",
|
||||
"id": "3fc4e708-1847-41de-a640-45cabbf41d5a",
|
||||
"last_modified": 1754642891081
|
||||
},
|
||||
{
|
||||
"name": "Opera",
|
||||
"schema": 1751673903426,
|
||||
"status": "nightly",
|
||||
"version": "122",
|
||||
"browserid": "opera",
|
||||
"id": "25658331-55b6-4129-8e2d-c59ca95df3f7",
|
||||
"last_modified": 1754642891078
|
||||
},
|
||||
{
|
||||
"name": "WebView Android",
|
||||
"schema": 1754438705809,
|
||||
"status": "nightly",
|
||||
"version": "141",
|
||||
"browserid": "webview_android",
|
||||
"id": "63e64099-e7d1-4b27-9a5d-ae173595a61f",
|
||||
"last_modified": 1750835286636
|
||||
"last_modified": 1754642891075
|
||||
},
|
||||
{
|
||||
"name": "IceCat for Android",
|
||||
"schema": 1750809904539,
|
||||
"status": "planned",
|
||||
"schema": 1753574703522,
|
||||
"status": "nightly",
|
||||
"version": "143",
|
||||
"browserid": "icecat_android",
|
||||
"id": "1202f99c-4161-4075-a5f5-01dcb1734bff",
|
||||
"last_modified": 1750835286632
|
||||
"last_modified": 1754642891072
|
||||
},
|
||||
{
|
||||
"name": "IceCat",
|
||||
"schema": 1750809904149,
|
||||
"status": "planned",
|
||||
"schema": 1753574703224,
|
||||
"status": "nightly",
|
||||
"version": "143",
|
||||
"browserid": "icecat",
|
||||
"id": "8c64af12-6643-49a8-bf55-f3941779399c",
|
||||
"last_modified": 1750835286629
|
||||
"last_modified": 1754642891069
|
||||
},
|
||||
{
|
||||
"name": "Chrome Android",
|
||||
"schema": 1750809903778,
|
||||
"status": "planned",
|
||||
"schema": 1754438705505,
|
||||
"status": "nightly",
|
||||
"version": "141",
|
||||
"browserid": "chrome_android",
|
||||
"id": "1fccf4ba-14fb-4641-b9c9-5b02bbb528a5",
|
||||
"last_modified": 1750835286626
|
||||
"last_modified": 1754642891066
|
||||
},
|
||||
{
|
||||
"name": "Chrome",
|
||||
"schema": 1750809903446,
|
||||
"status": "planned",
|
||||
"schema": 1754438705225,
|
||||
"status": "nightly",
|
||||
"version": "141",
|
||||
"browserid": "chrome",
|
||||
"id": "7cdd8e9c-d3fc-47b3-bfcc-f63ddfccb7fc",
|
||||
"last_modified": 1750835286622
|
||||
"last_modified": 1754642891063
|
||||
},
|
||||
{
|
||||
"name": "IceCat for Android",
|
||||
"schema": 1750809904473,
|
||||
"status": "nightly",
|
||||
"schema": 1753574703462,
|
||||
"status": "beta",
|
||||
"version": "142",
|
||||
"browserid": "icecat_android",
|
||||
"id": "78d60df0-cb7e-4949-9917-ed8fdc503382",
|
||||
"last_modified": 1750835286600
|
||||
"last_modified": 1754642891060
|
||||
},
|
||||
{
|
||||
"name": "Chrome Android",
|
||||
"schema": 1750809903707,
|
||||
"status": "nightly",
|
||||
"schema": 1754438705449,
|
||||
"status": "beta",
|
||||
"version": "140",
|
||||
"browserid": "chrome_android",
|
||||
"id": "794cc316-0785-4962-847c-f31ac285f847",
|
||||
"last_modified": 1750835286596
|
||||
"last_modified": 1754642891057
|
||||
},
|
||||
{
|
||||
"name": "WebView Android",
|
||||
"schema": 1750809904778,
|
||||
"status": "nightly",
|
||||
"schema": 1754438705751,
|
||||
"status": "beta",
|
||||
"version": "140",
|
||||
"browserid": "webview_android",
|
||||
"id": "7bbb223e-ada4-4f53-babb-b93a73927329",
|
||||
"last_modified": 1750835286593
|
||||
"last_modified": 1754642891054
|
||||
},
|
||||
{
|
||||
"name": "Chrome",
|
||||
"schema": 1750809903376,
|
||||
"status": "nightly",
|
||||
"schema": 1754438705163,
|
||||
"status": "beta",
|
||||
"version": "140",
|
||||
"browserid": "chrome",
|
||||
"id": "60172b96-7711-458b-9b0e-2dd55255bf05",
|
||||
"last_modified": 1750835286590
|
||||
"last_modified": 1754642891051
|
||||
},
|
||||
{
|
||||
"name": "IceCat",
|
||||
"schema": 1750809904090,
|
||||
"status": "nightly",
|
||||
"schema": 1753574703165,
|
||||
"status": "beta",
|
||||
"version": "142",
|
||||
"browserid": "icecat",
|
||||
"id": "a5323a0e-8201-4c4b-a5fd-ff89431cc98b",
|
||||
"last_modified": 1750835286587
|
||||
"last_modified": 1754642891048
|
||||
},
|
||||
{
|
||||
"name": "WebView Android",
|
||||
"schema": 1750809904709,
|
||||
"status": "beta",
|
||||
"schema": 1754438705695,
|
||||
"status": "current",
|
||||
"version": "139",
|
||||
"browserid": "webview_android",
|
||||
"id": "fdb5c123-2409-4e93-bc2c-e9d482c3eabf",
|
||||
"last_modified": 1750835286583
|
||||
"last_modified": 1754642891044
|
||||
},
|
||||
{
|
||||
"name": "Chrome",
|
||||
"schema": 1750809903304,
|
||||
"status": "beta",
|
||||
"schema": 1754438705100,
|
||||
"status": "current",
|
||||
"version": "139",
|
||||
"browserid": "chrome",
|
||||
"id": "6ffd90da-55f8-4759-8049-2b3696d34d42",
|
||||
"last_modified": 1750835286580
|
||||
"last_modified": 1754642891042
|
||||
},
|
||||
{
|
||||
"name": "IceCat",
|
||||
"schema": 1750809904038,
|
||||
"status": "beta",
|
||||
"schema": 1753574703101,
|
||||
"status": "current",
|
||||
"version": "141",
|
||||
"browserid": "icecat",
|
||||
"id": "e6ac475d-0038-451e-b875-e71a26f26c1f",
|
||||
"last_modified": 1750835286577
|
||||
"last_modified": 1754642891039
|
||||
},
|
||||
{
|
||||
"name": "Chrome Android",
|
||||
"schema": 1750809903644,
|
||||
"status": "beta",
|
||||
"schema": 1754438705392,
|
||||
"status": "current",
|
||||
"version": "139",
|
||||
"browserid": "chrome_android",
|
||||
"id": "6dc0e4cb-560c-46ad-996f-2e65cd9a78bf",
|
||||
"last_modified": 1750835286574
|
||||
"last_modified": 1754642891036
|
||||
},
|
||||
{
|
||||
"name": "IceCat for Android",
|
||||
"schema": 1750809904418,
|
||||
"status": "beta",
|
||||
"schema": 1753574703400,
|
||||
"status": "current",
|
||||
"version": "141",
|
||||
"browserid": "icecat_android",
|
||||
"id": "e2a35b06-f07e-417d-98c6-f9eafdff546b",
|
||||
"last_modified": 1750835286571
|
||||
"last_modified": 1754642891033
|
||||
},
|
||||
{
|
||||
"name": "WebView Android",
|
||||
"schema": 1750809904659,
|
||||
"status": "current",
|
||||
"version": "138",
|
||||
"browserid": "webview_android",
|
||||
"id": "ca0f7fe1-7bf2-4154-ab36-d759e08d0276",
|
||||
"last_modified": 1750835286568
|
||||
"name": "Opera",
|
||||
"schema": 1751673903361,
|
||||
"status": "beta",
|
||||
"version": "121",
|
||||
"browserid": "opera",
|
||||
"id": "f6db5e03-957c-4d2b-a74b-d537ea26be3f",
|
||||
"last_modified": 1754642891027
|
||||
},
|
||||
{
|
||||
"name": "Chrome Android",
|
||||
"schema": 1750809903588,
|
||||
"name": "Opera",
|
||||
"schema": 1751673903293,
|
||||
"status": "current",
|
||||
"version": "138",
|
||||
"browserid": "chrome_android",
|
||||
"id": "485be132-bf7e-4586-af0f-8e731365b8c8",
|
||||
"last_modified": 1750835286565
|
||||
"version": "120",
|
||||
"browserid": "opera",
|
||||
"id": "24abaee4-eb98-4eee-8b27-209a3dedac71",
|
||||
"last_modified": 1754642891024
|
||||
},
|
||||
{
|
||||
"name": "IceCat for Android",
|
||||
"schema": 1750809904356,
|
||||
"status": "current",
|
||||
"schema": 1753574703338,
|
||||
"status": "esr",
|
||||
"version": "140",
|
||||
"browserid": "icecat_android",
|
||||
"id": "29671e58-5233-4969-8f3a-b3208e3b8f17",
|
||||
"last_modified": 1750835286562
|
||||
"last_modified": 1754642891016
|
||||
},
|
||||
{
|
||||
"name": "IceCat",
|
||||
"schema": 1750809903978,
|
||||
"status": "current",
|
||||
"schema": 1753496133120,
|
||||
"status": "esr",
|
||||
"version": "140",
|
||||
"browserid": "icecat",
|
||||
"id": "9949da65-f6be-41f4-9c9d-73bc27b4d2a0",
|
||||
"last_modified": 1750835286558
|
||||
},
|
||||
{
|
||||
"name": "Chrome",
|
||||
"schema": 1750809903230,
|
||||
"status": "current",
|
||||
"version": "138",
|
||||
"browserid": "chrome",
|
||||
"id": "ddeb0464-e5e9-4b00-816f-211de9a4e818",
|
||||
"last_modified": 1750835286555
|
||||
"last_modified": 1754642891013
|
||||
},
|
||||
{
|
||||
"name": "Opera Android",
|
||||
|
|
@ -297,33 +369,6 @@
|
|||
"id": "1f2765cf-a177-4249-b5f9-fdf271727bb7",
|
||||
"last_modified": 1748854785996
|
||||
},
|
||||
{
|
||||
"name": "Opera",
|
||||
"schema": 1747440304496,
|
||||
"status": "nightly",
|
||||
"version": "121",
|
||||
"browserid": "opera",
|
||||
"id": "f6db5e03-957c-4d2b-a74b-d537ea26be3f",
|
||||
"last_modified": 1747642859915
|
||||
},
|
||||
{
|
||||
"name": "Opera",
|
||||
"schema": 1747440304433,
|
||||
"status": "beta",
|
||||
"version": "120",
|
||||
"browserid": "opera",
|
||||
"id": "24abaee4-eb98-4eee-8b27-209a3dedac71",
|
||||
"last_modified": 1747642859900
|
||||
},
|
||||
{
|
||||
"name": "Opera",
|
||||
"schema": 1747440304368,
|
||||
"status": "current",
|
||||
"version": "119",
|
||||
"browserid": "opera",
|
||||
"id": "06763118-b650-4937-8d4c-55de017faa53",
|
||||
"last_modified": 1747642859896
|
||||
},
|
||||
{
|
||||
"name": "Node.js",
|
||||
"schema": 1747181110151,
|
||||
|
|
@ -352,5 +397,5 @@
|
|||
"last_modified": 1665656484764
|
||||
}
|
||||
],
|
||||
"timestamp": 1751266171953
|
||||
"timestamp": 1754902587193
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4287,7 +4287,7 @@
|
|||
},
|
||||
"id": "04e99a38-13ee-47d8-8aa4-64482b3dea99",
|
||||
"identifier": "ddg",
|
||||
"last_modified": 1756,
|
||||
"last_modified": 1757,
|
||||
"recordType": "engine",
|
||||
"schema": 1718698362015,
|
||||
"variants": [
|
||||
|
|
@ -4301,7 +4301,7 @@
|
|||
{
|
||||
"globalDefault": "ddg",
|
||||
"id": "f3891684-2348-4e7a-9765-0c5d2d0ab1b9",
|
||||
"last_modified": 1755,
|
||||
"last_modified": 1756,
|
||||
"recordType": "defaultEngines",
|
||||
"schema": 1702901837584,
|
||||
"specificDefaults": []
|
||||
|
|
|
|||
|
|
@ -361,7 +361,7 @@
|
|||
"id": "wikipedia@search.mozilla.org"
|
||||
},
|
||||
"id": "3f3beb1d-e32e-40a4-b6ed-56741803e1d8",
|
||||
"last_modified": 1756
|
||||
"last_modified": 1757
|
||||
},
|
||||
{
|
||||
"params": {
|
||||
|
|
@ -404,8 +404,8 @@
|
|||
"id": "ddg@search.mozilla.org"
|
||||
},
|
||||
"id": "c0b26c0e-63e6-4235-b2ce-5f16b6a8bf87",
|
||||
"last_modified": 1755
|
||||
"last_modified": 1756
|
||||
}
|
||||
],
|
||||
"timestamp": 1756
|
||||
"timestamp": 1757
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,869 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"name": "model.enja.intgemm.alphas.bin",
|
||||
"schema": 1753211565728,
|
||||
"toLang": "ja",
|
||||
"version": "2.2",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "8b0206fb47ecad88870f0a43cf907213fe354b14b746d4d53a8c5221aba2c34a",
|
||||
"size": 43849787,
|
||||
"filename": "model.enja.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/b20957ca-7001-4bb1-9609-3a88c22456fc.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "cbb59785-6779-46f0-8c6a-211d6da17712",
|
||||
"last_modified": 1753213325774
|
||||
},
|
||||
{
|
||||
"name": "trgvocab.enja.spm",
|
||||
"schema": 1753211592191,
|
||||
"toLang": "ja",
|
||||
"version": "2.2",
|
||||
"fileType": "trgvocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "3b3d9f8f3a034d98d0a476f1794fa79c01e4e98a967ceb6777a66ba2d03ec1e1",
|
||||
"size": 827144,
|
||||
"filename": "trgvocab.enja.spm",
|
||||
"location": "main-workspace/translations-models/950ee1e7-7829-4822-a0dd-89137cb56914.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "b7458df3-693c-4e2a-a747-6a95d7c1ee16",
|
||||
"last_modified": 1753213325766
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enru.s2t.bin",
|
||||
"schema": 1753211506309,
|
||||
"toLang": "ru",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "4d91839726b960e70b6d05c53d0cffd16262832b1c0e1ea99d66f412dcc6a239",
|
||||
"size": 2774540,
|
||||
"filename": "lex.50.50.enru.s2t.bin",
|
||||
"location": "main-workspace/translations-models/e88cc45c-0e0b-45d3-a957-8d1ba3a9b5aa.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "e2879167-64d6-4e4f-b42b-470ce160614c",
|
||||
"last_modified": 1753213325759
|
||||
},
|
||||
{
|
||||
"name": "vocab.zhen.spm",
|
||||
"schema": 1753211664028,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "zh-Hans",
|
||||
"attachment": {
|
||||
"hash": "dff594318ab7d8b7b60b844ab98ebe6b932ae8045fab15235404c787715965b3",
|
||||
"size": 1359697,
|
||||
"filename": "vocab.zhen.spm",
|
||||
"location": "main-workspace/translations-models/17ff5d42-6d4c-42f8-ad3c-b8042b5bafa7.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "1a4f9d3a-5bd4-4f95-b131-2498f7881479",
|
||||
"last_modified": 1753213325754
|
||||
},
|
||||
{
|
||||
"name": "model.zhen.intgemm.alphas.bin",
|
||||
"schema": 1753211657032,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "zh-Hans",
|
||||
"attachment": {
|
||||
"hash": "5cd149601802fc8a18124a1c1306144dbbedc058630c4ddb2d53aa76fa9c7c06",
|
||||
"size": 43977787,
|
||||
"filename": "model.zhen.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/715efbde-c974-4696-981a-83c0c5f82ad5.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "059aad51-2c2a-47da-8a41-6087f4c0af04",
|
||||
"last_modified": 1753213325749
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.zhen.s2t.bin",
|
||||
"schema": 1753211645124,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "zh-Hans",
|
||||
"attachment": {
|
||||
"hash": "8524dd4c93ffd7f0ae7be32f77a7c14fea7cdbbebe34ea6ad0ec368d5ddd8b13",
|
||||
"size": 9219192,
|
||||
"filename": "lex.50.50.zhen.s2t.bin",
|
||||
"location": "main-workspace/translations-models/ae5f53d2-59ec-4aad-944d-999e50d6a65c.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "0e4e57bd-95b4-4c37-b24a-1b38ba634b8b",
|
||||
"last_modified": 1753213325742
|
||||
},
|
||||
{
|
||||
"name": "model.koen.intgemm.alphas.bin",
|
||||
"schema": 1753211638260,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "ko",
|
||||
"attachment": {
|
||||
"hash": "7cb30cbc0a86e242084756445268a2346136771c92b884d9b4ebb077f67d5507",
|
||||
"size": 43977787,
|
||||
"filename": "model.koen.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/bf6d1f85-351f-4934-934d-8a7b0d118270.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "56981ef1-5afa-407c-8233-c0e7ceb3a812",
|
||||
"last_modified": 1753213325735
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.koen.s2t.bin",
|
||||
"schema": 1753211631975,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "ko",
|
||||
"attachment": {
|
||||
"hash": "b26291f063ce216a74239275f0485534a38111203e59d42a2a56ba62d6eeb196",
|
||||
"size": 8617516,
|
||||
"filename": "lex.50.50.koen.s2t.bin",
|
||||
"location": "main-workspace/translations-models/66a51334-41dd-4f08-bd22-6016035d6904.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "94dcbfef-23bb-4f45-b7e3-eee4a850e354",
|
||||
"last_modified": 1753213325729
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.jaen.s2t.bin",
|
||||
"schema": 1753205001167,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "ja",
|
||||
"attachment": {
|
||||
"hash": "525f412f0d210536c2933c78ae395fa0bf2b5ee6cc5dda61ebc2e79410ebaee4",
|
||||
"size": 9348172,
|
||||
"filename": "lex.50.50.jaen.s2t.bin",
|
||||
"location": "main-workspace/translations-models/4e6b3270-8a2f-491d-b717-f99749328622.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "6e05f7f9-b06f-4ae1-90f7-ef56d965ed67",
|
||||
"last_modified": 1753213325723
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enzh.s2t.bin",
|
||||
"schema": 1753211556573,
|
||||
"toLang": "zh-Hans",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "4a5e5827788060f1d718a8132b69440929387514a045796e9b77f935db68c055",
|
||||
"size": 6506248,
|
||||
"filename": "lex.50.50.enzh.s2t.bin",
|
||||
"location": "main-workspace/translations-models/28707551-d7ae-4825-ae68-fc21de670332.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "c2e36c44-0f0f-4d8e-88e5-9e0eb42ea2dc",
|
||||
"last_modified": 1753213325717
|
||||
},
|
||||
{
|
||||
"name": "vocab.koen.spm",
|
||||
"schema": 1753211609773,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "ko",
|
||||
"attachment": {
|
||||
"hash": "1c72b740ab793cdc3a8f16913dd6b4e806c77421077dd2d85edeb7be38418598",
|
||||
"size": 1410063,
|
||||
"filename": "vocab.koen.spm",
|
||||
"location": "main-workspace/translations-models/409950da-3a7f-4a0a-bd3e-9f655d7150eb.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "ef9bd20f-c906-45ca-b84f-4bf45f1bb97d",
|
||||
"last_modified": 1753213325711
|
||||
},
|
||||
{
|
||||
"name": "trgvocab.enzh.spm",
|
||||
"schema": 1753211534451,
|
||||
"toLang": "zh-Hans",
|
||||
"version": "2.1",
|
||||
"fileType": "trgvocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "aded6993c36e440284d11cec3f6b8aef9c0e43188a772d80be342a713adf223d",
|
||||
"size": 772004,
|
||||
"filename": "trgvocab.enzh.spm",
|
||||
"location": "main-workspace/translations-models/fea238ef-fb47-4aaf-b463-5d314a306ee6.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "cc0610c4-48c9-420f-981a-8b3c3b24a2bd",
|
||||
"last_modified": 1753213325705
|
||||
},
|
||||
{
|
||||
"name": "vocab.enru.spm",
|
||||
"schema": 1753211527241,
|
||||
"toLang": "ru",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "56ee63e14e8cb926c394242adc3ed7cc602644c3d33058cff2ce2959d52a6258",
|
||||
"size": 904455,
|
||||
"filename": "vocab.enru.spm",
|
||||
"location": "main-workspace/translations-models/568807dd-9620-4c4d-a0b5-d651d64c0ab0.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "07333d13-cbf8-4960-970a-49513b3722ca",
|
||||
"last_modified": 1753213325699
|
||||
},
|
||||
{
|
||||
"name": "trgvocab.enko.spm",
|
||||
"schema": 1753211482971,
|
||||
"toLang": "ko",
|
||||
"version": "2.1",
|
||||
"fileType": "trgvocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "2ece21b28dd7022d36127d17423a74dabf544787dfc1cf614f7b565f93a4a1d3",
|
||||
"size": 815353,
|
||||
"filename": "trgvocab.enko.spm",
|
||||
"location": "main-workspace/translations-models/bef3bc40-bc91-4739-981d-c82a9d22fd31.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "33260652-9a66-4129-9a51-7ad408cddc36",
|
||||
"last_modified": 1753213325692
|
||||
},
|
||||
{
|
||||
"name": "model.enzh.intgemm.alphas.bin",
|
||||
"schema": 1753211550167,
|
||||
"toLang": "zh-Hans",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "f102e513798f5c5e61621e58b08d1c8aa535189a47befdef5613d5b058983fed",
|
||||
"size": 43849787,
|
||||
"filename": "model.enzh.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/9b99b1f6-34fc-4515-8a32-41d4f1dca3dd.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "6c87da7b-57e7-4762-bf1b-ed5166f06299",
|
||||
"last_modified": 1753213325686
|
||||
},
|
||||
{
|
||||
"name": "model.jaen.intgemm.alphas.bin",
|
||||
"schema": 1753211460110,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "ja",
|
||||
"attachment": {
|
||||
"hash": "3a603e20bfe1be86071913f9e23ab5129075bc0a8490151020ac4821e4f17302",
|
||||
"size": 43977787,
|
||||
"filename": "model.jaen.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/2b066368-11b5-4cee-92e8-e6156b334f80.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "01236519-4cdc-46e9-aee3-e3dc20cac500",
|
||||
"last_modified": 1753213325681
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enko.s2t.bin",
|
||||
"schema": 1753211491920,
|
||||
"toLang": "ko",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "96efba97d4bb93ab362e5569bea0f115184d2f68d63b67305ee663c18e32fbeb",
|
||||
"size": 6449612,
|
||||
"filename": "lex.50.50.enko.s2t.bin",
|
||||
"location": "main-workspace/translations-models/85738400-bea4-4284-ba4c-e47e465f5331.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "2ebbdb35-6fb7-48db-9d21-6897f1c5d5e5",
|
||||
"last_modified": 1753213325676
|
||||
},
|
||||
{
|
||||
"name": "srcvocab.enko.spm",
|
||||
"schema": 1753211499145,
|
||||
"toLang": "ko",
|
||||
"version": "2.1",
|
||||
"fileType": "srcvocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "8d4e3141868efd410eb86c2b60d41aa6bc6b46e4c4b2c0b85e3792493c69d802",
|
||||
"size": 791280,
|
||||
"filename": "srcvocab.enko.spm",
|
||||
"location": "main-workspace/translations-models/3d9dfbda-cd4f-445e-a69b-19e21e071385.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "646071ce-a130-43d1-a623-7212a16c8697",
|
||||
"last_modified": 1753213325670
|
||||
},
|
||||
{
|
||||
"name": "vocab.jaen.spm",
|
||||
"schema": 1753211437624,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "ja",
|
||||
"attachment": {
|
||||
"hash": "5cb217758bae05877bb3f0c2f612e4e7c1e4cb03c10db11f4a47098d7ae62919",
|
||||
"size": 1443222,
|
||||
"filename": "vocab.jaen.spm",
|
||||
"location": "main-workspace/translations-models/6f4898e3-ebaa-4a79-a1af-93a4f65b96fa.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "10d90b91-c666-4e5c-8664-743e35c5af4a",
|
||||
"last_modified": 1753213325665
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enja.s2t.bin",
|
||||
"schema": 1753211602555,
|
||||
"toLang": "ja",
|
||||
"version": "2.2",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "bb7983e62705813d26a081e7a6c13abd280b51ec75966b4587b434b0dac02938",
|
||||
"size": 6513960,
|
||||
"filename": "lex.50.50.enja.s2t.bin",
|
||||
"location": "main-workspace/translations-models/5784a05d-a89b-4464-a403-e11c1490a0be.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "d50bac3a-97df-4df6-96a5-452afa209bc0",
|
||||
"last_modified": 1753213325660
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enuk.s2t.bin",
|
||||
"schema": 1753204613648,
|
||||
"toLang": "uk",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "4182e7aea8404d506bba68715b2bf3397132f087785a7c3210e48d48a8c63a1f",
|
||||
"size": 2828252,
|
||||
"filename": "lex.50.50.enuk.s2t.bin",
|
||||
"location": "main-workspace/translations-models/07e03b31-7c99-4a17-86fb-2e299d2b3c56.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "fa20158c-d206-4ae3-8246-7aa4f42d84b3",
|
||||
"last_modified": 1753213325655
|
||||
},
|
||||
{
|
||||
"name": "model.slen.intgemm.alphas.bin",
|
||||
"schema": 1753204617671,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "sl",
|
||||
"attachment": {
|
||||
"hash": "9d15df58b60048366de4f7b6e727157ffdaea3a0fd1c1759ce232b057e2f991c",
|
||||
"size": 31561787,
|
||||
"filename": "model.slen.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/19d1f495-2dda-4dc1-829a-b463f38624ba.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "2fa8bb2b-c325-47ba-b306-65fc1e5ac291",
|
||||
"last_modified": 1753213325650
|
||||
},
|
||||
{
|
||||
"name": "model.ensl.intgemm.alphas.bin",
|
||||
"schema": 1753204589102,
|
||||
"toLang": "sl",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "a34fc5cc2f52733f64e37f8512cf1ddc4723c08a7a1a59d01fc2b6e641fc2280",
|
||||
"size": 31561787,
|
||||
"filename": "model.ensl.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/610871e1-4cd4-4100-a755-a95b2d0a9d77.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "9646e90e-3c0d-48b8-a37d-5ff8aae76a45",
|
||||
"last_modified": 1753213325645
|
||||
},
|
||||
{
|
||||
"name": "vocab.slen.spm",
|
||||
"schema": 1753204632094,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "sl",
|
||||
"attachment": {
|
||||
"hash": "54ed331d3435e2bdc5b02462180197b77631f466fc0e61897b5469449857dd2b",
|
||||
"size": 803078,
|
||||
"filename": "vocab.slen.spm",
|
||||
"location": "main-workspace/translations-models/696fd002-1716-48cc-adb8-b9dc5f08c2a7.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "574fb6b7-6092-4c3d-85fe-1703ea1d3868",
|
||||
"last_modified": 1753213325640
|
||||
},
|
||||
{
|
||||
"name": "model.enuk.intgemm.alphas.bin",
|
||||
"schema": 1753204601707,
|
||||
"toLang": "uk",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "f1058f92d0b3abedc978b91ce8928f9ee6403d7ea168b41a087f79d02a4b2866",
|
||||
"size": 31561787,
|
||||
"filename": "model.enuk.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/bf335732-bb60-47ce-953d-e6163f6c25a1.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "6087bcb3-b557-4f27-9c4a-217ed639697a",
|
||||
"last_modified": 1753213325635
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.slen.s2t.bin",
|
||||
"schema": 1753204629021,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "sl",
|
||||
"attachment": {
|
||||
"hash": "f456a49e437ccb4a547e4b51480e29c8b83f11e26a3713af35b078cd4dd255cc",
|
||||
"size": 4320484,
|
||||
"filename": "lex.50.50.slen.s2t.bin",
|
||||
"location": "main-workspace/translations-models/fdcff854-c547-423d-bc5a-147e1da06ad0.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "f3bfd6dc-c3b4-47c2-b8c4-f5f906ab4eef",
|
||||
"last_modified": 1753213325631
|
||||
},
|
||||
{
|
||||
"name": "model.ensk.intgemm.alphas.bin",
|
||||
"schema": 1753204569078,
|
||||
"toLang": "sk",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "e33af359fd58c8958104b1b74b3ea302800ccba2f125c1629e09d7f9dd9a3804",
|
||||
"size": 31561787,
|
||||
"filename": "model.ensk.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/12877c48-8898-4f14-bae8-ef4cf35a54c8.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "55546204-532a-4e2d-891b-ad6de8d279fd",
|
||||
"last_modified": 1753213325626
|
||||
},
|
||||
{
|
||||
"name": "model.enlv.intgemm.alphas.bin",
|
||||
"schema": 1753204552914,
|
||||
"toLang": "lv",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "715f9f444dffa0b39e71955c28bffd30afa4cc8300a192ec8fabb766cc5ba11d",
|
||||
"size": 31561787,
|
||||
"filename": "model.enlv.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/658c63b1-d9b4-45dc-b250-47f9c33c8455.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "a3b27e51-540a-4dec-af3b-b42f50368d0f",
|
||||
"last_modified": 1753213325621
|
||||
},
|
||||
{
|
||||
"name": "srcvocab.enja.spm",
|
||||
"schema": 1753211583049,
|
||||
"toLang": "ja",
|
||||
"version": "2.2",
|
||||
"fileType": "srcvocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "970c98d174fc01e0339fbabbf45af36a4be3f26f819ec1a5ea1189f71e091889",
|
||||
"size": 796275,
|
||||
"filename": "srcvocab.enja.spm",
|
||||
"location": "main-workspace/translations-models/227a484a-609b-45ec-8574-d36843817307.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "b5065835-5414-400f-81cb-43b9c56a0e20",
|
||||
"last_modified": 1753213325616
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.ensk.s2t.bin",
|
||||
"schema": 1753204579510,
|
||||
"toLang": "sk",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "f3d1aec4ee5246d6a6ee5dc7ed4c6b18f6071c7baca69bf1344aef675b95515d",
|
||||
"size": 3356348,
|
||||
"filename": "lex.50.50.ensk.s2t.bin",
|
||||
"location": "main-workspace/translations-models/f6894c37-5ceb-4f57-82f3-9fa8ece22eaa.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "27b35f92-25e4-4895-a939-f7bd4b2d2aa4",
|
||||
"last_modified": 1753213325612
|
||||
},
|
||||
{
|
||||
"name": "vocab.ensk.spm",
|
||||
"schema": 1753204566860,
|
||||
"toLang": "sk",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "cfa6a9e601d74686b117f041eb1ad9de94c34219110b67367d570a9e27026a46",
|
||||
"size": 808888,
|
||||
"filename": "vocab.ensk.spm",
|
||||
"location": "main-workspace/translations-models/eabd7f47-1ca3-45a4-b04d-45b9a3e05ec0.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "54a6c2c5-4c01-430c-9a4b-2f469dbbd8ae",
|
||||
"last_modified": 1753213325607
|
||||
},
|
||||
{
|
||||
"name": "vocab.enlv.spm",
|
||||
"schema": 1753204550692,
|
||||
"toLang": "lv",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "63146b49ce46ba1283b6956e38efdd4899d1a409cad9d2b6a06cbd4e32ca0808",
|
||||
"size": 816287,
|
||||
"filename": "vocab.enlv.spm",
|
||||
"location": "main-workspace/translations-models/da291a80-d6f6-4511-a5ed-1c78f27e2650.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "27023e7a-1315-4aba-b7b3-867609496a31",
|
||||
"last_modified": 1753213325602
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enlt.s2t.bin",
|
||||
"schema": 1753204543969,
|
||||
"toLang": "lt",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "5972c834218c7beea241dc8fe77c2e577a8d8b4eb3d3dc286d10ad890c64d374",
|
||||
"size": 3421640,
|
||||
"filename": "lex.50.50.enlt.s2t.bin",
|
||||
"location": "main-workspace/translations-models/20a0b36e-ed89-40fd-be51-b1badb85100c.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "64a0ba75-e37c-4315-aa1e-0b0686780c25",
|
||||
"last_modified": 1753213325596
|
||||
},
|
||||
{
|
||||
"name": "model.enru.intgemm.alphas.bin",
|
||||
"schema": 1753211518391,
|
||||
"toLang": "ru",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "184cb5cda528eeefc0f75f5d0035d787b71d74af135e3c5608d01ae02ecfb920",
|
||||
"size": 31561787,
|
||||
"filename": "model.enru.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/db6b48bb-b563-4ea1-bbf4-b033fa9cc482.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "46d9d154-ed71-4d5b-9c21-ca59dd300a1a",
|
||||
"last_modified": 1753213325588
|
||||
},
|
||||
{
|
||||
"name": "model.enko.intgemm.alphas.bin",
|
||||
"schema": 1753211467034,
|
||||
"toLang": "ko",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "ffe5ef2ce3f2e944055e35310bab186f6a70d533a0ee4394adf716a0e383afbb",
|
||||
"size": 43849787,
|
||||
"filename": "model.enko.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/29e88605-8576-4a8e-be94-a5ebb4a738f7.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "d399133d-a4b4-4247-a259-2a9df4bcdbe3",
|
||||
"last_modified": 1753213325582
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.ensl.s2t.bin",
|
||||
"schema": 1753204586281,
|
||||
"toLang": "sl",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "2190798297bc12505f917189defcf451ab5bd2e815bc05df244dc291dc2ae63b",
|
||||
"size": 3428300,
|
||||
"filename": "lex.50.50.ensl.s2t.bin",
|
||||
"location": "main-workspace/translations-models/2f02539c-c552-41ba-8ccc-a2c10372226f.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "c1d14c9a-bf4c-4e7d-b6d1-e4b622d3cdb5",
|
||||
"last_modified": 1753213325577
|
||||
},
|
||||
{
|
||||
"name": "vocab.enlt.spm",
|
||||
"schema": 1753204529766,
|
||||
"toLang": "lt",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "5d38fe70ff4a50368af756b715b69519c9ee064c27cbceeabc90d4e1a10f25a8",
|
||||
"size": 806827,
|
||||
"filename": "vocab.enlt.spm",
|
||||
"location": "main-workspace/translations-models/72ab709b-d7ed-432e-9104-4424bbd2da2e.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "4c35178b-068d-4863-aecb-4effefb4647b",
|
||||
"last_modified": 1753213325571
|
||||
},
|
||||
{
|
||||
"name": "model.enlt.intgemm.alphas.bin",
|
||||
"schema": 1753204532048,
|
||||
"toLang": "lt",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "d27c676d9d761c2abfffec83956e32b2923f3f745b56acdbd84c49d888cdc94e",
|
||||
"size": 31561787,
|
||||
"filename": "model.enlt.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/15cfcaf2-881d-4b3e-94de-7b508c001c7e.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "178f5f05-704a-4b3b-8e94-9e80c52dde58",
|
||||
"last_modified": 1753213325566
|
||||
},
|
||||
{
|
||||
"name": "vocab.ensl.spm",
|
||||
"schema": 1753204583741,
|
||||
"toLang": "sl",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "7cd295383c46824c05a05db76b543d3595f2516537dd22b77190a45c8919224d",
|
||||
"size": 803212,
|
||||
"filename": "vocab.ensl.spm",
|
||||
"location": "main-workspace/translations-models/9e2de2b5-cfd8-4a7a-bb2b-59300824e168.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "9b73c465-1a58-4db3-9e8e-ee7686e53031",
|
||||
"last_modified": 1753213325560
|
||||
},
|
||||
{
|
||||
"name": "vocab.enar.spm",
|
||||
"schema": 1753204444430,
|
||||
"toLang": "ar",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "8d93c54aa5e2044c416ec680b5ff9af0227bd698521666e8b1a1ea1b041fbae8",
|
||||
"size": 863591,
|
||||
"filename": "vocab.enar.spm",
|
||||
"location": "main-workspace/translations-models/3c13220b-aaec-496e-be94-7570bc024dde.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "e02d0e7b-c59f-4b76-9cda-ed3892515d9f",
|
||||
"last_modified": 1753213325555
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enar.s2t.bin",
|
||||
"schema": 1753204441894,
|
||||
"toLang": "ar",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "ac28575c27b29839009c67ccadb3968c2bf15638dc077bbfe6b042b4e5506a6c",
|
||||
"size": 3129264,
|
||||
"filename": "lex.50.50.enar.s2t.bin",
|
||||
"location": "main-workspace/translations-models/e1a4ed2d-8545-4954-9514-b8507cdeff5d.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "e99936bf-07f0-43b0-9d3d-516c729ca4ee",
|
||||
"last_modified": 1753213325550
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.aren.s2t.bin",
|
||||
"schema": 1753204514752,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "ar",
|
||||
"attachment": {
|
||||
"hash": "8aef44303621870863d20a27f3606470dc4677214374ad6ba56c2abe07b4f428",
|
||||
"size": 4624316,
|
||||
"filename": "lex.50.50.aren.s2t.bin",
|
||||
"location": "main-workspace/translations-models/9b8e8ed5-9689-4152-84e2-553cc579d430.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "c3c43f07-4973-466b-97a8-8e905544f3e1",
|
||||
"last_modified": 1753213325544
|
||||
},
|
||||
{
|
||||
"name": "model.enar.intgemm.alphas.bin",
|
||||
"schema": 1753204432989,
|
||||
"toLang": "ar",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "988c78be70a37ae8a63eb8e8ecbef5fc6854522a6f3275a08e2c693e261f8518",
|
||||
"size": 42992955,
|
||||
"filename": "model.enar.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/2700fa89-002c-4528-90da-73cbe8ece263.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "c1b184e9-5b26-41e8-ad34-995c4d7b6def",
|
||||
"last_modified": 1753213325538
|
||||
},
|
||||
{
|
||||
"name": "srcvocab.enzh.spm",
|
||||
"schema": 1753211544153,
|
||||
"toLang": "zh-Hans",
|
||||
"version": "2.1",
|
||||
"fileType": "srcvocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "bd9b65504acc6d9726dd281f7defc2adb7c2c22d0688fe2f84697de25197c8c5",
|
||||
"size": 806952,
|
||||
"filename": "srcvocab.enzh.spm",
|
||||
"location": "main-workspace/translations-models/7aab6b99-b731-44ea-bcf6-11a0f1aebe1f.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "env.appinfo.OS == 'Android' ",
|
||||
"id": "eee6d45e-e77d-43e6-8e9a-29c6f6b2d3b1",
|
||||
"last_modified": 1753213325533
|
||||
},
|
||||
{
|
||||
"name": "vocab.aren.spm",
|
||||
"schema": 1753204525767,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "ar",
|
||||
"attachment": {
|
||||
"hash": "51b4ee3f828d10015464523d0b4f5a6c086b0b2a9bde716a581001cf6c260366",
|
||||
"size": 860035,
|
||||
"filename": "vocab.aren.spm",
|
||||
"location": "main-workspace/translations-models/9b389db0-f36e-4f16-b656-cff2da811859.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "8d453e68-a440-4ba8-b2cf-86ea47c239ad",
|
||||
"last_modified": 1753213325527
|
||||
},
|
||||
{
|
||||
"name": "vocab.enuk.spm",
|
||||
"schema": 1753204611132,
|
||||
"toLang": "uk",
|
||||
"version": "2.1",
|
||||
"fileType": "vocab",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "330fe40da410c7a41fcbf6aa98a2e619600b235b278c186c0f04c8ad1c2fbb7d",
|
||||
"size": 885736,
|
||||
"filename": "vocab.enuk.spm",
|
||||
"location": "main-workspace/translations-models/2b2ccdbe-d875-4a54-a29d-5ffc70a605e3.spm",
|
||||
"mimetype": "text/plain"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "735e7eab-5a76-4ea0-ba48-5ded95aec40e",
|
||||
"last_modified": 1753213325522
|
||||
},
|
||||
{
|
||||
"name": "model.aren.intgemm.alphas.bin",
|
||||
"schema": 1753204517897,
|
||||
"toLang": "en",
|
||||
"version": "2.1",
|
||||
"fileType": "model",
|
||||
"fromLang": "ar",
|
||||
"attachment": {
|
||||
"hash": "f3888b9db780da4d681aaf987adfcd6ea54f82dd14ed2594b2b7ac7d253b6290",
|
||||
"size": 42992955,
|
||||
"filename": "model.aren.intgemm.alphas.bin",
|
||||
"location": "main-workspace/translations-models/42883a95-7d08-4bb8-bc96-8fdac506cf50.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "87beaff4-d067-436c-b5c9-1ee24485ab1e",
|
||||
"last_modified": 1753213325517
|
||||
},
|
||||
{
|
||||
"name": "lex.50.50.enlv.s2t.bin",
|
||||
"schema": 1753204548363,
|
||||
"toLang": "lv",
|
||||
"version": "2.1",
|
||||
"fileType": "lex",
|
||||
"fromLang": "en",
|
||||
"attachment": {
|
||||
"hash": "d54b9bc278558444c5c25df5ae7339b73eee55cf79705f19fec672b6d55d959c",
|
||||
"size": 3359096,
|
||||
"filename": "lex.50.50.enlv.s2t.bin",
|
||||
"location": "main-workspace/translations-models/a53e1550-53ca-42ed-9c43-a9938ff1d16c.bin",
|
||||
"mimetype": "application/octet-stream"
|
||||
},
|
||||
"filter_expression": "",
|
||||
"id": "5aec2ff1-58c7-4a73-8e73-5a2ebdb9196b",
|
||||
"last_modified": 1753213325511
|
||||
},
|
||||
{
|
||||
"name": "vocab.enru.spm",
|
||||
"schema": 1752267138363,
|
||||
|
|
@ -8149,5 +9013,5 @@
|
|||
"last_modified": 1701186751412
|
||||
}
|
||||
],
|
||||
"timestamp": 1752267318690
|
||||
"timestamp": 1753213325774
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,15 @@
|
|||
{
|
||||
"changes": [
|
||||
{
|
||||
"last_modified": 1752529408928,
|
||||
"bucket": "security-state",
|
||||
"collection": "onecrl"
|
||||
},
|
||||
{
|
||||
"last_modified": 1754146622506,
|
||||
"bucket": "security-state",
|
||||
"collection": "intermediates"
|
||||
},
|
||||
{
|
||||
"last_modified": 1604940558744,
|
||||
"bucket": "blocklists",
|
||||
|
|
@ -11,104 +21,34 @@
|
|||
"collection": "gfx"
|
||||
},
|
||||
{
|
||||
"last_modified": 1752258970807,
|
||||
"last_modified": 1754678174835,
|
||||
"bucket": "blocklists",
|
||||
"collection": "addons-bloomfilters"
|
||||
},
|
||||
{
|
||||
"last_modified": 1752159422751,
|
||||
"bucket": "security-state",
|
||||
"collection": "intermediates"
|
||||
},
|
||||
{
|
||||
"last_modified": 1747787134572,
|
||||
"bucket": "security-state",
|
||||
"collection": "onecrl"
|
||||
},
|
||||
{
|
||||
"last_modified": 1752267318690,
|
||||
"bucket": "main",
|
||||
"collection": "translations-models"
|
||||
},
|
||||
{
|
||||
"last_modified": 1743683182607,
|
||||
"bucket": "main",
|
||||
"collection": "password-rules"
|
||||
},
|
||||
{
|
||||
"last_modified": 1751266171953,
|
||||
"bucket": "main",
|
||||
"collection": "devtools-compatibility-browsers"
|
||||
},
|
||||
{
|
||||
"last_modified": 0,
|
||||
"bucket": "main",
|
||||
"collection": "search-config-overrides-v2"
|
||||
},
|
||||
{
|
||||
"last_modified": 1725526980846,
|
||||
"bucket": "main",
|
||||
"collection": "cookie-banner-rules-list"
|
||||
},
|
||||
{
|
||||
"last_modified": 1749069444811,
|
||||
"bucket": "main",
|
||||
"collection": "translations-wasm"
|
||||
},
|
||||
{
|
||||
"last_modified": 1753213325774,
|
||||
"bucket": "main",
|
||||
"collection": "translations-models"
|
||||
},
|
||||
{
|
||||
"last_modified": 1738775297137,
|
||||
"bucket": "main",
|
||||
"collection": "websites-with-shared-credential-backends"
|
||||
},
|
||||
{
|
||||
"last_modified": 1674595048726,
|
||||
"bucket": "main",
|
||||
"collection": "password-recipes"
|
||||
},
|
||||
{
|
||||
"last_modified": 0,
|
||||
"bucket": "main",
|
||||
"collection": "search-config-overrides"
|
||||
"collection": "search-config-overrides-v2"
|
||||
},
|
||||
{
|
||||
"last_modified": 1633983928590,
|
||||
"last_modified": 1754902587193,
|
||||
"bucket": "main",
|
||||
"collection": "top-sites"
|
||||
},
|
||||
{
|
||||
"last_modified": 1751891587705,
|
||||
"bucket": "main",
|
||||
"collection": "search-telemetry-v2"
|
||||
},
|
||||
{
|
||||
"last_modified": 1564511755134,
|
||||
"bucket": "main",
|
||||
"collection": "anti-tracking-url-decoration"
|
||||
},
|
||||
{
|
||||
"last_modified": 1544035467383,
|
||||
"bucket": "main",
|
||||
"collection": "sites-classification"
|
||||
},
|
||||
{
|
||||
"last_modified": 1653469171354,
|
||||
"bucket": "main",
|
||||
"collection": "devtools-devices"
|
||||
},
|
||||
{
|
||||
"last_modified": 1746562822691,
|
||||
"bucket": "main",
|
||||
"collection": "search-config-icons"
|
||||
},
|
||||
{
|
||||
"last_modified": 1745933974542,
|
||||
"bucket": "main",
|
||||
"collection": "search-config-v2"
|
||||
},
|
||||
{
|
||||
"last_modified": 1756,
|
||||
"bucket": "main",
|
||||
"collection": "search-config"
|
||||
"collection": "devtools-compatibility-browsers"
|
||||
},
|
||||
{
|
||||
"last_modified": 1739471652383,
|
||||
|
|
@ -116,9 +56,44 @@
|
|||
"collection": "url-classifier-skip-urls"
|
||||
},
|
||||
{
|
||||
"last_modified": 1744749743529,
|
||||
"last_modified": 1746562822691,
|
||||
"bucket": "main",
|
||||
"collection": "search-default-override-allowlist"
|
||||
"collection": "search-config-icons"
|
||||
},
|
||||
{
|
||||
"last_modified": 1653469171354,
|
||||
"bucket": "main",
|
||||
"collection": "devtools-devices"
|
||||
},
|
||||
{
|
||||
"last_modified": 1544035467383,
|
||||
"bucket": "main",
|
||||
"collection": "sites-classification"
|
||||
},
|
||||
{
|
||||
"last_modified": 1754676198505,
|
||||
"bucket": "main",
|
||||
"collection": "search-telemetry-v2"
|
||||
},
|
||||
{
|
||||
"last_modified": 1674595048726,
|
||||
"bucket": "main",
|
||||
"collection": "password-recipes"
|
||||
},
|
||||
{
|
||||
"last_modified": 1743683182607,
|
||||
"bucket": "main",
|
||||
"collection": "password-rules"
|
||||
},
|
||||
{
|
||||
"last_modified": 0,
|
||||
"bucket": "main",
|
||||
"collection": "search-config-overrides"
|
||||
},
|
||||
{
|
||||
"last_modified": 1673270322227,
|
||||
"bucket": "main",
|
||||
"collection": "language-dictionaries"
|
||||
},
|
||||
{
|
||||
"last_modified": 1605801189258,
|
||||
|
|
@ -126,10 +101,35 @@
|
|||
"collection": "hijack-blocklists"
|
||||
},
|
||||
{
|
||||
"last_modified": 1673270322227,
|
||||
"last_modified": 1633983928590,
|
||||
"bucket": "main",
|
||||
"collection": "language-dictionaries"
|
||||
"collection": "top-sites"
|
||||
},
|
||||
{
|
||||
"last_modified": 1744749743529,
|
||||
"bucket": "main",
|
||||
"collection": "search-default-override-allowlist"
|
||||
},
|
||||
{
|
||||
"last_modified": 1725526980846,
|
||||
"bucket": "main",
|
||||
"collection": "cookie-banner-rules-list"
|
||||
},
|
||||
{
|
||||
"last_modified": 1564511755134,
|
||||
"bucket": "main",
|
||||
"collection": "anti-tracking-url-decoration"
|
||||
},
|
||||
{
|
||||
"last_modified": 1757,
|
||||
"bucket": "main",
|
||||
"collection": "search-config"
|
||||
},
|
||||
{
|
||||
"last_modified": 1745933974542,
|
||||
"bucket": "main",
|
||||
"collection": "search-config-v2"
|
||||
}
|
||||
],
|
||||
"timestamp": 1755
|
||||
"timestamp": 1756
|
||||
}
|
||||
|
|
@ -1,5 +1,434 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"schema": 1754143058430,
|
||||
"derHash": "U7akmfzGwEoYpWtXRYRIQHLkowbge03XLTGxBUU6EwA=",
|
||||
"attachment": {
|
||||
"hash": "84020e586cedfb535e555997770004dfc4c57c5dd8074e0c9db3c46670a1dc20",
|
||||
"size": 2012,
|
||||
"filename": "k286j7bdZQfoDSoxYpOwRVRlptTGYpKHZ9v5bTKFt4g=.pem",
|
||||
"location": "security-state-staging/intermediates/634cc7a6-833b-42ec-9d78-0b0a4ff626dc.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "dd533c45-cd3a-4670-93f5-ef95c50c8bc6",
|
||||
"last_modified": 1754146622506
|
||||
},
|
||||
{
|
||||
"schema": 1754099861406,
|
||||
"derHash": "ufEt6fG3a4amsoddbYPWXvMqdEWe6JpuGhVAp0aMi78=",
|
||||
"attachment": {
|
||||
"hash": "26a87683158f7e8ea7939204a9b1d8b370d474dedc645a114aca352b164f8320",
|
||||
"size": 2272,
|
||||
"filename": "j5TO3ZpcFovhPQUR9n6SZk6Jh2IkzvEvf865Gmf45vA=.pem",
|
||||
"location": "security-state-staging/intermediates/990b1290-3366-44e4-ad82-4407c38b723b.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "0e4a080e-9a01-4aeb-aa76-2fc838c87a33",
|
||||
"last_modified": 1754103422506
|
||||
},
|
||||
{
|
||||
"schema": 1754099860443,
|
||||
"derHash": "LOBPqMMLEN6LzKGSjYTsapdVAkCO7yKDIeNGosYuk3k=",
|
||||
"attachment": {
|
||||
"hash": "70609e041c197839ab5bd79ac74fa0757e71fa56bcdb397ae6118f94654d323e",
|
||||
"size": 2219,
|
||||
"filename": "mpw6bmt-V2JbqI0bfKaJvhvLQBSDYqzsIJMgVG2bEN8=.pem",
|
||||
"location": "security-state-staging/intermediates/006d8121-76a0-4863-bc61-0a2016338207.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "96b7240f-1700-49fd-948d-e84c73668808",
|
||||
"last_modified": 1754103422503
|
||||
},
|
||||
{
|
||||
"schema": 1754099862405,
|
||||
"derHash": "o/Rd5hMGLhbC+sZlphHENBvhDaHnBi2uUPpA+MZTNe0=",
|
||||
"attachment": {
|
||||
"hash": "6aed5faaa992731f08d8c45643ad9ee82806e96886db033748d60745d1604fda",
|
||||
"size": 2219,
|
||||
"filename": "RqqfkgIv6nRPPWsjw8twJ2PsbbYW1i2kQcbDvlkOZo4=.pem",
|
||||
"location": "security-state-staging/intermediates/98e95549-9176-4374-a7c5-7b8f1cd3daca.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "8962b756-2964-4875-8106-aedf7379ad07",
|
||||
"last_modified": 1754103422500
|
||||
},
|
||||
{
|
||||
"schema": 1754099858460,
|
||||
"derHash": "/SN721ny2nM54hT1AHURxlrSlcJiPUXxvCXGVztq8r0=",
|
||||
"attachment": {
|
||||
"hash": "02b32cc5ee65ef83837d70b406311b596f3c8cf49160c9abd32eee77cfea74fd",
|
||||
"size": 2219,
|
||||
"filename": "jEvv7RqNEuK1Ez_1mSdBRq8MenpqMWVOYS23EsUhbUc=.pem",
|
||||
"location": "security-state-staging/intermediates/c582cc96-3a66-42e8-af95-5549ae64e31f.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "fef513f9-4afb-48c8-a729-60dcf8bc65aa",
|
||||
"last_modified": 1754103422497
|
||||
},
|
||||
{
|
||||
"schema": 1754099859478,
|
||||
"derHash": "48c3vFI8BG8I84+JQQ59B7QVhOMbc0H/nUs78Y8td5U=",
|
||||
"attachment": {
|
||||
"hash": "1067964de7db98c936e990971da0770573448506c18a30f641aea209652554de",
|
||||
"size": 1691,
|
||||
"filename": "zKTraMmGIuImSHm2FWLq0TlVnJH-a2qzCB6xljFCaFU=.pem",
|
||||
"location": "security-state-staging/intermediates/a278faa3-a546-4ea6-a1c0-073cb83d9688.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "de9eabe8-807a-4c81-a4cc-5bc55fa377d0",
|
||||
"last_modified": 1754103422494
|
||||
},
|
||||
{
|
||||
"schema": 1753711059024,
|
||||
"derHash": "Tl6MNoXBFfAbNjJTRF/dIx6qWYRB1Gr6aWrNuI1J81w=",
|
||||
"attachment": {
|
||||
"hash": "0edba18621ded61e39adc270f90f469b47be795b47d5660f93a634285ded63df",
|
||||
"size": 1609,
|
||||
"filename": "4cqqtU7dtaR9-WoYzYtDv0zpNfP0Gvo-osbvuHgquhk=.pem",
|
||||
"location": "security-state-staging/intermediates/dfba7d0c-683e-4f46-a22d-a82ef2fb8996.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "9fd607b9-2c24-4dbe-b3b8-56f984cc6573",
|
||||
"last_modified": 1753714622204
|
||||
},
|
||||
{
|
||||
"schema": 1752760680174,
|
||||
"derHash": "q1LdL70K2cQuj3Y5lsCpQjmVJQQ0vsrtEx+UfnfXVoQ=",
|
||||
"attachment": {
|
||||
"hash": "c68b9be4f98f5f8e8043fcb6537fb45e296a8ed70619ac7eac2f5cda72b2c180",
|
||||
"size": 1187,
|
||||
"filename": "2QdsCtI22J6baJM808LUaaIimOTG5iB2FiAXhZXBsas=.pem",
|
||||
"location": "security-state-staging/intermediates/e71acbb7-b367-4bb0-8c58-218de49beef9.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "c9b80dd1-b065-446e-a290-ba6bf633a502",
|
||||
"last_modified": 1752764222637
|
||||
},
|
||||
{
|
||||
"schema": 1752760681200,
|
||||
"derHash": "lOvpWKJEOrUPjhjFm/ftZOZx6NH9bZbBvOv2ZHOemvc=",
|
||||
"attachment": {
|
||||
"hash": "e2b3bb95c17f3b09a9793e09e675093ef6da1ce66a4b93580aab0d3555986e79",
|
||||
"size": 1199,
|
||||
"filename": "HUFA8EIGLPxJ-VLFc4CZBni9LOi_EHSnqGALoHvfCPw=.pem",
|
||||
"location": "security-state-staging/intermediates/54bb6dcd-6060-48b9-88f7-7aa7d0a2c260.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "75ab866e-fc4c-4aa8-97b5-b7351d3d2e3f",
|
||||
"last_modified": 1752764222634
|
||||
},
|
||||
{
|
||||
"schema": 1752760676960,
|
||||
"derHash": "MSmn8WgOQ5/J3cvDU5ED+hfLcjZGGlMQNR3kQtBURrs=",
|
||||
"attachment": {
|
||||
"hash": "95002e51eed314248c79576099036cf25699f161f2a311371a34d7954e4407ad",
|
||||
"size": 1967,
|
||||
"filename": "0Mp8JBbeI6oRi2Kc1ayz8HLTP095svvHsz9VCigK6Mw=.pem",
|
||||
"location": "security-state-staging/intermediates/6adedb40-d314-4a54-8a62-b7a815d7d20d.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "1e24f00d-a580-4ebd-8d1a-118619ba5a9e",
|
||||
"last_modified": 1752764222631
|
||||
},
|
||||
{
|
||||
"schema": 1752760673868,
|
||||
"derHash": "/t6XnA0W+f8cWoJN7bCvJOGvjs8gInSJAmsyEIzJxvM=",
|
||||
"attachment": {
|
||||
"hash": "d21fb8e894c54127389fc54aaf9cfb74a4e3cfcdf6a7ba242c1bdb1a0c0c7e75",
|
||||
"size": 1171,
|
||||
"filename": "uIav9YspnXZn8u7Mta9WDs_suO0tjRiYoHaRddfhfe0=.pem",
|
||||
"location": "security-state-staging/intermediates/1858499b-73a3-4a8d-a084-9e016f639556.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "804f1aaf-a3a6-453f-8f12-3b912dc6cea3",
|
||||
"last_modified": 1752764222628
|
||||
},
|
||||
{
|
||||
"schema": 1752760678989,
|
||||
"derHash": "MVXwXbO6io4llzPOsVuFKpVsG0DyuU8h2Z6CubWmAhQ=",
|
||||
"attachment": {
|
||||
"hash": "c595569432f085bc5f08e92391ceed191e2b42709a690c1a08a098690e1437af",
|
||||
"size": 1646,
|
||||
"filename": "VqrndAYHqC8xqqq2rZ9ZciWIFe0WTcT1JlZ50HUz47M=.pem",
|
||||
"location": "security-state-staging/intermediates/dde97d92-c593-4cbe-b360-e7198a31518d.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "96468461-4289-4019-a564-8c116679db6d",
|
||||
"last_modified": 1752764222625
|
||||
},
|
||||
{
|
||||
"schema": 1752760675984,
|
||||
"derHash": "6RJN61196oOlqgdmb4uty+iY/NhpmQJpmzBqCodoOlw=",
|
||||
"attachment": {
|
||||
"hash": "8b918c56f73f41f5360984369850f773adb0c3896f699c2694f9c2073833542f",
|
||||
"size": 1983,
|
||||
"filename": "rRjBabUiCbitmn4Ma_-8W6gvKCjRY6sR1E0bv-DG2VU=.pem",
|
||||
"location": "security-state-staging/intermediates/3411e244-6b9e-46ce-93eb-4a3c7d09edba.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "261c16a3-c870-4d77-8c90-cdf4f042361a",
|
||||
"last_modified": 1752764222623
|
||||
},
|
||||
{
|
||||
"schema": 1752760666848,
|
||||
"derHash": "0bK64/9uEwfo39KB7vW6/BOqe2KWyI2HjOQhlLy/Om0=",
|
||||
"attachment": {
|
||||
"hash": "ac03b8a1bbc8719b5c572a8a3c527a955aadb750eec7c4d411ce58b357854221",
|
||||
"size": 1642,
|
||||
"filename": "fDUaTTzEu6_uBNi_33HvJhAzI9ilrEkNP5uUJ-NszYA=.pem",
|
||||
"location": "security-state-staging/intermediates/7221b9c5-9dc7-45fe-aa13-3679ef02fbcb.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "74c6d600-e3bc-4eb4-b491-c539d0c67efe",
|
||||
"last_modified": 1752764222620
|
||||
},
|
||||
{
|
||||
"schema": 1752760674954,
|
||||
"derHash": "628hG+P6mJG/QdaKH23lupK1OImgFJOX6cIil5Wo4PQ=",
|
||||
"attachment": {
|
||||
"hash": "9c4a6406c12b2c02031c1090ae985173e44b0f6991f2279438377d7a36470b8b",
|
||||
"size": 1171,
|
||||
"filename": "PkI-NmL0n-hgGV4rdkVk3yC6iPg8hhHTH11f1OQ102w=.pem",
|
||||
"location": "security-state-staging/intermediates/0d4aadb8-bf4e-4f5c-9342-0cb81c6440ca.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "d179dc51-ee39-473d-b979-f63391a7640a",
|
||||
"last_modified": 1752764222617
|
||||
},
|
||||
{
|
||||
"schema": 1752760671911,
|
||||
"derHash": "Wvt2BMPoP07JssMYNTRXUmqUpL0HayrWrnvrZOOHw9A=",
|
||||
"attachment": {
|
||||
"hash": "e7e3481580b673c89b9ce8dfde48744636bfbaf920036c136054909db91a3cb4",
|
||||
"size": 2333,
|
||||
"filename": "4naYYOxK0libr7tOuTJ1hCUYCe7-Z5yGm0myjCV3lF8=.pem",
|
||||
"location": "security-state-staging/intermediates/6bab3dba-a226-4d20-bde0-7221c0da4ab9.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "a492d922-3814-48fa-a687-b49df70c0501",
|
||||
"last_modified": 1752764222614
|
||||
},
|
||||
{
|
||||
"schema": 1752760669864,
|
||||
"derHash": "TmuV5xQlWK7Czq/MBZMyFJjImRBzZvCompFvpVvajC4=",
|
||||
"attachment": {
|
||||
"hash": "d6d06a5b8466ab20097868aa2d755239dc0ef02eb4d5338deba917bc3dba1968",
|
||||
"size": 2353,
|
||||
"filename": "DS4YDt78h__kz9TVAfb1h7QTx0PQHfVkxGU9iOqRZOE=.pem",
|
||||
"location": "security-state-staging/intermediates/5e4d3d3d-d606-4e01-be69-eb1880392d11.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "5cff7997-667b-4def-bfdb-a404ec5c1230",
|
||||
"last_modified": 1752764222611
|
||||
},
|
||||
{
|
||||
"schema": 1752760678047,
|
||||
"derHash": "/1Z9IbbZKHalKLTtzg6F4LnIkkbtJjoTGi1j7KvxZVQ=",
|
||||
"attachment": {
|
||||
"hash": "cf9eca655df695fd7f31d77be9de78c73f47b8be55131d986f33db587c20d613",
|
||||
"size": 1971,
|
||||
"filename": "f9LomjcKAL0vZKqCUKip-BTGCeTXDaurwBzGQ2c-OTI=.pem",
|
||||
"location": "security-state-staging/intermediates/d44b7b67-cc46-4a06-b5bd-5072dd029ac4.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "ff318be5-173c-485f-8692-7d7cbcc523d3",
|
||||
"last_modified": 1752764222608
|
||||
},
|
||||
{
|
||||
"schema": 1752760670823,
|
||||
"derHash": "GykoAhpLic8PVyokNukU4lQSrVjt7iIebHw8VDcXmiY=",
|
||||
"attachment": {
|
||||
"hash": "a9981b4f25027873930aa36e8c5ff6bb8d6d0e8edd5e1e42cc9390b1f745f35e",
|
||||
"size": 1650,
|
||||
"filename": "Hq6EZq6muujuRFpgCLUYYYWHkzDZb2BQnuAVTByTPMM=.pem",
|
||||
"location": "security-state-staging/intermediates/bf4bfb69-9add-4a6e-a3a7-bba7234f9b80.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "68f3e25d-dc2e-44a1-a71e-5cc1389b4770",
|
||||
"last_modified": 1752764222606
|
||||
},
|
||||
{
|
||||
"schema": 1752760663521,
|
||||
"derHash": "2h7jsUouVivsKtXlQ1SOC7WDKW45+t9pqKE/MPCsTcU=",
|
||||
"attachment": {
|
||||
"hash": "f8e35c16a45c994ea4be4f02780f8bdb790267b9d793869745379b1882a92666",
|
||||
"size": 2328,
|
||||
"filename": "nX2tH06F09cc0s6EeJ2K7sLATppziUDuD46OawW5_OM=.pem",
|
||||
"location": "security-state-staging/intermediates/48ac94bc-4251-4cbe-9edf-7ce60684e7a8.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "eb034811-f1c4-473e-a61a-16f23195f5a5",
|
||||
"last_modified": 1752764222603
|
||||
},
|
||||
{
|
||||
"schema": 1752760664871,
|
||||
"derHash": "MJP6u7lj0/hyndyjSXL3PlYCB6BtSiYcRUVtOoWR4zI=",
|
||||
"attachment": {
|
||||
"hash": "c62a664b3d1b0a2b0ee284228c12a5922f2f9e4c9ce24928b167b8364097e74c",
|
||||
"size": 1967,
|
||||
"filename": "cGUSI-t_SEDkOrs6GJTD6AZtEmQuTHyqcwjGA3UhfaQ=.pem",
|
||||
"location": "security-state-staging/intermediates/ceb71a64-07b3-499e-b70c-9e599176ba1e.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "8a329d97-82f8-4e92-a45a-14e8ea772ce0",
|
||||
"last_modified": 1752764222600
|
||||
},
|
||||
{
|
||||
"schema": 1752760665883,
|
||||
"derHash": "9RZfxiRFM2HjoTHGrZCJOo3kAViSGpTopLRFOY7t9uA=",
|
||||
"attachment": {
|
||||
"hash": "50f9cd7a25c8e7361bd2b7f312a5f2b775ca7650e871624ffc4f5cd598451d6e",
|
||||
"size": 1642,
|
||||
"filename": "biIcgxJw7HM1TbdJxioNUtXUL4DAGP3v1bLiXlQJxHw=.pem",
|
||||
"location": "security-state-staging/intermediates/7032a9bd-07f1-4179-a0e1-a95d35cc88ce.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "5a61d52c-6f54-4f2b-978a-4ed56861dc67",
|
||||
"last_modified": 1752764222597
|
||||
},
|
||||
{
|
||||
"schema": 1752760667820,
|
||||
"derHash": "mj/HCPYeA2r4jOyy6Np5o7IfCSz8Fywx3VqT3PoVJI8=",
|
||||
"attachment": {
|
||||
"hash": "b0a816aab578e29cc6a438ab8ddba3aaa31c9c7ae702524845fac34185c2e3e6",
|
||||
"size": 1658,
|
||||
"filename": "QE_kU-M2VhKXMWcFBLhANOOxqfgtPAiyVRQze5nsA1Q=.pem",
|
||||
"location": "security-state-staging/intermediates/87255277-a0b6-47cc-bfc2-54dbc542dade.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "2fba131b-4694-4c22-99f2-c19b354a9174",
|
||||
"last_modified": 1752764222594
|
||||
},
|
||||
{
|
||||
"schema": 1752760668907,
|
||||
"derHash": "O5dGyrTMkyeU3nbqSdmrbvWYwPE+2uGLmWwP8A2oh3s=",
|
||||
"attachment": {
|
||||
"hash": "ad52b20c079cdb90e018bba38afb1ad0d24606df74def1a6c074f23a247a69fc",
|
||||
"size": 1983,
|
||||
"filename": "MRrjK-e1pcsBMHuFbRWrf6MkRyyOlWy6eBt_MdA7SKk=.pem",
|
||||
"location": "security-state-staging/intermediates/2fa751d2-fbc0-4000-ba50-9f240cc79a3c.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "c5febe74-fbf9-4319-a280-29d1bb29f528",
|
||||
"last_modified": 1752764222591
|
||||
},
|
||||
{
|
||||
"schema": 1752760672910,
|
||||
"derHash": "H6I4foI8rSMCDMYnhcj5TxXSSO+Moj5C1DhJoI94OgA=",
|
||||
"attachment": {
|
||||
"hash": "5ef06219f4ca26748181d498a24a67f34ef810c9fb40c9ed2114a567689c44ec",
|
||||
"size": 1199,
|
||||
"filename": "kX2ij5nUBgPQYzYimBXq9TB1bQSGYkYRVA22jlAfsWo=.pem",
|
||||
"location": "security-state-staging/intermediates/af929937-9d24-4e1e-8988-ef2a6fa9134a.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "7d0ae958-a1f7-44d6-886d-0613b9e60f11",
|
||||
"last_modified": 1752764222588
|
||||
},
|
||||
{
|
||||
"schema": 1752631067902,
|
||||
"derHash": "0LYmyK2TliKWs5IBBu1/s4GPy5jgtz55kUG0JSEzWw8=",
|
||||
"attachment": {
|
||||
"hash": "e83823e094fc33d3b4af78f1e8f95390c19a2251a7d71707bc51ab535b687881",
|
||||
"size": 2398,
|
||||
"filename": "Vtg6Fi854KaDx08x8gXvmz8mCn0Hf4Hzg9dxrDDqdy4=.pem",
|
||||
"location": "security-state-staging/intermediates/2e2ef072-843c-43ab-81c6-3ef63bec497f.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "145fcad9-5361-4ffc-9211-df101aba2447",
|
||||
"last_modified": 1752634622702
|
||||
},
|
||||
{
|
||||
"schema": 1752631065993,
|
||||
"derHash": "c+m+fVe9XHKgYwRGPTL4+F7KEuLy0oTkiug/ZT/bTrY=",
|
||||
"attachment": {
|
||||
"hash": "a2c755c8197181625e61972939ace42b83b548a84b87297dd3d5526e086d942c",
|
||||
"size": 1248,
|
||||
"filename": "d8WQ9OkyrmgWqzbQsQkl5uL-ue7f9DCEdocJUpRznGE=.pem",
|
||||
"location": "security-state-staging/intermediates/333b516d-f328-45a9-a282-dd467c385449.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "594866e3-2f79-4535-b9f1-f737fc4c4e13",
|
||||
"last_modified": 1752634622699
|
||||
},
|
||||
{
|
||||
"schema": 1752631068872,
|
||||
"derHash": "0Z4fzY4SdH11t0ooMY7v3XAPYW4rIVcBu+gEw83aAns=",
|
||||
"attachment": {
|
||||
"hash": "3a875c4b72419f95c880d4900ecd61247f13d956dd713437be7533c89c574e45",
|
||||
"size": 1272,
|
||||
"filename": "7U61eZ4xMG3x6qHpfWYVmKJWTdiaYVIULIx0M_RG3a4=.pem",
|
||||
"location": "security-state-staging/intermediates/acb26498-dff9-48d5-b59f-c8a69dbbb112.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "e7da2e76-651d-463b-8d4b-54ee29f224fa",
|
||||
"last_modified": 1752634622696
|
||||
},
|
||||
{
|
||||
"schema": 1752631064983,
|
||||
"derHash": "2IbCNfr63S5HNJJM9YtNjwy3Bl8PVFGz4cMI+S73sus=",
|
||||
"attachment": {
|
||||
"hash": "297a19d0445566ff14b3b97cf18232ec1e8ad20ffe497c86761e4aefc86460bc",
|
||||
"size": 2418,
|
||||
"filename": "TcwsJhAKwWICVN6Q_-7q3y7eRrrfy3jzpeQpmQQJ1xI=.pem",
|
||||
"location": "security-state-staging/intermediates/a9eca34b-18e1-410c-8579-52e591e58f32.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "53bd5549-1ff9-4d57-9424-6b771d76b60e",
|
||||
"last_modified": 1752634622693
|
||||
},
|
||||
{
|
||||
"schema": 1752631066965,
|
||||
"derHash": "XrAhe5KMLeEXD84RDKzDyJpCSS5Pl/WuHrjNVPimjus=",
|
||||
"attachment": {
|
||||
"hash": "f6c7a0fbe0b582c8e293c787df084d869fcfbb1ed253abf042bc0822ed3d702b",
|
||||
"size": 2398,
|
||||
"filename": "X4AGLwdqSLcL__rYNWWFtfT1CnCt94N7jSHB6cabFBU=.pem",
|
||||
"location": "security-state-staging/intermediates/c71b6605-bfbe-4e05-b6b5-330d8b8d45c6.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "7f7bab56-8394-4df2-9fb6-38c3c73ed596",
|
||||
"last_modified": 1752634622689
|
||||
},
|
||||
{
|
||||
"schema": 1752631063928,
|
||||
"derHash": "DpdeYqgwMOrj9EG6/7/XV0+3I17stQ8fdH348FBtJF4=",
|
||||
"attachment": {
|
||||
"hash": "427314e9b431619df2a582efee7af27462a4280becca49d6e4f1766e155b9398",
|
||||
"size": 1252,
|
||||
"filename": "aRfTKraYCxRcgK83CNuXDEPgOjT8-Nb6by2DridqnCQ=.pem",
|
||||
"location": "security-state-staging/intermediates/56f251d4-9c5c-4fbb-9151-f0fd927bd905.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "bb7cf118-78d3-41a2-b3be-09ec709dced8",
|
||||
"last_modified": 1752634622686
|
||||
},
|
||||
{
|
||||
"schema": 1752587864240,
|
||||
"derHash": "LSCKTMC+QhaUfZZdOu+w43iX12kd3rAX5T5cB4vNNEw=",
|
||||
"attachment": {
|
||||
"hash": "aa8b4daa9dd2371f283c508baff98aef07de0de576c9c9d3159a823b724c7df8",
|
||||
"size": 2682,
|
||||
"filename": "rHb2OkbnYbWswyWXBckgy38FY9JI2NGA-TSvaAmaFfk=.pem",
|
||||
"location": "security-state-staging/intermediates/26c71151-a442-4b12-a27e-16f66e950182.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "a8c02be2-1bf2-4dd6-8294-a00fb0433d20",
|
||||
"last_modified": 1752591422549
|
||||
},
|
||||
{
|
||||
"schema": 1752587863094,
|
||||
"derHash": "dotnRqKMSMw1AkEB5Y+XhvVrZ2o86UxS+WjriI3SNy4=",
|
||||
"attachment": {
|
||||
"hash": "360cb955c8df54989d7f9f5408472a2b6e54ca85f0318701657cb46fb8bad2bd",
|
||||
"size": 2101,
|
||||
"filename": "YD928oyf66g-x1HttmyNdSPqQP5J_nRCdin1Dau89Vo=.pem",
|
||||
"location": "security-state-staging/intermediates/0cb909fe-022f-4ae1-8f53-5cb0d1704c56.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"id": "345e6ce5-5cda-4a03-ab2b-29012db8d064",
|
||||
"last_modified": 1752591422546
|
||||
},
|
||||
{
|
||||
"schema": 1752155863326,
|
||||
"derHash": "dx59bC13t7kOG0/32/6j4a19JJ0Ncp7QRVZ7XBZAknY=",
|
||||
|
|
@ -10110,24 +10539,6 @@
|
|||
"id": "a206224b-c943-44b0-b74e-3c4bfb484c15",
|
||||
"last_modified": 1690297023205
|
||||
},
|
||||
{
|
||||
"schema": 1689929284314,
|
||||
"derHash": "4O5LQh2QWSJPDNOte8kFCx3teHGKStJtjeP7QCEPH6E=",
|
||||
"subject": "CN=GlobalSign Atlas R3 DV ACME CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQDEyZHbG9iYWxTaWduIEF0bGFzIFIzIERWIEFDTUUgQ0EgMjAyMyBRNA==",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "8ad44e3b2a107c4708f63fa28c341b96ed2b6a01cd16c3ced0aee2858288515b",
|
||||
"size": 1642,
|
||||
"filename": "OB-rJj9cwenrStgWOxc0Kf8noe4X1ba9o2XQqsoa5jk=.pem",
|
||||
"location": "security-state-staging/intermediates/6cea8a9d-7dc4-46ef-b07f-89fb4c77d86a.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "OB+rJj9cwenrStgWOxc0Kf8noe4X1ba9o2XQqsoa5jk=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "f77f9ad4-d759-4cbd-920d-992d5b6cf0e8",
|
||||
"last_modified": 1689929823491
|
||||
},
|
||||
{
|
||||
"schema": 1689929282855,
|
||||
"derHash": "5G+yp1CXo0XUJG3PRKENqnHZ/Q6/q2G6Z+bbhO5bbKs=",
|
||||
|
|
@ -10146,78 +10557,6 @@
|
|||
"id": "5fb08fd5-f7ee-41ca-8644-f594733c1895",
|
||||
"last_modified": 1689929823489
|
||||
},
|
||||
{
|
||||
"schema": 1689929282560,
|
||||
"derHash": "uMVBjEPynSjM7mzCeVzqhNCyKUmxYll2ZveJMSbDzPU=",
|
||||
"subject": "CN=GlobalSign Atlas R3 OV ACME CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQDEyZHbG9iYWxTaWduIEF0bGFzIFIzIE9WIEFDTUUgQ0EgMjAyMyBRNA==",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "1ccf59e6615d165b2170631b72253a798e6146661b5358e41cad12d64fd6e7a3",
|
||||
"size": 1642,
|
||||
"filename": "Wy0iIjIgLwqOCDhp9KhOtrT36mRLAjRtIhKru02-58Y=.pem",
|
||||
"location": "security-state-staging/intermediates/fe842f07-42c4-4bfb-a0f5-71c9c698b366.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "Wy0iIjIgLwqOCDhp9KhOtrT36mRLAjRtIhKru02+58Y=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "44ccbf06-3435-4f16-aaa3-b95248156eaa",
|
||||
"last_modified": 1689929823486
|
||||
},
|
||||
{
|
||||
"schema": 1689929282136,
|
||||
"derHash": "Z6n3GigsStB1hsope5FJJsLh0zHF9kpGr719Y3jYmGg=",
|
||||
"subject": "CN=GlobalSign Atlas R3 OV TLS CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIE9WIFRMUyBDQSAyMDIzIFE0",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "17f521d76b4ad43d738b4b2bf4e955d1e914c141b237d0478f9e40efd8dca441",
|
||||
"size": 1642,
|
||||
"filename": "8y6mbhF5B8zzV4nMYCIe0Ql-uu5fT77-Au4Wf7VCOhA=.pem",
|
||||
"location": "security-state-staging/intermediates/912f1794-1855-42ae-89fd-fdbcf439b265.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "8y6mbhF5B8zzV4nMYCIe0Ql+uu5fT77+Au4Wf7VCOhA=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "a056713a-fd76-406e-807e-8b7470ae43dd",
|
||||
"last_modified": 1689929823483
|
||||
},
|
||||
{
|
||||
"schema": 1689929280659,
|
||||
"derHash": "uzK5BEFj1znoIjOuvH7zojVlt0gkLv4JcwmHSCh9nnY=",
|
||||
"subject": "CN=GlobalSign Atlas R3 DV TLS CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIERWIFRMUyBDQSAyMDIzIFE0",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "6f88b74bde982f331b5e99aed97cff1caf4a2fa3a61df425417f9b5940a2045d",
|
||||
"size": 1642,
|
||||
"filename": "7d8PMwb2-WiKH-yPgprnp0lC28nA19XzSAWpGeJO254=.pem",
|
||||
"location": "security-state-staging/intermediates/b2dfbd08-5fdf-45f7-815f-038138005eb7.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "7d8PMwb2+WiKH+yPgprnp0lC28nA19XzSAWpGeJO254=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "61168bfc-8a2a-41b3-a899-998bb20267b3",
|
||||
"last_modified": 1689929823481
|
||||
},
|
||||
{
|
||||
"schema": 1689929281280,
|
||||
"derHash": "yQXK/e0ZurV0Lzoy9sPN76TklWSjSOqEvi0DNhCBbsY=",
|
||||
"subject": "CN=GlobalSign Atlas ECCR5 OV ACME CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTIwMAYDVQQDEylHbG9iYWxTaWduIEF0bGFzIEVDQ1I1IE9WIEFDTUUgQ0EgMjAyMyBRNA==",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "182f60a8831ce67d003b467607983ca3340ee80435a2a79087ed8f31e79942d2",
|
||||
"size": 1199,
|
||||
"filename": "WYAZh0EyGyBR7RhWjRK4md0Y-vp6X9snRCihQFSpyzI=.pem",
|
||||
"location": "security-state-staging/intermediates/4d70acd8-7983-41ee-a91b-4c61613353fd.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "WYAZh0EyGyBR7RhWjRK4md0Y+vp6X9snRCihQFSpyzI=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "5fbce1b6-d222-468d-aaf0-12c492a56f55",
|
||||
"last_modified": 1689929823478
|
||||
},
|
||||
{
|
||||
"schema": 1689929280952,
|
||||
"derHash": "P29X8f4ls9bwiPF3BPfjdq46kRUdzY4ZF8s6QXhbXw0=",
|
||||
|
|
@ -10236,132 +10575,6 @@
|
|||
"id": "709b3169-b97e-4d71-9fa2-836095db24eb",
|
||||
"last_modified": 1689929823475
|
||||
},
|
||||
{
|
||||
"schema": 1689929281847,
|
||||
"derHash": "uX4QN+TNXAaScWAK/R/zRe6uG8LAI6X7qLFjJg/KXas=",
|
||||
"subject": "CN=GlobalSign Atlas R46 EV TLS CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQDEyZHbG9iYWxTaWduIEF0bGFzIFI0NiBFViBUTFMgQ0EgMjAyMyBRNA==",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "93fd5c1516af4e6774d20b252b76dee9908b24eba9e0e9cd2b35ba384699a7d4",
|
||||
"size": 2345,
|
||||
"filename": "uX3oDJ-7Djd7-44Ak5qYUVf02wuentlL6GZ1aw1YRYY=.pem",
|
||||
"location": "security-state-staging/intermediates/f4c12995-d0ce-4838-976a-f97e989e87df.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "uX3oDJ+7Djd7+44Ak5qYUVf02wuentlL6GZ1aw1YRYY=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "9e30af5c-6339-41dc-89bf-4fcd2f6b8d0b",
|
||||
"last_modified": 1689929823473
|
||||
},
|
||||
{
|
||||
"schema": 1689929284026,
|
||||
"derHash": "14bSKnvWHQamhYY3bcEiYGNZL02GSsTnva5Ar7YiON0=",
|
||||
"subject": "CN=GlobalSign Atlas ECCR5 DV ACME CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTIwMAYDVQQDEylHbG9iYWxTaWduIEF0bGFzIEVDQ1I1IERWIEFDTUUgQ0EgMjAyMyBRNA==",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "77eaa752cf1c30582351fb7243578535da488502544c57e92e3b3f8143dd5dd9",
|
||||
"size": 1199,
|
||||
"filename": "cSKPSXoZl1cGh06RPXxurEKjGQq_K_dKQCAlMuCG4l0=.pem",
|
||||
"location": "security-state-staging/intermediates/d750c111-7d23-416e-8068-905f41c7e342.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "cSKPSXoZl1cGh06RPXxurEKjGQq/K/dKQCAlMuCG4l0=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "d0ffc315-86cd-4808-be81-0b566d69392c",
|
||||
"last_modified": 1689929823470
|
||||
},
|
||||
{
|
||||
"schema": 1689929283421,
|
||||
"derHash": "rU9O/t/oE3j9IW4WjuHraXK5zreWMD6Uv3bFr2NQvaM=",
|
||||
"subject": "CN=GlobalSign Atlas R3 AlphaSSL CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFoxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTAwLgYDVQQDEydHbG9iYWxTaWduIEF0bGFzIFIzIEFscGhhU1NMIENBIDIwMjMgUTQ=",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "95d4a021b1dcf98e8985e718cc9222e5ece6da54488091129f5ddf81edd7cfb9",
|
||||
"size": 1642,
|
||||
"filename": "Ue5JDkm1vKkgoe0owofi-323lQ57ZpDZ6Vl5Vcp4gw0=.pem",
|
||||
"location": "security-state-staging/intermediates/a0cee078-bdda-427e-849d-e836836d9d2b.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "Ue5JDkm1vKkgoe0owofi+323lQ57ZpDZ6Vl5Vcp4gw0=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "73a2be3c-bc63-47d2-91ee-1feaafae1c5a",
|
||||
"last_modified": 1689929823468
|
||||
},
|
||||
{
|
||||
"schema": 1689929283140,
|
||||
"derHash": "Hf/CrVtCPcxxXf5UqhF/JSWXTZVx/qgoGSMoB/St1O4=",
|
||||
"subject": "CN=GlobalSign Atlas E46 EV TLS CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFkxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQDEyZHbG9iYWxTaWduIEF0bGFzIEU0NiBFViBUTFMgQ0EgMjAyMyBRNA==",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "e2da782c3fe2f0d5cb0a7d4b222c05af6dae3b3999e37e146324bb7e601bbf1b",
|
||||
"size": 1195,
|
||||
"filename": "iTrzCOTGjFPpfCYhj9X_Gett3pj5oPU6MHyfI5aK50M=.pem",
|
||||
"location": "security-state-staging/intermediates/20a670fd-fde7-4163-acfe-e8a9c3f78736.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "iTrzCOTGjFPpfCYhj9X/Gett3pj5oPU6MHyfI5aK50M=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "64b33064-84fc-47ef-a270-93f8591bf116",
|
||||
"last_modified": 1689929823465
|
||||
},
|
||||
{
|
||||
"schema": 1689929283712,
|
||||
"derHash": "+79Qcw6DenQ2CFySSDVQ/WXYXg5N/xIfd88PO3xAvUw=",
|
||||
"subject": "CN=GlobalSign Atlas ECCR5 OV TLS CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEF0bGFzIEVDQ1I1IE9WIFRMUyBDQSAyMDIzIFE0",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "aa07e6585366939a0ee664715f610693fcebe885770e531776bfd3566cd643e6",
|
||||
"size": 1195,
|
||||
"filename": "GZFNSPIPKfNKrHiSXuWQzZ75qWd0SAHZLJ8h-n_FnlE=.pem",
|
||||
"location": "security-state-staging/intermediates/b3ec6318-865f-4ab8-88c0-3a6eb9a5455f.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "GZFNSPIPKfNKrHiSXuWQzZ75qWd0SAHZLJ8h+n/FnlE=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "322e6805-9106-4830-bbad-cdf4f7ff4c76",
|
||||
"last_modified": 1689929823463
|
||||
},
|
||||
{
|
||||
"schema": 1689929280374,
|
||||
"derHash": "xayC1W89q7x9J5D/vUzWvgdXLOR63kVtsw/EjmA1LP0=",
|
||||
"subject": "CN=GlobalSign Atlas ECCR5 DV TLS CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEF0bGFzIEVDQ1I1IERWIFRMUyBDQSAyMDIzIFE0",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "c9a0fb7f0f68f8decb18ed5ea9d6ddfea81b562ffb01c0c7a465fd5e515111e0",
|
||||
"size": 1199,
|
||||
"filename": "Fy52G4lIb3umo5xiR8oga5RUXjqel5Lry4PvOdA58_c=.pem",
|
||||
"location": "security-state-staging/intermediates/d992cc23-cd05-4cb8-8a23-c31049e5065a.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "Fy52G4lIb3umo5xiR8oga5RUXjqel5Lry4PvOdA58/c=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "819e7f68-f9de-405e-bad6-8e6b23829b7b",
|
||||
"last_modified": 1689929823460
|
||||
},
|
||||
{
|
||||
"schema": 1689929281565,
|
||||
"derHash": "SVkwa66MVI0xnRhVw0ST960Aubr4JL39lv8sPDK9ruo=",
|
||||
"subject": "CN=GlobalSign Atlas R6 EV TLS CA 2023 Q4,O=GlobalSign nv-sa,C=BE",
|
||||
"subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFI2IEVWIFRMUyBDQSAyMDIzIFE0",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "22e73a22ef29b81de399719608ae4ad95852e691353a2b08dff7afb76d2c4346",
|
||||
"size": 2349,
|
||||
"filename": "NLdLGwnautRQRndsSeA-ENZvLXuVuwlCVRZvl5J69bo=.pem",
|
||||
"location": "security-state-staging/intermediates/561aeab2-e7d3-4ade-ac89-74e25a7f9546.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "NLdLGwnautRQRndsSeA+ENZvLXuVuwlCVRZvl5J69bo=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "3a6faa8b-f53e-4ed7-a4fa-dcc6ea82aa56",
|
||||
"last_modified": 1689929823457
|
||||
},
|
||||
{
|
||||
"schema": 1689778080731,
|
||||
"derHash": "NIXD3+mMXVQoZTR5u5BidYDuiSiQpi2g2avOOiAC6OQ=",
|
||||
|
|
@ -22620,42 +22833,6 @@
|
|||
"id": "3c597962-3dc2-4de5-82fe-2897023b80eb",
|
||||
"last_modified": 1663786626309
|
||||
},
|
||||
{
|
||||
"schema": 1663786359609,
|
||||
"derHash": "JJvmXwx6sP47dkizDODrPPaRQCxy2stAzxRinGA8ujY=",
|
||||
"subject": "CN=BlackCert\\, Inc. RSA DV Certification Authority,O=BlackCert\\, Inc.,L=Denver,ST=CO,C=US",
|
||||
"subjectDN": "MH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRgwFgYDVQQKEw9CbGFja0NlcnQsIEluYy4xNzA1BgNVBAMTLkJsYWNrQ2VydCwgSW5jLiBSU0EgRFYgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHk=",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "ffb41132fe60448dca99fed8dc36b06e864ec803804810ddb99ded957920e092",
|
||||
"size": 2154,
|
||||
"filename": "dnTrbfgvJOGlJse4RxYg30jhwWfQfKyNYkL6SpGs_1I=.pem",
|
||||
"location": "security-state-staging/intermediates/c4c47a34-c4f5-4229-ae72-be617d7272f9.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "dnTrbfgvJOGlJse4RxYg30jhwWfQfKyNYkL6SpGs/1I=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "b3de065f-383e-4062-984d-582c5ee787af",
|
||||
"last_modified": 1663786626302
|
||||
},
|
||||
{
|
||||
"schema": 1663786358729,
|
||||
"derHash": "6+ABXvZBxICVTtKmiEL8zSqKeSE67tg23fpigujqj2o=",
|
||||
"subject": "CN=BlackCert\\, Inc. RSA EV Certification Authority,OU=Controlled by COMODO exclusively for BlackCert\\, Inc.,O=BlackCert\\, Inc.,L=Denver,ST=CO,C=US",
|
||||
"subjectDN": "MIG9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ08xDzANBgNVBAcTBkRlbnZlcjEYMBYGA1UEChMPQmxhY2tDZXJ0LCBJbmMuMT0wOwYDVQQLEzRDb250cm9sbGVkIGJ5IENPTU9ETyBleGNsdXNpdmVseSBmb3IgQmxhY2tDZXJ0LCBJbmMuMTcwNQYDVQQDEy5CbGFja0NlcnQsIEluYy4gUlNBIEVWIENlcnRpZmljYXRpb24gQXV0aG9yaXR5",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "102f83bddea759d6a13c4385f9633aba85ef379cd52dde79f7d2c10f4d463dcb",
|
||||
"size": 2272,
|
||||
"filename": "nq1PHRuOp_qQ-vlMQDWIjBXQS9CPEsH5CLd-dlkam7U=.pem",
|
||||
"location": "security-state-staging/intermediates/ead2cc1f-3b5a-4901-9bef-7454e11f15e1.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "nq1PHRuOp/qQ+vlMQDWIjBXQS9CPEsH5CLd+dlkam7U=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "3b4cd15a-23cd-4507-bbc7-c4eed10c1309",
|
||||
"last_modified": 1663786626295
|
||||
},
|
||||
{
|
||||
"schema": 1663786360454,
|
||||
"derHash": "00GZhqSHZYJdE7MBVHsn3Fag7NMJGYr+mn1/qtZJaao=",
|
||||
|
|
@ -22872,24 +23049,6 @@
|
|||
"id": "d177b415-a735-49d3-acf1-d483a8cf8445",
|
||||
"last_modified": 1663786626107
|
||||
},
|
||||
{
|
||||
"schema": 1663786337728,
|
||||
"derHash": "mHpclYS0a1mHjkJGD4Pk1h9MJyI2aUbU0hbzNqbxKPc=",
|
||||
"subject": "CN=BlackCert\\, Inc. ECC DV Certification Authority,O=BlackCert\\, Inc.,L=Denver,ST=CO,C=US",
|
||||
"subjectDN": "MH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRgwFgYDVQQKEw9CbGFja0NlcnQsIEluYy4xNzA1BgNVBAMTLkJsYWNrQ2VydCwgSW5jLiBFQ0MgRFYgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHk=",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "1f922e42ebd0e6bf8d650a099283a6fce1dbaaa0d43e103c152fb431a9173a7c",
|
||||
"size": 1313,
|
||||
"filename": "UHhlKE9aTixVYvtmCIINV9nOgVj-gicuzrl4dZJypeA=.pem",
|
||||
"location": "security-state-staging/intermediates/4a348e85-a781-41c4-b9f5-7cc66956acaf.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "UHhlKE9aTixVYvtmCIINV9nOgVj+gicuzrl4dZJypeA=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "b7188189-ae9f-4f81-a602-7a6df6946a84",
|
||||
"last_modified": 1663786626094
|
||||
},
|
||||
{
|
||||
"schema": 1663786332479,
|
||||
"derHash": "2dgcAVBdsZNxAhDZtCe2Uynv/yVhNfb7L+2+U+WTvwI=",
|
||||
|
|
@ -23178,24 +23337,6 @@
|
|||
"id": "5cb1707f-a3c5-4bec-93f5-ea54cf32feb3",
|
||||
"last_modified": 1663786625784
|
||||
},
|
||||
{
|
||||
"schema": 1663786291500,
|
||||
"derHash": "MoTgNczXH3odBjrpjimx5ZEjEa2fbZEYhMr513HTfE0=",
|
||||
"subject": "CN=BlackCert\\, Inc. RSA OV Certification Authority,O=BlackCert\\, Inc.,L=Denver,ST=CO,C=US",
|
||||
"subjectDN": "MH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRgwFgYDVQQKEw9CbGFja0NlcnQsIEluYy4xNzA1BgNVBAMTLkJsYWNrQ2VydCwgSW5jLiBSU0EgT1YgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHk=",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "35bdce85f3230d2b21cf676bcf2eb1b6f77b6324e7f590ff39e91ee3d18226f7",
|
||||
"size": 2150,
|
||||
"filename": "B5IV9Zui5uDR_htFQKKJviedASQLhuhY2W547xasQvc=.pem",
|
||||
"location": "security-state-staging/intermediates/b12990b4-e8de-4d6b-82d3-76eb85619484.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "B5IV9Zui5uDR/htFQKKJviedASQLhuhY2W547xasQvc=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "b5f8be2f-292a-4792-9a15-d1f31c2c9f23",
|
||||
"last_modified": 1663786625756
|
||||
},
|
||||
{
|
||||
"schema": 1663786294128,
|
||||
"derHash": "XKBOk6WgfXTG+0r+Gz1NvGLCXOdNhhfH7mbLVDi6ZX8=",
|
||||
|
|
@ -23610,24 +23751,6 @@
|
|||
"id": "3377e410-48b3-4539-b704-678f14914f2d",
|
||||
"last_modified": 1663786625358
|
||||
},
|
||||
{
|
||||
"schema": 1663786230301,
|
||||
"derHash": "OcedKkz/4Jxh3mnsFJkdjpXOcTTs9x7weZANCtVHjK0=",
|
||||
"subject": "CN=BlackCert\\, Inc. ECC EV Certification Authority,OU=Controlled by COMODO exclusively for BlackCert\\, Inc.,O=BlackCert\\, Inc.,L=Denver,ST=CO,C=US",
|
||||
"subjectDN": "MIG9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ08xDzANBgNVBAcTBkRlbnZlcjEYMBYGA1UEChMPQmxhY2tDZXJ0LCBJbmMuMT0wOwYDVQQLEzRDb250cm9sbGVkIGJ5IENPTU9ETyBleGNsdXNpdmVseSBmb3IgQmxhY2tDZXJ0LCBJbmMuMTcwNQYDVQQDEy5CbGFja0NlcnQsIEluYy4gRUNDIEVWIENlcnRpZmljYXRpb24gQXV0aG9yaXR5",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "cbf77056b300bdaecc476ef372be42ee1bbb163d57247103d428fd65833bc732",
|
||||
"size": 1431,
|
||||
"filename": "YMJYGd5waNYmUtnRh_uwLFzS5lXUfdRoNphUMGKD7UY=.pem",
|
||||
"location": "security-state-staging/intermediates/b5439e20-bf07-4d4a-8a0e-1427b2b6b0f1.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "YMJYGd5waNYmUtnRh/uwLFzS5lXUfdRoNphUMGKD7UY=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "50d77a86-7f84-4da8-8e05-e89dfa9cd97b",
|
||||
"last_modified": 1663786625337
|
||||
},
|
||||
{
|
||||
"schema": 1663786220064,
|
||||
"derHash": "qYQdLkfL5tcdj6/fODh/k/Q9dteSUE77F6IQIMWMC4k=",
|
||||
|
|
@ -23988,24 +24111,6 @@
|
|||
"id": "9b2f91f7-174b-43a3-8585-26d804165907",
|
||||
"last_modified": 1663786624996
|
||||
},
|
||||
{
|
||||
"schema": 1663786184777,
|
||||
"derHash": "d1MwBWSsZl1W/vW9r9mciKcxwh6tjjmWyzc+ea39v9w=",
|
||||
"subject": "CN=SignSec High-Assurance OV Authority,OU=SSL Department,O=FBS Inc,L=Irvine,ST=CA,C=US",
|
||||
"subjectDN": "MIGEMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExDzANBgNVBAcTBklydmluZTEQMA4GA1UEChMHRkJTIEluYzEXMBUGA1UECxMOU1NMIERlcGFydG1lbnQxLDAqBgNVBAMTI1NpZ25TZWMgSGlnaC1Bc3N1cmFuY2UgT1YgQXV0aG9yaXR5",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "b3f6b2b0fcf51e58b433e5f7227ed488ff7643994e55098dff3724b805ca9a1b",
|
||||
"size": 2162,
|
||||
"filename": "-NJzGF6Gew8FPxWa8xRHx0tz0t0bJjNH38uDaSIgIqI=.pem",
|
||||
"location": "security-state-staging/intermediates/f538856a-1986-4ea8-9af5-e9a9636d887e.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "+NJzGF6Gew8FPxWa8xRHx0tz0t0bJjNH38uDaSIgIqI=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "30bd429d-11ce-4d9a-b5a8-5c55e73d232c",
|
||||
"last_modified": 1663786624969
|
||||
},
|
||||
{
|
||||
"schema": 1663786182228,
|
||||
"derHash": "GY4zLxD6D1ivCDrpZLxkQfBs0PrTGbEjX+PtD3xur5M=",
|
||||
|
|
@ -24114,24 +24219,6 @@
|
|||
"id": "a5d57b58-42af-4896-8d42-5978e9342d5b",
|
||||
"last_modified": 1663786624892
|
||||
},
|
||||
{
|
||||
"schema": 1663786174523,
|
||||
"derHash": "LHPumlL/rQcWa4co12gdjL79makGYzRbJarPmx7x8zM=",
|
||||
"subject": "CN=SignSec Certification Authority,OU=SSL Department,O=FBS Inc,L=Irvine,ST=CA,C=US",
|
||||
"subjectDN": "MIGAMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExDzANBgNVBAcTBklydmluZTEQMA4GA1UEChMHRkJTIEluYzEXMBUGA1UECxMOU1NMIERlcGFydG1lbnQxKDAmBgNVBAMTH1NpZ25TZWMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHk=",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "330eca8b3c6c71906174a6f376dd96a4be63f53fd0d56981b4dfeae2d6a7401d",
|
||||
"size": 2158,
|
||||
"filename": "41fzHe29HqEJ0_pGALXNvRuPsmNV1cP7w8L-2fi7OPc=.pem",
|
||||
"location": "security-state-staging/intermediates/c7c190cf-5113-4753-9b26-d5f26b89127f.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "41fzHe29HqEJ0/pGALXNvRuPsmNV1cP7w8L+2fi7OPc=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "2506e9cb-3ad3-4e08-a82b-9b825f074989",
|
||||
"last_modified": 1663786624885
|
||||
},
|
||||
{
|
||||
"schema": 1663786173668,
|
||||
"derHash": "428WX/dznNkAolYnZ7Pq++Z6NMg8OoL0wh1fUcPtGR4=",
|
||||
|
|
@ -24222,24 +24309,6 @@
|
|||
"id": "50b8ada5-881a-4861-8618-669919d34962",
|
||||
"last_modified": 1663786624771
|
||||
},
|
||||
{
|
||||
"schema": 1663786252838,
|
||||
"derHash": "PKGOHtvmhg1wkU6aoNuOYeGT5+9UfNq4tN9UX0bexrs=",
|
||||
"subject": "CN=BlackCert\\, Inc. ECC OV Certification Authority,O=BlackCert\\, Inc.,L=Denver,ST=CO,C=US",
|
||||
"subjectDN": "MH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRgwFgYDVQQKEw9CbGFja0NlcnQsIEluYy4xNzA1BgNVBAMTLkJsYWNrQ2VydCwgSW5jLiBFQ0MgT1YgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHk=",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "37a914d05ca64eee1c00792d05096a08d43a4139983cca5f78abd8e569677510",
|
||||
"size": 1313,
|
||||
"filename": "bQkT-mQD0009MLZyZZBcx4FuOI9_hOoj322Ms-tQWFo=.pem",
|
||||
"location": "security-state-staging/intermediates/6162d339-3ba2-4905-a428-441a37839f24.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "bQkT+mQD0009MLZyZZBcx4FuOI9/hOoj322Ms+tQWFo=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "db21ebe3-6953-4f00-a637-b99d8c6ae432",
|
||||
"last_modified": 1663786624754
|
||||
},
|
||||
{
|
||||
"schema": 1663699718906,
|
||||
"derHash": "LBcQZNv6KAofKU9y4qH8JMhhEbI3I9uTddMASyfnszs=",
|
||||
|
|
@ -27822,24 +27891,6 @@
|
|||
"id": "4ac33a0c-1052-4702-874c-dc40ae073f75",
|
||||
"last_modified": 1601517441658
|
||||
},
|
||||
{
|
||||
"schema": 1592519327482,
|
||||
"derHash": "RbKwjhtYlIoCi+E6Z8DiDUskZq4rbsYlDrsQ/Wt/gjk=",
|
||||
"subject": "CN=Trustwave Secure Global Extended Validation CA\\, Level 1,O=Trustwave Holdings\\, Inc.,L=Chicago,ST=Illinois,C=US",
|
||||
"subjectDN": "MIG4MQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjFAMD4GA1UEAxM3VHJ1c3R3YXZlIFNlY3VyZSBHbG9iYWwgRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNvbQ==",
|
||||
"whitelist": false,
|
||||
"attachment": {
|
||||
"hash": "296ea0b36874faa2487773b3da5792b5b41278241a226affe7e50a6ba22c0e72",
|
||||
"size": 1784,
|
||||
"filename": "jyPoX5LnCMukfvFxrxuJWUrZycp69MmdphXiTrhpMU4=.pem",
|
||||
"location": "security-state-staging/intermediates/3c07694f-03e7-4fdb-b353-876f81151fda.pem",
|
||||
"mimetype": "application/x-pem-file"
|
||||
},
|
||||
"pubKeyHash": "jyPoX5LnCMukfvFxrxuJWUrZycp69MmdphXiTrhpMU4=",
|
||||
"crlite_enrolled": false,
|
||||
"id": "170a74a6-1485-4c35-aecb-8b37550de004",
|
||||
"last_modified": 1600461980794
|
||||
},
|
||||
{
|
||||
"schema": 1591167038909,
|
||||
"derHash": "7tCpXn3jylPkpscqhrPxZMDCPjgPj2t5o0nvF4Q0LB8=",
|
||||
|
|
@ -29875,5 +29926,5 @@
|
|||
"last_modified": 1559865884636
|
||||
}
|
||||
],
|
||||
"timestamp": 1752159422751
|
||||
"timestamp": 1754751422477
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,245 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"schema": 1752253362735,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBSb290IEdDIENB",
|
||||
"serialNumber": "HwAAAAfDD7xDFE07ggAAAAAABw==",
|
||||
"id": "d59a7ea9-fef8-4133-886c-31a25f543e7e",
|
||||
"last_modified": 1752529408928
|
||||
},
|
||||
{
|
||||
"schema": 1752253362665,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290",
|
||||
"serialNumber": "RxrvnHcqwAoh57KRc7nqtg==",
|
||||
"id": "fc0317f6-0069-43a3-aaf9-0d36dcffd324",
|
||||
"last_modified": 1752529408923
|
||||
},
|
||||
{
|
||||
"schema": 1752253362595,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MEcxCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDElMCMGA1UEAwwcVUNBIEV4dGVuZGVkIFZhbGlkYXRpb24gUm9vdA==",
|
||||
"serialNumber": "e9IM+dbh+TTZmajWegeWGQ==",
|
||||
"id": "ab55ad4b-0b23-4774-91c7-ab5193d3568e",
|
||||
"last_modified": 1752529408918
|
||||
},
|
||||
{
|
||||
"schema": 1752253362523,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MIGPMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UEAxMpU3RhcmZpZWxkIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzI=",
|
||||
"serialNumber": "MnF9WHtYC1C4Kzig8ghKgA==",
|
||||
"id": "9f4aacb8-7469-43da-87d8-c9f113589435",
|
||||
"last_modified": 1752529408912
|
||||
},
|
||||
{
|
||||
"schema": 1752253362453,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXM=",
|
||||
"serialNumber": "dvI4YMRLl0rwkuZJqJYF0A==",
|
||||
"id": "f8fc9c61-d943-40de-b3e2-9027da2ababd",
|
||||
"last_modified": 1752529408907
|
||||
},
|
||||
{
|
||||
"schema": 1752253362384,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290",
|
||||
"serialNumber": "eUUZ3aDxJMSOGz6vljjIkQ==",
|
||||
"id": "18da46dc-e949-4466-8070-d54e397b4e7c",
|
||||
"last_modified": 1752529408901
|
||||
},
|
||||
{
|
||||
"schema": 1752253362313,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXM=",
|
||||
"serialNumber": "AM9mvXf+Q8vcLtaEDy7JtYs=",
|
||||
"id": "6fc15a27-f22e-414b-a8c7-93be30e2ff91",
|
||||
"last_modified": 1752529408896
|
||||
},
|
||||
{
|
||||
"schema": 1752253362243,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290",
|
||||
"serialNumber": "Q0JnvsaMKtKEa4OrcZ/esA==",
|
||||
"id": "e38a7b90-5516-4383-9dc2-b0322ce1cad5",
|
||||
"last_modified": 1752529408890
|
||||
},
|
||||
{
|
||||
"schema": 1752253362101,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXM=",
|
||||
"serialNumber": "APW9c8guN8LMJ4hGuq43ybQ=",
|
||||
"id": "5c45ef72-d30c-4cf2-a596-5b22de8793b0",
|
||||
"last_modified": 1752529408885
|
||||
},
|
||||
{
|
||||
"schema": 1752253362015,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MGsxCzAJBgNVBAYTAklUMQ4wDAYDVQQHDAVNaWxhbjEjMCEGA1UECgwaQWN0YWxpcyBTLnAuQS4vMDMzNTg1MjA5NjcxJzAlBgNVBAMMHkFjdGFsaXMgQXV0aGVudGljYXRpb24gUm9vdCBDQQ==",
|
||||
"serialNumber": "LNSK07EeD4k=",
|
||||
"id": "9f83f0b8-c5af-4cc2-996d-8896890af6a5",
|
||||
"last_modified": 1752529408880
|
||||
},
|
||||
{
|
||||
"schema": 1752253361876,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXM=",
|
||||
"serialNumber": "AL5MsT5GaLfGIuqr8kaFA/U=",
|
||||
"id": "4967039d-7e90-48a7-98db-037e23ea9f9d",
|
||||
"last_modified": 1752529408875
|
||||
},
|
||||
{
|
||||
"schema": 1752253361946,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXM=",
|
||||
"serialNumber": "Zf3g+mZYAG+ArtDLZFPqDA==",
|
||||
"id": "180aa427-89bf-4bd3-8d1c-e48389ebb82c",
|
||||
"last_modified": 1752529408870
|
||||
},
|
||||
{
|
||||
"schema": 1752253362172,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MEcxCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDElMCMGA1UEAwwcVUNBIEV4dGVuZGVkIFZhbGlkYXRpb24gUm9vdA==",
|
||||
"serialNumber": "TYuntN+eEVPhyA3uPm9Amg==",
|
||||
"id": "585c193d-eae1-49ed-a91b-6041d6e8c176",
|
||||
"last_modified": 1752529408864
|
||||
},
|
||||
{
|
||||
"schema": 1752200138909,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXM=",
|
||||
"serialNumber": "ALktcwNAMksOwBvs4gx6Bo4=",
|
||||
"id": "838c6528-6ca1-4c77-afd8-1e9d02a9994a",
|
||||
"last_modified": 1752529408859
|
||||
},
|
||||
{
|
||||
"schema": 1752253361799,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MIGDMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xMTAvBgNVBAMTKEdvIERhZGR5IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzI=",
|
||||
"serialNumber": "AJ9sVRhHzcEA5yu0GD2FSTE=",
|
||||
"id": "15f8501a-cc83-450f-8566-bb4c0aef37fd",
|
||||
"last_modified": 1752529408853
|
||||
},
|
||||
{
|
||||
"schema": 1752253361727,
|
||||
"details": {
|
||||
"bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1976939",
|
||||
"who": "",
|
||||
"why": "",
|
||||
"name": "",
|
||||
"created": ""
|
||||
},
|
||||
"enabled": false,
|
||||
"issuerName": "MD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290",
|
||||
"serialNumber": "VHq45lkYorm/2hSmjcWOsg==",
|
||||
"id": "919e96e8-975a-49a0-b72e-360eec753791",
|
||||
"last_modified": 1752529408848
|
||||
},
|
||||
{
|
||||
"schema": 1747778629161,
|
||||
"details": {
|
||||
|
|
@ -25184,5 +25424,5 @@
|
|||
"last_modified": 1480349158647
|
||||
}
|
||||
],
|
||||
"timestamp": 1747787134572
|
||||
"timestamp": 1752529408928
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
20250714124554
|
||||
https://hg.mozilla.org/releases/mozilla-esr128/rev/81d51b1bf06d4dff8aa050ca9d4b830517b5768d
|
||||
20250811113756
|
||||
https://hg.mozilla.org/releases/mozilla-esr128/rev/df0b4a4887880a1b267ca2b4902afee84e80f6e9
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ RUN /usr/local/sbin/setup_packages.sh $TASKCLUSTER_ROOT_URL $DOCKER_IMAGE_PACKAG
|
|||
--verbose \
|
||||
buster \
|
||||
/srv/buster-amd64 \
|
||||
http://deb.debian.org/debian || (echo "Debootstrap failed, outputting log:" && cat /srv/buster-amd64/debootstrap/debootstrap.log && exit 1) && \
|
||||
http://archive.debian.org/debian || (echo "Debootstrap failed, outputting log:" && cat /srv/buster-amd64/debootstrap/debootstrap.log && exit 1) && \
|
||||
chroot /srv/buster-amd64 /bin/bash -c "\
|
||||
dpkg --add-architecture arm64 && \
|
||||
apt-get update && \
|
||||
|
|
|
|||
|
|
@ -2221,6 +2221,8 @@ def build_task(config, tasks):
|
|||
"kind": config.kind,
|
||||
"label": task["label"],
|
||||
"retrigger": "true" if attributes.get("retrigger", False) else "false",
|
||||
"project": config.params["project"],
|
||||
"trust-domain": config.graph_config["trust-domain"],
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -486,11 +486,6 @@ def which(cmd, mode=os.F_OK | os.X_OK, path=None, exts=None, extra_search_dirs=(
|
|||
if not exts:
|
||||
exts = oldexts.split(os.pathsep)
|
||||
|
||||
# This ensures that `cmd` without any extensions will be found.
|
||||
# See: https://bugs.python.org/issue31405
|
||||
if "." not in exts:
|
||||
exts.append(".")
|
||||
|
||||
os.environ["PATHEXT"] = os.pathsep.join(exts)
|
||||
try:
|
||||
path = shutil_which(cmd, mode=mode, path=path)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import os
|
|||
import sys
|
||||
|
||||
import mozunit
|
||||
import six
|
||||
from mozfile import which
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
|
|
@ -16,10 +15,8 @@ def test_which(monkeypatch):
|
|||
monkeypatch.chdir(cwd)
|
||||
|
||||
if sys.platform == "win32":
|
||||
if six.PY3:
|
||||
import winreg
|
||||
else:
|
||||
import _winreg as winreg
|
||||
|
||||
bindir = os.path.join(cwd, "win")
|
||||
monkeypatch.setenv("PATH", bindir)
|
||||
monkeypatch.setattr(winreg, "QueryValue", (lambda k, sk: None))
|
||||
|
|
@ -27,13 +24,13 @@ def test_which(monkeypatch):
|
|||
assert which("foo.exe").lower() == os.path.join(bindir, "foo.exe").lower()
|
||||
assert which("foo").lower() == os.path.join(bindir, "foo.exe").lower()
|
||||
assert (
|
||||
which("foo", exts=[".FOO", ".BAR"]).lower()
|
||||
which("foo", exts=[".FOO", ".BAR", "."]).lower()
|
||||
== os.path.join(bindir, "foo").lower()
|
||||
)
|
||||
assert os.environ.get("PATHEXT") != [".FOO", ".BAR"]
|
||||
assert which("foo.txt") is None
|
||||
|
||||
assert which("bar").lower() == os.path.join(bindir, "bar").lower()
|
||||
assert which("bar", exts=["."]).lower() == os.path.join(bindir, "bar").lower()
|
||||
assert which("baz").lower() == os.path.join(cwd, "baz.exe").lower()
|
||||
|
||||
registered_dir = os.path.join(cwd, "registered")
|
||||
|
|
|
|||
|
|
@ -1,30 +1,30 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQITmpQHgpujFYCAggA
|
||||
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECFapQ7gWyWd1BIIEyAQJKpUrgOnb
|
||||
fgB95Ka3LwheDI2Ls1NYrzuKLTzn+M3n0nd+5ZskvrOJeCPjSCV8LMk7aqDFOAqy
|
||||
LSx3IXnPK2bcbxV15sGuKkkRGQj5RFPZvvLg6+CKIER7QOfXjaZSzTF4kvsW9DvQ
|
||||
lgFjFuAc31IzL7Z/yeLO/Y4TS5p1evJUEz6GLNspYmkZMguwYwwYt+pYb1pGjvBY
|
||||
txMl8U3CzpliYfbrZTU2ttmvkDJGJaQmpU2ZUPJgenpkB3zKQxZDEConserGAgZn
|
||||
ddlANYrGlfVBy1DL4pqOrPCjTUyifockvgXUCON0HRBELOPY4m3KvsW5zTJACQwz
|
||||
81OLqgkOssQYMHz54m/bPWbCGubZ0Iz4kcasNb/ijaSbY/o+Csddf1CqvJ4S6fqb
|
||||
W2nf0jsXUNjoAGxsAxWTJQsUfvwLx2I8rF2Cd9Wd2cfo84OdIKzYT7tWVhDRV7+j
|
||||
lsY53plSdcJZVbvZPIV6Uxjd9X+TPGpezGG/w1/RgtPu1f/NUoQqYXzrwTSWCBEP
|
||||
r5ai6nsdG1EhoXni8INIWLXMdWnPYeaJcVUfcbI5IykFRTR+PxdIXxWCLkMb5CAN
|
||||
7tDCyfFmiVodXK3AUkLJTJ5aBM9wiG8L/6rFDZnqan0FCQkl+gPgw6G5JylRbncN
|
||||
iI84tSF3vnI9szxHrr2mVLExRrXRCIr2gskda5gtbDfl/PjAtC3MmLIH+OUbQlf0
|
||||
WPNjOV/DNMt+ceHiSGETR29RjeSXYkhcXBw9m1C7Uqi1Tc5Q8UkQlUimEa88g1vy
|
||||
BoGFuyG8R+IWAbcCaimsS66Xvq/oTaq8RUT4x9EhvbQRcuxOCP6fvsddlhe9rV++
|
||||
7CKmk6DJjROa4PliYK4TykpuA2Gx6lYO5UF5unaHWQrlUI6QGbCy3bMIgylU+zKk
|
||||
KUqluSPXojQD2a5KlYBZUHfbvoD1OPluWimd0C2AXDCeK2Tx8JHQM3FZG8aO5T4i
|
||||
wkKQSjJNR84NZYw/Ns8l6H02sX+r97Cu9JgYEI+Jf7oiCOzyMaOJCEJ0tTyoxVg7
|
||||
j/nkinZysYiKJKe06x0Em49vt1DbR7ggc3y35ynSwMJbuc+NdmZ5qwWawum1RDgs
|
||||
oOEZ4qX+aY6VWJbLm52BBhySjU5bb4Eqb95CTpTGeb6BGSoPADQMypre41Q0SNKf
|
||||
OpygKfWVLQ2xpEgZG5puLvFphPQNDJT1b97n16EW1NIKn4tIt2vJnHGBTfvP4hL/
|
||||
uvB1C4GJAmw4j9haLriefWX7OE3VvZXZBzRvVrHddPovjRxJPnBq3HWAkZ9Npn89
|
||||
DIE9k8tUJTFRSidEDIIRDcMdO+wh4ozf5vuDatI5gF4fApFBryQ65HYH/A2mY80j
|
||||
lZYQYnEuXr4HqZx9DdLcmelaNn8Vezjhvik4dQt9THEEOhK3rWwyifBsRS/Awdw4
|
||||
umUDfq6hU96qHanJo4fHF2Cu3mTkcrTcnIZ/7nimjj5Nr7IyR0qfFdQgYHKfOAS9
|
||||
Vup5j1xNmGJS7+KWy06e6M1MoC9YMRt1GiAXw9rIzMv5uYlfYUhpJl9z/QXcVNnz
|
||||
lIcyHVZxf3vDQhazDSoFLGv0OkElNcgDIji1xZg8MLF9Yb/4pzipftfi6ew/zgOh
|
||||
jqhELBl9yJwX+H/AORgnPQ==
|
||||
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIQ5xxSiiavZsCAggA
|
||||
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECFKM9TnbYM+OBIIEyMH5TkEN57pt
|
||||
EZk850JRFQJAl1FNOpQwTIY1KysKZenigkLMaavObLdAheJVNSGWx+Wua7cgKWbc
|
||||
5GBVZn+NN4CRAtPlL+xKWf0HYwr3brJn3mMWrJbfMgugB2yG9UvAL4jBmsz9eWB1
|
||||
ZuoUnBa9oZPtjcROq5CnZJXdrHqHPaG5CswoSBOXn0p/nv6KSeV8BRgdj1EvAGKh
|
||||
sOav2PbsaTESESnR4RP91k6hu24ZRUkfxA16L+BKb0/94ie4DErFKcZbilfI41Qv
|
||||
FQTpbPLZwOywCz/VD6kjYcRAr1q26Zhv4O80/0ZL7m/OBzu38PCUKwBAduZZyCCf
|
||||
1sqDyNWyPHTa9sPSY3pocpIvtzQ0UFNOhlMicHztNpNAtugJk8mPtvLyMqg02sys
|
||||
GK4PZtENPPcaWCy8hBxRN5+fVXjx4RpeJJQjqwnzuQiVOKkGrDw3MxLvIh6JCV4h
|
||||
RvZW25wd3Tbs2KzotKNXFZDNHRSQRJRG+j7rTVr/F92YKC2KOPWcFU/J6quLqR9d
|
||||
jTpvWej3SAvBkCqPZatuOPqxnctRU4/EZdg/N7eZBRmWdXLKvD5nwgHQoPdOiywT
|
||||
/eu2JuQzXQuVzVRnCAdDCvxl7/UkSkepEJbq1VAXo1rp4UTdVp6/xGOLJVdG4Yzc
|
||||
Y13Zx7Y5r0rh5QUI96jogFfor57uvtiMqnxT+QpRtGxJUaRs/6svLHwDHAZhbf2f
|
||||
jtn+St/c+Il1Xjpm7shQvo+pOUBG0DzcSyUXsQB58K+3Yj79M0Ff54unJQ3SCAbV
|
||||
zbq9OS69VRhkMveN3RGvgQDMIlgdH9DeDdB4YGEVEvujnqOBgcnrDmLE8e8tPAjZ
|
||||
90Uh1oqXdJgM5whaK3LbNs41kz482Orkv/P9L8e3MOjSuymdkgg3yJIx6ZuHNNKL
|
||||
BTQTRJELyaje+px2oyaIfvzGQ0Jjnv+jTEwphbIAapCtJy61/HDvbS3F4tZ1atIh
|
||||
wWjKpPRklDYD1bM1oGBUx5d24tNlTGLlhyrrV0gBteMvwPpsT3SuWPKGfSRAwygk
|
||||
v4papFqnGPG+7W394x9S4NhRwlaHeG/L6qA0YNGrpeSoZSGB6k1DpInW9wylngEu
|
||||
DM3j6perxmR+ZrPJo87/S2nPb3ylmZmAc6mHt0JQTKtR4s2kMoodHmqo9UIJJjnf
|
||||
Z7cwPOerrsy5xwAm7nlP3ghb0Cu13VQz/QC6023TsN+O/DrUsvhFtNiQWdVwZndz
|
||||
d17Vgmas+eLM3n82Xqbyxs5hoae63JSz85M/LUiT121eC1MhOUrswCyw6KKVwYoW
|
||||
JmkYaGWbuJHMOPUuRpThrJdO3QzGneMCu8CNxsyJJDLUrhtXkyX/23tRhOCnOYGc
|
||||
QSfxsqRoL8IodF/gDEpuugf09wKUpdwK5q7N70YdBCpgMq3jjI/4ElmkPRRUfhp1
|
||||
rcNl/PtkJcUNkHwnIK3QWHhdKD56tjwBvpTNK9X1/QUqvU5stPlf4ZQM0zOsffPm
|
||||
+jpauKaEzYsGSWcbhJib5WDA+j9l1EHIwVRrAiVcYi/IrYzvCVZYtC4+qrxGLxIW
|
||||
3CfND5oUMsa/6sv3CWlqH6frYwLwGsy3kQLxhX56sgsvLJ9lgZBuuLlWBWptCIir
|
||||
VCzo24f1epTgccd9RsHscA==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
|
|
|
|||
|
|
@ -1,54 +1,54 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIW5zCCFc+gAwIBAgIDBjzhMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNDA4MTIwMTAxMzZaFw0yNTA4MTIwMTAxMzZa
|
||||
MIIW5zCCFc+gAwIBAgIDCvpqMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNTA2MTIwMTE4MzhaFw0yNjA2MTIwMTE4Mzha
|
||||
MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBALEnHTdGG/kOth+k7j34pG32Tzl+xa4ulyRLlO1mnxJx
|
||||
W95B1QSiBR2J2H5c78o3gCNvLT1OvFUEYI3/as2TzraqKYctoeYjLPnyjtTL/y6N
|
||||
Fn9z7F2yfZ+ulMAItWKX93QjbUnPGiBrFe1+ouVBN68q9J+iaEE8Rc2pOcyAiplE
|
||||
zILeBPUIdGN8oOS09b4gqyvXNfvezrHb9e7Dvf0xzB2lZr5EliLpzNcV3hBXCpNK
|
||||
Er5ritKh4/99jCdK+wNCcFafy5ciCLtOJj/XgZkicMoCX+SWaNSl8vXEYpAJo4Cv
|
||||
kG5MsbZ43XUvm4fvV0a8NaB331FUxE5iVK3T/M/AU3ECAwEAAaOCFC4wghQqMAwG
|
||||
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFPhJdAcbTxpZeTEm+MSr1W9+ULHSMEcGA1Ud
|
||||
IwRAMD6AFPhJdAcbTxpZeTEm+MSr1W9+ULHSoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
|
||||
cGxhdGZvcm0tdGVzdHOCAwY84TALBgNVHQ8EBAMCAgQwggoFBgNVHR4Eggn8MIIJ
|
||||
+KCCCfQwE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVd3d3LndlYi1wbGF0Zm9ybS50
|
||||
ZXN0MBeCFW5vdC13ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cyLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0MBiCFnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwG4IZd3d3Lm5vdC13ZWIt
|
||||
cGxhdGZvcm0udGVzdDAbghl3d3cud3d3LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3
|
||||
dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEubm90LXdlYi1wbGF0Zm9y
|
||||
bS50ZXN0MByCGnd3dzIud3d3LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cx
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0
|
||||
MByCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3MS53ZWIt
|
||||
cGxhdGZvcm0udGVzdDAdght3d3cyLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwHYIb
|
||||
d3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3Mi53ZWItcGxh
|
||||
BQADggEPADCCAQoCggEBANYTmhz+LpdYvW+1B8BrpydNlFJO+uwlDs5mbNwP1sCP
|
||||
sYeJQ6RbxFRMcJdHKL37lWzwmJR31roS7amfvl/lcanLNHslAAo0QuY8hjKm/dts
|
||||
imMradgmOI7+bIx7PkeqpRnsruFSuysmRqYjMdGkV0Kod4EAUR7mskPcqGY/cabq
|
||||
RFbb7Qir78j1TAlmEVIpM91DKbiymSXp9QXJd4vjGm6PpvR4x3EDic1fmLnS4AcY
|
||||
la3b/vHXowIbA1AYNppWwKGyJZsUvjKm6DjzDS3VGwsz/etZHOOptprdxdfXP92Y
|
||||
eHMql3oxsWUVbw2Vr+enWmUA1wmz/vb+xBH2qnb0YZECAwEAAaOCFC4wghQqMAwG
|
||||
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFEqAvGRgOzi2DQTi1IhLYHYa2aT7MEcGA1Ud
|
||||
IwRAMD6AFEqAvGRgOzi2DQTi1IhLYHYa2aT7oSGkHzAdMRswGQYDVQQDDBJ3ZWIt
|
||||
cGxhdGZvcm0tdGVzdHOCAwr6ajALBgNVHQ8EBAMCAgQwggoFBgNVHR4Eggn8MIIJ
|
||||
+KCCCfQwE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVbm90LXdlYi1wbGF0Zm9ybS50
|
||||
ZXN0MBeCFXd3dy53ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cxLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0MBiCFnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwG4IZd3d3Lnd3dy53ZWIt
|
||||
cGxhdGZvcm0udGVzdDAbghl3d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3
|
||||
dzIud3d3LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3LndlYi1wbGF0Zm9y
|
||||
bS50ZXN0MByCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEubm90
|
||||
LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0
|
||||
MByCGnd3dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzIud3d3MS53ZWIt
|
||||
cGxhdGZvcm0udGVzdDAdght3d3cxLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwHYIb
|
||||
d3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzIud3d3Mi53ZWItcGxh
|
||||
dGZvcm0udGVzdDAfgh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAggh53
|
||||
d3cud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3MS53d3cubm90LXdl
|
||||
d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Lnd3dzEubm90LXdl
|
||||
Yi1wbGF0Zm9ybS50ZXN0MCCCHnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVz
|
||||
dDAggh53d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Mi53d3cu
|
||||
bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRm
|
||||
dDAggh53d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Lnd3dzIu
|
||||
bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRm
|
||||
b3JtLnRlc3QwIYIfd3d3MS53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAhgh93
|
||||
d3cyLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3Mi5ub3Qt
|
||||
d3cyLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzIud3d3MS5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3QwJIIid3d3LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZv
|
||||
cm0udGVzdDAkgiJ4bi0tbHZlLTZsYWQud3d3LndlYi1wbGF0Zm9ybS50ZXN0MCSC
|
||||
InhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02
|
||||
bGFkLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3Mi54bi0tbHZlLTZsYWQu
|
||||
d2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBsYXRm
|
||||
b3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3Qw
|
||||
cm0udGVzdDAkgiJ4bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCSC
|
||||
InhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02
|
||||
bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQu
|
||||
d2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRm
|
||||
b3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzIud2ViLXBsYXRmb3JtLnRlc3Qw
|
||||
KIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKIImeG4t
|
||||
LWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYInd3d3Mi54bi0t
|
||||
bHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3huLS1sdmUtNmxhZC53
|
||||
d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid4bi0tbHZlLTZsYWQud3d3MS5u
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYInd3d3MS54bi0tbHZlLTZsYWQubm90LXdl
|
||||
LWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02
|
||||
bGFkLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3d3dzEueG4tLWx2ZS02
|
||||
bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid3d3cyLnhuLS1sdmUtNmxhZC5u
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02bGFkLnd3dzEubm90LXdl
|
||||
Yi1wbGF0Zm9ybS50ZXN0MCuCKXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1w
|
||||
bGF0Zm9ybS50ZXN0MC2CK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBs
|
||||
YXRmb3JtLnRlc3QwL4IteG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWIt
|
||||
YXRmb3JtLnRlc3QwL4IteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1w
|
||||
bGF0Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWIt
|
||||
cGxhdGZvcm0udGVzdDAvgi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3QwMIIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi53
|
||||
ZWItcGxhdGZvcm0udGVzdDAwgi53d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0MDCCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYy
|
||||
OGEud2ViLXBsYXRmb3JtLnRlc3QwMIIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
|
||||
d3d3MS53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4tLWx2ZS02
|
||||
ZWItcGxhdGZvcm0udGVzdDAwgi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cx
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0MDCCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYy
|
||||
OGEud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFo
|
||||
djI4YS53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4tLWx2ZS02
|
||||
bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF3d3cueG4tLW44ajZkczUzbHd3
|
||||
a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDOCMXhuLS1uOGo2ZHM1M2x3
|
||||
d2tycWh2MjhhLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyd3d3Mi54bi0t
|
||||
|
|
@ -56,50 +56,50 @@ bjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyd3d3
|
|||
MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
|
||||
NIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3Jt
|
||||
LnRlc3QwNIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3QwOII2eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2
|
||||
MjhhLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
|
||||
LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbjhqNmRzNTNs
|
||||
d3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDyC
|
||||
OnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3QwOII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02
|
||||
bGFkLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1sdmUtNmxhZC54bi0tbjhqNmRz
|
||||
NTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbHZlLTZsYWQu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDyC
|
||||
OnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3QwQ4JBeG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZk
|
||||
czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwR4JFeG4tLW44ajZkczUz
|
||||
bHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0
|
||||
Zm9ybS50ZXN0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiC
|
||||
EXdlYi1wbGF0Zm9ybS50ZXN0ghV3d3cud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13
|
||||
ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53
|
||||
ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3
|
||||
Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRl
|
||||
c3SCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLnd3dy53ZWItcGxh
|
||||
dGZvcm0udGVzdIIad3d3Lnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCGnd3dzIubm90
|
||||
LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cxLnd3dy53ZWItcGxhdGZvcm0udGVzdIIb
|
||||
d3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cyLnd3dzEud2ViLXBsYXRm
|
||||
b3JtLnRlc3SCG3d3dzIud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cy
|
||||
EXdlYi1wbGF0Zm9ybS50ZXN0ghVub3Qtd2ViLXBsYXRmb3JtLnRlc3SCFXd3dy53
|
||||
ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53
|
||||
ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIZd3d3
|
||||
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3Mi53d3cud2ViLXBsYXRmb3JtLnRl
|
||||
c3SCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLm5vdC13ZWItcGxh
|
||||
dGZvcm0udGVzdIIad3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dy53d3cx
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIb
|
||||
d3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cxLnd3dzIud2ViLXBsYXRm
|
||||
b3JtLnRlc3SCG3d3dzEud3d3MS53ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cy
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
|
||||
dIIed3d3Lnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cxLnd3dy5ub3Qt
|
||||
dIIed3d3Mi53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCHnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVz
|
||||
dIIed3d3Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cyLnd3dy5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
dIIed3d3MS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3Mi5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
c3SCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5u
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3Jt
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
|
||||
LnRlc3SCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1s
|
||||
dmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0giN3d3cyLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3
|
||||
MS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53
|
||||
d3cxLndlYi1wbGF0Zm9ybS50ZXN0giZ3d3cueG4tLWx2ZS02bGFkLm5vdC13ZWIt
|
||||
dmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC53d3cu
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0giN3d3cxLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3
|
||||
Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53
|
||||
d3cyLndlYi1wbGF0Zm9ybS50ZXN0giZ3d3cueG4tLWx2ZS02bGFkLm5vdC13ZWIt
|
||||
cGxhdGZvcm0udGVzdIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3Jt
|
||||
LnRlc3SCJ3d3dzIueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
|
||||
eG4tLWx2ZS02bGFkLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid4bi0tbHZl
|
||||
LTZsYWQud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3d3dzEueG4tLWx2ZS02
|
||||
bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
|
||||
LnRlc3SCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
|
||||
d3d3MS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cyLnhu
|
||||
LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
|
||||
d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
|
||||
OGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13
|
||||
ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Lndl
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53
|
||||
ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdl
|
||||
Yi1wbGF0Zm9ybS50ZXN0gi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCL3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdl
|
||||
Yi1wbGF0Zm9ybS50ZXN0gjF3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90
|
||||
LXdlYi1wbGF0Zm9ybS50ZXN0gjF4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cu
|
||||
|
|
@ -107,19 +107,19 @@ bm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2
|
|||
MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdIIyd3d3MS54bi0tbjhqNmRzNTNsd3dr
|
||||
cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2ty
|
||||
cWh2MjhhLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNs
|
||||
d3drcnFodjI4YS53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLWx2ZS02
|
||||
bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gjZ4
|
||||
bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt
|
||||
LnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3dr
|
||||
cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
|
||||
d3drcnFodjI4YS53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZk
|
||||
czUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4
|
||||
bi0tbHZlLTZsYWQueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3Jt
|
||||
LnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1s
|
||||
dmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
|
||||
cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0
|
||||
gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
|
||||
YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAF/pURME
|
||||
NCx2OU8SxM3naApCfB/pYEX1mZm6rPEl7WCYaZy04z/eW8QL20n6qKNOYtENMwZy
|
||||
FEJyz3S0JMSJ5z/ZTWCwMbNVscIUjUT2ThXRgw7x8xLz9ob8fIxiC1Q2mVTwuVUV
|
||||
eJJ2ChAr4JKiReztuqdxoCsK2mxARSr0hEhqKSD2MFZXRW2BGs1ZXlUvRWV7nVw4
|
||||
/LnIdewpEOdKdDq8Z1g1eY/BXy58/HCw30zoLRdgfDOIoFrDHAcbB1oMA4U6EXcP
|
||||
vw7wEpcBMKZ8h0V5+ObZgaY/+qKi0QikZZYZy5gJHAch/3+cTU23pkMsCKiJLNQI
|
||||
hKcelbLd+4Arxtg=
|
||||
YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAGevd/IN
|
||||
6PpofThgH2cAwCPr13Cc+QyPXucqpv9Y01H1Yf9ZHalX6o+9OD9m3XoQqSKqnlV9
|
||||
Kk/FIL9Ihb4I4QxVNeWWYJfQ1a6VZDsHFAEJCLI1gLPd09A0gh2f2d9DirDbE4OT
|
||||
wKICpj+pOnJ/4UiqS1h3YjbyUNVCgJTNSUqsCUKM2OmOd6mejwRUsnP+tSU2JhfD
|
||||
O6ZwV3Rq+wvgGl+bOV6UE/zng9K0YGgjVwISE4sLtq744DaXeRCqlkvC4D9dqph6
|
||||
P37T/XA7oofDR7La+7gi9sHAWQmNvmF++wBIBRkIHxY9OpP+bjc/yp6u0hde6Z2z
|
||||
EFlk8xJ53JMsp8Y=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCpWZ4n9mkUhBok
|
||||
TuG3lVduL4dZlDxb0ztgwSLDnrAiB71GMxqtcpHlT/C4rgKVytqUa73p9iIIu3Wq
|
||||
cIkQBaJ5PwCsH665B3SwNuHYWlguAc+e2f4PkhB8qHhWQaSO50YT/F6NNaoc+JtY
|
||||
x+PeUyY81GRnEL5fCkJsuE0Vp7giCb99OFGSB2OpXB4LWgPJ5CLMW1qt7S0e78GA
|
||||
ukJLtE4aMZqLIVxkNgwJALYXDX3NJfY8P4PSeOuMu4vHUCSNBCdkhwFh5J7kkquX
|
||||
Ni8b7C9Z1zGqnAip5odHkX+OOya/zJJ7iN90PWk02/vatlRqK0KSRUOkNoerAQMj
|
||||
uDOoZ7jRAgMBAAECggEBAIn6LlW4+hxxFSuH6Xe+AaIQr2JY2GSoUbSfJ0fivva6
|
||||
/4d2k8HFmwEOhL6zZ//LaxOKRQ2eMFSVB2V6kvGu5ZWLs2yJ072FSZlY3eF8mmPB
|
||||
rftq+QiOpUgrqv/8M6sK25nlANRkaNl55HgNRKcbcAgXtEYU6kZdAYm7D3MZV3jC
|
||||
zOlDl26QJ2IP+Vls6SCsqQTnu+CybXtjLO5Cb7uzzif1b+tpSEBUPAOad6Cnb0PO
|
||||
ctLrQBEIa419o1BnAWpU+kOoafwGSszM7OaJc2FmKUvgbXtiUdci8AG09FRFyqrd
|
||||
Y12wYJ0wAdC5GVr+EWTIOQsdjo38eJLEmsPfYaRXjMECgYEA2H72HrXlwgLx37x+
|
||||
SI0bDLzqlDd9+9zvZH/0Wo8rbsothUu8PTrUGqEEuobaT1vsuMjBMFXi3yjTbVRn
|
||||
Ot8eo9bUIHI+/jz2UDKNpFk2Ids9ffgQXFNVYoVoKzhV3lRTIh07eqM8Q91uKpyv
|
||||
vyIYnu92XCYg1inG6MRxZIGYLMUCgYEAyEBcZEoARcKb5YxKxp8K0YM2FqQ8/pn3
|
||||
HkRC+Jo1jnYkiCeqrhVluCSfA5VrsqLdp7AQrJpdzE8mpx3sYA4s1P9GJ1qKdW7d
|
||||
r7z/aCGwkv+Pgx8v2HpKdaVaLxFdSAh64r9ItBasWQ9E9ZoyBKt2PPtvGtUxhtuV
|
||||
5fBONFVPdJ0CgYBs37xqSVOYM97rg2GGnt+hkkft7dI/nSYOxoJeIG3ZM3ec9y9d
|
||||
I36TPbKhEzwqeLIdY2g0JJ0JWQCqlK2tX5OLFXhsMMgZFxNP1XyB0BN3B0hvVxbz
|
||||
Nz1TZH+0bIpSWtnL6COHUxv1jR/f8hg36K+1DfvZ75rH2Q6c9F2KC9o5eQKBgGt0
|
||||
Vd+e8fx9DCimGm3wY96/GOQXZ397YOaF3KYIIdr7PGkvV+AoLTgdtpI2uN7XlDdq
|
||||
O9hS0ShUBLrCTNfSY248OQnfBNM1FZI6yZa4FUccCYdj0cnI/XGZtAXzvGlt23sX
|
||||
B81TKVJ05h0gi9yDoWPhy+HLKtNhu1LymxRr/sHlAoGAOKL7QvaBZRjS81PRd3IU
|
||||
NvdWK4N1Crtb/4SxVRziIApCpSZkqt6qjz17nX5L3U95s1N98Z+iiJc6kbUC+G44
|
||||
IQ17SFnyXb2UW43b9fqz+f046Yo0DOBOsNMolRzN204Mx7vUD97HQ2NuEnxDwb5+
|
||||
dO+J6L8VI3Y7T8bkeco50s0=
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyoagpfWeBqUrn
|
||||
aTFYZUuc8DZqDqmpB+jvGNj9vU/XOctNG+0XWI/uCa9p8kS1ugu0eo+85hvqHQpL
|
||||
laxI3avZp/l5HhQIUC+TjxtXNbO6bhkbhSb082qG/8zhCY08mJyob8z5ED+p7FBY
|
||||
YbHmqx1yySEo6urLin49MxRnswp46Jzx2S3Oc2BmltX6dvsgPrdxxDjCXH+BD+Y/
|
||||
dl5p03OxoLjkxMZHR3Qt3JLu+MpoAEteyDNqO5dIDXK9yQePhxMnf4Fg1MANhCjS
|
||||
2PTu7f5VTFmoLTsCaZiZum3zNkT/UOnIhz8knUAqhtXZ2PbCiEKmVqK3k/Pj8YOS
|
||||
R9lCCEa9AgMBAAECggEAGKn9wYjJTLEBdh/jSny7VXZ3VOp5s4HeQCZyo4pK5qva
|
||||
AxIQM5EsrPsVB3Bbhf9OVBjjatDCLu+GjIwkccUlpWkDfEfSZUQeZZCJ/7RwVeqT
|
||||
YzuIdvl7DnEYVUQP27uIpIXB9pZZ6/jZ2RzYHEIpJUBZveq9s4/c6/n3CcsXRD1C
|
||||
l+rem/LDIFaO/WyDPMpK4CQ+ChgjxtAS4CkS1RsgRjyqr9chvDpm/lB8V6Kxbofh
|
||||
7wR9rgm+TgzuvomY1cnWEaSgIJ8LaljSxr/cmWrzVM9LIoOKZy7uyuNxCGtToyEE
|
||||
Z7Hm0etfHP0SkmWocJtwk7vWgcKmpOkqQkWFeordswKBgQDsGJY+665Y0U6WNjsK
|
||||
5qgDm3/NbWnbtgq54Z8FVsuca9crRQBfNlCwWRrc/BLDn4i3/eb2KU3CpfKv498S
|
||||
M5BMgaPUvrMxZIagn5ydjoMAEoP8y4om7NcSlUY5lnemPLbX/tsoBsypPrDkXFPW
|
||||
592UgaQNbDzwLoQzv7TnqACtPwKBgQDBsN9aXkXNm4F2g8S4c0JISApohYEPYBqC
|
||||
Pxv3wzflfiAsPK7tecv8zYsHg0yZHcie7b4YqccFFlhk39EqP2d1RjhEhTjpD+pc
|
||||
hruF1isLPmdJ5fL/fKGntlYFNImobW/glqtMOAowYBBUU1iK4qv3jHieH307yMiM
|
||||
zP4lK2cBAwKBgGFqL6wckJ6DFlryW2A/FboPUidP6urF7R0PVA7e5jpPYMOwv9uJ
|
||||
TLfGvEfMFm3zCHVqZP7Swgv7buxWKHeZIQQARboFSWiq4sWptfRolfLUsPMAhKtU
|
||||
89TuFMC0LgBAcu0icgjM7Wszu8cttUYp+4pIB4mmTGqJtvCnPByNfGH/AoGAKPxw
|
||||
hwLj6no5jwabHhzlrb3w1eVKRiKj+WO5W1hn/5wM2s+MhJv9WmV0Qga6srvmtBrC
|
||||
2x0yDBWKZu4lqLb6AYr2ZSl7vXWsth+cltmXCi4OVUjffsi0vHSNB1TyvD1MK042
|
||||
uU4yecIaMn3ggqMsmJmU/IDVU01Ngt3t+ZeRmFkCgYEA5xVDH5MSYPqOiOS6wePf
|
||||
TU9j7XHQUlrT7xyZCn3hAVg1ZhuVtukxSj1Wu8dpJjccEjb2MBMgWw2TJsiKaHBT
|
||||
sFCevu+56UNq/YFm+8QP4ifGIeV/FCdUsgrhO6+TdRgFLrWcFjXi3CbGjb+PYhza
|
||||
gfmGAxeKXDS6s73sJbHEyZo=
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
|
|||
|
|
@ -1,114 +1,114 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 408802 (0x63ce2)
|
||||
Serial Number: 719467 (0xafa6b)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: CN=web-platform-tests
|
||||
Validity
|
||||
Not Before: Aug 12 01:01:36 2024 GMT
|
||||
Not After : Aug 12 01:01:36 2025 GMT
|
||||
Not Before: Jun 12 01:18:38 2025 GMT
|
||||
Not After : Jun 12 01:18:38 2026 GMT
|
||||
Subject: CN=web-platform.test
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public-Key: (2048 bit)
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:a9:59:9e:27:f6:69:14:84:1a:24:4e:e1:b7:95:
|
||||
57:6e:2f:87:59:94:3c:5b:d3:3b:60:c1:22:c3:9e:
|
||||
b0:22:07:bd:46:33:1a:ad:72:91:e5:4f:f0:b8:ae:
|
||||
02:95:ca:da:94:6b:bd:e9:f6:22:08:bb:75:aa:70:
|
||||
89:10:05:a2:79:3f:00:ac:1f:ae:b9:07:74:b0:36:
|
||||
e1:d8:5a:58:2e:01:cf:9e:d9:fe:0f:92:10:7c:a8:
|
||||
78:56:41:a4:8e:e7:46:13:fc:5e:8d:35:aa:1c:f8:
|
||||
9b:58:c7:e3:de:53:26:3c:d4:64:67:10:be:5f:0a:
|
||||
42:6c:b8:4d:15:a7:b8:22:09:bf:7d:38:51:92:07:
|
||||
63:a9:5c:1e:0b:5a:03:c9:e4:22:cc:5b:5a:ad:ed:
|
||||
2d:1e:ef:c1:80:ba:42:4b:b4:4e:1a:31:9a:8b:21:
|
||||
5c:64:36:0c:09:00:b6:17:0d:7d:cd:25:f6:3c:3f:
|
||||
83:d2:78:eb:8c:bb:8b:c7:50:24:8d:04:27:64:87:
|
||||
01:61:e4:9e:e4:92:ab:97:36:2f:1b:ec:2f:59:d7:
|
||||
31:aa:9c:08:a9:e6:87:47:91:7f:8e:3b:26:bf:cc:
|
||||
92:7b:88:df:74:3d:69:34:db:fb:da:b6:54:6a:2b:
|
||||
42:92:45:43:a4:36:87:ab:01:03:23:b8:33:a8:67:
|
||||
b8:d1
|
||||
00:b2:a1:a8:29:7d:67:81:a9:4a:e7:69:31:58:65:
|
||||
4b:9c:f0:36:6a:0e:a9:a9:07:e8:ef:18:d8:fd:bd:
|
||||
4f:d7:39:cb:4d:1b:ed:17:58:8f:ee:09:af:69:f2:
|
||||
44:b5:ba:0b:b4:7a:8f:bc:e6:1b:ea:1d:0a:4b:95:
|
||||
ac:48:dd:ab:d9:a7:f9:79:1e:14:08:50:2f:93:8f:
|
||||
1b:57:35:b3:ba:6e:19:1b:85:26:f4:f3:6a:86:ff:
|
||||
cc:e1:09:8d:3c:98:9c:a8:6f:cc:f9:10:3f:a9:ec:
|
||||
50:58:61:b1:e6:ab:1d:72:c9:21:28:ea:ea:cb:8a:
|
||||
7e:3d:33:14:67:b3:0a:78:e8:9c:f1:d9:2d:ce:73:
|
||||
60:66:96:d5:fa:76:fb:20:3e:b7:71:c4:38:c2:5c:
|
||||
7f:81:0f:e6:3f:76:5e:69:d3:73:b1:a0:b8:e4:c4:
|
||||
c6:47:47:74:2d:dc:92:ee:f8:ca:68:00:4b:5e:c8:
|
||||
33:6a:3b:97:48:0d:72:bd:c9:07:8f:87:13:27:7f:
|
||||
81:60:d4:c0:0d:84:28:d2:d8:f4:ee:ed:fe:55:4c:
|
||||
59:a8:2d:3b:02:69:98:99:ba:6d:f3:36:44:ff:50:
|
||||
e9:c8:87:3f:24:9d:40:2a:86:d5:d9:d8:f6:c2:88:
|
||||
42:a6:56:a2:b7:93:f3:e3:f1:83:92:47:d9:42:08:
|
||||
46:bd
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
66:7B:1B:9E:50:93:B0:87:2A:3D:B8:C9:9B:36:97:2C:D4:41:5C:08
|
||||
D6:4A:B3:AC:80:DE:98:80:19:04:63:9C:B3:6A:0C:66:CF:B9:5F:D2
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F8:49:74:07:1B:4F:1A:59:79:31:26:F8:C4:AB:D5:6F:7E:50:B1:D2
|
||||
|
||||
4A:80:BC:64:60:3B:38:B6:0D:04:E2:D4:88:4B:60:76:1A:D9:A4:FB
|
||||
X509v3 Key Usage:
|
||||
Digital Signature, Non Repudiation, Key Encipherment
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:web-platform.test, DNS:www.web-platform.test, DNS:not-web-platform.test, DNS:www2.web-platform.test, DNS:www1.web-platform.test, DNS:www.not-web-platform.test, DNS:www.www.web-platform.test, DNS:www.www2.web-platform.test, DNS:www1.not-web-platform.test, DNS:www2.www.web-platform.test, DNS:www.www1.web-platform.test, DNS:www2.not-web-platform.test, DNS:www1.www.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www1.www2.web-platform.test, DNS:www.www.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www1.www.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:www.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:www2.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www2.not-web-platform.test, DNS:xn--lve-6lad.www1.not-web-platform.test, DNS:www1.xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
|
||||
DNS:web-platform.test, DNS:not-web-platform.test, DNS:www.web-platform.test, DNS:www1.web-platform.test, DNS:www2.web-platform.test, DNS:www.www.web-platform.test, DNS:www.not-web-platform.test, DNS:www2.www.web-platform.test, DNS:www1.www.web-platform.test, DNS:www2.not-web-platform.test, DNS:www1.not-web-platform.test, DNS:www.www1.web-platform.test, DNS:www.www2.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www1.www2.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www.www.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www.www1.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www1.www.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:www.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:xn--lve-6lad.www2.not-web-platform.test, DNS:www1.xn--lve-6lad.not-web-platform.test, DNS:www2.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www1.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
1f:db:5d:ea:4c:6f:5a:5b:27:70:8e:e1:37:e5:71:cc:0b:67:
|
||||
65:49:f9:e7:30:0d:d2:3b:c8:a0:b5:63:42:77:3c:10:f2:79:
|
||||
2b:0e:46:04:95:3e:57:46:73:62:46:28:5b:6d:f8:c8:50:2f:
|
||||
23:d3:2a:aa:2f:f7:1f:b1:2e:d4:07:6f:56:f8:ab:90:f1:a5:
|
||||
4b:10:a4:c7:77:72:68:a3:3e:6d:c3:0e:a1:5c:98:a9:65:83:
|
||||
87:ef:a5:6d:7d:ed:d9:18:30:fb:49:87:b0:99:01:32:ad:88:
|
||||
02:61:9d:ac:7f:b4:c3:34:bc:9a:83:e3:ef:8d:dc:3b:cc:18:
|
||||
58:a3:69:fd:cf:fb:81:48:24:82:8e:01:92:1f:a4:95:79:3c:
|
||||
2a:bc:5b:c3:7a:02:6d:7f:8b:1f:2b:4a:95:da:50:9b:d5:d3:
|
||||
3c:4d:eb:6c:1f:8d:52:65:8a:c3:3c:77:7b:9a:63:f2:5c:71:
|
||||
ab:77:c1:65:28:80:a6:eb:22:99:a8:95:14:4b:63:c9:77:8e:
|
||||
75:a3:7b:0f:9b:66:47:74:68:10:0a:aa:4b:3c:55:b1:59:8d:
|
||||
0f:24:7b:3b:93:ed:30:69:cd:08:f9:c5:90:34:fc:21:8c:cb:
|
||||
9b:8b:ef:5e:4e:d3:a1:86:3b:e9:7d:1c:79:aa:a2:3e:df:b8:
|
||||
09:09:01:82
|
||||
Signature Value:
|
||||
ad:fd:86:c0:90:e1:59:8a:1b:7d:50:fe:c8:cd:6a:26:ee:b6:
|
||||
64:0b:46:92:88:10:2e:bc:8d:fd:9f:e9:72:95:56:3e:bc:4b:
|
||||
a5:11:9b:ab:ec:d8:68:bc:0e:f3:0b:d0:ef:89:b3:d9:47:8a:
|
||||
2f:dc:fa:84:0b:74:0e:64:e6:ae:2a:4e:46:76:0c:9c:04:86:
|
||||
eb:ed:1b:d6:ca:0c:58:7b:82:a8:95:df:63:3d:0c:1b:89:91:
|
||||
af:02:4c:d0:c9:4c:5d:96:e1:4a:8d:37:a8:81:54:9f:75:1c:
|
||||
7d:f6:19:83:fe:b4:1c:1f:f3:5f:ae:5a:45:1c:30:99:04:14:
|
||||
5f:10:55:50:8c:0a:da:61:ff:2b:f4:c7:18:fd:22:6f:3d:7d:
|
||||
b8:1f:6c:de:1d:e6:be:ec:2d:72:48:4f:f5:5c:9d:eb:3b:b9:
|
||||
c9:bb:55:d8:1a:c7:52:fd:9d:33:7d:74:29:7d:22:66:bf:76:
|
||||
5e:dd:3d:9e:3b:a8:5d:f7:80:8a:37:d4:2e:6a:88:1e:41:ed:
|
||||
a0:6e:e4:1d:d1:47:85:07:cf:ab:9f:66:b3:a6:35:5d:84:e3:
|
||||
70:ac:95:f9:7a:48:fb:af:b9:93:72:5e:81:41:c0:c0:08:db:
|
||||
eb:31:f7:3f:64:d2:5c:75:60:f7:8a:5c:f3:06:a8:42:e8:3c:
|
||||
3d:c6:81:9b
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIMsjCCC5qgAwIBAgIDBjziMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNDA4MTIwMTAxMzZaFw0yNTA4MTIwMTAxMzZa
|
||||
MIIMsjCCC5qgAwIBAgIDCvprMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNTA2MTIwMTE4MzhaFw0yNjA2MTIwMTE4Mzha
|
||||
MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAQ8AMIIBCgKCAQEAqVmeJ/ZpFIQaJE7ht5VXbi+HWZQ8W9M7YMEiw56wIge9
|
||||
RjMarXKR5U/wuK4ClcralGu96fYiCLt1qnCJEAWieT8ArB+uuQd0sDbh2FpYLgHP
|
||||
ntn+D5IQfKh4VkGkjudGE/xejTWqHPibWMfj3lMmPNRkZxC+XwpCbLhNFae4Igm/
|
||||
fThRkgdjqVweC1oDyeQizFtare0tHu/BgLpCS7ROGjGaiyFcZDYMCQC2Fw19zSX2
|
||||
PD+D0njrjLuLx1AkjQQnZIcBYeSe5JKrlzYvG+wvWdcxqpwIqeaHR5F/jjsmv8yS
|
||||
e4jfdD1pNNv72rZUaitCkkVDpDaHqwEDI7gzqGe40QIDAQABo4IJ+jCCCfYwCQYD
|
||||
VR0TBAIwADAdBgNVHQ4EFgQUZnsbnlCTsIcqPbjJmzaXLNRBXAgwHwYDVR0jBBgw
|
||||
FoAU+El0BxtPGll5MSb4xKvVb35QsdIwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
|
||||
CCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiCEXdlYi1wbGF0Zm9ybS50ZXN0ghV3
|
||||
d3cud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13ZWItcGxhdGZvcm0udGVzdIIWd3d3
|
||||
Mi53ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIZd3d3
|
||||
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVz
|
||||
dIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEubm90LXdlYi1wbGF0
|
||||
Zm9ybS50ZXN0ghp3d3cyLnd3dy53ZWItcGxhdGZvcm0udGVzdIIad3d3Lnd3dzEu
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3
|
||||
d3cxLnd3dy53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cxLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0ght3d3cyLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCG3d3dzIud3d3Mi53
|
||||
ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0gh13
|
||||
d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Lnd3dzIubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gh53d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnhu
|
||||
LS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIed3d3Lnd3dzEubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gh53d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3
|
||||
dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2Vi
|
||||
AAOCAQ8AMIIBCgKCAQEAsqGoKX1ngalK52kxWGVLnPA2ag6pqQfo7xjY/b1P1znL
|
||||
TRvtF1iP7gmvafJEtboLtHqPvOYb6h0KS5WsSN2r2af5eR4UCFAvk48bVzWzum4Z
|
||||
G4Um9PNqhv/M4QmNPJicqG/M+RA/qexQWGGx5qsdcskhKOrqy4p+PTMUZ7MKeOic
|
||||
8dktznNgZpbV+nb7ID63ccQ4wlx/gQ/mP3ZeadNzsaC45MTGR0d0LdyS7vjKaABL
|
||||
XsgzajuXSA1yvckHj4cTJ3+BYNTADYQo0tj07u3+VUxZqC07AmmYmbpt8zZE/1Dp
|
||||
yIc/JJ1AKobV2dj2wohCplait5Pz4/GDkkfZQghGvQIDAQABo4IJ+jCCCfYwCQYD
|
||||
VR0TBAIwADAdBgNVHQ4EFgQU1kqzrIDemIAZBGOcs2oMZs+5X9IwHwYDVR0jBBgw
|
||||
FoAUSoC8ZGA7OLYNBOLUiEtgdhrZpPswCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
|
||||
CCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiCEXdlYi1wbGF0Zm9ybS50ZXN0ghVu
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3SCFXd3dy53ZWItcGxhdGZvcm0udGVzdIIWd3d3
|
||||
MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWItcGxhdGZvcm0udGVzdIIZd3d3
|
||||
Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
|
||||
dIIad3d3Mi53d3cud2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3LndlYi1wbGF0
|
||||
Zm9ybS50ZXN0ghp3d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3MS5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCGnd3dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ghp3
|
||||
d3cud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cxLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0ght3d3cxLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCG3d3dzEud3d3MS53
|
||||
ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0gh13
|
||||
d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Mi53d3cubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnhu
|
||||
LS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIed3d3MS53d3cubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gh53d3cud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3
|
||||
dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
|
||||
H3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZs
|
||||
YWQud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRm
|
||||
b3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCI3hu
|
||||
LS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9ybS50ZXN0giN3d3cyLnhuLS1sdmUt
|
||||
NmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBs
|
||||
YXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0
|
||||
H3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZs
|
||||
YWQud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRm
|
||||
b3JtLnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCI3hu
|
||||
LS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0giN3d3cxLnhuLS1sdmUt
|
||||
NmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3Mi54bi0tbHZlLTZsYWQud2ViLXBs
|
||||
YXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9ybS50ZXN0
|
||||
giZ3d3cueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIImeG4tLWx2
|
||||
ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3d3dzIueG4tLWx2ZS02
|
||||
bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIIneG4tLWx2ZS02bGFkLnd3dzIubm90
|
||||
LXdlYi1wbGF0Zm9ybS50ZXN0gid4bi0tbHZlLTZsYWQud3d3MS5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3SCJ3d3dzEueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0u
|
||||
ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
|
||||
d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIInd3d3MS54bi0tbHZlLTZsYWQubm90
|
||||
LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cyLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53d3cxLm5vdC13ZWItcGxhdGZvcm0u
|
||||
dGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SC
|
||||
K3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCLXhu
|
||||
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdIIteG4t
|
||||
LW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1wbGF0Zm9ybS50ZXN0gi13d3cu
|
||||
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWItcGxhdGZvcm0udGVzdIIteG4t
|
||||
LW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gi13d3cu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
|
||||
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzIu
|
||||
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
|
||||
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzIu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzEu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
|
||||
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCL3huLS1s
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCL3huLS1s
|
||||
dmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF3d3cu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF4
|
||||
bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0
|
||||
|
|
@ -116,18 +116,18 @@ gjJ3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0u
|
|||
dGVzdIIyd3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRm
|
||||
b3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cxLm5vdC13
|
||||
ZWItcGxhdGZvcm0udGVzdII2eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2ty
|
||||
cWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbjhqNmRzNTNsd3drcnFodjI4
|
||||
YS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1uOGo2ZHM1M2x3
|
||||
d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCOnhu
|
||||
LS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRm
|
||||
ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2
|
||||
ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbHZlLTZsYWQueG4tLW44ajZk
|
||||
czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54
|
||||
bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCOnhu
|
||||
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRm
|
||||
b3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3
|
||||
d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFo
|
||||
djI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
c3QwDQYJKoZIhvcNAQELBQADggEBAB/bXepMb1pbJ3CO4TflccwLZ2VJ+ecwDdI7
|
||||
yKC1Y0J3PBDyeSsORgSVPldGc2JGKFtt+MhQLyPTKqov9x+xLtQHb1b4q5DxpUsQ
|
||||
pMd3cmijPm3DDqFcmKllg4fvpW197dkYMPtJh7CZATKtiAJhnax/tMM0vJqD4++N
|
||||
3DvMGFijaf3P+4FIJIKOAZIfpJV5PCq8W8N6Am1/ix8rSpXaUJvV0zxN62wfjVJl
|
||||
isM8d3uaY/Jccat3wWUogKbrIpmolRRLY8l3jnWjew+bZkd0aBAKqks8VbFZjQ8k
|
||||
ezuT7TBpzQj5xZA0/CGMy5uL715O06GGO+l9HHmqoj7fuAkJAYI=
|
||||
c3QwDQYJKoZIhvcNAQELBQADggEBAK39hsCQ4VmKG31Q/sjNaibutmQLRpKIEC68
|
||||
jf2f6XKVVj68S6URm6vs2Gi8DvML0O+Js9lHii/c+oQLdA5k5q4qTkZ2DJwEhuvt
|
||||
G9bKDFh7gqiV32M9DBuJka8CTNDJTF2W4UqNN6iBVJ91HH32GYP+tBwf81+uWkUc
|
||||
MJkEFF8QVVCMCtph/yv0xxj9Im89fbgfbN4d5r7sLXJIT/Vcnes7ucm7Vdgax1L9
|
||||
nTN9dCl9Ima/dl7dPZ47qF33gIo31C5qiB5B7aBu5B3RR4UHz6ufZrOmNV2E43Cs
|
||||
lfl6SPuvuZNyXoFBwMAI2+sx9z9k0lx1YPeKXPMGqELoPD3GgZs=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ dom/media/gmp/rlz/
|
|||
dom/media/gmp/widevine-adapter/content_decryption_module_export.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module_ext.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module.h
|
||||
dom/media/gmp/widevine-adapter/content_decryption_module_proxy.h
|
||||
dom/media/platforms/ffmpeg/ffmpeg57/
|
||||
dom/media/platforms/ffmpeg/ffmpeg58/
|
||||
dom/media/platforms/ffmpeg/ffmpeg59/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue