| // gpu/ipc/common/gpu_info.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 GPU_IPC_COMMON_GPU_INFO_MOJOM_BLINK_H_ |
| #define GPU_IPC_COMMON_GPU_INFO_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 "gpu/ipc/common/gpu_info.mojom-shared.h" |
| #include "gpu/ipc/common/gpu_info.mojom-blink-forward.h" |
| #include "gpu/ipc/common/dx_diag_node.mojom-blink-forward.h" |
| #include "mojo/public/mojom/base/time.mojom-blink.h" |
| #include "ui/gfx/geometry/mojom/geometry.mojom-blink.h" |
| #include "ui/gl/mojom/gpu_preference.mojom-blink-forward.h" |
| #include "gpu/ipc/common/vulkan_info.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 "third_party/blink/public/platform/web_common.h" |
| |
| #ifdef KYTHE_IS_RUNNING |
| #pragma kythe_inline_metadata "Metadata comment" |
| #endif |
| |
| |
| namespace WTF { |
| struct gpu_mojom_internal_VideoCodecProfile_DataHashFn { |
| static unsigned GetHash(const ::gpu::mojom::VideoCodecProfile& value) { |
| using utype = std::underlying_type<::gpu::mojom::VideoCodecProfile>::type; |
| return DefaultHash<utype>::Hash().GetHash(static_cast<utype>(value)); |
| } |
| static bool Equal(const ::gpu::mojom::VideoCodecProfile& left, const ::gpu::mojom::VideoCodecProfile& right) { |
| return left == right; |
| } |
| static const bool safe_to_compare_to_empty_or_deleted = true; |
| }; |
| |
| template <> |
| struct HashTraits<::gpu::mojom::VideoCodecProfile> |
| : public GenericHashTraits<::gpu::mojom::VideoCodecProfile> { |
| static_assert(true, |
| "-1000000 is a reserved enum value"); |
| static_assert(true, |
| "-1000001 is a reserved enum value"); |
| static const bool kEmptyValueIsZero = false; |
| static ::gpu::mojom::VideoCodecProfile EmptyValue() { return static_cast<::gpu::mojom::VideoCodecProfile>(-1000000); } |
| static void ConstructDeletedValue(::gpu::mojom::VideoCodecProfile& slot, bool) { |
| slot = static_cast<::gpu::mojom::VideoCodecProfile>(-1000001); |
| } |
| static bool IsDeletedValue(const ::gpu::mojom::VideoCodecProfile& value) { |
| return value == static_cast<::gpu::mojom::VideoCodecProfile>(-1000001); |
| } |
| }; |
| } // namespace WTF |
| |
| |
| namespace WTF { |
| struct gpu_mojom_internal_ImageDecodeAcceleratorType_DataHashFn { |
| static unsigned GetHash(const ::gpu::mojom::ImageDecodeAcceleratorType& value) { |
| using utype = std::underlying_type<::gpu::mojom::ImageDecodeAcceleratorType>::type; |
| return DefaultHash<utype>::Hash().GetHash(static_cast<utype>(value)); |
| } |
| static bool Equal(const ::gpu::mojom::ImageDecodeAcceleratorType& left, const ::gpu::mojom::ImageDecodeAcceleratorType& right) { |
| return left == right; |
| } |
| static const bool safe_to_compare_to_empty_or_deleted = true; |
| }; |
| |
| template <> |
| struct HashTraits<::gpu::mojom::ImageDecodeAcceleratorType> |
| : public GenericHashTraits<::gpu::mojom::ImageDecodeAcceleratorType> { |
| static_assert(true, |
| "-1000000 is a reserved enum value"); |
| static_assert(true, |
| "-1000001 is a reserved enum value"); |
| static const bool kEmptyValueIsZero = false; |
| static ::gpu::mojom::ImageDecodeAcceleratorType EmptyValue() { return static_cast<::gpu::mojom::ImageDecodeAcceleratorType>(-1000000); } |
| static void ConstructDeletedValue(::gpu::mojom::ImageDecodeAcceleratorType& slot, bool) { |
| slot = static_cast<::gpu::mojom::ImageDecodeAcceleratorType>(-1000001); |
| } |
| static bool IsDeletedValue(const ::gpu::mojom::ImageDecodeAcceleratorType& value) { |
| return value == static_cast<::gpu::mojom::ImageDecodeAcceleratorType>(-1000001); |
| } |
| }; |
| } // namespace WTF |
| |
| |
| namespace WTF { |
| struct gpu_mojom_internal_ImageDecodeAcceleratorSubsampling_DataHashFn { |
| static unsigned GetHash(const ::gpu::mojom::ImageDecodeAcceleratorSubsampling& value) { |
| using utype = std::underlying_type<::gpu::mojom::ImageDecodeAcceleratorSubsampling>::type; |
| return DefaultHash<utype>::Hash().GetHash(static_cast<utype>(value)); |
| } |
| static bool Equal(const ::gpu::mojom::ImageDecodeAcceleratorSubsampling& left, const ::gpu::mojom::ImageDecodeAcceleratorSubsampling& right) { |
| return left == right; |
| } |
| static const bool safe_to_compare_to_empty_or_deleted = true; |
| }; |
| |
| template <> |
| struct HashTraits<::gpu::mojom::ImageDecodeAcceleratorSubsampling> |
| : public GenericHashTraits<::gpu::mojom::ImageDecodeAcceleratorSubsampling> { |
| static_assert(true, |
| "-1000000 is a reserved enum value"); |
| static_assert(true, |
| "-1000001 is a reserved enum value"); |
| static const bool kEmptyValueIsZero = false; |
| static ::gpu::mojom::ImageDecodeAcceleratorSubsampling EmptyValue() { return static_cast<::gpu::mojom::ImageDecodeAcceleratorSubsampling>(-1000000); } |
| static void ConstructDeletedValue(::gpu::mojom::ImageDecodeAcceleratorSubsampling& slot, bool) { |
| slot = static_cast<::gpu::mojom::ImageDecodeAcceleratorSubsampling>(-1000001); |
| } |
| static bool IsDeletedValue(const ::gpu::mojom::ImageDecodeAcceleratorSubsampling& value) { |
| return value == static_cast<::gpu::mojom::ImageDecodeAcceleratorSubsampling>(-1000001); |
| } |
| }; |
| } // namespace WTF |
| |
| |
| namespace gpu { |
| namespace mojom { |
| namespace blink { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| // @generated_from: gpu.mojom.GpuDevice |
| class BLINK_PLATFORM_EXPORT GpuDevice { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<GpuDevice, T>::value>; |
| using DataView = GpuDeviceDataView; |
| using Data_ = internal::GpuDevice_Data; |
| |
| template <typename... Args> |
| static GpuDevicePtr New(Args&&... args) { |
| return GpuDevicePtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static GpuDevicePtr From(const U& u) { |
| return mojo::TypeConverter<GpuDevicePtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, GpuDevice>::Convert(*this); |
| } |
| |
| |
| GpuDevice(); |
| |
| GpuDevice( |
| uint32_t vendor_id, |
| uint32_t device_id, |
| bool active, |
| const WTF::String& vendor_string, |
| const WTF::String& device_string, |
| const WTF::String& driver_vendor, |
| const WTF::String& driver_version, |
| int32_t cuda_compute_capability_major, |
| ::gl::mojom::blink::GpuPreference gpu_preference); |
| |
| |
| ~GpuDevice(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = GpuDevicePtr> |
| GpuDevicePtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, GpuDevice::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, GpuDevice::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| size_t Hash(size_t seed) const; |
| template <typename UserType> |
| static WTF::Vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| GpuDevice::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| GpuDevice::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::GpuDevice_UnserializedMessageContext< |
| UserType, GpuDevice::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<GpuDevice::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return GpuDevice::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::GpuDevice_UnserializedMessageContext< |
| UserType, GpuDevice::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<GpuDevice::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: gpu.mojom.GpuDevice.vendor_id |
| uint32_t vendor_id; |
| |
| // @generated_from: gpu.mojom.GpuDevice.device_id |
| uint32_t device_id; |
| |
| // @generated_from: gpu.mojom.GpuDevice.active |
| bool active; |
| |
| // @generated_from: gpu.mojom.GpuDevice.vendor_string |
| WTF::String vendor_string; |
| |
| // @generated_from: gpu.mojom.GpuDevice.device_string |
| WTF::String device_string; |
| |
| // @generated_from: gpu.mojom.GpuDevice.driver_vendor |
| WTF::String driver_vendor; |
| |
| // @generated_from: gpu.mojom.GpuDevice.driver_version |
| WTF::String driver_version; |
| |
| // @generated_from: gpu.mojom.GpuDevice.cuda_compute_capability_major |
| int32_t cuda_compute_capability_major; |
| |
| // @generated_from: gpu.mojom.GpuDevice.gpu_preference |
| ::gl::mojom::blink::GpuPreference gpu_preference; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, GpuDevice::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, GpuDevice::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, GpuDevice::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, GpuDevice::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorSupportedProfile |
| class BLINK_PLATFORM_EXPORT VideoDecodeAcceleratorSupportedProfile { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<VideoDecodeAcceleratorSupportedProfile, T>::value>; |
| using DataView = VideoDecodeAcceleratorSupportedProfileDataView; |
| using Data_ = internal::VideoDecodeAcceleratorSupportedProfile_Data; |
| |
| template <typename... Args> |
| static VideoDecodeAcceleratorSupportedProfilePtr New(Args&&... args) { |
| return VideoDecodeAcceleratorSupportedProfilePtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static VideoDecodeAcceleratorSupportedProfilePtr From(const U& u) { |
| return mojo::TypeConverter<VideoDecodeAcceleratorSupportedProfilePtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, VideoDecodeAcceleratorSupportedProfile>::Convert(*this); |
| } |
| |
| |
| VideoDecodeAcceleratorSupportedProfile(); |
| |
| VideoDecodeAcceleratorSupportedProfile( |
| VideoCodecProfile profile, |
| const ::gfx::Size& max_resolution, |
| const ::gfx::Size& min_resolution, |
| bool encrypted_only); |
| |
| |
| ~VideoDecodeAcceleratorSupportedProfile(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = VideoDecodeAcceleratorSupportedProfilePtr> |
| VideoDecodeAcceleratorSupportedProfilePtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| template <typename UserType> |
| static WTF::Vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| VideoDecodeAcceleratorSupportedProfile::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| VideoDecodeAcceleratorSupportedProfile::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::VideoDecodeAcceleratorSupportedProfile_UnserializedMessageContext< |
| UserType, VideoDecodeAcceleratorSupportedProfile::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<VideoDecodeAcceleratorSupportedProfile::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return VideoDecodeAcceleratorSupportedProfile::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::VideoDecodeAcceleratorSupportedProfile_UnserializedMessageContext< |
| UserType, VideoDecodeAcceleratorSupportedProfile::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<VideoDecodeAcceleratorSupportedProfile::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorSupportedProfile.profile |
| VideoCodecProfile profile; |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorSupportedProfile.max_resolution |
| ::gfx::Size max_resolution; |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorSupportedProfile.min_resolution |
| ::gfx::Size min_resolution; |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorSupportedProfile.encrypted_only |
| bool encrypted_only; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorCapabilities |
| class BLINK_PLATFORM_EXPORT VideoDecodeAcceleratorCapabilities { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<VideoDecodeAcceleratorCapabilities, T>::value>; |
| using DataView = VideoDecodeAcceleratorCapabilitiesDataView; |
| using Data_ = internal::VideoDecodeAcceleratorCapabilities_Data; |
| |
| template <typename... Args> |
| static VideoDecodeAcceleratorCapabilitiesPtr New(Args&&... args) { |
| return VideoDecodeAcceleratorCapabilitiesPtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static VideoDecodeAcceleratorCapabilitiesPtr From(const U& u) { |
| return mojo::TypeConverter<VideoDecodeAcceleratorCapabilitiesPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, VideoDecodeAcceleratorCapabilities>::Convert(*this); |
| } |
| |
| |
| VideoDecodeAcceleratorCapabilities(); |
| |
| VideoDecodeAcceleratorCapabilities( |
| WTF::Vector<VideoDecodeAcceleratorSupportedProfilePtr> supported_profiles, |
| uint32_t flags); |
| |
| VideoDecodeAcceleratorCapabilities(const VideoDecodeAcceleratorCapabilities&) = delete; |
| VideoDecodeAcceleratorCapabilities& operator=(const VideoDecodeAcceleratorCapabilities&) = delete; |
| |
| ~VideoDecodeAcceleratorCapabilities(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = VideoDecodeAcceleratorCapabilitiesPtr> |
| VideoDecodeAcceleratorCapabilitiesPtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| template <typename UserType> |
| static WTF::Vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| VideoDecodeAcceleratorCapabilities::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| VideoDecodeAcceleratorCapabilities::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::VideoDecodeAcceleratorCapabilities_UnserializedMessageContext< |
| UserType, VideoDecodeAcceleratorCapabilities::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<VideoDecodeAcceleratorCapabilities::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return VideoDecodeAcceleratorCapabilities::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::VideoDecodeAcceleratorCapabilities_UnserializedMessageContext< |
| UserType, VideoDecodeAcceleratorCapabilities::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<VideoDecodeAcceleratorCapabilities::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorCapabilities.supported_profiles |
| WTF::Vector<VideoDecodeAcceleratorSupportedProfilePtr> supported_profiles; |
| |
| // @generated_from: gpu.mojom.VideoDecodeAcceleratorCapabilities.flags |
| uint32_t flags; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| // @generated_from: gpu.mojom.VideoEncodeAcceleratorSupportedProfile |
| class BLINK_PLATFORM_EXPORT VideoEncodeAcceleratorSupportedProfile { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<VideoEncodeAcceleratorSupportedProfile, T>::value>; |
| using DataView = VideoEncodeAcceleratorSupportedProfileDataView; |
| using Data_ = internal::VideoEncodeAcceleratorSupportedProfile_Data; |
| |
| template <typename... Args> |
| static VideoEncodeAcceleratorSupportedProfilePtr New(Args&&... args) { |
| return VideoEncodeAcceleratorSupportedProfilePtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static VideoEncodeAcceleratorSupportedProfilePtr From(const U& u) { |
| return mojo::TypeConverter<VideoEncodeAcceleratorSupportedProfilePtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, VideoEncodeAcceleratorSupportedProfile>::Convert(*this); |
| } |
| |
| |
| VideoEncodeAcceleratorSupportedProfile(); |
| |
| VideoEncodeAcceleratorSupportedProfile( |
| VideoCodecProfile profile, |
| const ::gfx::Size& min_resolution, |
| const ::gfx::Size& max_resolution, |
| uint32_t max_framerate_numerator, |
| uint32_t max_framerate_denominator); |
| |
| |
| ~VideoEncodeAcceleratorSupportedProfile(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = VideoEncodeAcceleratorSupportedProfilePtr> |
| VideoEncodeAcceleratorSupportedProfilePtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| template <typename UserType> |
| static WTF::Vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| VideoEncodeAcceleratorSupportedProfile::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| VideoEncodeAcceleratorSupportedProfile::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::VideoEncodeAcceleratorSupportedProfile_UnserializedMessageContext< |
| UserType, VideoEncodeAcceleratorSupportedProfile::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<VideoEncodeAcceleratorSupportedProfile::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return VideoEncodeAcceleratorSupportedProfile::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::VideoEncodeAcceleratorSupportedProfile_UnserializedMessageContext< |
| UserType, VideoEncodeAcceleratorSupportedProfile::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<VideoEncodeAcceleratorSupportedProfile::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: gpu.mojom.VideoEncodeAcceleratorSupportedProfile.profile |
| VideoCodecProfile profile; |
| |
| // @generated_from: gpu.mojom.VideoEncodeAcceleratorSupportedProfile.min_resolution |
| ::gfx::Size min_resolution; |
| |
| // @generated_from: gpu.mojom.VideoEncodeAcceleratorSupportedProfile.max_resolution |
| ::gfx::Size max_resolution; |
| |
| // @generated_from: gpu.mojom.VideoEncodeAcceleratorSupportedProfile.max_framerate_numerator |
| uint32_t max_framerate_numerator; |
| |
| // @generated_from: gpu.mojom.VideoEncodeAcceleratorSupportedProfile.max_framerate_denominator |
| uint32_t max_framerate_denominator; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| // @generated_from: gpu.mojom.ImageDecodeAcceleratorSupportedProfile |
| class BLINK_PLATFORM_EXPORT ImageDecodeAcceleratorSupportedProfile { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<ImageDecodeAcceleratorSupportedProfile, T>::value>; |
| using DataView = ImageDecodeAcceleratorSupportedProfileDataView; |
| using Data_ = internal::ImageDecodeAcceleratorSupportedProfile_Data; |
| |
| template <typename... Args> |
| static ImageDecodeAcceleratorSupportedProfilePtr New(Args&&... args) { |
| return ImageDecodeAcceleratorSupportedProfilePtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static ImageDecodeAcceleratorSupportedProfilePtr From(const U& u) { |
| return mojo::TypeConverter<ImageDecodeAcceleratorSupportedProfilePtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, ImageDecodeAcceleratorSupportedProfile>::Convert(*this); |
| } |
| |
| |
| ImageDecodeAcceleratorSupportedProfile(); |
| |
| ImageDecodeAcceleratorSupportedProfile( |
| ImageDecodeAcceleratorType image_type, |
| const ::gfx::Size& min_encoded_dimensions, |
| const ::gfx::Size& max_encoded_dimensions, |
| WTF::Vector<ImageDecodeAcceleratorSubsampling> subsamplings); |
| |
| |
| ~ImageDecodeAcceleratorSupportedProfile(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = ImageDecodeAcceleratorSupportedProfilePtr> |
| ImageDecodeAcceleratorSupportedProfilePtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| template <typename UserType> |
| static WTF::Vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| ImageDecodeAcceleratorSupportedProfile::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| ImageDecodeAcceleratorSupportedProfile::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::ImageDecodeAcceleratorSupportedProfile_UnserializedMessageContext< |
| UserType, ImageDecodeAcceleratorSupportedProfile::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<ImageDecodeAcceleratorSupportedProfile::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return ImageDecodeAcceleratorSupportedProfile::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::ImageDecodeAcceleratorSupportedProfile_UnserializedMessageContext< |
| UserType, ImageDecodeAcceleratorSupportedProfile::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<ImageDecodeAcceleratorSupportedProfile::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: gpu.mojom.ImageDecodeAcceleratorSupportedProfile.image_type |
| ImageDecodeAcceleratorType image_type; |
| |
| // @generated_from: gpu.mojom.ImageDecodeAcceleratorSupportedProfile.min_encoded_dimensions |
| ::gfx::Size min_encoded_dimensions; |
| |
| // @generated_from: gpu.mojom.ImageDecodeAcceleratorSupportedProfile.max_encoded_dimensions |
| ::gfx::Size max_encoded_dimensions; |
| |
| // @generated_from: gpu.mojom.ImageDecodeAcceleratorSupportedProfile.subsamplings |
| WTF::Vector<ImageDecodeAcceleratorSubsampling> subsamplings; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| // @generated_from: gpu.mojom.GpuInfo |
| class BLINK_PLATFORM_EXPORT GpuInfo { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<GpuInfo, T>::value>; |
| using DataView = GpuInfoDataView; |
| using Data_ = internal::GpuInfo_Data; |
| |
| template <typename... Args> |
| static GpuInfoPtr New(Args&&... args) { |
| return GpuInfoPtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static GpuInfoPtr From(const U& u) { |
| return mojo::TypeConverter<GpuInfoPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, GpuInfo>::Convert(*this); |
| } |
| |
| |
| GpuInfo(); |
| |
| GpuInfo( |
| ::base::TimeDelta initialization_time, |
| bool optimus, |
| bool amd_switchable, |
| GpuDevicePtr gpu, |
| WTF::Vector<GpuDevicePtr> secondary_gpus, |
| const WTF::String& pixel_shader_version, |
| const WTF::String& vertex_shader_version, |
| const WTF::String& max_msaa_samples, |
| const WTF::String& machine_model_name, |
| const WTF::String& machine_model_version, |
| const WTF::String& gl_version, |
| const WTF::String& gl_vendor, |
| const WTF::String& gl_renderer, |
| const WTF::String& gl_extensions, |
| const WTF::String& gl_ws_vendor, |
| const WTF::String& gl_ws_version, |
| const WTF::String& gl_ws_extensions, |
| uint32_t gl_reset_notification_strategy, |
| bool software_rendering, |
| const WTF::String& direct_rendering_version, |
| bool sandboxed, |
| bool in_process_gpu, |
| bool passthrough_cmd_decoder, |
| bool can_support_threaded_texture_mailbox, |
| WTF::Vector<VideoDecodeAcceleratorSupportedProfilePtr> video_decode_accelerator_supported_profiles, |
| WTF::Vector<VideoEncodeAcceleratorSupportedProfilePtr> video_encode_accelerator_supported_profiles, |
| bool jpeg_decode_accelerator_supported, |
| WTF::Vector<ImageDecodeAcceleratorSupportedProfilePtr> image_decode_accelerator_supported_profiles, |
| bool subpixel_font_rendering, |
| uint32_t visibility_callback_call_count, |
| ::gpu::mojom::blink::VulkanInfoPtr vulkan_info); |
| |
| GpuInfo(const GpuInfo&) = delete; |
| GpuInfo& operator=(const GpuInfo&) = delete; |
| |
| ~GpuInfo(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = GpuInfoPtr> |
| GpuInfoPtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, GpuInfo::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, GpuInfo::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| template <typename UserType> |
| static WTF::Vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| GpuInfo::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| GpuInfo::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::GpuInfo_UnserializedMessageContext< |
| UserType, GpuInfo::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<GpuInfo::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return GpuInfo::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::GpuInfo_UnserializedMessageContext< |
| UserType, GpuInfo::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<GpuInfo::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: gpu.mojom.GpuInfo.initialization_time |
| ::base::TimeDelta initialization_time; |
| |
| // @generated_from: gpu.mojom.GpuInfo.optimus |
| bool optimus; |
| |
| // @generated_from: gpu.mojom.GpuInfo.amd_switchable |
| bool amd_switchable; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gpu |
| GpuDevicePtr gpu; |
| |
| // @generated_from: gpu.mojom.GpuInfo.secondary_gpus |
| WTF::Vector<GpuDevicePtr> secondary_gpus; |
| |
| // @generated_from: gpu.mojom.GpuInfo.pixel_shader_version |
| WTF::String pixel_shader_version; |
| |
| // @generated_from: gpu.mojom.GpuInfo.vertex_shader_version |
| WTF::String vertex_shader_version; |
| |
| // @generated_from: gpu.mojom.GpuInfo.max_msaa_samples |
| WTF::String max_msaa_samples; |
| |
| // @generated_from: gpu.mojom.GpuInfo.machine_model_name |
| WTF::String machine_model_name; |
| |
| // @generated_from: gpu.mojom.GpuInfo.machine_model_version |
| WTF::String machine_model_version; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_version |
| WTF::String gl_version; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_vendor |
| WTF::String gl_vendor; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_renderer |
| WTF::String gl_renderer; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_extensions |
| WTF::String gl_extensions; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_ws_vendor |
| WTF::String gl_ws_vendor; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_ws_version |
| WTF::String gl_ws_version; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_ws_extensions |
| WTF::String gl_ws_extensions; |
| |
| // @generated_from: gpu.mojom.GpuInfo.gl_reset_notification_strategy |
| uint32_t gl_reset_notification_strategy; |
| |
| // @generated_from: gpu.mojom.GpuInfo.software_rendering |
| bool software_rendering; |
| |
| // @generated_from: gpu.mojom.GpuInfo.direct_rendering_version |
| WTF::String direct_rendering_version; |
| |
| // @generated_from: gpu.mojom.GpuInfo.sandboxed |
| bool sandboxed; |
| |
| // @generated_from: gpu.mojom.GpuInfo.in_process_gpu |
| bool in_process_gpu; |
| |
| // @generated_from: gpu.mojom.GpuInfo.passthrough_cmd_decoder |
| bool passthrough_cmd_decoder; |
| |
| // @generated_from: gpu.mojom.GpuInfo.can_support_threaded_texture_mailbox |
| bool can_support_threaded_texture_mailbox; |
| |
| // @generated_from: gpu.mojom.GpuInfo.video_decode_accelerator_supported_profiles |
| WTF::Vector<VideoDecodeAcceleratorSupportedProfilePtr> video_decode_accelerator_supported_profiles; |
| |
| // @generated_from: gpu.mojom.GpuInfo.video_encode_accelerator_supported_profiles |
| WTF::Vector<VideoEncodeAcceleratorSupportedProfilePtr> video_encode_accelerator_supported_profiles; |
| |
| // @generated_from: gpu.mojom.GpuInfo.jpeg_decode_accelerator_supported |
| bool jpeg_decode_accelerator_supported; |
| |
| // @generated_from: gpu.mojom.GpuInfo.image_decode_accelerator_supported_profiles |
| WTF::Vector<ImageDecodeAcceleratorSupportedProfilePtr> image_decode_accelerator_supported_profiles; |
| |
| // @generated_from: gpu.mojom.GpuInfo.subpixel_font_rendering |
| bool subpixel_font_rendering; |
| |
| // @generated_from: gpu.mojom.GpuInfo.visibility_callback_call_count |
| uint32_t visibility_callback_call_count; |
| |
| // @generated_from: gpu.mojom.GpuInfo.vulkan_info |
| ::gpu::mojom::blink::VulkanInfoPtr vulkan_info; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, GpuInfo::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, GpuInfo::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, GpuInfo::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, GpuInfo::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| template <typename StructPtrType> |
| GpuDevicePtr GpuDevice::Clone() const { |
| return New( |
| mojo::Clone(vendor_id), |
| mojo::Clone(device_id), |
| mojo::Clone(active), |
| mojo::Clone(vendor_string), |
| mojo::Clone(device_string), |
| mojo::Clone(driver_vendor), |
| mojo::Clone(driver_version), |
| mojo::Clone(cuda_compute_capability_major), |
| mojo::Clone(gpu_preference) |
| ); |
| } |
| |
| template <typename T, GpuDevice::EnableIfSame<T>*> |
| bool GpuDevice::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->vendor_id, other_struct.vendor_id)) |
| return false; |
| if (!mojo::Equals(this->device_id, other_struct.device_id)) |
| return false; |
| if (!mojo::Equals(this->active, other_struct.active)) |
| return false; |
| if (!mojo::Equals(this->vendor_string, other_struct.vendor_string)) |
| return false; |
| if (!mojo::Equals(this->device_string, other_struct.device_string)) |
| return false; |
| if (!mojo::Equals(this->driver_vendor, other_struct.driver_vendor)) |
| return false; |
| if (!mojo::Equals(this->driver_version, other_struct.driver_version)) |
| return false; |
| if (!mojo::Equals(this->cuda_compute_capability_major, other_struct.cuda_compute_capability_major)) |
| return false; |
| if (!mojo::Equals(this->gpu_preference, other_struct.gpu_preference)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, GpuDevice::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.vendor_id < rhs.vendor_id) |
| return true; |
| if (rhs.vendor_id < lhs.vendor_id) |
| return false; |
| if (lhs.device_id < rhs.device_id) |
| return true; |
| if (rhs.device_id < lhs.device_id) |
| return false; |
| if (lhs.active < rhs.active) |
| return true; |
| if (rhs.active < lhs.active) |
| return false; |
| if (lhs.vendor_string < rhs.vendor_string) |
| return true; |
| if (rhs.vendor_string < lhs.vendor_string) |
| return false; |
| if (lhs.device_string < rhs.device_string) |
| return true; |
| if (rhs.device_string < lhs.device_string) |
| return false; |
| if (lhs.driver_vendor < rhs.driver_vendor) |
| return true; |
| if (rhs.driver_vendor < lhs.driver_vendor) |
| return false; |
| if (lhs.driver_version < rhs.driver_version) |
| return true; |
| if (rhs.driver_version < lhs.driver_version) |
| return false; |
| if (lhs.cuda_compute_capability_major < rhs.cuda_compute_capability_major) |
| return true; |
| if (rhs.cuda_compute_capability_major < lhs.cuda_compute_capability_major) |
| return false; |
| if (lhs.gpu_preference < rhs.gpu_preference) |
| return true; |
| if (rhs.gpu_preference < lhs.gpu_preference) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| VideoDecodeAcceleratorSupportedProfilePtr VideoDecodeAcceleratorSupportedProfile::Clone() const { |
| return New( |
| mojo::Clone(profile), |
| mojo::Clone(max_resolution), |
| mojo::Clone(min_resolution), |
| mojo::Clone(encrypted_only) |
| ); |
| } |
| |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>*> |
| bool VideoDecodeAcceleratorSupportedProfile::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->profile, other_struct.profile)) |
| return false; |
| if (!mojo::Equals(this->max_resolution, other_struct.max_resolution)) |
| return false; |
| if (!mojo::Equals(this->min_resolution, other_struct.min_resolution)) |
| return false; |
| if (!mojo::Equals(this->encrypted_only, other_struct.encrypted_only)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, VideoDecodeAcceleratorSupportedProfile::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.profile < rhs.profile) |
| return true; |
| if (rhs.profile < lhs.profile) |
| return false; |
| if (lhs.max_resolution < rhs.max_resolution) |
| return true; |
| if (rhs.max_resolution < lhs.max_resolution) |
| return false; |
| if (lhs.min_resolution < rhs.min_resolution) |
| return true; |
| if (rhs.min_resolution < lhs.min_resolution) |
| return false; |
| if (lhs.encrypted_only < rhs.encrypted_only) |
| return true; |
| if (rhs.encrypted_only < lhs.encrypted_only) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| VideoDecodeAcceleratorCapabilitiesPtr VideoDecodeAcceleratorCapabilities::Clone() const { |
| return New( |
| mojo::Clone(supported_profiles), |
| mojo::Clone(flags) |
| ); |
| } |
| |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>*> |
| bool VideoDecodeAcceleratorCapabilities::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->supported_profiles, other_struct.supported_profiles)) |
| return false; |
| if (!mojo::Equals(this->flags, other_struct.flags)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, VideoDecodeAcceleratorCapabilities::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.supported_profiles < rhs.supported_profiles) |
| return true; |
| if (rhs.supported_profiles < lhs.supported_profiles) |
| return false; |
| if (lhs.flags < rhs.flags) |
| return true; |
| if (rhs.flags < lhs.flags) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| VideoEncodeAcceleratorSupportedProfilePtr VideoEncodeAcceleratorSupportedProfile::Clone() const { |
| return New( |
| mojo::Clone(profile), |
| mojo::Clone(min_resolution), |
| mojo::Clone(max_resolution), |
| mojo::Clone(max_framerate_numerator), |
| mojo::Clone(max_framerate_denominator) |
| ); |
| } |
| |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>*> |
| bool VideoEncodeAcceleratorSupportedProfile::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->profile, other_struct.profile)) |
| return false; |
| if (!mojo::Equals(this->min_resolution, other_struct.min_resolution)) |
| return false; |
| if (!mojo::Equals(this->max_resolution, other_struct.max_resolution)) |
| return false; |
| if (!mojo::Equals(this->max_framerate_numerator, other_struct.max_framerate_numerator)) |
| return false; |
| if (!mojo::Equals(this->max_framerate_denominator, other_struct.max_framerate_denominator)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, VideoEncodeAcceleratorSupportedProfile::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.profile < rhs.profile) |
| return true; |
| if (rhs.profile < lhs.profile) |
| return false; |
| if (lhs.min_resolution < rhs.min_resolution) |
| return true; |
| if (rhs.min_resolution < lhs.min_resolution) |
| return false; |
| if (lhs.max_resolution < rhs.max_resolution) |
| return true; |
| if (rhs.max_resolution < lhs.max_resolution) |
| return false; |
| if (lhs.max_framerate_numerator < rhs.max_framerate_numerator) |
| return true; |
| if (rhs.max_framerate_numerator < lhs.max_framerate_numerator) |
| return false; |
| if (lhs.max_framerate_denominator < rhs.max_framerate_denominator) |
| return true; |
| if (rhs.max_framerate_denominator < lhs.max_framerate_denominator) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| ImageDecodeAcceleratorSupportedProfilePtr ImageDecodeAcceleratorSupportedProfile::Clone() const { |
| return New( |
| mojo::Clone(image_type), |
| mojo::Clone(min_encoded_dimensions), |
| mojo::Clone(max_encoded_dimensions), |
| mojo::Clone(subsamplings) |
| ); |
| } |
| |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>*> |
| bool ImageDecodeAcceleratorSupportedProfile::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->image_type, other_struct.image_type)) |
| return false; |
| if (!mojo::Equals(this->min_encoded_dimensions, other_struct.min_encoded_dimensions)) |
| return false; |
| if (!mojo::Equals(this->max_encoded_dimensions, other_struct.max_encoded_dimensions)) |
| return false; |
| if (!mojo::Equals(this->subsamplings, other_struct.subsamplings)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, ImageDecodeAcceleratorSupportedProfile::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.image_type < rhs.image_type) |
| return true; |
| if (rhs.image_type < lhs.image_type) |
| return false; |
| if (lhs.min_encoded_dimensions < rhs.min_encoded_dimensions) |
| return true; |
| if (rhs.min_encoded_dimensions < lhs.min_encoded_dimensions) |
| return false; |
| if (lhs.max_encoded_dimensions < rhs.max_encoded_dimensions) |
| return true; |
| if (rhs.max_encoded_dimensions < lhs.max_encoded_dimensions) |
| return false; |
| if (lhs.subsamplings < rhs.subsamplings) |
| return true; |
| if (rhs.subsamplings < lhs.subsamplings) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| GpuInfoPtr GpuInfo::Clone() const { |
| return New( |
| mojo::Clone(initialization_time), |
| mojo::Clone(optimus), |
| mojo::Clone(amd_switchable), |
| mojo::Clone(gpu), |
| mojo::Clone(secondary_gpus), |
| mojo::Clone(pixel_shader_version), |
| mojo::Clone(vertex_shader_version), |
| mojo::Clone(max_msaa_samples), |
| mojo::Clone(machine_model_name), |
| mojo::Clone(machine_model_version), |
| mojo::Clone(gl_version), |
| mojo::Clone(gl_vendor), |
| mojo::Clone(gl_renderer), |
| mojo::Clone(gl_extensions), |
| mojo::Clone(gl_ws_vendor), |
| mojo::Clone(gl_ws_version), |
| mojo::Clone(gl_ws_extensions), |
| mojo::Clone(gl_reset_notification_strategy), |
| mojo::Clone(software_rendering), |
| mojo::Clone(direct_rendering_version), |
| mojo::Clone(sandboxed), |
| mojo::Clone(in_process_gpu), |
| mojo::Clone(passthrough_cmd_decoder), |
| mojo::Clone(can_support_threaded_texture_mailbox), |
| mojo::Clone(video_decode_accelerator_supported_profiles), |
| mojo::Clone(video_encode_accelerator_supported_profiles), |
| mojo::Clone(jpeg_decode_accelerator_supported), |
| mojo::Clone(image_decode_accelerator_supported_profiles), |
| mojo::Clone(subpixel_font_rendering), |
| mojo::Clone(visibility_callback_call_count), |
| mojo::Clone(vulkan_info) |
| ); |
| } |
| |
| template <typename T, GpuInfo::EnableIfSame<T>*> |
| bool GpuInfo::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->initialization_time, other_struct.initialization_time)) |
| return false; |
| if (!mojo::Equals(this->optimus, other_struct.optimus)) |
| return false; |
| if (!mojo::Equals(this->amd_switchable, other_struct.amd_switchable)) |
| return false; |
| if (!mojo::Equals(this->gpu, other_struct.gpu)) |
| return false; |
| if (!mojo::Equals(this->secondary_gpus, other_struct.secondary_gpus)) |
| return false; |
| if (!mojo::Equals(this->pixel_shader_version, other_struct.pixel_shader_version)) |
| return false; |
| if (!mojo::Equals(this->vertex_shader_version, other_struct.vertex_shader_version)) |
| return false; |
| if (!mojo::Equals(this->max_msaa_samples, other_struct.max_msaa_samples)) |
| return false; |
| if (!mojo::Equals(this->machine_model_name, other_struct.machine_model_name)) |
| return false; |
| if (!mojo::Equals(this->machine_model_version, other_struct.machine_model_version)) |
| return false; |
| if (!mojo::Equals(this->gl_version, other_struct.gl_version)) |
| return false; |
| if (!mojo::Equals(this->gl_vendor, other_struct.gl_vendor)) |
| return false; |
| if (!mojo::Equals(this->gl_renderer, other_struct.gl_renderer)) |
| return false; |
| if (!mojo::Equals(this->gl_extensions, other_struct.gl_extensions)) |
| return false; |
| if (!mojo::Equals(this->gl_ws_vendor, other_struct.gl_ws_vendor)) |
| return false; |
| if (!mojo::Equals(this->gl_ws_version, other_struct.gl_ws_version)) |
| return false; |
| if (!mojo::Equals(this->gl_ws_extensions, other_struct.gl_ws_extensions)) |
| return false; |
| if (!mojo::Equals(this->gl_reset_notification_strategy, other_struct.gl_reset_notification_strategy)) |
| return false; |
| if (!mojo::Equals(this->software_rendering, other_struct.software_rendering)) |
| return false; |
| if (!mojo::Equals(this->direct_rendering_version, other_struct.direct_rendering_version)) |
| return false; |
| if (!mojo::Equals(this->sandboxed, other_struct.sandboxed)) |
| return false; |
| if (!mojo::Equals(this->in_process_gpu, other_struct.in_process_gpu)) |
| return false; |
| if (!mojo::Equals(this->passthrough_cmd_decoder, other_struct.passthrough_cmd_decoder)) |
| return false; |
| if (!mojo::Equals(this->can_support_threaded_texture_mailbox, other_struct.can_support_threaded_texture_mailbox)) |
| return false; |
| if (!mojo::Equals(this->video_decode_accelerator_supported_profiles, other_struct.video_decode_accelerator_supported_profiles)) |
| return false; |
| if (!mojo::Equals(this->video_encode_accelerator_supported_profiles, other_struct.video_encode_accelerator_supported_profiles)) |
| return false; |
| if (!mojo::Equals(this->jpeg_decode_accelerator_supported, other_struct.jpeg_decode_accelerator_supported)) |
| return false; |
| if (!mojo::Equals(this->image_decode_accelerator_supported_profiles, other_struct.image_decode_accelerator_supported_profiles)) |
| return false; |
| if (!mojo::Equals(this->subpixel_font_rendering, other_struct.subpixel_font_rendering)) |
| return false; |
| if (!mojo::Equals(this->visibility_callback_call_count, other_struct.visibility_callback_call_count)) |
| return false; |
| if (!mojo::Equals(this->vulkan_info, other_struct.vulkan_info)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, GpuInfo::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.initialization_time < rhs.initialization_time) |
| return true; |
| if (rhs.initialization_time < lhs.initialization_time) |
| return false; |
| if (lhs.optimus < rhs.optimus) |
| return true; |
| if (rhs.optimus < lhs.optimus) |
| return false; |
| if (lhs.amd_switchable < rhs.amd_switchable) |
| return true; |
| if (rhs.amd_switchable < lhs.amd_switchable) |
| return false; |
| if (lhs.gpu < rhs.gpu) |
| return true; |
| if (rhs.gpu < lhs.gpu) |
| return false; |
| if (lhs.secondary_gpus < rhs.secondary_gpus) |
| return true; |
| if (rhs.secondary_gpus < lhs.secondary_gpus) |
| return false; |
| if (lhs.pixel_shader_version < rhs.pixel_shader_version) |
| return true; |
| if (rhs.pixel_shader_version < lhs.pixel_shader_version) |
| return false; |
| if (lhs.vertex_shader_version < rhs.vertex_shader_version) |
| return true; |
| if (rhs.vertex_shader_version < lhs.vertex_shader_version) |
| return false; |
| if (lhs.max_msaa_samples < rhs.max_msaa_samples) |
| return true; |
| if (rhs.max_msaa_samples < lhs.max_msaa_samples) |
| return false; |
| if (lhs.machine_model_name < rhs.machine_model_name) |
| return true; |
| if (rhs.machine_model_name < lhs.machine_model_name) |
| return false; |
| if (lhs.machine_model_version < rhs.machine_model_version) |
| return true; |
| if (rhs.machine_model_version < lhs.machine_model_version) |
| return false; |
| if (lhs.gl_version < rhs.gl_version) |
| return true; |
| if (rhs.gl_version < lhs.gl_version) |
| return false; |
| if (lhs.gl_vendor < rhs.gl_vendor) |
| return true; |
| if (rhs.gl_vendor < lhs.gl_vendor) |
| return false; |
| if (lhs.gl_renderer < rhs.gl_renderer) |
| return true; |
| if (rhs.gl_renderer < lhs.gl_renderer) |
| return false; |
| if (lhs.gl_extensions < rhs.gl_extensions) |
| return true; |
| if (rhs.gl_extensions < lhs.gl_extensions) |
| return false; |
| if (lhs.gl_ws_vendor < rhs.gl_ws_vendor) |
| return true; |
| if (rhs.gl_ws_vendor < lhs.gl_ws_vendor) |
| return false; |
| if (lhs.gl_ws_version < rhs.gl_ws_version) |
| return true; |
| if (rhs.gl_ws_version < lhs.gl_ws_version) |
| return false; |
| if (lhs.gl_ws_extensions < rhs.gl_ws_extensions) |
| return true; |
| if (rhs.gl_ws_extensions < lhs.gl_ws_extensions) |
| return false; |
| if (lhs.gl_reset_notification_strategy < rhs.gl_reset_notification_strategy) |
| return true; |
| if (rhs.gl_reset_notification_strategy < lhs.gl_reset_notification_strategy) |
| return false; |
| if (lhs.software_rendering < rhs.software_rendering) |
| return true; |
| if (rhs.software_rendering < lhs.software_rendering) |
| return false; |
| if (lhs.direct_rendering_version < rhs.direct_rendering_version) |
| return true; |
| if (rhs.direct_rendering_version < lhs.direct_rendering_version) |
| return false; |
| if (lhs.sandboxed < rhs.sandboxed) |
| return true; |
| if (rhs.sandboxed < lhs.sandboxed) |
| return false; |
| if (lhs.in_process_gpu < rhs.in_process_gpu) |
| return true; |
| if (rhs.in_process_gpu < lhs.in_process_gpu) |
| return false; |
| if (lhs.passthrough_cmd_decoder < rhs.passthrough_cmd_decoder) |
| return true; |
| if (rhs.passthrough_cmd_decoder < lhs.passthrough_cmd_decoder) |
| return false; |
| if (lhs.can_support_threaded_texture_mailbox < rhs.can_support_threaded_texture_mailbox) |
| return true; |
| if (rhs.can_support_threaded_texture_mailbox < lhs.can_support_threaded_texture_mailbox) |
| return false; |
| if (lhs.video_decode_accelerator_supported_profiles < rhs.video_decode_accelerator_supported_profiles) |
| return true; |
| if (rhs.video_decode_accelerator_supported_profiles < lhs.video_decode_accelerator_supported_profiles) |
| return false; |
| if (lhs.video_encode_accelerator_supported_profiles < rhs.video_encode_accelerator_supported_profiles) |
| return true; |
| if (rhs.video_encode_accelerator_supported_profiles < lhs.video_encode_accelerator_supported_profiles) |
| return false; |
| if (lhs.jpeg_decode_accelerator_supported < rhs.jpeg_decode_accelerator_supported) |
| return true; |
| if (rhs.jpeg_decode_accelerator_supported < lhs.jpeg_decode_accelerator_supported) |
| return false; |
| if (lhs.image_decode_accelerator_supported_profiles < rhs.image_decode_accelerator_supported_profiles) |
| return true; |
| if (rhs.image_decode_accelerator_supported_profiles < lhs.image_decode_accelerator_supported_profiles) |
| return false; |
| if (lhs.subpixel_font_rendering < rhs.subpixel_font_rendering) |
| return true; |
| if (rhs.subpixel_font_rendering < lhs.subpixel_font_rendering) |
| return false; |
| if (lhs.visibility_callback_call_count < rhs.visibility_callback_call_count) |
| return true; |
| if (rhs.visibility_callback_call_count < lhs.visibility_callback_call_count) |
| return false; |
| if (lhs.vulkan_info < rhs.vulkan_info) |
| return true; |
| if (rhs.vulkan_info < lhs.vulkan_info) |
| return false; |
| return false; |
| } |
| |
| |
| } // namespace blink |
| } // namespace mojom |
| } // namespace gpu |
| |
| namespace mojo { |
| |
| |
| template <> |
| struct BLINK_PLATFORM_EXPORT StructTraits<::gpu::mojom::blink::GpuDevice::DataView, |
| ::gpu::mojom::blink::GpuDevicePtr> { |
| static bool IsNull(const ::gpu::mojom::blink::GpuDevicePtr& input) { return !input; } |
| static void SetToNull(::gpu::mojom::blink::GpuDevicePtr* output) { output->reset(); } |
| |
| static decltype(::gpu::mojom::blink::GpuDevice::vendor_id) vendor_id( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->vendor_id; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuDevice::device_id) device_id( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->device_id; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuDevice::active) active( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->active; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuDevice::vendor_string)& vendor_string( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->vendor_string; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuDevice::device_string)& device_string( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->device_string; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuDevice::driver_vendor)& driver_vendor( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->driver_vendor; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuDevice::driver_version)& driver_version( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->driver_version; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuDevice::cuda_compute_capability_major) cuda_compute_capability_major( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->cuda_compute_capability_major; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuDevice::gpu_preference) gpu_preference( |
| const ::gpu::mojom::blink::GpuDevicePtr& input) { |
| return input->gpu_preference; |
| } |
| |
| static bool Read(::gpu::mojom::blink::GpuDevice::DataView input, ::gpu::mojom::blink::GpuDevicePtr* output); |
| }; |
| |
| |
| template <> |
| struct BLINK_PLATFORM_EXPORT StructTraits<::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfile::DataView, |
| ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr> { |
| static bool IsNull(const ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr& input) { return !input; } |
| static void SetToNull(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr* output) { output->reset(); } |
| |
| static decltype(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfile::profile) profile( |
| const ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->profile; |
| } |
| |
| static const decltype(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfile::max_resolution)& max_resolution( |
| const ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->max_resolution; |
| } |
| |
| static const decltype(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfile::min_resolution)& min_resolution( |
| const ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->min_resolution; |
| } |
| |
| static decltype(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfile::encrypted_only) encrypted_only( |
| const ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->encrypted_only; |
| } |
| |
| static bool Read(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfile::DataView input, ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr* output); |
| }; |
| |
| |
| template <> |
| struct BLINK_PLATFORM_EXPORT StructTraits<::gpu::mojom::blink::VideoDecodeAcceleratorCapabilities::DataView, |
| ::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr> { |
| static bool IsNull(const ::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr& input) { return !input; } |
| static void SetToNull(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr* output) { output->reset(); } |
| |
| static const decltype(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilities::supported_profiles)& supported_profiles( |
| const ::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr& input) { |
| return input->supported_profiles; |
| } |
| |
| static decltype(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilities::flags) flags( |
| const ::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr& input) { |
| return input->flags; |
| } |
| |
| static bool Read(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilities::DataView input, ::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr* output); |
| }; |
| |
| |
| template <> |
| struct BLINK_PLATFORM_EXPORT StructTraits<::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfile::DataView, |
| ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr> { |
| static bool IsNull(const ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr& input) { return !input; } |
| static void SetToNull(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr* output) { output->reset(); } |
| |
| static decltype(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfile::profile) profile( |
| const ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr& input) { |
| return input->profile; |
| } |
| |
| static const decltype(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfile::min_resolution)& min_resolution( |
| const ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr& input) { |
| return input->min_resolution; |
| } |
| |
| static const decltype(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfile::max_resolution)& max_resolution( |
| const ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr& input) { |
| return input->max_resolution; |
| } |
| |
| static decltype(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfile::max_framerate_numerator) max_framerate_numerator( |
| const ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr& input) { |
| return input->max_framerate_numerator; |
| } |
| |
| static decltype(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfile::max_framerate_denominator) max_framerate_denominator( |
| const ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr& input) { |
| return input->max_framerate_denominator; |
| } |
| |
| static bool Read(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfile::DataView input, ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr* output); |
| }; |
| |
| |
| template <> |
| struct BLINK_PLATFORM_EXPORT StructTraits<::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfile::DataView, |
| ::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr> { |
| static bool IsNull(const ::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr& input) { return !input; } |
| static void SetToNull(::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr* output) { output->reset(); } |
| |
| static decltype(::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfile::image_type) image_type( |
| const ::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->image_type; |
| } |
| |
| static const decltype(::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfile::min_encoded_dimensions)& min_encoded_dimensions( |
| const ::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->min_encoded_dimensions; |
| } |
| |
| static const decltype(::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfile::max_encoded_dimensions)& max_encoded_dimensions( |
| const ::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->max_encoded_dimensions; |
| } |
| |
| static const decltype(::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfile::subsamplings)& subsamplings( |
| const ::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr& input) { |
| return input->subsamplings; |
| } |
| |
| static bool Read(::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfile::DataView input, ::gpu::mojom::blink::ImageDecodeAcceleratorSupportedProfilePtr* output); |
| }; |
| |
| |
| template <> |
| struct BLINK_PLATFORM_EXPORT StructTraits<::gpu::mojom::blink::GpuInfo::DataView, |
| ::gpu::mojom::blink::GpuInfoPtr> { |
| static bool IsNull(const ::gpu::mojom::blink::GpuInfoPtr& input) { return !input; } |
| static void SetToNull(::gpu::mojom::blink::GpuInfoPtr* output) { output->reset(); } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::initialization_time)& initialization_time( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->initialization_time; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::optimus) optimus( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->optimus; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::amd_switchable) amd_switchable( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->amd_switchable; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gpu)& gpu( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gpu; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::secondary_gpus)& secondary_gpus( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->secondary_gpus; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::pixel_shader_version)& pixel_shader_version( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->pixel_shader_version; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::vertex_shader_version)& vertex_shader_version( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->vertex_shader_version; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::max_msaa_samples)& max_msaa_samples( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->max_msaa_samples; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::machine_model_name)& machine_model_name( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->machine_model_name; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::machine_model_version)& machine_model_version( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->machine_model_version; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gl_version)& gl_version( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_version; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gl_vendor)& gl_vendor( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_vendor; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gl_renderer)& gl_renderer( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_renderer; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gl_extensions)& gl_extensions( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_extensions; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gl_ws_vendor)& gl_ws_vendor( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_ws_vendor; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gl_ws_version)& gl_ws_version( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_ws_version; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::gl_ws_extensions)& gl_ws_extensions( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_ws_extensions; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::gl_reset_notification_strategy) gl_reset_notification_strategy( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->gl_reset_notification_strategy; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::software_rendering) software_rendering( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->software_rendering; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::direct_rendering_version)& direct_rendering_version( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->direct_rendering_version; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::sandboxed) sandboxed( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->sandboxed; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::in_process_gpu) in_process_gpu( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->in_process_gpu; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::passthrough_cmd_decoder) passthrough_cmd_decoder( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->passthrough_cmd_decoder; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::can_support_threaded_texture_mailbox) can_support_threaded_texture_mailbox( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->can_support_threaded_texture_mailbox; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::video_decode_accelerator_supported_profiles)& video_decode_accelerator_supported_profiles( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->video_decode_accelerator_supported_profiles; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::video_encode_accelerator_supported_profiles)& video_encode_accelerator_supported_profiles( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->video_encode_accelerator_supported_profiles; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::jpeg_decode_accelerator_supported) jpeg_decode_accelerator_supported( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->jpeg_decode_accelerator_supported; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::image_decode_accelerator_supported_profiles)& image_decode_accelerator_supported_profiles( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->image_decode_accelerator_supported_profiles; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::subpixel_font_rendering) subpixel_font_rendering( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->subpixel_font_rendering; |
| } |
| |
| static decltype(::gpu::mojom::blink::GpuInfo::visibility_callback_call_count) visibility_callback_call_count( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->visibility_callback_call_count; |
| } |
| |
| static const decltype(::gpu::mojom::blink::GpuInfo::vulkan_info)& vulkan_info( |
| const ::gpu::mojom::blink::GpuInfoPtr& input) { |
| return input->vulkan_info; |
| } |
| |
| static bool Read(::gpu::mojom::blink::GpuInfo::DataView input, ::gpu::mojom::blink::GpuInfoPtr* output); |
| }; |
| |
| } // namespace mojo |
| |
| #endif // GPU_IPC_COMMON_GPU_INFO_MOJOM_BLINK_H_ |
| |
| /* Metadata comment |
| eyJtZXRhIjogW3siZW5kIjogNjA1NSwgImJlZ2luIjogNjA0NiwgImVkZ2UiOiAiJS9reXRoZS9l |
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw |
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui |
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVEZXZpY2UifX0sIHsiZW5kIjog |
| OTkxNSwgImJlZ2luIjogOTkwNiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0 |
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v |
| Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0 |
| dXJlIjogImdwdS5tb2pvbS5HcHVEZXZpY2UudmVuZG9yX2lkIn19LCB7ImVuZCI6IDk5OTAsICJi |
| ZWdpbiI6IDk5ODEsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJh |
| bmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj |
| ZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJn |
| cHUubW9qb20uR3B1RGV2aWNlLmRldmljZV9pZCJ9fSwgeyJlbmQiOiAxMDA1NSwgImJlZ2luIjog |
| MTAwNDksICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3Jf |
| ZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v |
| Y2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9q |
| b20uR3B1RGV2aWNlLmFjdGl2ZSJ9fSwgeyJlbmQiOiAxMDE0MSwgImJlZ2luIjogMTAxMjgsICJl |
| ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs |
| ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v |
| c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1RGV2 |
| aWNlLnZlbmRvcl9zdHJpbmcifX0sIHsiZW5kIjogMTAyMjcsICJiZWdpbiI6IDEwMjE0LCAiZWRn |
| ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi |
| dm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3Ny |
| YyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLkdwdURldmlj |
| ZS5kZXZpY2Vfc3RyaW5nIn19LCB7ImVuZCI6IDEwMzEzLCAiYmVnaW4iOiAxMDMwMCwgImVkZ2Ui |
| OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZu |
| YW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMi |
| LCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVEZXZpY2Uu |
| ZHJpdmVyX3ZlbmRvciJ9fSwgeyJlbmQiOiAxMDQwMSwgImJlZ2luIjogMTAzODcsICJlZGdlIjog |
| IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFt |
| ZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwg |
| Imxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1RGV2aWNlLmRy |
| aXZlcl92ZXJzaW9uIn19LCB7ImVuZCI6IDEwNTE1LCAiYmVnaW4iOiAxMDQ4NiwgImVkZ2UiOiAi |
| JS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1l |
| IjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAi |
| bGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVEZXZpY2UuY3Vk |
| YV9jb21wdXRlX2NhcGFiaWxpdHlfbWFqb3IifX0sIHsiZW5kIjogMTA2MjUsICJiZWdpbiI6IDEw |
| NjExLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl |
| ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No |
| cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9t |
| LkdwdURldmljZS5ncHVfcHJlZmVyZW5jZSJ9fSwgeyJlbmQiOiAxMTcxNSwgImJlZ2luIjogMTE2 |
| NzcsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVm |
| aW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hy |
| b21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20u |
| VmlkZW9EZWNvZGVBY2NlbGVyYXRvclN1cHBvcnRlZFByb2ZpbGUifX0sIHsiZW5kIjogMTYwODAs |
| ICJiZWdpbiI6IDE2MDczLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi |
| OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz |
| b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi |
| OiAiZ3B1Lm1vam9tLlZpZGVvRGVjb2RlQWNjZWxlcmF0b3JTdXBwb3J0ZWRQcm9maWxlLnByb2Zp |
| bGUifX0sIHsiZW5kIjogMTYxOTcsICJiZWdpbiI6IDE2MTgzLCAiZWRnZSI6ICIlL2t5dGhlL2Vk |
| Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1 |
| cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6 |
| ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlZpZGVvRGVjb2RlQWNjZWxlcmF0b3JT |
| dXBwb3J0ZWRQcm9maWxlLm1heF9yZXNvbHV0aW9uIn19LCB7ImVuZCI6IDE2MzE0LCAiYmVnaW4i |
| OiAxNjMwMCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hv |
| cl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv |
| bS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5t |
| b2pvbS5WaWRlb0RlY29kZUFjY2VsZXJhdG9yU3VwcG9ydGVkUHJvZmlsZS5taW5fcmVzb2x1dGlv |
| biJ9fSwgeyJlbmQiOiAxNjQyNCwgImJlZ2luIjogMTY0MTAsICJlZGdlIjogIiUva3l0aGUvZWRn |
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz |
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog |
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uVmlkZW9EZWNvZGVBY2NlbGVyYXRvclN1 |
| cHBvcnRlZFByb2ZpbGUuZW5jcnlwdGVkX29ubHkifX0sIHsiZW5kIjogMTc2MjIsICJiZWdpbiI6 |
| IDE3NTg4LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y |
| X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t |
| L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1v |
| am9tLlZpZGVvRGVjb2RlQWNjZWxlcmF0b3JDYXBhYmlsaXRpZXMifX0sIHsiZW5kIjogMjIwOTQs |
| ICJiZWdpbiI6IDIyMDc2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi |
| OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz |
| b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi |
| OiAiZ3B1Lm1vam9tLlZpZGVvRGVjb2RlQWNjZWxlcmF0b3JDYXBhYmlsaXRpZXMuc3VwcG9ydGVk |
| X3Byb2ZpbGVzIn19LCB7ImVuZCI6IDIyMTg2LCAiYmVnaW4iOiAyMjE4MSwgImVkZ2UiOiAiJS9r |
| eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog |
| eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu |
| Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5WaWRlb0RlY29kZUFjY2Vs |
| ZXJhdG9yQ2FwYWJpbGl0aWVzLmZsYWdzIn19LCB7ImVuZCI6IDIzMzc2LCAiYmVnaW4iOiAyMzMz |
| OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp |
| bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv |
| bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5W |
| aWRlb0VuY29kZUFjY2VsZXJhdG9yU3VwcG9ydGVkUHJvZmlsZSJ9fSwgeyJlbmQiOiAyNzc5Niwg |
| ImJlZ2luIjogMjc3ODksICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6 |
| ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv |
| dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6 |
| ICJncHUubW9qb20uVmlkZW9FbmNvZGVBY2NlbGVyYXRvclN1cHBvcnRlZFByb2ZpbGUucHJvZmls |
| ZSJ9fSwgeyJlbmQiOiAyNzkxMywgImJlZ2luIjogMjc4OTksICJlZGdlIjogIiUva3l0aGUvZWRn |
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz |
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog |
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uVmlkZW9FbmNvZGVBY2NlbGVyYXRvclN1 |
| cHBvcnRlZFByb2ZpbGUubWluX3Jlc29sdXRpb24ifX0sIHsiZW5kIjogMjgwMzAsICJiZWdpbiI6 |
| IDI4MDE2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y |
| X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t |
| L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1v |
| am9tLlZpZGVvRW5jb2RlQWNjZWxlcmF0b3JTdXBwb3J0ZWRQcm9maWxlLm1heF9yZXNvbHV0aW9u |
| In19LCB7ImVuZCI6IDI4MTYyLCAiYmVnaW4iOiAyODEzOSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl |
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi |
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi |
| bW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5WaWRlb0VuY29kZUFjY2VsZXJhdG9yU3Vw |
| cG9ydGVkUHJvZmlsZS5tYXhfZnJhbWVyYXRlX251bWVyYXRvciJ9fSwgeyJlbmQiOiAyODI5OCwg |
| ImJlZ2luIjogMjgyNzMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6 |
| ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv |
| dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6 |
| ICJncHUubW9qb20uVmlkZW9FbmNvZGVBY2NlbGVyYXRvclN1cHBvcnRlZFByb2ZpbGUubWF4X2Zy |
| YW1lcmF0ZV9kZW5vbWluYXRvciJ9fSwgeyJlbmQiOiAyOTUwNCwgImJlZ2luIjogMjk0NjYsICJl |
| ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs |
| ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v |
| c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uSW1hZ2VE |
| ZWNvZGVBY2NlbGVyYXRvclN1cHBvcnRlZFByb2ZpbGUifX0sIHsiZW5kIjogMzM5NTIsICJiZWdp |
| biI6IDMzOTQyLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5j |
| aG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2Uu |
| Y29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1 |
| Lm1vam9tLkltYWdlRGVjb2RlQWNjZWxlcmF0b3JTdXBwb3J0ZWRQcm9maWxlLmltYWdlX3R5cGUi |
| fX0sIHsiZW5kIjogMzQwODUsICJiZWdpbiI6IDM0MDYzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv |
| Z2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6 |
| ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJt |
| b2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLkltYWdlRGVjb2RlQWNjZWxlcmF0b3JTdXBw |
| b3J0ZWRQcm9maWxlLm1pbl9lbmNvZGVkX2RpbWVuc2lvbnMifX0sIHsiZW5kIjogMzQyMTgsICJi |
| ZWdpbiI6IDM0MTk2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAi |
| YW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy |
| Y2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAi |
| Z3B1Lm1vam9tLkltYWdlRGVjb2RlQWNjZWxlcmF0b3JTdXBwb3J0ZWRQcm9maWxlLm1heF9lbmNv |
| ZGVkX2RpbWVuc2lvbnMifX0sIHsiZW5kIjogMzQzNjYsICJiZWdpbiI6IDM0MzU0LCAiZWRnZSI6 |
| ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5h |
| bWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIs |
| ICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLkltYWdlRGVjb2Rl |
| QWNjZWxlcmF0b3JTdXBwb3J0ZWRQcm9maWxlLnN1YnNhbXBsaW5ncyJ9fSwgeyJlbmQiOiAzNTUx |
| MCwgImJlZ2luIjogMzU1MDMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw |
| ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds |
| ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy |
| ZSI6ICJncHUubW9qb20uR3B1SW5mbyJ9fSwgeyJlbmQiOiA0MDQ5MywgImJlZ2luIjogNDA0NzQs |
| ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l |
| cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p |
| dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1 |
| SW5mby5pbml0aWFsaXphdGlvbl90aW1lIn19LCB7ImVuZCI6IDQwNTU4LCAiYmVnaW4iOiA0MDU1 |
| MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp |
| bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv |
| bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5H |
| cHVJbmZvLm9wdGltdXMifX0sIHsiZW5kIjogNDA2MzcsICJiZWdpbiI6IDQwNjIzLCAiZWRnZSI6 |
| ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5h |
| bWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIs |
| ICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLkdwdUluZm8uYW1k |
| X3N3aXRjaGFibGUifX0sIHsiZW5kIjogNDA3MDIsICJiZWdpbiI6IDQwNjk5LCAiZWRnZSI6ICIl |
| L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi |
| OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs |
| YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLkdwdUluZm8uZ3B1In19 |
| LCB7ImVuZCI6IDQwODAyLCAiYmVnaW4iOiA0MDc4OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl |
| bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi |
| Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q |
| b20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLnNlY29uZGFyeV9ncHVzIn19LCB7 |
| ImVuZCI6IDQwOTAwLCAiYmVnaW4iOiA0MDg4MCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy |
| YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy |
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i |
| LCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLnBpeGVsX3NoYWRlcl92ZXJzaW9uIn19 |
| LCB7ImVuZCI6IDQxMDAwLCAiYmVnaW4iOiA0MDk3OSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl |
| bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi |
| Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q |
| b20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLnZlcnRleF9zaGFkZXJfdmVyc2lv |
| biJ9fSwgeyJlbmQiOiA0MTA5MCwgImJlZ2luIjogNDEwNzQsICJlZGdlIjogIiUva3l0aGUvZWRn |
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz |
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog |
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1SW5mby5tYXhfbXNhYV9zYW1wbGVz |
| In19LCB7ImVuZCI6IDQxMTg0LCAiYmVnaW4iOiA0MTE2NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdl |
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi |
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi |
| bW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLm1hY2hpbmVfbW9kZWxfbmFt |
| ZSJ9fSwgeyJlbmQiOiA0MTI4NCwgImJlZ2luIjogNDEyNjMsICJlZGdlIjogIiUva3l0aGUvZWRn |
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz |
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog |
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1SW5mby5tYWNoaW5lX21vZGVsX3Zl |
| cnNpb24ifX0sIHsiZW5kIjogNDEzNjIsICJiZWdpbiI6IDQxMzUyLCAiZWRnZSI6ICIlL2t5dGhl |
| L2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNv |
| cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFn |
| ZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLkdwdUluZm8uZ2xfdmVyc2lvbiJ9 |
| fSwgeyJlbmQiOiA0MTQzOCwgImJlZ2luIjogNDE0MjksICJlZGdlIjogIiUva3l0aGUvZWRnZS9n |
| ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog |
| ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v |
| am9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1SW5mby5nbF92ZW5kb3IifX0sIHsiZW5k |
| IjogNDE1MTgsICJiZWdpbiI6IDQxNTA3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz |
| IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1 |
| bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz |
| aWduYXR1cmUiOiAiZ3B1Lm1vam9tLkdwdUluZm8uZ2xfcmVuZGVyZXIifX0sIHsiZW5kIjogNDE2 |
| MDIsICJiZWdpbiI6IDQxNTg5LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5 |
| cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n |
| bGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1 |
| cmUiOiAiZ3B1Lm1vam9tLkdwdUluZm8uZ2xfZXh0ZW5zaW9ucyJ9fSwgeyJlbmQiOiA0MTY4NCwg |
| ImJlZ2luIjogNDE2NzIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6 |
| ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv |
| dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6 |
| ICJncHUubW9qb20uR3B1SW5mby5nbF93c192ZW5kb3IifX0sIHsiZW5kIjogNDE3NjgsICJiZWdp |
| biI6IDQxNzU1LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5j |
| aG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2Uu |
| Y29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1 |
| Lm1vam9tLkdwdUluZm8uZ2xfd3NfdmVyc2lvbiJ9fSwgeyJlbmQiOiA0MTg1OCwgImJlZ2luIjog |
| NDE4NDIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3Jf |
| ZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v |
| Y2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9q |
| b20uR3B1SW5mby5nbF93c19leHRlbnNpb25zIn19LCB7ImVuZCI6IDQxOTczLCAiYmVnaW4iOiA0 |
| MTk0MywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9k |
| ZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9j |
| aHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pv |
| bS5HcHVJbmZvLmdsX3Jlc2V0X25vdGlmaWNhdGlvbl9zdHJhdGVneSJ9fSwgeyJlbmQiOiA0MjA2 |
| MCwgImJlZ2luIjogNDIwNDIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw |
| ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds |
| ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy |
| ZSI6ICJncHUubW9qb20uR3B1SW5mby5zb2Z0d2FyZV9yZW5kZXJpbmcifX0sIHsiZW5kIjogNDIx |
| NjYsICJiZWdpbiI6IDQyMTQyLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5 |
| cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n |
| bGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1 |
| cmUiOiAiZ3B1Lm1vam9tLkdwdUluZm8uZGlyZWN0X3JlbmRlcmluZ192ZXJzaW9uIn19LCB7ImVu |
| ZCI6IDQyMjM1LCAiYmVnaW4iOiA0MjIyNiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl |
| cyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21p |
| dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAi |
| c2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLnNhbmRib3hlZCJ9fSwgeyJlbmQiOiA0MjMx |
| NCwgImJlZ2luIjogNDIzMDAsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw |
| ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds |
| ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy |
| ZSI6ICJncHUubW9qb20uR3B1SW5mby5pbl9wcm9jZXNzX2dwdSJ9fSwgeyJlbmQiOiA0MjQxMSwg |
| ImJlZ2luIjogNDIzODgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6 |
| ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv |
| dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6 |
| ICJncHUubW9qb20uR3B1SW5mby5wYXNzdGhyb3VnaF9jbWRfZGVjb2RlciJ9fSwgeyJlbmQiOiA0 |
| MjUzNCwgImJlZ2luIjogNDI0OTgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAi |
| dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdv |
| b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25h |
| dHVyZSI6ICJncHUubW9qb20uR3B1SW5mby5jYW5fc3VwcG9ydF90aHJlYWRlZF90ZXh0dXJlX21h |
| aWxib3gifX0sIHsiZW5kIjogNDI3MjEsICJiZWdpbiI6IDQyNjc4LCAiZWRnZSI6ICIlL2t5dGhl |
| L2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNv |
| cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFn |
| ZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLkdwdUluZm8udmlkZW9fZGVjb2Rl |
| X2FjY2VsZXJhdG9yX3N1cHBvcnRlZF9wcm9maWxlcyJ9fSwgeyJlbmQiOiA0MjkwOCwgImJlZ2lu |
| IjogNDI4NjUsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNo |
| b3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j |
| b20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUu |
| bW9qb20uR3B1SW5mby52aWRlb19lbmNvZGVfYWNjZWxlcmF0b3Jfc3VwcG9ydGVkX3Byb2ZpbGVz |
| In19LCB7ImVuZCI6IDQzMDI1LCAiYmVnaW4iOiA0Mjk5MiwgImVkZ2UiOiAiJS9reXRoZS9lZGdl |
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi |
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi |
| bW9qb20iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLmpwZWdfZGVjb2RlX2FjY2Vs |
| ZXJhdG9yX3N1cHBvcnRlZCJ9fSwgeyJlbmQiOiA0MzIxMiwgImJlZ2luIjogNDMxNjksICJlZGdl |
| IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2 |
| bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj |
| IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1SW5mby5p |
| bWFnZV9kZWNvZGVfYWNjZWxlcmF0b3Jfc3VwcG9ydGVkX3Byb2ZpbGVzIn19LCB7ImVuZCI6IDQz |
| MzA5LCAiYmVnaW4iOiA0MzI4NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0 |
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v |
| Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0 |
| dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLnN1YnBpeGVsX2ZvbnRfcmVuZGVyaW5nIn19LCB7ImVu |
| ZCI6IDQzNDI0LCAiYmVnaW4iOiA0MzM5NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl |
| cyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21p |
| dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAi |
| c2lnbmF0dXJlIjogImdwdS5tb2pvbS5HcHVJbmZvLnZpc2liaWxpdHlfY2FsbGJhY2tfY2FsbF9j |
| b3VudCJ9fSwgeyJlbmQiOiA0MzUyNywgImJlZ2luIjogNDM1MTYsICJlZGdlIjogIiUva3l0aGUv |
| ZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29y |
| cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdl |
| IjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uR3B1SW5mby52dWxrYW5faW5mbyJ9 |
| fV0sICJ0eXBlIjogImt5dGhlMCJ9 |
| */ |