| // mojo/public/tools/fuzzers/fuzz.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 MOJO_PUBLIC_TOOLS_FUZZERS_FUZZ_MOJOM_BLINK_H_ |
| #define MOJO_PUBLIC_TOOLS_FUZZERS_FUZZ_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 "mojo/public/tools/fuzzers/fuzz.mojom-shared.h" |
| #include "mojo/public/tools/fuzzers/fuzz.mojom-blink-forward.h" |
| |
| #include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h" |
| #include "mojo/public/cpp/bindings/lib/wtf_hash_util.h" |
| #include "third_party/blink/renderer/platform/wtf/hash_functions.h" |
| #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" |
| |
| #include "mojo/public/cpp/bindings/lib/control_message_handler.h" |
| #include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h" |
| |
| |
| |
| #ifdef KYTHE_IS_RUNNING |
| #pragma kythe_inline_metadata "Metadata comment" |
| #endif |
| |
| |
| namespace WTF { |
| struct fuzz_mojom_internal_FuzzEnum_DataHashFn { |
| static unsigned GetHash(const ::fuzz::mojom::FuzzEnum& value) { |
| using utype = std::underlying_type<::fuzz::mojom::FuzzEnum>::type; |
| return DefaultHash<utype>::Hash().GetHash(static_cast<utype>(value)); |
| } |
| static bool Equal(const ::fuzz::mojom::FuzzEnum& left, const ::fuzz::mojom::FuzzEnum& right) { |
| return left == right; |
| } |
| static const bool safe_to_compare_to_empty_or_deleted = true; |
| }; |
| |
| template <> |
| struct HashTraits<::fuzz::mojom::FuzzEnum> |
| : public GenericHashTraits<::fuzz::mojom::FuzzEnum> { |
| static_assert(true, |
| "-1000000 is a reserved enum value"); |
| static_assert(true, |
| "-1000001 is a reserved enum value"); |
| static const bool kEmptyValueIsZero = false; |
| static ::fuzz::mojom::FuzzEnum EmptyValue() { return static_cast<::fuzz::mojom::FuzzEnum>(-1000000); } |
| static void ConstructDeletedValue(::fuzz::mojom::FuzzEnum& slot, bool) { |
| slot = static_cast<::fuzz::mojom::FuzzEnum>(-1000001); |
| } |
| static bool IsDeletedValue(const ::fuzz::mojom::FuzzEnum& value) { |
| return value == static_cast<::fuzz::mojom::FuzzEnum>(-1000001); |
| } |
| }; |
| } // namespace WTF |
| |
| |
| namespace fuzz { |
| namespace mojom { |
| namespace blink { |
| |
| class FuzzDummyInterfaceProxy; |
| |
| template <typename ImplRefTraits> |
| class FuzzDummyInterfaceStub; |
| |
| class FuzzDummyInterfaceRequestValidator; |
| |
| |
| // @generated_from: fuzz.mojom.FuzzDummyInterface |
| class FuzzDummyInterface |
| : public FuzzDummyInterfaceInterfaceBase { |
| public: |
| static const char Name_[]; |
| static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message); |
| static const char* MessageToMethodName_(mojo::Message& message); |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = false; |
| static constexpr bool HasSyncMethods_ = false; |
| static constexpr bool HasUninterruptableMethods_ = false; |
| |
| using Base_ = FuzzDummyInterfaceInterfaceBase; |
| using Proxy_ = FuzzDummyInterfaceProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = FuzzDummyInterfaceStub<ImplRefTraits>; |
| |
| using RequestValidator_ = FuzzDummyInterfaceRequestValidator; |
| using ResponseValidator_ = mojo::PassThroughFilter; |
| enum MethodMinVersions : uint32_t { |
| kPingMinVersion = 0, |
| }; |
| |
| // crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK |
| // with not having this data in traces there. |
| #if !BUILDFLAG(IS_FUCHSIA) |
| struct Ping_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| #endif // !BUILDFLAG(IS_FUCHSIA) |
| virtual ~FuzzDummyInterface() = default; |
| |
| |
| // @generated_from: fuzz.mojom.FuzzDummyInterface.Ping |
| virtual void Ping() = 0; |
| }; |
| |
| class FuzzInterfaceProxy; |
| |
| template <typename ImplRefTraits> |
| class FuzzInterfaceStub; |
| |
| class FuzzInterfaceRequestValidator; |
| class FuzzInterfaceResponseValidator; |
| |
| |
| // @generated_from: fuzz.mojom.FuzzInterface |
| class FuzzInterface |
| : public FuzzInterfaceInterfaceBase { |
| public: |
| static const char Name_[]; |
| static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message); |
| static const char* MessageToMethodName_(mojo::Message& message); |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = true; |
| static constexpr bool HasSyncMethods_ = true; |
| static constexpr bool HasUninterruptableMethods_ = false; |
| |
| using Base_ = FuzzInterfaceInterfaceBase; |
| using Proxy_ = FuzzInterfaceProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = FuzzInterfaceStub<ImplRefTraits>; |
| |
| using RequestValidator_ = FuzzInterfaceRequestValidator; |
| using ResponseValidator_ = FuzzInterfaceResponseValidator; |
| enum MethodMinVersions : uint32_t { |
| kFuzzBasicMinVersion = 0, |
| kFuzzBasicRespMinVersion = 0, |
| kFuzzBasicSyncRespMinVersion = 0, |
| kFuzzArgsMinVersion = 0, |
| kFuzzArgsRespMinVersion = 0, |
| kFuzzArgsSyncRespMinVersion = 0, |
| kFuzzAssociatedMinVersion = 0, |
| }; |
| |
| // crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK |
| // with not having this data in traces there. |
| #if !BUILDFLAG(IS_FUCHSIA) |
| struct FuzzBasic_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct FuzzBasicResp_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct FuzzBasicSyncResp_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct FuzzArgs_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct FuzzArgsResp_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct FuzzArgsSyncResp_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| struct FuzzAssociated_Sym { |
| NOINLINE static void IPCSymbol(); |
| }; |
| #endif // !BUILDFLAG(IS_FUCHSIA) |
| virtual ~FuzzInterface() = default; |
| |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasic |
| virtual void FuzzBasic() = 0; |
| |
| |
| using FuzzBasicRespCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasicResp |
| virtual void FuzzBasicResp(FuzzBasicRespCallback callback) = 0; |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasicSyncResp |
| virtual bool FuzzBasicSyncResp(); |
| |
| using FuzzBasicSyncRespCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasicSyncResp |
| virtual void FuzzBasicSyncResp(FuzzBasicSyncRespCallback callback) = 0; |
| |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgs |
| virtual void FuzzArgs(FuzzStructPtr a, FuzzStructPtr b) = 0; |
| |
| |
| using FuzzArgsRespCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgsResp |
| virtual void FuzzArgsResp(FuzzStructPtr a, FuzzStructPtr b, FuzzArgsRespCallback callback) = 0; |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgsSyncResp |
| virtual bool FuzzArgsSyncResp(FuzzStructPtr a, FuzzStructPtr b); |
| |
| using FuzzArgsSyncRespCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgsSyncResp |
| virtual void FuzzArgsSyncResp(FuzzStructPtr a, FuzzStructPtr b, FuzzArgsSyncRespCallback callback) = 0; |
| |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzAssociated |
| virtual void FuzzAssociated(::mojo::PendingAssociatedReceiver<FuzzDummyInterface> receiver) = 0; |
| }; |
| |
| |
| |
| // @generated_from: fuzz.mojom.FuzzDummyInterface |
| class FuzzDummyInterfaceProxy |
| : public FuzzDummyInterface { |
| public: |
| using InterfaceType = FuzzDummyInterface; |
| |
| explicit FuzzDummyInterfaceProxy(mojo::MessageReceiverWithResponder* receiver); |
| |
| // @generated_from: fuzz.mojom.FuzzDummyInterface.Ping |
| void Ping() final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| |
| |
| |
| // @generated_from: fuzz.mojom.FuzzInterface |
| class FuzzInterfaceProxy |
| : public FuzzInterface { |
| public: |
| using InterfaceType = FuzzInterface; |
| |
| explicit FuzzInterfaceProxy(mojo::MessageReceiverWithResponder* receiver); |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasic |
| void FuzzBasic() final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasicResp |
| void FuzzBasicResp(FuzzBasicRespCallback callback) final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasicSyncResp |
| bool FuzzBasicSyncResp() final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzBasicSyncResp |
| void FuzzBasicSyncResp(FuzzBasicSyncRespCallback callback) final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgs |
| void FuzzArgs(FuzzStructPtr a, FuzzStructPtr b) final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgsResp |
| void FuzzArgsResp(FuzzStructPtr a, FuzzStructPtr b, FuzzArgsRespCallback callback) final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgsSyncResp |
| bool FuzzArgsSyncResp(FuzzStructPtr a, FuzzStructPtr b) final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzArgsSyncResp |
| void FuzzArgsSyncResp(FuzzStructPtr a, FuzzStructPtr b, FuzzArgsSyncRespCallback callback) final; |
| |
| // @generated_from: fuzz.mojom.FuzzInterface.FuzzAssociated |
| void FuzzAssociated(::mojo::PendingAssociatedReceiver<FuzzDummyInterface> receiver) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| class FuzzDummyInterfaceStubDispatch { |
| public: |
| static bool Accept(FuzzDummyInterface* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| FuzzDummyInterface* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<FuzzDummyInterface>> |
| class FuzzDummyInterfaceStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| FuzzDummyInterfaceStub() = default; |
| ~FuzzDummyInterfaceStub() override = default; |
| |
| void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } |
| ImplPointerType& sink() { return sink_; } |
| |
| bool Accept(mojo::Message* message) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return FuzzDummyInterfaceStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return FuzzDummyInterfaceStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class FuzzInterfaceStubDispatch { |
| public: |
| static bool Accept(FuzzInterface* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| FuzzInterface* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<FuzzInterface>> |
| class FuzzInterfaceStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| FuzzInterfaceStub() = default; |
| ~FuzzInterfaceStub() override = default; |
| |
| void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } |
| ImplPointerType& sink() { return sink_; } |
| |
| bool Accept(mojo::Message* message) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return FuzzInterfaceStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return FuzzInterfaceStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class FuzzDummyInterfaceRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class FuzzInterfaceRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class FuzzInterfaceResponseValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| |
| |
| |
| |
| |
| // @generated_from: fuzz.mojom.FuzzDummyStruct |
| class FuzzDummyStruct { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<FuzzDummyStruct, T>::value>; |
| using DataView = FuzzDummyStructDataView; |
| using Data_ = internal::FuzzDummyStruct_Data; |
| |
| template <typename... Args> |
| static FuzzDummyStructPtr New(Args&&... args) { |
| return FuzzDummyStructPtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static FuzzDummyStructPtr From(const U& u) { |
| return mojo::TypeConverter<FuzzDummyStructPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, FuzzDummyStruct>::Convert(*this); |
| } |
| |
| |
| FuzzDummyStruct(); |
| |
| explicit FuzzDummyStruct( |
| int8_t dummy); |
| |
| |
| ~FuzzDummyStruct(); |
| |
| // 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 = FuzzDummyStructPtr> |
| FuzzDummyStructPtr 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, FuzzDummyStruct::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, FuzzDummyStruct::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< |
| FuzzDummyStruct::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| FuzzDummyStruct::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::FuzzDummyStruct_UnserializedMessageContext< |
| UserType, FuzzDummyStruct::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<FuzzDummyStruct::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return FuzzDummyStruct::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::FuzzDummyStruct_UnserializedMessageContext< |
| UserType, FuzzDummyStruct::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<FuzzDummyStruct::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzDummyStruct.dummy |
| int8_t dummy; |
| |
| // 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, FuzzDummyStruct::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, FuzzDummyStruct::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, FuzzDummyStruct::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, FuzzDummyStruct::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion |
| class FuzzUnion { |
| public: |
| using DataView = FuzzUnionDataView; |
| using Data_ = internal::FuzzUnion_Data; |
| using Tag = Data_::FuzzUnion_Tag; |
| |
| template <typename... Args> |
| static FuzzUnionPtr New(Args&&... args) { |
| static_assert( |
| sizeof...(args) < 0, |
| "Do not use Union::New(); to create a union of a given subtype, use " |
| "New<SubType>(), not New() followed by set_<sub_type>(). To represent " |
| "an empty union, mark the field or parameter as nullable in the mojom " |
| "definition."); |
| } |
| // Construct an instance holding |fuzz_bool|. |
| static FuzzUnionPtr |
| NewFuzzBool( |
| bool fuzz_bool) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_bool(std::move(fuzz_bool)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_int8|. |
| static FuzzUnionPtr |
| NewFuzzInt8( |
| int8_t fuzz_int8) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_int8(std::move(fuzz_int8)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_uint8|. |
| static FuzzUnionPtr |
| NewFuzzUint8( |
| uint8_t fuzz_uint8) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_uint8(std::move(fuzz_uint8)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_int16|. |
| static FuzzUnionPtr |
| NewFuzzInt16( |
| int16_t fuzz_int16) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_int16(std::move(fuzz_int16)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_uint16|. |
| static FuzzUnionPtr |
| NewFuzzUint16( |
| uint16_t fuzz_uint16) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_uint16(std::move(fuzz_uint16)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_int32|. |
| static FuzzUnionPtr |
| NewFuzzInt32( |
| int32_t fuzz_int32) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_int32(std::move(fuzz_int32)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_uint32|. |
| static FuzzUnionPtr |
| NewFuzzUint32( |
| uint32_t fuzz_uint32) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_uint32(std::move(fuzz_uint32)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_int64|. |
| static FuzzUnionPtr |
| NewFuzzInt64( |
| int64_t fuzz_int64) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_int64(std::move(fuzz_int64)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_uint64|. |
| static FuzzUnionPtr |
| NewFuzzUint64( |
| uint64_t fuzz_uint64) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_uint64(std::move(fuzz_uint64)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_float|. |
| static FuzzUnionPtr |
| NewFuzzFloat( |
| float fuzz_float) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_float(std::move(fuzz_float)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_double|. |
| static FuzzUnionPtr |
| NewFuzzDouble( |
| double fuzz_double) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_double(std::move(fuzz_double)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_string|. |
| static FuzzUnionPtr |
| NewFuzzString( |
| const WTF::String& fuzz_string) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_string(std::move(fuzz_string)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_bool_array|. |
| static FuzzUnionPtr |
| NewFuzzBoolArray( |
| WTF::Vector<bool> fuzz_bool_array) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_bool_array(std::move(fuzz_bool_array)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_primitive_array|. |
| static FuzzUnionPtr |
| NewFuzzPrimitiveArray( |
| WTF::Vector<int8_t> fuzz_primitive_array) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_primitive_array(std::move(fuzz_primitive_array)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_struct_array|. |
| static FuzzUnionPtr |
| NewFuzzStructArray( |
| WTF::Vector<FuzzDummyStructPtr> fuzz_struct_array) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_struct_array(std::move(fuzz_struct_array)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_primitive_map|. |
| static FuzzUnionPtr |
| NewFuzzPrimitiveMap( |
| const WTF::HashMap<WTF::String, int8_t>& fuzz_primitive_map) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_primitive_map(std::move(fuzz_primitive_map)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_array_map|. |
| static FuzzUnionPtr |
| NewFuzzArrayMap( |
| const WTF::HashMap<WTF::String, WTF::Vector<WTF::String>>& fuzz_array_map) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_array_map(std::move(fuzz_array_map)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_struct_map|. |
| static FuzzUnionPtr |
| NewFuzzStructMap( |
| WTF::HashMap<WTF::String, FuzzDummyStructPtr> fuzz_struct_map) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_struct_map(std::move(fuzz_struct_map)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_union_map|. |
| static FuzzUnionPtr |
| NewFuzzUnionMap( |
| WTF::HashMap<FuzzEnum, FuzzUnionPtr> fuzz_union_map) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_union_map(std::move(fuzz_union_map)); |
| return result; |
| } |
| // Construct an instance holding |fuzz_complex|. |
| static FuzzUnionPtr |
| NewFuzzComplex( |
| absl::optional<WTF::Vector<WTF::HashMap<FuzzEnum, WTF::HashMap<int8_t, absl::optional<WTF::Vector<FuzzUnionPtr>>>>>> fuzz_complex) { |
| auto result = FuzzUnionPtr(absl::in_place); |
| result->set_fuzz_complex(std::move(fuzz_complex)); |
| return result; |
| } |
| |
| template <typename U> |
| static FuzzUnionPtr From(const U& u) { |
| return mojo::TypeConverter<FuzzUnionPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, FuzzUnion>::Convert(*this); |
| } |
| |
| FuzzUnion(); |
| ~FuzzUnion(); |
| |
| // 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 UnionPtrType = FuzzUnionPtr> |
| FuzzUnionPtr 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, |
| typename std::enable_if<std::is_same< |
| T, FuzzUnion>::value>::type* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, |
| typename std::enable_if<std::is_same< |
| T, FuzzUnion>::value>::type* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| |
| Tag which() const { |
| return tag_; |
| } |
| |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_bool |
| bool is_fuzz_bool() const { return tag_ == Tag::kFuzzBool; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_bool |
| bool get_fuzz_bool() const { |
| CHECK(tag_ == Tag::kFuzzBool); |
| return data_.fuzz_bool; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_bool |
| void set_fuzz_bool( |
| bool fuzz_bool); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int8 |
| bool is_fuzz_int8() const { return tag_ == Tag::kFuzzInt8; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int8 |
| int8_t get_fuzz_int8() const { |
| CHECK(tag_ == Tag::kFuzzInt8); |
| return data_.fuzz_int8; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int8 |
| void set_fuzz_int8( |
| int8_t fuzz_int8); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint8 |
| bool is_fuzz_uint8() const { return tag_ == Tag::kFuzzUint8; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint8 |
| uint8_t get_fuzz_uint8() const { |
| CHECK(tag_ == Tag::kFuzzUint8); |
| return data_.fuzz_uint8; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint8 |
| void set_fuzz_uint8( |
| uint8_t fuzz_uint8); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int16 |
| bool is_fuzz_int16() const { return tag_ == Tag::kFuzzInt16; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int16 |
| int16_t get_fuzz_int16() const { |
| CHECK(tag_ == Tag::kFuzzInt16); |
| return data_.fuzz_int16; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int16 |
| void set_fuzz_int16( |
| int16_t fuzz_int16); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint16 |
| bool is_fuzz_uint16() const { return tag_ == Tag::kFuzzUint16; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint16 |
| uint16_t get_fuzz_uint16() const { |
| CHECK(tag_ == Tag::kFuzzUint16); |
| return data_.fuzz_uint16; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint16 |
| void set_fuzz_uint16( |
| uint16_t fuzz_uint16); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int32 |
| bool is_fuzz_int32() const { return tag_ == Tag::kFuzzInt32; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int32 |
| int32_t get_fuzz_int32() const { |
| CHECK(tag_ == Tag::kFuzzInt32); |
| return data_.fuzz_int32; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int32 |
| void set_fuzz_int32( |
| int32_t fuzz_int32); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint32 |
| bool is_fuzz_uint32() const { return tag_ == Tag::kFuzzUint32; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint32 |
| uint32_t get_fuzz_uint32() const { |
| CHECK(tag_ == Tag::kFuzzUint32); |
| return data_.fuzz_uint32; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint32 |
| void set_fuzz_uint32( |
| uint32_t fuzz_uint32); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int64 |
| bool is_fuzz_int64() const { return tag_ == Tag::kFuzzInt64; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int64 |
| int64_t get_fuzz_int64() const { |
| CHECK(tag_ == Tag::kFuzzInt64); |
| return data_.fuzz_int64; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_int64 |
| void set_fuzz_int64( |
| int64_t fuzz_int64); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint64 |
| bool is_fuzz_uint64() const { return tag_ == Tag::kFuzzUint64; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint64 |
| uint64_t get_fuzz_uint64() const { |
| CHECK(tag_ == Tag::kFuzzUint64); |
| return data_.fuzz_uint64; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_uint64 |
| void set_fuzz_uint64( |
| uint64_t fuzz_uint64); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_float |
| bool is_fuzz_float() const { return tag_ == Tag::kFuzzFloat; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_float |
| float get_fuzz_float() const { |
| CHECK(tag_ == Tag::kFuzzFloat); |
| return data_.fuzz_float; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_float |
| void set_fuzz_float( |
| float fuzz_float); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_double |
| bool is_fuzz_double() const { return tag_ == Tag::kFuzzDouble; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_double |
| double get_fuzz_double() const { |
| CHECK(tag_ == Tag::kFuzzDouble); |
| return data_.fuzz_double; |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_double |
| void set_fuzz_double( |
| double fuzz_double); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_string |
| bool is_fuzz_string() const { return tag_ == Tag::kFuzzString; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_string |
| WTF::String& get_fuzz_string() const { |
| CHECK(tag_ == Tag::kFuzzString); |
| return *(data_.fuzz_string); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_string |
| void set_fuzz_string( |
| const WTF::String& fuzz_string); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_bool_array |
| bool is_fuzz_bool_array() const { return tag_ == Tag::kFuzzBoolArray; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_bool_array |
| WTF::Vector<bool>& get_fuzz_bool_array() const { |
| CHECK(tag_ == Tag::kFuzzBoolArray); |
| return *(data_.fuzz_bool_array); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_bool_array |
| void set_fuzz_bool_array( |
| WTF::Vector<bool> fuzz_bool_array); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_primitive_array |
| bool is_fuzz_primitive_array() const { return tag_ == Tag::kFuzzPrimitiveArray; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_primitive_array |
| WTF::Vector<int8_t>& get_fuzz_primitive_array() const { |
| CHECK(tag_ == Tag::kFuzzPrimitiveArray); |
| return *(data_.fuzz_primitive_array); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_primitive_array |
| void set_fuzz_primitive_array( |
| WTF::Vector<int8_t> fuzz_primitive_array); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_struct_array |
| bool is_fuzz_struct_array() const { return tag_ == Tag::kFuzzStructArray; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_struct_array |
| WTF::Vector<FuzzDummyStructPtr>& get_fuzz_struct_array() const { |
| CHECK(tag_ == Tag::kFuzzStructArray); |
| return *(data_.fuzz_struct_array); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_struct_array |
| void set_fuzz_struct_array( |
| WTF::Vector<FuzzDummyStructPtr> fuzz_struct_array); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_primitive_map |
| bool is_fuzz_primitive_map() const { return tag_ == Tag::kFuzzPrimitiveMap; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_primitive_map |
| WTF::HashMap<WTF::String, int8_t>& get_fuzz_primitive_map() const { |
| CHECK(tag_ == Tag::kFuzzPrimitiveMap); |
| return *(data_.fuzz_primitive_map); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_primitive_map |
| void set_fuzz_primitive_map( |
| const WTF::HashMap<WTF::String, int8_t>& fuzz_primitive_map); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_array_map |
| bool is_fuzz_array_map() const { return tag_ == Tag::kFuzzArrayMap; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_array_map |
| WTF::HashMap<WTF::String, WTF::Vector<WTF::String>>& get_fuzz_array_map() const { |
| CHECK(tag_ == Tag::kFuzzArrayMap); |
| return *(data_.fuzz_array_map); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_array_map |
| void set_fuzz_array_map( |
| const WTF::HashMap<WTF::String, WTF::Vector<WTF::String>>& fuzz_array_map); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_struct_map |
| bool is_fuzz_struct_map() const { return tag_ == Tag::kFuzzStructMap; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_struct_map |
| WTF::HashMap<WTF::String, FuzzDummyStructPtr>& get_fuzz_struct_map() const { |
| CHECK(tag_ == Tag::kFuzzStructMap); |
| return *(data_.fuzz_struct_map); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_struct_map |
| void set_fuzz_struct_map( |
| WTF::HashMap<WTF::String, FuzzDummyStructPtr> fuzz_struct_map); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_union_map |
| bool is_fuzz_union_map() const { return tag_ == Tag::kFuzzUnionMap; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_union_map |
| WTF::HashMap<FuzzEnum, FuzzUnionPtr>& get_fuzz_union_map() const { |
| CHECK(tag_ == Tag::kFuzzUnionMap); |
| return *(data_.fuzz_union_map); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_union_map |
| void set_fuzz_union_map( |
| WTF::HashMap<FuzzEnum, FuzzUnionPtr> fuzz_union_map); |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_complex |
| bool is_fuzz_complex() const { return tag_ == Tag::kFuzzComplex; } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_complex |
| absl::optional<WTF::Vector<WTF::HashMap<FuzzEnum, WTF::HashMap<int8_t, absl::optional<WTF::Vector<FuzzUnionPtr>>>>>>& get_fuzz_complex() const { |
| CHECK(tag_ == Tag::kFuzzComplex); |
| return *(data_.fuzz_complex); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzUnion.fuzz_complex |
| void set_fuzz_complex( |
| absl::optional<WTF::Vector<WTF::HashMap<FuzzEnum, WTF::HashMap<int8_t, absl::optional<WTF::Vector<FuzzUnionPtr>>>>>> fuzz_complex); |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| FuzzUnion::DataView>(input); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| return mojo::internal::DeserializeImpl<FuzzUnion::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| private: |
| union Union_ { |
| Union_() = default; |
| ~Union_() = default; |
| bool fuzz_bool; |
| int8_t fuzz_int8; |
| uint8_t fuzz_uint8; |
| int16_t fuzz_int16; |
| uint16_t fuzz_uint16; |
| int32_t fuzz_int32; |
| uint32_t fuzz_uint32; |
| int64_t fuzz_int64; |
| uint64_t fuzz_uint64; |
| float fuzz_float; |
| double fuzz_double; |
| WTF::String* fuzz_string; |
| WTF::Vector<bool>* fuzz_bool_array; |
| WTF::Vector<int8_t>* fuzz_primitive_array; |
| WTF::Vector<FuzzDummyStructPtr>* fuzz_struct_array; |
| WTF::HashMap<WTF::String, int8_t>* fuzz_primitive_map; |
| WTF::HashMap<WTF::String, WTF::Vector<WTF::String>>* fuzz_array_map; |
| WTF::HashMap<WTF::String, FuzzDummyStructPtr>* fuzz_struct_map; |
| WTF::HashMap<FuzzEnum, FuzzUnionPtr>* fuzz_union_map; |
| absl::optional<WTF::Vector<WTF::HashMap<FuzzEnum, WTF::HashMap<int8_t, absl::optional<WTF::Vector<FuzzUnionPtr>>>>>>* fuzz_complex; |
| }; |
| |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| |
| void DestroyActive(); |
| Tag tag_; |
| Union_ data_; |
| }; |
| |
| |
| |
| |
| |
| |
| // @generated_from: fuzz.mojom.FuzzStruct |
| class FuzzStruct { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<FuzzStruct, T>::value>; |
| using DataView = FuzzStructDataView; |
| using Data_ = internal::FuzzStruct_Data; |
| |
| template <typename... Args> |
| static FuzzStructPtr New(Args&&... args) { |
| return FuzzStructPtr( |
| absl::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static FuzzStructPtr From(const U& u) { |
| return mojo::TypeConverter<FuzzStructPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, FuzzStruct>::Convert(*this); |
| } |
| |
| |
| FuzzStruct(); |
| |
| FuzzStruct( |
| bool fuzz_bool, |
| int8_t fuzz_int8, |
| uint8_t fuzz_uint8, |
| int16_t fuzz_int16, |
| uint16_t fuzz_uint16, |
| int32_t fuzz_int32, |
| uint32_t fuzz_uint32, |
| int64_t fuzz_int64, |
| uint64_t fuzz_uint64, |
| float fuzz_float, |
| double fuzz_double, |
| const WTF::String& fuzz_string, |
| WTF::Vector<bool> fuzz_bool_array, |
| WTF::Vector<int8_t> fuzz_primitive_array, |
| const WTF::HashMap<WTF::String, int8_t>& fuzz_primitive_map, |
| const WTF::HashMap<WTF::String, WTF::Vector<WTF::String>>& fuzz_array_map, |
| WTF::HashMap<FuzzEnum, FuzzUnionPtr> fuzz_union_map, |
| WTF::Vector<FuzzUnionPtr> fuzz_union_array, |
| WTF::Vector<FuzzStructPtr> fuzz_struct_array, |
| absl::optional<WTF::Vector<int8_t>> fuzz_nullable_array, |
| absl::optional<WTF::Vector<WTF::HashMap<FuzzEnum, WTF::HashMap<int8_t, absl::optional<WTF::Vector<FuzzStructPtr>>>>>> fuzz_complex); |
| |
| FuzzStruct(const FuzzStruct&) = delete; |
| FuzzStruct& operator=(const FuzzStruct&) = delete; |
| |
| ~FuzzStruct(); |
| |
| // 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 = FuzzStructPtr> |
| FuzzStructPtr 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, FuzzStruct::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, FuzzStruct::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< |
| FuzzStruct::DataView, WTF::Vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| FuzzStruct::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::FuzzStruct_UnserializedMessageContext< |
| UserType, FuzzStruct::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<FuzzStruct::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const WTF::Vector<uint8_t>& input, |
| UserType* output) { |
| return FuzzStruct::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::FuzzStruct_UnserializedMessageContext< |
| UserType, FuzzStruct::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<FuzzStruct::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_bool |
| bool fuzz_bool; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_int8 |
| int8_t fuzz_int8; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_uint8 |
| uint8_t fuzz_uint8; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_int16 |
| int16_t fuzz_int16; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_uint16 |
| uint16_t fuzz_uint16; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_int32 |
| int32_t fuzz_int32; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_uint32 |
| uint32_t fuzz_uint32; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_int64 |
| int64_t fuzz_int64; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_uint64 |
| uint64_t fuzz_uint64; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_float |
| float fuzz_float; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_double |
| double fuzz_double; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_string |
| WTF::String fuzz_string; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_bool_array |
| WTF::Vector<bool> fuzz_bool_array; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_primitive_array |
| WTF::Vector<int8_t> fuzz_primitive_array; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_primitive_map |
| WTF::HashMap<WTF::String, int8_t> fuzz_primitive_map; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_array_map |
| WTF::HashMap<WTF::String, WTF::Vector<WTF::String>> fuzz_array_map; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_union_map |
| WTF::HashMap<FuzzEnum, FuzzUnionPtr> fuzz_union_map; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_union_array |
| WTF::Vector<FuzzUnionPtr> fuzz_union_array; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_struct_array |
| WTF::Vector<FuzzStructPtr> fuzz_struct_array; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_nullable_array |
| absl::optional<WTF::Vector<int8_t>> fuzz_nullable_array; |
| |
| // @generated_from: fuzz.mojom.FuzzStruct.fuzz_complex |
| absl::optional<WTF::Vector<WTF::HashMap<FuzzEnum, WTF::HashMap<int8_t, absl::optional<WTF::Vector<FuzzStructPtr>>>>>> fuzz_complex; |
| |
| // 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, FuzzStruct::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, FuzzStruct::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, FuzzStruct::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, FuzzStruct::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| template <typename UnionPtrType> |
| FuzzUnionPtr FuzzUnion::Clone() const { |
| switch (tag_) { |
| case Tag::kFuzzBool: |
| return NewFuzzBool( |
| mojo::Clone(data_.fuzz_bool)); |
| case Tag::kFuzzInt8: |
| return NewFuzzInt8( |
| mojo::Clone(data_.fuzz_int8)); |
| case Tag::kFuzzUint8: |
| return NewFuzzUint8( |
| mojo::Clone(data_.fuzz_uint8)); |
| case Tag::kFuzzInt16: |
| return NewFuzzInt16( |
| mojo::Clone(data_.fuzz_int16)); |
| case Tag::kFuzzUint16: |
| return NewFuzzUint16( |
| mojo::Clone(data_.fuzz_uint16)); |
| case Tag::kFuzzInt32: |
| return NewFuzzInt32( |
| mojo::Clone(data_.fuzz_int32)); |
| case Tag::kFuzzUint32: |
| return NewFuzzUint32( |
| mojo::Clone(data_.fuzz_uint32)); |
| case Tag::kFuzzInt64: |
| return NewFuzzInt64( |
| mojo::Clone(data_.fuzz_int64)); |
| case Tag::kFuzzUint64: |
| return NewFuzzUint64( |
| mojo::Clone(data_.fuzz_uint64)); |
| case Tag::kFuzzFloat: |
| return NewFuzzFloat( |
| mojo::Clone(data_.fuzz_float)); |
| case Tag::kFuzzDouble: |
| return NewFuzzDouble( |
| mojo::Clone(data_.fuzz_double)); |
| case Tag::kFuzzString: |
| return NewFuzzString( |
| mojo::Clone(*data_.fuzz_string)); |
| case Tag::kFuzzBoolArray: |
| return NewFuzzBoolArray( |
| mojo::Clone(*data_.fuzz_bool_array)); |
| case Tag::kFuzzPrimitiveArray: |
| return NewFuzzPrimitiveArray( |
| mojo::Clone(*data_.fuzz_primitive_array)); |
| case Tag::kFuzzStructArray: |
| return NewFuzzStructArray( |
| mojo::Clone(*data_.fuzz_struct_array)); |
| case Tag::kFuzzPrimitiveMap: |
| return NewFuzzPrimitiveMap( |
| mojo::Clone(*data_.fuzz_primitive_map)); |
| case Tag::kFuzzArrayMap: |
| return NewFuzzArrayMap( |
| mojo::Clone(*data_.fuzz_array_map)); |
| case Tag::kFuzzStructMap: |
| return NewFuzzStructMap( |
| mojo::Clone(*data_.fuzz_struct_map)); |
| case Tag::kFuzzUnionMap: |
| return NewFuzzUnionMap( |
| mojo::Clone(*data_.fuzz_union_map)); |
| case Tag::kFuzzComplex: |
| return NewFuzzComplex( |
| mojo::Clone(*data_.fuzz_complex)); |
| } |
| return nullptr; |
| } |
| |
| template <typename T, |
| typename std::enable_if<std::is_same< |
| T, FuzzUnion>::value>::type*> |
| bool FuzzUnion::Equals(const T& other) const { |
| if (tag_ != other.which()) |
| return false; |
| |
| switch (tag_) { |
| case Tag::kFuzzBool: |
| return mojo::Equals(data_.fuzz_bool, other.data_.fuzz_bool); |
| case Tag::kFuzzInt8: |
| return mojo::Equals(data_.fuzz_int8, other.data_.fuzz_int8); |
| case Tag::kFuzzUint8: |
| return mojo::Equals(data_.fuzz_uint8, other.data_.fuzz_uint8); |
| case Tag::kFuzzInt16: |
| return mojo::Equals(data_.fuzz_int16, other.data_.fuzz_int16); |
| case Tag::kFuzzUint16: |
| return mojo::Equals(data_.fuzz_uint16, other.data_.fuzz_uint16); |
| case Tag::kFuzzInt32: |
| return mojo::Equals(data_.fuzz_int32, other.data_.fuzz_int32); |
| case Tag::kFuzzUint32: |
| return mojo::Equals(data_.fuzz_uint32, other.data_.fuzz_uint32); |
| case Tag::kFuzzInt64: |
| return mojo::Equals(data_.fuzz_int64, other.data_.fuzz_int64); |
| case Tag::kFuzzUint64: |
| return mojo::Equals(data_.fuzz_uint64, other.data_.fuzz_uint64); |
| case Tag::kFuzzFloat: |
| return mojo::Equals(data_.fuzz_float, other.data_.fuzz_float); |
| case Tag::kFuzzDouble: |
| return mojo::Equals(data_.fuzz_double, other.data_.fuzz_double); |
| case Tag::kFuzzString: |
| return mojo::Equals(*(data_.fuzz_string), *(other.data_.fuzz_string)); |
| case Tag::kFuzzBoolArray: |
| return mojo::Equals(*(data_.fuzz_bool_array), *(other.data_.fuzz_bool_array)); |
| case Tag::kFuzzPrimitiveArray: |
| return mojo::Equals(*(data_.fuzz_primitive_array), *(other.data_.fuzz_primitive_array)); |
| case Tag::kFuzzStructArray: |
| return mojo::Equals(*(data_.fuzz_struct_array), *(other.data_.fuzz_struct_array)); |
| case Tag::kFuzzPrimitiveMap: |
| return mojo::Equals(*(data_.fuzz_primitive_map), *(other.data_.fuzz_primitive_map)); |
| case Tag::kFuzzArrayMap: |
| return mojo::Equals(*(data_.fuzz_array_map), *(other.data_.fuzz_array_map)); |
| case Tag::kFuzzStructMap: |
| return mojo::Equals(*(data_.fuzz_struct_map), *(other.data_.fuzz_struct_map)); |
| case Tag::kFuzzUnionMap: |
| return mojo::Equals(*(data_.fuzz_union_map), *(other.data_.fuzz_union_map)); |
| case Tag::kFuzzComplex: |
| return mojo::Equals(*(data_.fuzz_complex), *(other.data_.fuzz_complex)); |
| } |
| |
| return false; |
| } |
| template <typename StructPtrType> |
| FuzzDummyStructPtr FuzzDummyStruct::Clone() const { |
| return New( |
| mojo::Clone(dummy) |
| ); |
| } |
| |
| template <typename T, FuzzDummyStruct::EnableIfSame<T>*> |
| bool FuzzDummyStruct::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->dummy, other_struct.dummy)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, FuzzDummyStruct::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.dummy < rhs.dummy) |
| return true; |
| if (rhs.dummy < lhs.dummy) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| FuzzStructPtr FuzzStruct::Clone() const { |
| return New( |
| mojo::Clone(fuzz_bool), |
| mojo::Clone(fuzz_int8), |
| mojo::Clone(fuzz_uint8), |
| mojo::Clone(fuzz_int16), |
| mojo::Clone(fuzz_uint16), |
| mojo::Clone(fuzz_int32), |
| mojo::Clone(fuzz_uint32), |
| mojo::Clone(fuzz_int64), |
| mojo::Clone(fuzz_uint64), |
| mojo::Clone(fuzz_float), |
| mojo::Clone(fuzz_double), |
| mojo::Clone(fuzz_string), |
| mojo::Clone(fuzz_bool_array), |
| mojo::Clone(fuzz_primitive_array), |
| mojo::Clone(fuzz_primitive_map), |
| mojo::Clone(fuzz_array_map), |
| mojo::Clone(fuzz_union_map), |
| mojo::Clone(fuzz_union_array), |
| mojo::Clone(fuzz_struct_array), |
| mojo::Clone(fuzz_nullable_array), |
| mojo::Clone(fuzz_complex) |
| ); |
| } |
| |
| template <typename T, FuzzStruct::EnableIfSame<T>*> |
| bool FuzzStruct::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->fuzz_bool, other_struct.fuzz_bool)) |
| return false; |
| if (!mojo::Equals(this->fuzz_int8, other_struct.fuzz_int8)) |
| return false; |
| if (!mojo::Equals(this->fuzz_uint8, other_struct.fuzz_uint8)) |
| return false; |
| if (!mojo::Equals(this->fuzz_int16, other_struct.fuzz_int16)) |
| return false; |
| if (!mojo::Equals(this->fuzz_uint16, other_struct.fuzz_uint16)) |
| return false; |
| if (!mojo::Equals(this->fuzz_int32, other_struct.fuzz_int32)) |
| return false; |
| if (!mojo::Equals(this->fuzz_uint32, other_struct.fuzz_uint32)) |
| return false; |
| if (!mojo::Equals(this->fuzz_int64, other_struct.fuzz_int64)) |
| return false; |
| if (!mojo::Equals(this->fuzz_uint64, other_struct.fuzz_uint64)) |
| return false; |
| if (!mojo::Equals(this->fuzz_float, other_struct.fuzz_float)) |
| return false; |
| if (!mojo::Equals(this->fuzz_double, other_struct.fuzz_double)) |
| return false; |
| if (!mojo::Equals(this->fuzz_string, other_struct.fuzz_string)) |
| return false; |
| if (!mojo::Equals(this->fuzz_bool_array, other_struct.fuzz_bool_array)) |
| return false; |
| if (!mojo::Equals(this->fuzz_primitive_array, other_struct.fuzz_primitive_array)) |
| return false; |
| if (!mojo::Equals(this->fuzz_primitive_map, other_struct.fuzz_primitive_map)) |
| return false; |
| if (!mojo::Equals(this->fuzz_array_map, other_struct.fuzz_array_map)) |
| return false; |
| if (!mojo::Equals(this->fuzz_union_map, other_struct.fuzz_union_map)) |
| return false; |
| if (!mojo::Equals(this->fuzz_union_array, other_struct.fuzz_union_array)) |
| return false; |
| if (!mojo::Equals(this->fuzz_struct_array, other_struct.fuzz_struct_array)) |
| return false; |
| if (!mojo::Equals(this->fuzz_nullable_array, other_struct.fuzz_nullable_array)) |
| return false; |
| if (!mojo::Equals(this->fuzz_complex, other_struct.fuzz_complex)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, FuzzStruct::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.fuzz_bool < rhs.fuzz_bool) |
| return true; |
| if (rhs.fuzz_bool < lhs.fuzz_bool) |
| return false; |
| if (lhs.fuzz_int8 < rhs.fuzz_int8) |
| return true; |
| if (rhs.fuzz_int8 < lhs.fuzz_int8) |
| return false; |
| if (lhs.fuzz_uint8 < rhs.fuzz_uint8) |
| return true; |
| if (rhs.fuzz_uint8 < lhs.fuzz_uint8) |
| return false; |
| if (lhs.fuzz_int16 < rhs.fuzz_int16) |
| return true; |
| if (rhs.fuzz_int16 < lhs.fuzz_int16) |
| return false; |
| if (lhs.fuzz_uint16 < rhs.fuzz_uint16) |
| return true; |
| if (rhs.fuzz_uint16 < lhs.fuzz_uint16) |
| return false; |
| if (lhs.fuzz_int32 < rhs.fuzz_int32) |
| return true; |
| if (rhs.fuzz_int32 < lhs.fuzz_int32) |
| return false; |
| if (lhs.fuzz_uint32 < rhs.fuzz_uint32) |
| return true; |
| if (rhs.fuzz_uint32 < lhs.fuzz_uint32) |
| return false; |
| if (lhs.fuzz_int64 < rhs.fuzz_int64) |
| return true; |
| if (rhs.fuzz_int64 < lhs.fuzz_int64) |
| return false; |
| if (lhs.fuzz_uint64 < rhs.fuzz_uint64) |
| return true; |
| if (rhs.fuzz_uint64 < lhs.fuzz_uint64) |
| return false; |
| if (lhs.fuzz_float < rhs.fuzz_float) |
| return true; |
| if (rhs.fuzz_float < lhs.fuzz_float) |
| return false; |
| if (lhs.fuzz_double < rhs.fuzz_double) |
| return true; |
| if (rhs.fuzz_double < lhs.fuzz_double) |
| return false; |
| if (lhs.fuzz_string < rhs.fuzz_string) |
| return true; |
| if (rhs.fuzz_string < lhs.fuzz_string) |
| return false; |
| if (lhs.fuzz_bool_array < rhs.fuzz_bool_array) |
| return true; |
| if (rhs.fuzz_bool_array < lhs.fuzz_bool_array) |
| return false; |
| if (lhs.fuzz_primitive_array < rhs.fuzz_primitive_array) |
| return true; |
| if (rhs.fuzz_primitive_array < lhs.fuzz_primitive_array) |
| return false; |
| if (lhs.fuzz_primitive_map < rhs.fuzz_primitive_map) |
| return true; |
| if (rhs.fuzz_primitive_map < lhs.fuzz_primitive_map) |
| return false; |
| if (lhs.fuzz_array_map < rhs.fuzz_array_map) |
| return true; |
| if (rhs.fuzz_array_map < lhs.fuzz_array_map) |
| return false; |
| if (lhs.fuzz_union_map < rhs.fuzz_union_map) |
| return true; |
| if (rhs.fuzz_union_map < lhs.fuzz_union_map) |
| return false; |
| if (lhs.fuzz_union_array < rhs.fuzz_union_array) |
| return true; |
| if (rhs.fuzz_union_array < lhs.fuzz_union_array) |
| return false; |
| if (lhs.fuzz_struct_array < rhs.fuzz_struct_array) |
| return true; |
| if (rhs.fuzz_struct_array < lhs.fuzz_struct_array) |
| return false; |
| if (lhs.fuzz_nullable_array < rhs.fuzz_nullable_array) |
| return true; |
| if (rhs.fuzz_nullable_array < lhs.fuzz_nullable_array) |
| return false; |
| if (lhs.fuzz_complex < rhs.fuzz_complex) |
| return true; |
| if (rhs.fuzz_complex < lhs.fuzz_complex) |
| return false; |
| return false; |
| } |
| |
| |
| } // namespace blink |
| } // namespace mojom |
| } // namespace fuzz |
| |
| namespace mojo { |
| |
| |
| template <> |
| struct StructTraits<::fuzz::mojom::blink::FuzzDummyStruct::DataView, |
| ::fuzz::mojom::blink::FuzzDummyStructPtr> { |
| static bool IsNull(const ::fuzz::mojom::blink::FuzzDummyStructPtr& input) { return !input; } |
| static void SetToNull(::fuzz::mojom::blink::FuzzDummyStructPtr* output) { output->reset(); } |
| |
| static decltype(::fuzz::mojom::blink::FuzzDummyStruct::dummy) dummy( |
| const ::fuzz::mojom::blink::FuzzDummyStructPtr& input) { |
| return input->dummy; |
| } |
| |
| static bool Read(::fuzz::mojom::blink::FuzzDummyStruct::DataView input, ::fuzz::mojom::blink::FuzzDummyStructPtr* output); |
| }; |
| |
| |
| template <> |
| struct StructTraits<::fuzz::mojom::blink::FuzzStruct::DataView, |
| ::fuzz::mojom::blink::FuzzStructPtr> { |
| static bool IsNull(const ::fuzz::mojom::blink::FuzzStructPtr& input) { return !input; } |
| static void SetToNull(::fuzz::mojom::blink::FuzzStructPtr* output) { output->reset(); } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_bool) fuzz_bool( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_bool; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_int8) fuzz_int8( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_int8; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_uint8) fuzz_uint8( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_uint8; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_int16) fuzz_int16( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_int16; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_uint16) fuzz_uint16( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_uint16; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_int32) fuzz_int32( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_int32; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_uint32) fuzz_uint32( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_uint32; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_int64) fuzz_int64( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_int64; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_uint64) fuzz_uint64( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_uint64; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_float) fuzz_float( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_float; |
| } |
| |
| static decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_double) fuzz_double( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_double; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_string)& fuzz_string( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_string; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_bool_array)& fuzz_bool_array( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_bool_array; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_primitive_array)& fuzz_primitive_array( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_primitive_array; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_primitive_map)& fuzz_primitive_map( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_primitive_map; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_array_map)& fuzz_array_map( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_array_map; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_union_map)& fuzz_union_map( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_union_map; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_union_array)& fuzz_union_array( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_union_array; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_struct_array)& fuzz_struct_array( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_struct_array; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_nullable_array)& fuzz_nullable_array( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_nullable_array; |
| } |
| |
| static const decltype(::fuzz::mojom::blink::FuzzStruct::fuzz_complex)& fuzz_complex( |
| const ::fuzz::mojom::blink::FuzzStructPtr& input) { |
| return input->fuzz_complex; |
| } |
| |
| static bool Read(::fuzz::mojom::blink::FuzzStruct::DataView input, ::fuzz::mojom::blink::FuzzStructPtr* output); |
| }; |
| |
| |
| template <> |
| struct UnionTraits<::fuzz::mojom::blink::FuzzUnion::DataView, |
| ::fuzz::mojom::blink::FuzzUnionPtr> { |
| static bool IsNull(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { return !input; } |
| static void SetToNull(::fuzz::mojom::blink::FuzzUnionPtr* output) { output->reset(); } |
| |
| static ::fuzz::mojom::blink::FuzzUnion::Tag GetTag(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->which(); |
| } |
| |
| static bool fuzz_bool(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_bool(); |
| } |
| |
| static int8_t fuzz_int8(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_int8(); |
| } |
| |
| static uint8_t fuzz_uint8(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_uint8(); |
| } |
| |
| static int16_t fuzz_int16(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_int16(); |
| } |
| |
| static uint16_t fuzz_uint16(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_uint16(); |
| } |
| |
| static int32_t fuzz_int32(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_int32(); |
| } |
| |
| static uint32_t fuzz_uint32(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_uint32(); |
| } |
| |
| static int64_t fuzz_int64(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_int64(); |
| } |
| |
| static uint64_t fuzz_uint64(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_uint64(); |
| } |
| |
| static float fuzz_float(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_float(); |
| } |
| |
| static double fuzz_double(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_double(); |
| } |
| |
| static const WTF::String& fuzz_string(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_string(); |
| } |
| |
| static const WTF::Vector<bool>& fuzz_bool_array(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_bool_array(); |
| } |
| |
| static const WTF::Vector<int8_t>& fuzz_primitive_array(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_primitive_array(); |
| } |
| |
| static const WTF::Vector<::fuzz::mojom::blink::FuzzDummyStructPtr>& fuzz_struct_array(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_struct_array(); |
| } |
| |
| static const WTF::HashMap<WTF::String, int8_t>& fuzz_primitive_map(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_primitive_map(); |
| } |
| |
| static const WTF::HashMap<WTF::String, WTF::Vector<WTF::String>>& fuzz_array_map(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_array_map(); |
| } |
| |
| static const WTF::HashMap<WTF::String, ::fuzz::mojom::blink::FuzzDummyStructPtr>& fuzz_struct_map(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_struct_map(); |
| } |
| |
| static const WTF::HashMap<::fuzz::mojom::blink::FuzzEnum, ::fuzz::mojom::blink::FuzzUnionPtr>& fuzz_union_map(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_union_map(); |
| } |
| |
| static const absl::optional<WTF::Vector<WTF::HashMap<::fuzz::mojom::blink::FuzzEnum, WTF::HashMap<int8_t, absl::optional<WTF::Vector<::fuzz::mojom::blink::FuzzUnionPtr>>>>>>& fuzz_complex(const ::fuzz::mojom::blink::FuzzUnionPtr& input) { |
| return input->get_fuzz_complex(); |
| } |
| |
| static bool Read(::fuzz::mojom::blink::FuzzUnion::DataView input, ::fuzz::mojom::blink::FuzzUnionPtr* output); |
| }; |
| |
| } // namespace mojo |
| |
| #endif // MOJO_PUBLIC_TOOLS_FUZZERS_FUZZ_MOJOM_BLINK_H_ |
| |
| /* Metadata comment |
| eyJtZXRhIjogW3siZW5kIjogMjk3NiwgImJlZ2luIjogMjk1OCwgImVkZ2UiOiAiJS9reXRoZS9l |
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw |
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui |
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6ekR1bW15SW50ZXJmYWNlIn19 |
| LCB7ImVuZCI6IDQxNjQsICJiZWdpbiI6IDQxNjAsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l |
| cmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNo |
| cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9t |
| IiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpEdW1teUludGVyZmFjZS5QaW5nIn19LCB7 |
| ImVuZCI6IDQ0MDUsICJiZWdpbiI6IDQzOTIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0 |
| ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t |
| aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg |
| InNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpJbnRlcmZhY2UifX0sIHsiZW5kIjogNjIyMywg |
| ImJlZ2luIjogNjIxNCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog |
| ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291 |
| cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog |
| ImZ1enoubW9qb20uRnV6ekludGVyZmFjZS5GdXp6QmFzaWMifX0sIHsiZW5kIjogNjM4MywgImJl |
| Z2luIjogNjM3MCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFu |
| Y2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl |
| LmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1 |
| enoubW9qb20uRnV6ekludGVyZmFjZS5GdXp6QmFzaWNSZXNwIn19LCB7ImVuZCI6IDY2NTUsICJi |
| ZWdpbiI6IDY2MzgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJh |
| bmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj |
| ZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJm |
| dXp6Lm1vam9tLkZ1enpJbnRlcmZhY2UuRnV6ekJhc2ljU3luY1Jlc3AifX0sIHsiZW5kIjogNjgy |
| MiwgImJlZ2luIjogNjgwNSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl |
| IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl |
| c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl |
| IjogImZ1enoubW9qb20uRnV6ekludGVyZmFjZS5GdXp6QmFzaWNTeW5jUmVzcCJ9fSwgeyJlbmQi |
| OiA2OTQ1LCAiYmVnaW4iOiA2OTM3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg |
| InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n |
| b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu |
| YXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6SW50ZXJmYWNlLkZ1enpBcmdzIn19LCB7ImVuZCI6IDcx |
| MzQsICJiZWdpbiI6IDcxMjIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw |
| ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds |
| ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy |
| ZSI6ICJmdXp6Lm1vam9tLkZ1enpJbnRlcmZhY2UuRnV6ekFyZ3NSZXNwIn19LCB7ImVuZCI6IDc0 |
| MzcsICJiZWdpbiI6IDc0MjEsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw |
| ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds |
| ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy |
| ZSI6ICJmdXp6Lm1vam9tLkZ1enpJbnRlcmZhY2UuRnV6ekFyZ3NTeW5jUmVzcCJ9fSwgeyJlbmQi |
| OiA3NjMzLCAiYmVnaW4iOiA3NjE3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg |
| InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n |
| b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu |
| YXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6SW50ZXJmYWNlLkZ1enpBcmdzU3luY1Jlc3AifX0sIHsi |
| ZW5kIjogNzgwMSwgImJlZ2luIjogNzc4NywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl |
| cyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21p |
| dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAi |
| c2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6ekludGVyZmFjZS5GdXp6QXNzb2NpYXRlZCJ9fSwg |
| eyJlbmQiOiA4MTk3LCAiYmVnaW4iOiA4MTkzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh |
| dGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJv |
| bWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIs |
| ICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6RHVtbXlJbnRlcmZhY2UuUGluZyJ9fSwgeyJl |
| bmQiOiA4NTczLCAiYmVnaW4iOiA4NTY0LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz |
| IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1 |
| bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz |
| aWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6SW50ZXJmYWNlLkZ1enpCYXNpYyJ9fSwgeyJlbmQi |
| OiA4NjY1LCAiYmVnaW4iOiA4NjUyLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg |
| InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n |
| b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu |
| YXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6SW50ZXJmYWNlLkZ1enpCYXNpY1Jlc3AifX0sIHsiZW5k |
| IjogODc5NSwgImJlZ2luIjogODc3OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs |
| ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u |
| Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln |
| bmF0dXJlIjogImZ1enoubW9qb20uRnV6ekludGVyZmFjZS5GdXp6QmFzaWNTeW5jUmVzcCJ9fSwg |
| eyJlbmQiOiA4ODk1LCAiYmVnaW4iOiA4ODc4LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh |
| dGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJv |
| bWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIs |
| ICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6SW50ZXJmYWNlLkZ1enpCYXNpY1N5bmNSZXNw |
| In19LCB7ImVuZCI6IDkwMTEsICJiZWdpbiI6IDkwMDMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9n |
| ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog |
| ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v |
| am9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpJbnRlcmZhY2UuRnV6ekFyZ3MifX0s |
| IHsiZW5kIjogOTEzMywgImJlZ2luIjogOTEyMSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy |
| YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy |
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i |
| LCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6ekludGVyZmFjZS5GdXp6QXJnc1Jlc3AifX0s |
| IHsiZW5kIjogOTI5NCwgImJlZ2luIjogOTI3OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy |
| YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy |
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i |
| LCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6ekludGVyZmFjZS5GdXp6QXJnc1N5bmNSZXNw |
| In19LCB7ImVuZCI6IDk0MjQsICJiZWdpbiI6IDk0MDgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9n |
| ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog |
| ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v |
| am9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpJbnRlcmZhY2UuRnV6ekFyZ3NTeW5j |
| UmVzcCJ9fSwgeyJlbmQiOiA5NTg1LCAiYmVnaW4iOiA5NTcxLCAiZWRnZSI6ICIlL2t5dGhlL2Vk |
| Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1 |
| cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6 |
| ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6SW50ZXJmYWNlLkZ1enpBc3Nv |
| Y2lhdGVkIn19LCB7ImVuZCI6IDEyODIzLCAiYmVnaW4iOiAxMjgwOCwgImVkZ2UiOiAiJS9reXRo |
| ZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJj |
| b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3Vh |
| Z2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6ekR1bW15U3RydWN0In19 |
| LCB7ImVuZCI6IDE2NTIwLCAiYmVnaW4iOiAxNjUxNSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl |
| bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi |
| Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q |
| b20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6ekR1bW15U3RydWN0LmR1bW15In19LCB7 |
| ImVuZCI6IDE3NTU3LCAiYmVnaW4iOiAxNzU0OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy |
| YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy |
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i |
| LCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uIn19LCB7ImVuZCI6IDI0NTg2LCAi |
| YmVnaW4iOiAyNDU3NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog |
| ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291 |
| cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog |
| ImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfYm9vbCJ9fSwgeyJlbmQiOiAyNDcwNSwgImJlZ2lu |
| IjogMjQ2OTIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNo |
| b3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j |
| b20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6 |
| Lm1vam9tLkZ1enpVbmlvbi5mdXp6X2Jvb2wifX0sIHsiZW5kIjogMjQ4NTgsICJiZWdpbiI6IDI0 |
| ODQ1LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl |
| ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No |
| cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pv |
| bS5GdXp6VW5pb24uZnV6el9ib29sIn19LCB7ImVuZCI6IDI0OTU2LCAiYmVnaW4iOiAyNDk0NCwg |
| ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz |
| IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1 |
| bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6 |
| elVuaW9uLmZ1enpfaW50OCJ9fSwgeyJlbmQiOiAyNTA3NywgImJlZ2luIjogMjUwNjQsICJlZGdl |
| IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2 |
| bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj |
| IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlv |
| bi5mdXp6X2ludDgifX0sIHsiZW5kIjogMjUyMzAsICJiZWdpbiI6IDI1MjE3LCAiZWRnZSI6ICIl |
| L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi |
| OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs |
| YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6 |
| el9pbnQ4In19LCB7ImVuZCI6IDI1MzMyLCAiYmVnaW4iOiAyNTMxOSwgImVkZ2UiOiAiJS9reXRo |
| ZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJj |
| b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3Vh |
| Z2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdWlu |
| dDgifX0sIHsiZW5kIjogMjU0NTcsICJiZWdpbiI6IDI1NDQzLCAiZWRnZSI6ICIlL2t5dGhlL2Vk |
| Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1 |
| cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6 |
| ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6el91aW50OCJ9 |
| fSwgeyJlbmQiOiAyNTYxNCwgImJlZ2luIjogMjU2MDAsICJlZGdlIjogIiUva3l0aGUvZWRnZS9n |
| ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog |
| ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v |
| am9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlvbi5mdXp6X3VpbnQ4In19LCB7 |
| ImVuZCI6IDI1NzE4LCAiYmVnaW4iOiAyNTcwNSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy |
| YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy |
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i |
| LCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfaW50MTYifX0sIHsiZW5k |
| IjogMjU4NDMsICJiZWdpbiI6IDI1ODI5LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz |
| IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1 |
| bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz |
| aWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6el9pbnQxNiJ9fSwgeyJlbmQiOiAy |
| NjAwMCwgImJlZ2luIjogMjU5ODYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAi |
| dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdv |
| b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25h |
| dHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlvbi5mdXp6X2ludDE2In19LCB7ImVuZCI6IDI2MTA2 |
| LCAiYmVnaW4iOiAyNjA5MiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl |
| IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl |
| c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl |
| IjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdWludDE2In19LCB7ImVuZCI6IDI2MjM1LCAi |
| YmVnaW4iOiAyNjIyMCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog |
| ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291 |
| cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog |
| ImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdWludDE2In19LCB7ImVuZCI6IDI2Mzk2LCAiYmVn |
| aW4iOiAyNjM4MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFu |
| Y2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl |
| LmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1 |
| enoubW9qb20uRnV6elVuaW9uLmZ1enpfdWludDE2In19LCB7ImVuZCI6IDI2NTAyLCAiYmVnaW4i |
| OiAyNjQ4OSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hv |
| cl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv |
| bS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enou |
| bW9qb20uRnV6elVuaW9uLmZ1enpfaW50MzIifX0sIHsiZW5kIjogMjY2MjcsICJiZWdpbiI6IDI2 |
| NjEzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl |
| ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No |
| cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pv |
| bS5GdXp6VW5pb24uZnV6el9pbnQzMiJ9fSwgeyJlbmQiOiAyNjc4NCwgImJlZ2luIjogMjY3NzAs |
| ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l |
| cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p |
| dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1 |
| enpVbmlvbi5mdXp6X2ludDMyIn19LCB7ImVuZCI6IDI2ODkwLCAiYmVnaW4iOiAyNjg3NiwgImVk |
| Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg |
| InZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9z |
| cmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVu |
| aW9uLmZ1enpfdWludDMyIn19LCB7ImVuZCI6IDI3MDE5LCAiYmVnaW4iOiAyNzAwNCwgImVkZ2Ui |
| OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZu |
| YW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMi |
| LCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9u |
| LmZ1enpfdWludDMyIn19LCB7ImVuZCI6IDI3MTgwLCAiYmVnaW4iOiAyNzE2NSwgImVkZ2UiOiAi |
| JS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1l |
| IjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAi |
| bGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1 |
| enpfdWludDMyIn19LCB7ImVuZCI6IDI3Mjg2LCAiYmVnaW4iOiAyNzI3MywgImVkZ2UiOiAiJS9r |
| eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog |
| eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu |
| Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpf |
| aW50NjQifX0sIHsiZW5kIjogMjc0MTEsICJiZWdpbiI6IDI3Mzk3LCAiZWRnZSI6ICIlL2t5dGhl |
| L2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNv |
| cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFn |
| ZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6el9pbnQ2 |
| NCJ9fSwgeyJlbmQiOiAyNzU2OCwgImJlZ2luIjogMjc1NTQsICJlZGdlIjogIiUva3l0aGUvZWRn |
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz |
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog |
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlvbi5mdXp6X2ludDY0In19 |
| LCB7ImVuZCI6IDI3Njc0LCAiYmVnaW4iOiAyNzY2MCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl |
| bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi |
| Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q |
| b20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdWludDY0In19LCB7 |
| ImVuZCI6IDI3ODAzLCAiYmVnaW4iOiAyNzc4OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy |
| YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy |
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i |
| LCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdWludDY0In19LCB7ImVu |
| ZCI6IDI3OTY0LCAiYmVnaW4iOiAyNzk0OSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl |
| cyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21p |
| dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAi |
| c2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdWludDY0In19LCB7ImVuZCI6 |
| IDI4MDcwLCAiYmVnaW4iOiAyODA1NywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs |
| ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u |
| Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln |
| bmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfZmxvYXQifX0sIHsiZW5kIjogMjgx |
| OTMsICJiZWdpbiI6IDI4MTc5LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5 |
| cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n |
| bGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1 |
| cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6el9mbG9hdCJ9fSwgeyJlbmQiOiAyODM1MCwg |
| ImJlZ2luIjogMjgzMzYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6 |
| ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv |
| dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6 |
| ICJmdXp6Lm1vam9tLkZ1enpVbmlvbi5mdXp6X2Zsb2F0In19LCB7ImVuZCI6IDI4NDU0LCAiYmVn |
| aW4iOiAyODQ0MCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFu |
| Y2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl |
| LmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1 |
| enoubW9qb20uRnV6elVuaW9uLmZ1enpfZG91YmxlIn19LCB7ImVuZCI6IDI4NTgxLCAiYmVnaW4i |
| OiAyODU2NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hv |
| cl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv |
| bS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enou |
| bW9qb20uRnV6elVuaW9uLmZ1enpfZG91YmxlIn19LCB7ImVuZCI6IDI4NzQyLCAiYmVnaW4iOiAy |
| ODcyNywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9k |
| ZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9j |
| aHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9q |
| b20uRnV6elVuaW9uLmZ1enpfZG91YmxlIn19LCB7ImVuZCI6IDI4ODQ4LCAiYmVnaW4iOiAyODgz |
| NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp |
| bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv |
| bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20u |
| RnV6elVuaW9uLmZ1enpfc3RyaW5nIn19LCB7ImVuZCI6IDI4OTgxLCAiYmVnaW4iOiAyODk2Niwg |
| ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz |
| IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1 |
| bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6 |
| elVuaW9uLmZ1enpfc3RyaW5nIn19LCB7ImVuZCI6IDI5MTQ1LCAiYmVnaW4iOiAyOTEzMCwgImVk |
| Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg |
| InZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9z |
| cmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVu |
| aW9uLmZ1enpfc3RyaW5nIn19LCB7ImVuZCI6IDI5MjcxLCAiYmVnaW4iOiAyOTI1MywgImVkZ2Ui |
| OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZu |
| YW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMi |
| LCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9u |
| LmZ1enpfYm9vbF9hcnJheSJ9fSwgeyJlbmQiOiAyOTQyMSwgImJlZ2luIjogMjk0MDIsICJlZGdl |
| IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2 |
| bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj |
| IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlv |
| bi5mdXp6X2Jvb2xfYXJyYXkifX0sIHsiZW5kIjogMjk2MDAsICJiZWdpbiI6IDI5NTgxLCAiZWRn |
| ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi |
| dm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3Ny |
| YyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5p |
| b24uZnV6el9ib29sX2FycmF5In19LCB7ImVuZCI6IDI5NzM5LCAiYmVnaW4iOiAyOTcxNiwgImVk |
| Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg |
| InZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9z |
| cmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVu |
| aW9uLmZ1enpfcHJpbWl0aXZlX2FycmF5In19LCB7ImVuZCI6IDI5OTA2LCAiYmVnaW4iOiAyOTg4 |
| MiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp |
| bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv |
| bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20u |
| RnV6elVuaW9uLmZ1enpfcHJpbWl0aXZlX2FycmF5In19LCB7ImVuZCI6IDMwMTA1LCAiYmVnaW4i |
| OiAzMDA4MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hv |
| cl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv |
| bS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enou |
| bW9qb20uRnV6elVuaW9uLmZ1enpfcHJpbWl0aXZlX2FycmF5In19LCB7ImVuZCI6IDMwMjQ1LCAi |
| YmVnaW4iOiAzMDIyNSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog |
| ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291 |
| cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog |
| ImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfc3RydWN0X2FycmF5In19LCB7ImVuZCI6IDMwNDE1 |
| LCAiYmVnaW4iOiAzMDM5NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl |
| IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl |
| c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl |
| IjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfc3RydWN0X2FycmF5In19LCB7ImVuZCI6IDMw |
| NjAyLCAiYmVnaW4iOiAzMDU4MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0 |
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v |
| Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0 |
| dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfc3RydWN0X2FycmF5In19LCB7ImVuZCI6 |
| IDMwNzUzLCAiYmVnaW4iOiAzMDczMiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs |
| ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u |
| Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln |
| bmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfcHJpbWl0aXZlX21hcCJ9fSwgeyJl |
| bmQiOiAzMDkyOCwgImJlZ2luIjogMzA5MDYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0 |
| ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t |
| aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg |
| InNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlvbi5mdXp6X3ByaW1pdGl2ZV9tYXAifX0s |
| IHsiZW5kIjogMzExMTksICJiZWdpbiI6IDMxMDk3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2Vu |
| ZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJj |
| aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pv |
| bSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6el9wcmltaXRpdmVfbWFw |
| In19LCB7ImVuZCI6IDMxMjcyLCAiYmVnaW4iOiAzMTI1NSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl |
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi |
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi |
| bW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfYXJyYXlfbWFw |
| In19LCB7ImVuZCI6IDMxNDUzLCAiYmVnaW4iOiAzMTQzNSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl |
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi |
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi |
| bW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfYXJyYXlfbWFw |
| In19LCB7ImVuZCI6IDMxNjI4LCAiYmVnaW4iOiAzMTYxMCwgImVkZ2UiOiAiJS9reXRoZS9lZGdl |
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi |
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi |
| bW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfYXJyYXlfbWFw |
| In19LCB7ImVuZCI6IDMxNzk3LCAiYmVnaW4iOiAzMTc3OSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl |
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi |
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi |
| bW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfc3RydWN0X21h |
| cCJ9fSwgeyJlbmQiOiAzMTk3NSwgImJlZ2luIjogMzE5NTYsICJlZGdlIjogIiUva3l0aGUvZWRn |
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz |
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog |
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlvbi5mdXp6X3N0cnVjdF9t |
| YXAifX0sIHsiZW5kIjogMzIxNTQsICJiZWdpbiI6IDMyMTM1LCAiZWRnZSI6ICIlL2t5dGhlL2Vk |
| Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1 |
| cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6 |
| ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6el9zdHJ1Y3Rf |
| bWFwIn19LCB7ImVuZCI6IDMyMzA5LCAiYmVnaW4iOiAzMjI5MiwgImVkZ2UiOiAiJS9reXRoZS9l |
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw |
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui |
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdW5pb25f |
| bWFwIn19LCB7ImVuZCI6IDMyNDc1LCAiYmVnaW4iOiAzMjQ1NywgImVkZ2UiOiAiJS9reXRoZS9l |
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw |
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui |
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdW5pb25f |
| bWFwIn19LCB7ImVuZCI6IDMyNjUwLCAiYmVnaW4iOiAzMjYzMiwgImVkZ2UiOiAiJS9reXRoZS9l |
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw |
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui |
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfdW5pb25f |
| bWFwIn19LCB7ImVuZCI6IDMyNzkxLCAiYmVnaW4iOiAzMjc3NiwgImVkZ2UiOiAiJS9reXRoZS9l |
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw |
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui |
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elVuaW9uLmZ1enpfY29tcGxl |
| eCJ9fSwgeyJlbmQiOiAzMzAzMiwgImJlZ2luIjogMzMwMTYsICJlZGdlIjogIiUva3l0aGUvZWRn |
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz |
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog |
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpVbmlvbi5mdXp6X2NvbXBsZXgi |
| fX0sIHsiZW5kIjogMzMyMDAsICJiZWdpbiI6IDMzMTg0LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv |
| Z2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6 |
| ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJt |
| b2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6VW5pb24uZnV6el9jb21wbGV4In19 |
| LCB7ImVuZCI6IDM0OTcyLCAiYmVnaW4iOiAzNDk2MiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl |
| bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi |
| Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q |
| b20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elN0cnVjdCJ9fSwgeyJlbmQiOiAzOTQ5 |
| OSwgImJlZ2luIjogMzk0OTAsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw |
| ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds |
| ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy |
| ZSI6ICJmdXp6Lm1vam9tLkZ1enpTdHJ1Y3QuZnV6el9ib29sIn19LCB7ImVuZCI6IDM5NTc0LCAi |
| YmVnaW4iOiAzOTU2NSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog |
| ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291 |
| cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog |
| ImZ1enoubW9qb20uRnV6elN0cnVjdC5mdXp6X2ludDgifX0sIHsiZW5kIjogMzk2NTIsICJiZWdp |
| biI6IDM5NjQyLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5j |
| aG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2Uu |
| Y29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6 |
| ei5tb2pvbS5GdXp6U3RydWN0LmZ1enpfdWludDgifX0sIHsiZW5kIjogMzk3MzAsICJiZWdpbiI6 |
| IDM5NzIwLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y |
| X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t |
| L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5t |
| b2pvbS5GdXp6U3RydWN0LmZ1enpfaW50MTYifX0sIHsiZW5kIjogMzk4MTEsICJiZWdpbiI6IDM5 |
| ODAwLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl |
| ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No |
| cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pv |
| bS5GdXp6U3RydWN0LmZ1enpfdWludDE2In19LCB7ImVuZCI6IDM5ODg5LCAiYmVnaW4iOiAzOTg3 |
| OSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp |
| bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv |
| bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20u |
| RnV6elN0cnVjdC5mdXp6X2ludDMyIn19LCB7ImVuZCI6IDM5OTcwLCAiYmVnaW4iOiAzOTk1OSwg |
| ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz |
| IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1 |
| bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6 |
| elN0cnVjdC5mdXp6X3VpbnQzMiJ9fSwgeyJlbmQiOiA0MDA0OCwgImJlZ2luIjogNDAwMzgsICJl |
| ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs |
| ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v |
| c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpT |
| dHJ1Y3QuZnV6el9pbnQ2NCJ9fSwgeyJlbmQiOiA0MDEyOSwgImJlZ2luIjogNDAxMTgsICJlZGdl |
| IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2 |
| bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj |
| IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpTdHJ1 |
| Y3QuZnV6el91aW50NjQifX0sIHsiZW5kIjogNDAyMDUsICJiZWdpbiI6IDQwMTk1LCAiZWRnZSI6 |
| ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5h |
| bWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIs |
| ICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6U3RydWN0 |
| LmZ1enpfZmxvYXQifX0sIHsiZW5kIjogNDAyODQsICJiZWdpbiI6IDQwMjczLCAiZWRnZSI6ICIl |
| L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi |
| OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs |
| YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5GdXp6U3RydWN0LmZ1 |
| enpfZG91YmxlIn19LCB7ImVuZCI6IDQwMzY4LCAiYmVnaW4iOiA0MDM1NywgImVkZ2UiOiAiJS9r |
| eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog |
| eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu |
| Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elN0cnVjdC5mdXp6 |
| X3N0cmluZyJ9fSwgeyJlbmQiOiA0MDQ2NiwgImJlZ2luIjogNDA0NTEsICJlZGdlIjogIiUva3l0 |
| aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsi |
| Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1 |
| YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpTdHJ1Y3QuZnV6el9i |
| b29sX2FycmF5In19LCB7ImVuZCI6IDQwNTc2LCAiYmVnaW4iOiA0MDU1NiwgImVkZ2UiOiAiJS9r |
| eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog |
| eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu |
| Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6elN0cnVjdC5mdXp6 |
| X3ByaW1pdGl2ZV9hcnJheSJ9fSwgeyJlbmQiOiA0MDY5NiwgImJlZ2luIjogNDA2NzgsICJlZGdl |
| IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2 |
| bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj |
| IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1enpTdHJ1 |
| Y3QuZnV6el9wcmltaXRpdmVfbWFwIn19LCB7ImVuZCI6IDQwODI2LCAiYmVnaW4iOiA0MDgxMiwg |
| ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz |
| IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1 |
| bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enoubW9qb20uRnV6 |
| elN0cnVjdC5mdXp6X2FycmF5X21hcCJ9fSwgeyJlbmQiOiA0MDk0MSwgImJlZ2luIjogNDA5Mjcs |
| ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l |
| cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p |
| dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJmdXp6Lm1vam9tLkZ1 |
| enpTdHJ1Y3QuZnV6el91bmlvbl9tYXAifX0sIHsiZW5kIjogNDEwNDksICJiZWdpbiI6IDQxMDMz |
| LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmlu |
| ZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9t |
| aXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pvbS5G |
| dXp6U3RydWN0LmZ1enpfdW5pb25fYXJyYXkifX0sIHsiZW5kIjogNDExNjAsICJiZWdpbiI6IDQx |
| MTQzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl |
| ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No |
| cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiZnV6ei5tb2pv |
| bS5GdXp6U3RydWN0LmZ1enpfc3RydWN0X2FycmF5In19LCB7ImVuZCI6IDQxMjg0LCAiYmVnaW4i |
| OiA0MTI2NSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hv |
| cl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv |
| bS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogImZ1enou |
| bW9qb20uRnV6elN0cnVjdC5mdXp6X251bGxhYmxlX2FycmF5In19LCB7ImVuZCI6IDQxNDc2LCAi |
| YmVnaW4iOiA0MTQ2NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog |
| ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291 |
| cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog |
| ImZ1enoubW9qb20uRnV6elN0cnVjdC5mdXp6X2NvbXBsZXgifX1dLCAidHlwZSI6ICJreXRoZTAi |
| fQ== |
| */ |