blob: cec5f9f5eaf77beefe62dc43130a78be5192ed13 [file] [log] [blame]
// mojo/public/cpp/bindings/tests/flush_async_unittest.test-mojom.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_CPP_BINDINGS_TESTS_FLUSH_ASYNC_UNITTEST_TEST_MOJOM_H_
#define MOJO_PUBLIC_CPP_BINDINGS_TESTS_FLUSH_ASYNC_UNITTEST_TEST_MOJOM_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/cpp/bindings/tests/flush_async_unittest.test-mojom-shared.h"
#include "mojo/public/cpp/bindings/tests/flush_async_unittest.test-mojom-forward.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"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace mojo {
namespace test {
namespace flush_async_unittest {
namespace mojom {
class WriterProxy;
template <typename ImplRefTraits>
class WriterStub;
class WriterRequestValidator;
// @generated_from: mojo.test.flush_async_unittest.mojom.Writer
class Writer
: public WriterInterfaceBase {
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_ = WriterInterfaceBase;
using Proxy_ = WriterProxy;
template <typename ImplRefTraits>
using Stub_ = WriterStub<ImplRefTraits>;
using RequestValidator_ = WriterRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kPutMinVersion = 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 Put_Sym {
NOINLINE static void IPCSymbol();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~Writer() = default;
// @generated_from: mojo.test.flush_async_unittest.mojom.Writer.Put
virtual void Put(const std::string& key, const std::string& value) = 0;
};
class KeyValueStoreClientProxy;
template <typename ImplRefTraits>
class KeyValueStoreClientStub;
class KeyValueStoreClientRequestValidator;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStoreClient
class KeyValueStoreClient
: public KeyValueStoreClientInterfaceBase {
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_ = KeyValueStoreClientInterfaceBase;
using Proxy_ = KeyValueStoreClientProxy;
template <typename ImplRefTraits>
using Stub_ = KeyValueStoreClientStub<ImplRefTraits>;
using RequestValidator_ = KeyValueStoreClientRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kOnSnapshotTakenMinVersion = 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 OnSnapshotTaken_Sym {
NOINLINE static void IPCSymbol();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~KeyValueStoreClient() = default;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStoreClient.OnSnapshotTaken
virtual void OnSnapshotTaken() = 0;
};
class KeyValueStoreProxy;
template <typename ImplRefTraits>
class KeyValueStoreStub;
class KeyValueStoreRequestValidator;
class KeyValueStoreResponseValidator;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore
class KeyValueStore
: public KeyValueStoreInterfaceBase {
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_ = KeyValueStoreInterfaceBase;
using Proxy_ = KeyValueStoreProxy;
template <typename ImplRefTraits>
using Stub_ = KeyValueStoreStub<ImplRefTraits>;
using RequestValidator_ = KeyValueStoreRequestValidator;
using ResponseValidator_ = KeyValueStoreResponseValidator;
enum MethodMinVersions : uint32_t {
kSetClientMinVersion = 0,
kBindWriterMinVersion = 0,
kGetSnapshotMinVersion = 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 SetClient_Sym {
NOINLINE static void IPCSymbol();
};
struct BindWriter_Sym {
NOINLINE static void IPCSymbol();
};
struct GetSnapshot_Sym {
NOINLINE static void IPCSymbol();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~KeyValueStore() = default;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore.SetClient
virtual void SetClient(::mojo::PendingRemote<KeyValueStoreClient> client) = 0;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore.BindWriter
virtual void BindWriter(::mojo::PendingReceiver<Writer> receiver) = 0;
using GetSnapshotCallback = base::OnceCallback<void(const base::flat_map<std::string, std::string>&)>;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore.GetSnapshot
virtual void GetSnapshot(GetSnapshotCallback callback) = 0;
};
class PingerProxy;
template <typename ImplRefTraits>
class PingerStub;
class PingerRequestValidator;
class PingerResponseValidator;
// @generated_from: mojo.test.flush_async_unittest.mojom.Pinger
class Pinger
: public PingerInterfaceBase {
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_ = PingerInterfaceBase;
using Proxy_ = PingerProxy;
template <typename ImplRefTraits>
using Stub_ = PingerStub<ImplRefTraits>;
using RequestValidator_ = PingerRequestValidator;
using ResponseValidator_ = PingerResponseValidator;
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 ~Pinger() = default;
using PingCallback = base::OnceCallback<void()>;
// @generated_from: mojo.test.flush_async_unittest.mojom.Pinger.Ping
virtual void Ping(PingCallback callback) = 0;
};
// @generated_from: mojo.test.flush_async_unittest.mojom.Writer
class WriterProxy
: public Writer {
public:
using InterfaceType = Writer;
explicit WriterProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: mojo.test.flush_async_unittest.mojom.Writer.Put
void Put(const std::string& key, const std::string& value) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStoreClient
class KeyValueStoreClientProxy
: public KeyValueStoreClient {
public:
using InterfaceType = KeyValueStoreClient;
explicit KeyValueStoreClientProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStoreClient.OnSnapshotTaken
void OnSnapshotTaken() final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore
class KeyValueStoreProxy
: public KeyValueStore {
public:
using InterfaceType = KeyValueStore;
explicit KeyValueStoreProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore.SetClient
void SetClient(::mojo::PendingRemote<KeyValueStoreClient> client) final;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore.BindWriter
void BindWriter(::mojo::PendingReceiver<Writer> receiver) final;
// @generated_from: mojo.test.flush_async_unittest.mojom.KeyValueStore.GetSnapshot
void GetSnapshot(GetSnapshotCallback callback) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: mojo.test.flush_async_unittest.mojom.Pinger
class PingerProxy
: public Pinger {
public:
using InterfaceType = Pinger;
explicit PingerProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: mojo.test.flush_async_unittest.mojom.Pinger.Ping
void Ping(PingCallback callback) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class WriterStubDispatch {
public:
static bool Accept(Writer* impl, mojo::Message* message);
static bool AcceptWithResponder(
Writer* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<Writer>>
class WriterStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
WriterStub() = default;
~WriterStub() 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 WriterStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return WriterStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class KeyValueStoreClientStubDispatch {
public:
static bool Accept(KeyValueStoreClient* impl, mojo::Message* message);
static bool AcceptWithResponder(
KeyValueStoreClient* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<KeyValueStoreClient>>
class KeyValueStoreClientStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
KeyValueStoreClientStub() = default;
~KeyValueStoreClientStub() 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 KeyValueStoreClientStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return KeyValueStoreClientStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class KeyValueStoreStubDispatch {
public:
static bool Accept(KeyValueStore* impl, mojo::Message* message);
static bool AcceptWithResponder(
KeyValueStore* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<KeyValueStore>>
class KeyValueStoreStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
KeyValueStoreStub() = default;
~KeyValueStoreStub() 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 KeyValueStoreStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return KeyValueStoreStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class PingerStubDispatch {
public:
static bool Accept(Pinger* impl, mojo::Message* message);
static bool AcceptWithResponder(
Pinger* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<Pinger>>
class PingerStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
PingerStub() = default;
~PingerStub() 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 PingerStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return PingerStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class WriterRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class KeyValueStoreClientRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class KeyValueStoreRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class PingerRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class KeyValueStoreResponseValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class PingerResponseValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
} // namespace mojom
} // namespace flush_async_unittest
} // namespace test
} // namespace mojo
namespace mojo {
} // namespace mojo
#endif // MOJO_PUBLIC_CPP_BINDINGS_TESTS_FLUSH_ASYNC_UNITTEST_TEST_MOJOM_H_
/* Metadata comment
eyJtZXRhIjogW3siZW5kIjogMTY2MiwgImJlZ2luIjogMTY1NiwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5mbHVzaF9hc3luY191bml0dGVzdC5t
b2pvbS5Xcml0ZXIifX0sIHsiZW5kIjogMjc4OCwgImJlZ2luIjogMjc4NSwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5mbHVzaF9hc3luY191bml0
dGVzdC5tb2pvbS5Xcml0ZXIuUHV0In19LCB7ImVuZCI6IDMwOTUsICJiZWdpbiI6IDMwNzYsICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v
c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuZmx1c2hf
YXN5bmNfdW5pdHRlc3QubW9qb20uS2V5VmFsdWVTdG9yZUNsaWVudCJ9fSwgeyJlbmQiOiA0MzYw
LCAiYmVnaW4iOiA0MzQ1LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi
OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi
OiAibW9qby50ZXN0LmZsdXNoX2FzeW5jX3VuaXR0ZXN0Lm1vam9tLktleVZhbHVlU3RvcmVDbGll
bnQuT25TbmFwc2hvdFRha2VuIn19LCB7ImVuZCI6IDQ2MjcsICJiZWdpbiI6IDQ2MTQsICJlZGdl
IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2
bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj
IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuZmx1c2hfYXN5
bmNfdW5pdHRlc3QubW9qb20uS2V5VmFsdWVTdG9yZSJ9fSwgeyJlbmQiOiA2MDM1LCAiYmVnaW4i
OiA2MDI2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibW9qby50
ZXN0LmZsdXNoX2FzeW5jX3VuaXR0ZXN0Lm1vam9tLktleVZhbHVlU3RvcmUuU2V0Q2xpZW50In19
LCB7ImVuZCI6IDYyMDMsICJiZWdpbiI6IDYxOTMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9t
IiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuZmx1c2hfYXN5bmNfdW5pdHRlc3QubW9qb20uS2V5
VmFsdWVTdG9yZS5CaW5kV3JpdGVyIn19LCB7ImVuZCI6IDY0NzAsICJiZWdpbiI6IDY0NTksICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v
c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuZmx1c2hf
YXN5bmNfdW5pdHRlc3QubW9qb20uS2V5VmFsdWVTdG9yZS5HZXRTbmFwc2hvdCJ9fSwgeyJlbmQi
OiA2NzIzLCAiYmVnaW4iOiA2NzE3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg
InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu
YXR1cmUiOiAibW9qby50ZXN0LmZsdXNoX2FzeW5jX3VuaXR0ZXN0Lm1vam9tLlBpbmdlciJ9fSwg
eyJlbmQiOiA3OTA1LCAiYmVnaW4iOiA3OTAxLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJzaWduYXR1cmUiOiAibW9qby50ZXN0LmZsdXNoX2FzeW5jX3VuaXR0ZXN0Lm1vam9tLlBpbmdl
ci5QaW5nIn19LCB7ImVuZCI6IDgyMzgsICJiZWdpbiI6IDgyMzUsICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdl
IjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuZmx1c2hfYXN5bmNfdW5pdHRlc3Qu
bW9qb20uV3JpdGVyLlB1dCJ9fSwgeyJlbmQiOiA4NzYyLCAiYmVnaW4iOiA4NzQ3LCAiZWRnZSI6
ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5h
bWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIs
ICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibW9qby50ZXN0LmZsdXNoX2FzeW5j
X3VuaXR0ZXN0Lm1vam9tLktleVZhbHVlU3RvcmVDbGllbnQuT25TbmFwc2hvdFRha2VuIn19LCB7
ImVuZCI6IDkxOTAsICJiZWdpbiI6IDkxODEsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuZmx1c2hfYXN5bmNfdW5pdHRlc3QubW9qb20uS2V5VmFs
dWVTdG9yZS5TZXRDbGllbnQifX0sIHsiZW5kIjogOTM1MSwgImJlZ2luIjogOTM0MSwgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZu
YW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMi
LCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5mbHVzaF9hc3lu
Y191bml0dGVzdC5tb2pvbS5LZXlWYWx1ZVN0b3JlLkJpbmRXcml0ZXIifX0sIHsiZW5kIjogOTUw
NSwgImJlZ2luIjogOTQ5NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl
IjogIm1vam8udGVzdC5mbHVzaF9hc3luY191bml0dGVzdC5tb2pvbS5LZXlWYWx1ZVN0b3JlLkdl
dFNuYXBzaG90In19LCB7ImVuZCI6IDk5MDksICJiZWdpbiI6IDk5MDUsICJlZGdlIjogIiUva3l0
aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1
YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuZmx1c2hfYXN5bmNfdW5pdHRl
c3QubW9qb20uUGluZ2VyLlBpbmcifX1dLCAidHlwZSI6ICJreXRoZTAifQ==
*/