blob: 54504b04be46d5124b015a4f57eec220a1e3b5a6 [file] [log] [blame]
// content/common/gin_java_bridge.mojom.h is auto generated by mojom_bindings_generator.py, do not edit
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_COMMON_GIN_JAVA_BRIDGE_MOJOM_H_
#define CONTENT_COMMON_GIN_JAVA_BRIDGE_MOJOM_H_
#include <stdint.h>
#include <limits>
#include <optional>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.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 "content/common/gin_java_bridge.mojom-features.h" // IWYU pragma: export
#include "content/common/gin_java_bridge.mojom-shared.h" // IWYU pragma: export
#include "content/common/gin_java_bridge.mojom-forward.h" // IWYU pragma: export
#include "components/origin_matcher/origin_matcher.mojom.h"
#include "mojo/public/mojom/base/values.mojom.h"
#include <string>
#include <vector>
#include "mojo/public/cpp/bindings/lib/control_message_handler.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"
#include "content/common/content_export.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace content::mojom {
class GinJavaBridgeProxy;
template <typename ImplRefTraits>
class GinJavaBridgeStub;
class GinJavaBridgeRequestValidator;
// @generated_from: content.mojom.GinJavaBridge
class CONTENT_EXPORT GinJavaBridge
: public GinJavaBridgeInterfaceBase {
public:
using IPCStableHashFunction = uint32_t(*)();
static constexpr const char* Name_ = "content.mojom.GinJavaBridge";
static IPCStableHashFunction 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 HasUninterruptableMethods_ = false;
using Base_ = GinJavaBridgeInterfaceBase;
using Proxy_ = GinJavaBridgeProxy;
template <typename ImplRefTraits>
using Stub_ = GinJavaBridgeStub<ImplRefTraits>;
using RequestValidator_ = GinJavaBridgeRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kAddNamedObjectMinVersion = 0,
kRemoveNamedObjectMinVersion = 0,
kSetHostMinVersion = 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 AddNamedObject_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct RemoveNamedObject_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetHost_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~GinJavaBridge() = default;
// @generated_from: content.mojom.GinJavaBridge.AddNamedObject
virtual void AddNamedObject(const std::string& name, int32_t object_id, const ::origin_matcher::OriginMatcher& origin_matcher) = 0;
// @generated_from: content.mojom.GinJavaBridge.RemoveNamedObject
virtual void RemoveNamedObject(const std::string& name) = 0;
// @generated_from: content.mojom.GinJavaBridge.SetHost
virtual void SetHost(::mojo::PendingRemote<GinJavaBridgeHost> host) = 0;
};
class GinJavaBridgeRemoteObjectProxy;
template <typename ImplRefTraits>
class GinJavaBridgeRemoteObjectStub;
class GinJavaBridgeRemoteObjectRequestValidator;
class GinJavaBridgeRemoteObjectResponseValidator;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject
class CONTENT_EXPORT GinJavaBridgeRemoteObject
: public GinJavaBridgeRemoteObjectInterfaceBase {
public:
using IPCStableHashFunction = uint32_t(*)();
static constexpr const char* Name_ = "content.mojom.GinJavaBridgeRemoteObject";
static IPCStableHashFunction MessageToMethodInfo_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static inline constexpr uint32_t kSyncMethodOrdinals[] = {
0,
1,
2
};
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = GinJavaBridgeRemoteObjectInterfaceBase;
using Proxy_ = GinJavaBridgeRemoteObjectProxy;
template <typename ImplRefTraits>
using Stub_ = GinJavaBridgeRemoteObjectStub<ImplRefTraits>;
using RequestValidator_ = GinJavaBridgeRemoteObjectRequestValidator;
using ResponseValidator_ = GinJavaBridgeRemoteObjectResponseValidator;
enum MethodMinVersions : uint32_t {
kGetMethodsMinVersion = 0,
kHasMethodMinVersion = 0,
kInvokeMethodMinVersion = 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 GetMethods_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct HasMethod_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct InvokeMethod_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~GinJavaBridgeRemoteObject() = default;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.GetMethods
virtual bool GetMethods(std::vector<std::string>* out_method_names);
using GetMethodsCallback = base::OnceCallback<void(const std::vector<std::string>&)>;
using GetMethodsMojoCallback = base::OnceCallback<void(const std::vector<std::string>&)>;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.GetMethods
virtual void GetMethods(GetMethodsCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.HasMethod
virtual bool HasMethod(const std::string& method_name, bool* out_result);
using HasMethodCallback = base::OnceCallback<void(bool)>;
using HasMethodMojoCallback = base::OnceCallback<void(bool)>;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.HasMethod
virtual void HasMethod(const std::string& method_name, HasMethodCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.InvokeMethod
virtual bool InvokeMethod(const std::string& method_name, ::base::Value::List arguments, GinJavaBridgeError* out_error_code, ::base::Value::List* out_result);
using InvokeMethodCallback = base::OnceCallback<void(GinJavaBridgeError, ::base::Value::List)>;
using InvokeMethodMojoCallback = base::OnceCallback<void(GinJavaBridgeError, ::base::Value::List)>;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.InvokeMethod
virtual void InvokeMethod(const std::string& method_name, ::base::Value::List arguments, InvokeMethodCallback callback) = 0;
};
class GinJavaBridgeHostProxy;
template <typename ImplRefTraits>
class GinJavaBridgeHostStub;
class GinJavaBridgeHostRequestValidator;
// @generated_from: content.mojom.GinJavaBridgeHost
class CONTENT_EXPORT GinJavaBridgeHost
: public GinJavaBridgeHostInterfaceBase {
public:
using IPCStableHashFunction = uint32_t(*)();
static constexpr const char* Name_ = "content.mojom.GinJavaBridgeHost";
static IPCStableHashFunction 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 HasUninterruptableMethods_ = false;
using Base_ = GinJavaBridgeHostInterfaceBase;
using Proxy_ = GinJavaBridgeHostProxy;
template <typename ImplRefTraits>
using Stub_ = GinJavaBridgeHostStub<ImplRefTraits>;
using RequestValidator_ = GinJavaBridgeHostRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kGetObjectMinVersion = 0,
kObjectWrapperDeletedMinVersion = 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 GetObject_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ObjectWrapperDeleted_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~GinJavaBridgeHost() = default;
// @generated_from: content.mojom.GinJavaBridgeHost.GetObject
virtual void GetObject(int32_t object_id, ::mojo::PendingReceiver<GinJavaBridgeRemoteObject> receiver) = 0;
// @generated_from: content.mojom.GinJavaBridgeHost.ObjectWrapperDeleted
virtual void ObjectWrapperDeleted(int32_t object_id) = 0;
};
// @generated_from: content.mojom.GinJavaBridge
class CONTENT_EXPORT GinJavaBridgeProxy
: public GinJavaBridge {
public:
using InterfaceType = GinJavaBridge;
explicit GinJavaBridgeProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: content.mojom.GinJavaBridge.AddNamedObject
void AddNamedObject(const std::string& name, int32_t object_id, const ::origin_matcher::OriginMatcher& origin_matcher) final;
// @generated_from: content.mojom.GinJavaBridge.RemoveNamedObject
void RemoveNamedObject(const std::string& name) final;
// @generated_from: content.mojom.GinJavaBridge.SetHost
void SetHost(::mojo::PendingRemote<GinJavaBridgeHost> host) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: content.mojom.GinJavaBridgeRemoteObject
class CONTENT_EXPORT GinJavaBridgeRemoteObjectProxy
: public GinJavaBridgeRemoteObject {
public:
using InterfaceType = GinJavaBridgeRemoteObject;
explicit GinJavaBridgeRemoteObjectProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.GetMethods
bool GetMethods(std::vector<std::string>* out_method_names) final;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.GetMethods
void GetMethods(GetMethodsCallback callback) final;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.HasMethod
bool HasMethod(const std::string& method_name, bool* out_result) final;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.HasMethod
void HasMethod(const std::string& method_name, HasMethodCallback callback) final;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.InvokeMethod
bool InvokeMethod(const std::string& method_name, ::base::Value::List arguments, GinJavaBridgeError* out_error_code, ::base::Value::List* out_result) final;
// @generated_from: content.mojom.GinJavaBridgeRemoteObject.InvokeMethod
void InvokeMethod(const std::string& method_name, ::base::Value::List arguments, InvokeMethodCallback callback) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: content.mojom.GinJavaBridgeHost
class CONTENT_EXPORT GinJavaBridgeHostProxy
: public GinJavaBridgeHost {
public:
using InterfaceType = GinJavaBridgeHost;
explicit GinJavaBridgeHostProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: content.mojom.GinJavaBridgeHost.GetObject
void GetObject(int32_t object_id, ::mojo::PendingReceiver<GinJavaBridgeRemoteObject> receiver) final;
// @generated_from: content.mojom.GinJavaBridgeHost.ObjectWrapperDeleted
void ObjectWrapperDeleted(int32_t object_id) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class CONTENT_EXPORT GinJavaBridgeStubDispatch {
public:
static bool Accept(GinJavaBridge* impl, mojo::Message* message);
static bool AcceptWithResponder(
GinJavaBridge* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<GinJavaBridge>>
class GinJavaBridgeStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
GinJavaBridgeStub() = default;
~GinJavaBridgeStub() 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 GinJavaBridgeStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return GinJavaBridgeStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class CONTENT_EXPORT GinJavaBridgeRemoteObjectStubDispatch {
public:
static bool Accept(GinJavaBridgeRemoteObject* impl, mojo::Message* message);
static bool AcceptWithResponder(
GinJavaBridgeRemoteObject* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<GinJavaBridgeRemoteObject>>
class GinJavaBridgeRemoteObjectStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
GinJavaBridgeRemoteObjectStub() = default;
~GinJavaBridgeRemoteObjectStub() 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 GinJavaBridgeRemoteObjectStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return GinJavaBridgeRemoteObjectStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class CONTENT_EXPORT GinJavaBridgeHostStubDispatch {
public:
static bool Accept(GinJavaBridgeHost* impl, mojo::Message* message);
static bool AcceptWithResponder(
GinJavaBridgeHost* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<GinJavaBridgeHost>>
class GinJavaBridgeHostStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
GinJavaBridgeHostStub() = default;
~GinJavaBridgeHostStub() 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 GinJavaBridgeHostStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return GinJavaBridgeHostStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class CONTENT_EXPORT GinJavaBridgeRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class CONTENT_EXPORT GinJavaBridgeRemoteObjectRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class CONTENT_EXPORT GinJavaBridgeHostRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class CONTENT_EXPORT GinJavaBridgeRemoteObjectResponseValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
} // content::mojom
namespace mojo {
} // namespace mojo
#endif // CONTENT_COMMON_GIN_JAVA_BRIDGE_MOJOM_H_
/* Metadata comment
eyJ0eXBlIjogImt5dGhlMCIsICJtZXRhIjogW3sidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
ZWdpbiI6IDE2NTUsICJlbmQiOiAxNjY4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlkZ2UifSwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAiYmVnaW4iOiAzMTA3LCAiZW5kIjogMzEyMSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY29udGVudC5tb2pvbS5HaW5KYXZhQnJp
ZGdlLkFkZE5hbWVkT2JqZWN0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwg
eyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMzMwOCwgImVuZCI6IDMzMjUsICJ2
bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNv
bnRlbnQubW9qb20uR2luSmF2YUJyaWRnZS5SZW1vdmVOYW1lZE9iamVjdCJ9LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdp
biI6IDM0MjgsICJlbmQiOiAzNDM1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNv
cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3Jj
Ly9tYWluIiwgInNpZ25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlkZ2UuU2V0SG9z
dCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJiZWdpbiI6IDM3ODUsICJlbmQiOiAzODEwLCAidm5hbWUiOiB7Imxhbmd1YWdl
IjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFy
Y2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkph
dmFCcmlkZ2VSZW1vdGVPYmplY3QifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9
LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1NTcyLCAiZW5kIjogNTU4Miwg
InZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAi
Y29udGVudC5tb2pvbS5HaW5KYXZhQnJpZGdlUmVtb3RlT2JqZWN0LkdldE1ldGhvZHMifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiA1ODk1LCAiZW5kIjogNTkwNSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pv
bSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9t
aXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY29udGVudC5tb2pvbS5HaW5KYXZhQnJpZGdl
UmVtb3RlT2JqZWN0LkdldE1ldGhvZHMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
cyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA2MTY0LCAiZW5kIjogNjE3
MywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUi
OiAiY29udGVudC5tb2pvbS5HaW5KYXZhQnJpZGdlUmVtb3RlT2JqZWN0Lkhhc01ldGhvZCJ9LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJiZWdpbiI6IDY0MzUsICJlbmQiOiA2NDQ0LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1v
am9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hy
b21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlk
Z2VSZW1vdGVPYmplY3QuSGFzTWV0aG9kIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNjczNywgImVuZCI6IDY3
NDksICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJl
IjogImNvbnRlbnQubW9qb20uR2luSmF2YUJyaWRnZVJlbW90ZU9iamVjdC5JbnZva2VNZXRob2Qi
fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAiYmVnaW4iOiA3MTcyLCAiZW5kIjogNzE4NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY29udGVudC5tb2pvbS5HaW5KYXZh
QnJpZGdlUmVtb3RlT2JqZWN0Lkludm9rZU1ldGhvZCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv
Z2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDc0OTksICJl
bmQiOiA3NTE2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNp
Z25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlkZ2VIb3N0In0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogODg3NiwgImVuZCI6IDg4ODUsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMv
L21haW4iLCAic2lnbmF0dXJlIjogImNvbnRlbnQubW9qb20uR2luSmF2YUJyaWRnZUhvc3QuR2V0
T2JqZWN0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFu
Y2hvcl9kZWZpbmVzIiwgImJlZ2luIjogOTA2MCwgImVuZCI6IDkwODAsICJ2bmFtZSI6IHsibGFu
Z3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29k
ZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNvbnRlbnQubW9qb20u
R2luSmF2YUJyaWRnZUhvc3QuT2JqZWN0V3JhcHBlckRlbGV0ZWQifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA5
NDI3LCAiZW5kIjogOTQ0MSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAiY29udGVudC5tb2pvbS5HaW5KYXZhQnJpZGdlLkFkZE5hbWVkT2Jq
ZWN0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgImJlZ2luIjogOTYyNCwgImVuZCI6IDk2NDEsICJ2bmFtZSI6IHsibGFuZ3Vh
Z2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNl
YXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNvbnRlbnQubW9qb20uR2lu
SmF2YUJyaWRnZS5SZW1vdmVOYW1lZE9iamVjdCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2Vu
ZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDk3NDAsICJlbmQi
OiA5NzQ3LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlkZ2UuU2V0SG9zdCJ9LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdp
biI6IDEwMjUyLCAiZW5kIjogMTAyNjIsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9z
cmMvL21haW4iLCAic2lnbmF0dXJlIjogImNvbnRlbnQubW9qb20uR2luSmF2YUJyaWRnZVJlbW90
ZU9iamVjdC5HZXRNZXRob2RzIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwg
eyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTAzOTUsICJlbmQiOiAxMDQwNSwg
InZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAi
Y29udGVudC5tb2pvbS5HaW5KYXZhQnJpZGdlUmVtb3RlT2JqZWN0LkdldE1ldGhvZHMifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiAxMDUyMiwgImVuZCI6IDEwNTMxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1v
am9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hy
b21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlk
Z2VSZW1vdGVPYmplY3QuSGFzTWV0aG9kIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTA2NjksICJlbmQiOiAx
MDY3OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAiY29udGVudC5tb2pvbS5HaW5KYXZhQnJpZGdlUmVtb3RlT2JqZWN0Lkhhc01ldGhvZCJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDEwODI5LCAiZW5kIjogMTA4NDEsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNvbnRlbnQubW9qb20uR2luSmF2
YUJyaWRnZVJlbW90ZU9iamVjdC5JbnZva2VNZXRob2QifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMTA2NCwg
ImVuZCI6IDExMDc2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJj
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwg
InNpZ25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlkZ2VSZW1vdGVPYmplY3QuSW52
b2tlTWV0aG9kIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTE1NzksICJlbmQiOiAxMTU4OCwgInZuYW1lIjog
eyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY29udGVudC5t
b2pvbS5HaW5KYXZhQnJpZGdlSG9zdC5HZXRPYmplY3QifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMTc1OSwg
ImVuZCI6IDExNzc5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJj
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwg
InNpZ25hdHVyZSI6ICJjb250ZW50Lm1vam9tLkdpbkphdmFCcmlkZ2VIb3N0Lk9iamVjdFdyYXBw
ZXJEZWxldGVkIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifV19
*/