| // services/video_capture/public/mojom/virtual_device.mojom-blink.h is auto generated by mojom_bindings_generator.py, do not edit |
| |
| // Copyright 2013 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 SERVICES_VIDEO_CAPTURE_PUBLIC_MOJOM_VIRTUAL_DEVICE_MOJOM_BLINK_H_ |
| #define SERVICES_VIDEO_CAPTURE_PUBLIC_MOJOM_VIRTUAL_DEVICE_MOJOM_BLINK_H_ |
| |
| #include <stdint.h> |
| |
| #include <limits> |
| #include <type_traits> |
| #include <utility> |
| |
| #include "third_party/abseil-cpp/absl/types/optional.h" |
| #include "mojo/public/cpp/bindings/clone_traits.h" |
| #include "mojo/public/cpp/bindings/equals_traits.h" |
| #include "mojo/public/cpp/bindings/lib/serialization.h" |
| #include "mojo/public/cpp/bindings/struct_ptr.h" |
| #include "mojo/public/cpp/bindings/struct_traits.h" |
| #include "mojo/public/cpp/bindings/union_traits.h" |
| |
| #include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h" |
| |
| #include "services/video_capture/public/mojom/virtual_device.mojom-shared.h" |
| #include "services/video_capture/public/mojom/virtual_device.mojom-blink-forward.h" |
| #include "media/capture/mojom/video_capture_buffer.mojom-blink-forward.h" |
| #include "media/capture/mojom/video_capture_types.mojom-blink.h" |
| #include "services/video_capture/public/mojom/producer.mojom-blink-forward.h" |
| #include "services/video_capture/public/mojom/video_frame_handler.mojom-blink-forward.h" |
| #include "ui/gfx/geometry/mojom/geometry.mojom-blink.h" |
| #include "ui/gfx/mojom/buffer_types.mojom-blink.h" |
| |
| #include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h" |
| #include "mojo/public/cpp/bindings/lib/wtf_hash_util.h" |
| #include "third_party/blink/renderer/platform/wtf/hash_functions.h" |
| #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" |
| |
| #include "mojo/public/cpp/bindings/lib/control_message_handler.h" |
| #include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h" |
| |
| |
| |
| #ifdef KYTHE_IS_RUNNING |
| #pragma kythe_inline_metadata "Metadata comment" |
| #endif |
| |
| |
| namespace video_capture { |
| namespace mojom { |
| namespace blink { |
| |
| class SharedMemoryVirtualDeviceProxy; |
| |
| template <typename ImplRefTraits> |
| class SharedMemoryVirtualDeviceStub; |
| |
| class SharedMemoryVirtualDeviceRequestValidator; |
| class SharedMemoryVirtualDeviceResponseValidator; |
| |
| |
| // @generated_from: video_capture.mojom.SharedMemoryVirtualDevice |
| class SharedMemoryVirtualDevice |
| : public SharedMemoryVirtualDeviceInterfaceBase { |
| public: |
| static const char Name_[]; |
| static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message); |
| static const char* MessageToMethodName_(mojo::Message& message); |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = false; |
| static constexpr bool HasSyncMethods_ = false; |
| static constexpr bool HasUninterruptableMethods_ = false; |
| |
| using Base_ = SharedMemoryVirtualDeviceInterfaceBase; |
| using Proxy_ = SharedMemoryVirtualDeviceProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = SharedMemoryVirtualDeviceStub<ImplRefTraits>; |
| |
| using RequestValidator_ = SharedMemoryVirtualDeviceRequestValidator; |
| using ResponseValidator_ = SharedMemoryVirtualDeviceResponseValidator; |
| enum MethodMinVersions : uint32_t { |
| kRequestFrameBufferMinVersion = 0, |
| kOnFrameReadyInBufferMinVersion = 0, |
| }; |
| |
| // crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK |
| // with not having this data in traces there. |
| #if !BUILDFLAG(IS_FUCHSIA) |
| struct RequestFrameBuffer_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct OnFrameReadyInBuffer_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| #endif // !BUILDFLAG(IS_FUCHSIA) |
| virtual ~SharedMemoryVirtualDevice() = default; |
| |
| |
| using RequestFrameBufferCallback = base::OnceCallback<void(int32_t)>; |
| |
| // @generated_from: video_capture.mojom.SharedMemoryVirtualDevice.RequestFrameBuffer |
| virtual void RequestFrameBuffer(const ::gfx::Size& dimension, ::media::VideoPixelFormat pixel_format, ::media::mojom::blink::PlaneStridesPtr strides, RequestFrameBufferCallback callback) = 0; |
| |
| |
| // @generated_from: video_capture.mojom.SharedMemoryVirtualDevice.OnFrameReadyInBuffer |
| virtual void OnFrameReadyInBuffer(int32_t buffer_id, ::media::mojom::blink::VideoFrameInfoPtr frame_info) = 0; |
| }; |
| |
| class TextureVirtualDeviceProxy; |
| |
| template <typename ImplRefTraits> |
| class TextureVirtualDeviceStub; |
| |
| class TextureVirtualDeviceRequestValidator; |
| |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice |
| class TextureVirtualDevice |
| : public TextureVirtualDeviceInterfaceBase { |
| public: |
| static const char Name_[]; |
| static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message); |
| static const char* MessageToMethodName_(mojo::Message& message); |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = false; |
| static constexpr bool HasSyncMethods_ = false; |
| static constexpr bool HasUninterruptableMethods_ = false; |
| |
| using Base_ = TextureVirtualDeviceInterfaceBase; |
| using Proxy_ = TextureVirtualDeviceProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = TextureVirtualDeviceStub<ImplRefTraits>; |
| |
| using RequestValidator_ = TextureVirtualDeviceRequestValidator; |
| using ResponseValidator_ = mojo::PassThroughFilter; |
| enum MethodMinVersions : uint32_t { |
| kOnNewMailboxHolderBufferHandleMinVersion = 0, |
| kOnFrameAccessHandlerReadyMinVersion = 0, |
| kOnFrameReadyInBufferMinVersion = 0, |
| kOnBufferRetiredMinVersion = 0, |
| }; |
| |
| // crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK |
| // with not having this data in traces there. |
| #if !BUILDFLAG(IS_FUCHSIA) |
| struct OnNewMailboxHolderBufferHandle_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct OnFrameAccessHandlerReady_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct OnFrameReadyInBuffer_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct OnBufferRetired_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| #endif // !BUILDFLAG(IS_FUCHSIA) |
| virtual ~TextureVirtualDevice() = default; |
| |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnNewMailboxHolderBufferHandle |
| virtual void OnNewMailboxHolderBufferHandle(int32_t buffer_id, ::media::mojom::blink::MailboxBufferHandleSetPtr mailbox_handles) = 0; |
| |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnFrameAccessHandlerReady |
| virtual void OnFrameAccessHandlerReady(::mojo::PendingRemote<::video_capture::mojom::blink::VideoFrameAccessHandler> frame_access_handler) = 0; |
| |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnFrameReadyInBuffer |
| virtual void OnFrameReadyInBuffer(int32_t buffer_id, ::media::mojom::blink::VideoFrameInfoPtr frame_info) = 0; |
| |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnBufferRetired |
| virtual void OnBufferRetired(int32_t buffer_id) = 0; |
| }; |
| |
| class GpuMemoryBufferVirtualDeviceProxy; |
| |
| template <typename ImplRefTraits> |
| class GpuMemoryBufferVirtualDeviceStub; |
| |
| class GpuMemoryBufferVirtualDeviceRequestValidator; |
| |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice |
| class GpuMemoryBufferVirtualDevice |
| : public GpuMemoryBufferVirtualDeviceInterfaceBase { |
| public: |
| static const char Name_[]; |
| static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message); |
| static const char* MessageToMethodName_(mojo::Message& message); |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = false; |
| static constexpr bool HasSyncMethods_ = false; |
| static constexpr bool HasUninterruptableMethods_ = false; |
| |
| using Base_ = GpuMemoryBufferVirtualDeviceInterfaceBase; |
| using Proxy_ = GpuMemoryBufferVirtualDeviceProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = GpuMemoryBufferVirtualDeviceStub<ImplRefTraits>; |
| |
| using RequestValidator_ = GpuMemoryBufferVirtualDeviceRequestValidator; |
| using ResponseValidator_ = mojo::PassThroughFilter; |
| enum MethodMinVersions : uint32_t { |
| kOnNewGpuMemoryBufferHandleMinVersion = 0, |
| kOnFrameAccessHandlerReadyMinVersion = 0, |
| kOnFrameReadyInBufferMinVersion = 0, |
| kOnBufferRetiredMinVersion = 0, |
| }; |
| |
| // crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK |
| // with not having this data in traces there. |
| #if !BUILDFLAG(IS_FUCHSIA) |
| struct OnNewGpuMemoryBufferHandle_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct OnFrameAccessHandlerReady_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct OnFrameReadyInBuffer_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct OnBufferRetired_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| #endif // !BUILDFLAG(IS_FUCHSIA) |
| virtual ~GpuMemoryBufferVirtualDevice() = default; |
| |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnNewGpuMemoryBufferHandle |
| virtual void OnNewGpuMemoryBufferHandle(int32_t buffer_id, ::gfx::GpuMemoryBufferHandle gmb_handle) = 0; |
| |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnFrameAccessHandlerReady |
| virtual void OnFrameAccessHandlerReady(::mojo::PendingRemote<::video_capture::mojom::blink::VideoFrameAccessHandler> frame_access_handler) = 0; |
| |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnFrameReadyInBuffer |
| virtual void OnFrameReadyInBuffer(int32_t buffer_id, ::media::mojom::blink::VideoFrameInfoPtr frame_info) = 0; |
| |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnBufferRetired |
| virtual void OnBufferRetired(int32_t buffer_id) = 0; |
| }; |
| |
| |
| |
| // @generated_from: video_capture.mojom.SharedMemoryVirtualDevice |
| class SharedMemoryVirtualDeviceProxy |
| : public SharedMemoryVirtualDevice { |
| public: |
| using InterfaceType = SharedMemoryVirtualDevice; |
| |
| explicit SharedMemoryVirtualDeviceProxy(mojo::MessageReceiverWithResponder* receiver); |
| |
| // @generated_from: video_capture.mojom.SharedMemoryVirtualDevice.RequestFrameBuffer |
| void RequestFrameBuffer(const ::gfx::Size& dimension, ::media::VideoPixelFormat pixel_format, ::media::mojom::blink::PlaneStridesPtr strides, RequestFrameBufferCallback callback) final; |
| |
| // @generated_from: video_capture.mojom.SharedMemoryVirtualDevice.OnFrameReadyInBuffer |
| void OnFrameReadyInBuffer(int32_t buffer_id, ::media::mojom::blink::VideoFrameInfoPtr frame_info) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| |
| |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice |
| class TextureVirtualDeviceProxy |
| : public TextureVirtualDevice { |
| public: |
| using InterfaceType = TextureVirtualDevice; |
| |
| explicit TextureVirtualDeviceProxy(mojo::MessageReceiverWithResponder* receiver); |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnNewMailboxHolderBufferHandle |
| void OnNewMailboxHolderBufferHandle(int32_t buffer_id, ::media::mojom::blink::MailboxBufferHandleSetPtr mailbox_handles) final; |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnFrameAccessHandlerReady |
| void OnFrameAccessHandlerReady(::mojo::PendingRemote<::video_capture::mojom::blink::VideoFrameAccessHandler> frame_access_handler) final; |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnFrameReadyInBuffer |
| void OnFrameReadyInBuffer(int32_t buffer_id, ::media::mojom::blink::VideoFrameInfoPtr frame_info) final; |
| |
| // @generated_from: video_capture.mojom.TextureVirtualDevice.OnBufferRetired |
| void OnBufferRetired(int32_t buffer_id) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| |
| |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice |
| class GpuMemoryBufferVirtualDeviceProxy |
| : public GpuMemoryBufferVirtualDevice { |
| public: |
| using InterfaceType = GpuMemoryBufferVirtualDevice; |
| |
| explicit GpuMemoryBufferVirtualDeviceProxy(mojo::MessageReceiverWithResponder* receiver); |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnNewGpuMemoryBufferHandle |
| void OnNewGpuMemoryBufferHandle(int32_t buffer_id, ::gfx::GpuMemoryBufferHandle gmb_handle) final; |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnFrameAccessHandlerReady |
| void OnFrameAccessHandlerReady(::mojo::PendingRemote<::video_capture::mojom::blink::VideoFrameAccessHandler> frame_access_handler) final; |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnFrameReadyInBuffer |
| void OnFrameReadyInBuffer(int32_t buffer_id, ::media::mojom::blink::VideoFrameInfoPtr frame_info) final; |
| |
| // @generated_from: video_capture.mojom.GpuMemoryBufferVirtualDevice.OnBufferRetired |
| void OnBufferRetired(int32_t buffer_id) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| class SharedMemoryVirtualDeviceStubDispatch { |
| public: |
| static bool Accept(SharedMemoryVirtualDevice* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| SharedMemoryVirtualDevice* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<SharedMemoryVirtualDevice>> |
| class SharedMemoryVirtualDeviceStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| SharedMemoryVirtualDeviceStub() = default; |
| ~SharedMemoryVirtualDeviceStub() override = default; |
| |
| void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } |
| ImplPointerType& sink() { return sink_; } |
| |
| bool Accept(mojo::Message* message) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return SharedMemoryVirtualDeviceStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return SharedMemoryVirtualDeviceStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class TextureVirtualDeviceStubDispatch { |
| public: |
| static bool Accept(TextureVirtualDevice* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| TextureVirtualDevice* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<TextureVirtualDevice>> |
| class TextureVirtualDeviceStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| TextureVirtualDeviceStub() = default; |
| ~TextureVirtualDeviceStub() override = default; |
| |
| void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } |
| ImplPointerType& sink() { return sink_; } |
| |
| bool Accept(mojo::Message* message) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return TextureVirtualDeviceStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return TextureVirtualDeviceStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class GpuMemoryBufferVirtualDeviceStubDispatch { |
| public: |
| static bool Accept(GpuMemoryBufferVirtualDevice* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| GpuMemoryBufferVirtualDevice* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<GpuMemoryBufferVirtualDevice>> |
| class GpuMemoryBufferVirtualDeviceStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| GpuMemoryBufferVirtualDeviceStub() = default; |
| ~GpuMemoryBufferVirtualDeviceStub() override = default; |
| |
| void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } |
| ImplPointerType& sink() { return sink_; } |
| |
| bool Accept(mojo::Message* message) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return GpuMemoryBufferVirtualDeviceStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return GpuMemoryBufferVirtualDeviceStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class SharedMemoryVirtualDeviceRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class TextureVirtualDeviceRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class GpuMemoryBufferVirtualDeviceRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class SharedMemoryVirtualDeviceResponseValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| |
| |
| |
| |
| |
| } // namespace blink |
| } // namespace mojom |
| } // namespace video_capture |
| |
| namespace mojo { |
| |
| } // namespace mojo |
| |
| #endif // SERVICES_VIDEO_CAPTURE_PUBLIC_MOJOM_VIRTUAL_DEVICE_MOJOM_BLINK_H_ |
| |
| /* Metadata comment |
| eyJtZXRhIjogW3siZW5kIjogMjM5NiwgImJlZ2luIjogMjM3MSwgImVkZ2UiOiAiJS9reXRoZS9l |
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw |
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui |
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogInZpZGVvX2NhcHR1cmUubW9qb20uU2hhcmVkTWVtb3J5 |
| VmlydHVhbERldmljZSJ9fSwgeyJlbmQiOiAzOTEwLCAiYmVnaW4iOiAzODkyLCAiZWRnZSI6ICIl |
| L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi |
| OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs |
| YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidmlkZW9fY2FwdHVyZS5tb2pvbS5TaGFy |
| ZWRNZW1vcnlWaXJ0dWFsRGV2aWNlLlJlcXVlc3RGcmFtZUJ1ZmZlciJ9fSwgeyJlbmQiOiA0MTk3 |
| LCAiYmVnaW4iOiA0MTc3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi |
| OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz |
| b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi |
| OiAidmlkZW9fY2FwdHVyZS5tb2pvbS5TaGFyZWRNZW1vcnlWaXJ0dWFsRGV2aWNlLk9uRnJhbWVS |
| ZWFkeUluQnVmZmVyIn19LCB7ImVuZCI6IDQ1MTQsICJiZWdpbiI6IDQ0OTQsICJlZGdlIjogIiUv |
| a3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6 |
| IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxh |
| bmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2aWRlb19jYXB0dXJlLm1vam9tLlRleHR1 |
| cmVWaXJ0dWFsRGV2aWNlIn19LCB7ImVuZCI6IDYxODksICJiZWdpbiI6IDYxNTksICJlZGdlIjog |
| IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFt |
| ZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwg |
| Imxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2aWRlb19jYXB0dXJlLm1vam9tLlRl |
| eHR1cmVWaXJ0dWFsRGV2aWNlLk9uTmV3TWFpbGJveEhvbGRlckJ1ZmZlckhhbmRsZSJ9fSwgeyJl |
| bmQiOiA2NDExLCAiYmVnaW4iOiA2Mzg2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz |
| IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1 |
| bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz |
| aWduYXR1cmUiOiAidmlkZW9fY2FwdHVyZS5tb2pvbS5UZXh0dXJlVmlydHVhbERldmljZS5PbkZy |
| YW1lQWNjZXNzSGFuZGxlclJlYWR5In19LCB7ImVuZCI6IDY2MzgsICJiZWdpbiI6IDY2MTgsICJl |
| ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs |
| ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v |
| c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2aWRlb19jYXB0dXJlLm1v |
| am9tLlRleHR1cmVWaXJ0dWFsRGV2aWNlLk9uRnJhbWVSZWFkeUluQnVmZmVyIn19LCB7ImVuZCI6 |
| IDY4MjcsICJiZWdpbiI6IDY4MTIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAi |
| dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdv |
| b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25h |
| dHVyZSI6ICJ2aWRlb19jYXB0dXJlLm1vam9tLlRleHR1cmVWaXJ0dWFsRGV2aWNlLk9uQnVmZmVy |
| UmV0aXJlZCJ9fSwgeyJlbmQiOiA3MTMxLCAiYmVnaW4iOiA3MTAzLCAiZWRnZSI6ICIlL2t5dGhl |
| L2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNv |
| cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFn |
| ZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidmlkZW9fY2FwdHVyZS5tb2pvbS5HcHVNZW1vcnlC |
| dWZmZXJWaXJ0dWFsRGV2aWNlIn19LCB7ImVuZCI6IDg4NDYsICJiZWdpbiI6IDg4MjAsICJlZGdl |
| IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2 |
| bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj |
| IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2aWRlb19jYXB0dXJlLm1vam9t |
| LkdwdU1lbW9yeUJ1ZmZlclZpcnR1YWxEZXZpY2UuT25OZXdHcHVNZW1vcnlCdWZmZXJIYW5kbGUi |
| fX0sIHsiZW5kIjogOTA1MSwgImJlZ2luIjogOTAyNiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl |
| bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi |
| Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q |
| b20iLCAic2lnbmF0dXJlIjogInZpZGVvX2NhcHR1cmUubW9qb20uR3B1TWVtb3J5QnVmZmVyVmly |
| dHVhbERldmljZS5PbkZyYW1lQWNjZXNzSGFuZGxlclJlYWR5In19LCB7ImVuZCI6IDkyODYsICJi |
| ZWdpbiI6IDkyNjYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJh |
| bmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj |
| ZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2 |
| aWRlb19jYXB0dXJlLm1vam9tLkdwdU1lbW9yeUJ1ZmZlclZpcnR1YWxEZXZpY2UuT25GcmFtZVJl |
| YWR5SW5CdWZmZXIifX0sIHsiZW5kIjogOTQ4MywgImJlZ2luIjogOTQ2OCwgImVkZ2UiOiAiJS9r |
| eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog |
| eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu |
| Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInZpZGVvX2NhcHR1cmUubW9qb20uR3B1TWVt |
| b3J5QnVmZmVyVmlydHVhbERldmljZS5PbkJ1ZmZlclJldGlyZWQifX0sIHsiZW5kIjogOTkyMiwg |
| ImJlZ2luIjogOTkwNCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog |
| ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291 |
| cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog |
| InZpZGVvX2NhcHR1cmUubW9qb20uU2hhcmVkTWVtb3J5VmlydHVhbERldmljZS5SZXF1ZXN0RnJh |
| bWVCdWZmZXIifX0sIHsiZW5kIjogMTAyMDIsICJiZWdpbiI6IDEwMTgyLCAiZWRnZSI6ICIlL2t5 |
| dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7 |
| ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5n |
| dWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidmlkZW9fY2FwdHVyZS5tb2pvbS5TaGFyZWRN |
| ZW1vcnlWaXJ0dWFsRGV2aWNlLk9uRnJhbWVSZWFkeUluQnVmZmVyIn19LCB7ImVuZCI6IDEwNzUw |
| LCAiYmVnaW4iOiAxMDcyMCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl |
| IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl |
| c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl |
| IjogInZpZGVvX2NhcHR1cmUubW9qb20uVGV4dHVyZVZpcnR1YWxEZXZpY2UuT25OZXdNYWlsYm94 |
| SG9sZGVyQnVmZmVySGFuZGxlIn19LCB7ImVuZCI6IDEwOTY1LCAiYmVnaW4iOiAxMDk0MCwgImVk |
| Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg |
| InZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9z |
| cmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInZpZGVvX2NhcHR1cmUubW9q |
| b20uVGV4dHVyZVZpcnR1YWxEZXZpY2UuT25GcmFtZUFjY2Vzc0hhbmRsZXJSZWFkeSJ9fSwgeyJl |
| bmQiOiAxMTE4NSwgImJlZ2luIjogMTExNjUsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0 |
| ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t |
| aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg |
| InNpZ25hdHVyZSI6ICJ2aWRlb19jYXB0dXJlLm1vam9tLlRleHR1cmVWaXJ0dWFsRGV2aWNlLk9u |
| RnJhbWVSZWFkeUluQnVmZmVyIn19LCB7ImVuZCI6IDExMzY3LCAiYmVnaW4iOiAxMTM1MiwgImVk |
| Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg |
| InZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9z |
| cmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInZpZGVvX2NhcHR1cmUubW9q |
| b20uVGV4dHVyZVZpcnR1YWxEZXZpY2UuT25CdWZmZXJSZXRpcmVkIn19LCB7ImVuZCI6IDExOTAy |
| LCAiYmVnaW4iOiAxMTg3NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl |
| IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl |
| c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl |
| IjogInZpZGVvX2NhcHR1cmUubW9qb20uR3B1TWVtb3J5QnVmZmVyVmlydHVhbERldmljZS5Pbk5l |
| d0dwdU1lbW9yeUJ1ZmZlckhhbmRsZSJ9fSwgeyJlbmQiOiAxMjEwMCwgImJlZ2luIjogMTIwNzUs |
| ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l |
| cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p |
| dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2aWRlb19jYXB0dXJl |
| Lm1vam9tLkdwdU1lbW9yeUJ1ZmZlclZpcnR1YWxEZXZpY2UuT25GcmFtZUFjY2Vzc0hhbmRsZXJS |
| ZWFkeSJ9fSwgeyJlbmQiOiAxMjMyOCwgImJlZ2luIjogMTIzMDgsICJlZGdlIjogIiUva3l0aGUv |
| ZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29y |
| cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdl |
| IjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2aWRlb19jYXB0dXJlLm1vam9tLkdwdU1lbW9yeUJ1 |
| ZmZlclZpcnR1YWxEZXZpY2UuT25GcmFtZVJlYWR5SW5CdWZmZXIifX0sIHsiZW5kIjogMTI1MTgs |
| ICJiZWdpbiI6IDEyNTAzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi |
| OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz |
| b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi |
| OiAidmlkZW9fY2FwdHVyZS5tb2pvbS5HcHVNZW1vcnlCdWZmZXJWaXJ0dWFsRGV2aWNlLk9uQnVm |
| ZmVyUmV0aXJlZCJ9fV0sICJ0eXBlIjogImt5dGhlMCJ9 |
| */ |