blob: e7c39073a358b8251c0b09a173bd5ea39d4f54e3 [file] [log] [blame]
// services/network/public/mojom/network_service.mojom-blink.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 SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_BLINK_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_BLINK_H_
#include <stdint.h>
#include <limits>
#include <optional>
#include <type_traits>
#include <utility>
#include "base/types/cxx23_to_underlying.h"
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "services/network/public/mojom/network_service.mojom-features.h"
#include "services/network/public/mojom/network_service.mojom-shared.h"
#include "services/network/public/mojom/network_service.mojom-blink-forward.h"
#include "components/content_settings/core/common/content_settings.mojom-blink-forward.h"
#include "mojo/public/mojom/base/byte_string.mojom-blink.h"
#include "mojo/public/mojom/base/file.mojom-blink.h"
#include "mojo/public/mojom/base/memory_pressure_level.mojom-blink-forward.h"
#include "mojo/public/mojom/base/proto_wrapper.mojom-blink.h"
#include "mojo/public/mojom/base/read_only_file.mojom-blink-forward.h"
#include "mojo/public/mojom/base/time.mojom-blink.h"
#include "mojo/public/mojom/base/values.mojom-blink.h"
#include "sandbox/policy/mojom/context.mojom-blink-forward.h"
#include "sandbox/policy/mojom/sandbox.mojom-blink-forward.h"
#include "services/network/public/mojom/client_security_state.mojom-blink-forward.h"
#include "services/network/public/mojom/first_party_sets.mojom-blink-forward.h"
#include "services/network/public/mojom/host_resolver.mojom-blink-forward.h"
#include "services/network/public/mojom/http_raw_headers.mojom-blink-forward.h"
#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
#include "services/network/public/mojom/key_pinning.mojom-blink-forward.h"
#include "services/network/public/mojom/mutable_network_traffic_annotation_tag.mojom-blink.h"
#include "services/network/public/mojom/net_log.mojom-blink-forward.h"
#include "services/network/public/mojom/network_annotation_monitor.mojom-blink-forward.h"
#include "services/network/public/mojom/network_change_manager.mojom-blink-forward.h"
#include "services/network/public/mojom/network_context.mojom-blink-forward.h"
#include "services/network/public/mojom/network_interface.mojom-blink.h"
#include "services/network/public/mojom/network_interface_change_listener.mojom-blink-forward.h"
#include "services/network/public/mojom/network_param.mojom-blink-forward.h"
#include "services/network/public/mojom/network_quality_estimator_manager.mojom-blink-forward.h"
#include "services/network/public/mojom/network_service_test.mojom-blink-forward.h"
#include "services/network/public/mojom/parsed_headers.mojom-blink-forward.h"
#include "services/network/public/mojom/proxy_config.mojom-blink-forward.h"
#include "services/network/public/mojom/schemeful_site.mojom-blink-forward.h"
#include "services/network/public/mojom/system_dns_resolution.mojom-blink-forward.h"
#include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h"
#include "services/network/public/mojom/url_loader_network_service_observer.mojom-blink-forward.h"
#include "services/network/public/mojom/url_response_head.mojom-blink-forward.h"
#include "url/mojom/origin.mojom-blink.h"
#include "url/mojom/url.mojom-blink.h"
#include "services/network/public/mojom/ct_log_info.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/lib/message_size_estimator.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"
#include "third_party/blink/public/platform/web_common.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace network::mojom::blink {
class NetworkServiceProxy;
template <typename ImplRefTraits>
class NetworkServiceStub;
class NetworkServiceRequestValidator;
class NetworkServiceResponseValidator;
// @generated_from: network.mojom.NetworkService
class BLINK_PLATFORM_EXPORT NetworkService
: public NetworkServiceInterfaceBase {
public:
using IPCStableHashFunction = uint32_t(*)();
static const char Name_[];
static IPCStableHashFunction MessageToMethodInfo_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr auto kServiceSandbox = sandbox::mojom::Sandbox::kNetwork;
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = NetworkServiceInterfaceBase;
using Proxy_ = NetworkServiceProxy;
template <typename ImplRefTraits>
using Stub_ = NetworkServiceStub<ImplRefTraits>;
using RequestValidator_ = NetworkServiceRequestValidator;
using ResponseValidator_ = NetworkServiceResponseValidator;
enum MethodMinVersions : uint32_t {
kSetParamsMinVersion = 0,
kStartNetLogMinVersion = 0,
kAttachNetLogProxyMinVersion = 0,
kSetSSLKeyLogFileMinVersion = 0,
kCreateNetworkContextMinVersion = 0,
kConfigureStubHostResolverMinVersion = 0,
kDisableQuicMinVersion = 0,
kSetUpHttpAuthMinVersion = 0,
kConfigureHttpAuthPrefsMinVersion = 0,
kSetRawHeadersAccessMinVersion = 0,
kSetMaxConnectionsPerProxyChainMinVersion = 0,
kGetNetworkChangeManagerMinVersion = 0,
kGetNetworkQualityEstimatorManagerMinVersion = 0,
kGetDnsConfigChangeManagerMinVersion = 0,
kGetNetworkListMinVersion = 0,
kOnTrustStoreChangedMinVersion = 0,
kOnClientCertStoreChangedMinVersion = 0,
kSetEncryptionKeyMinVersion = 0,
kOnMemoryPressureMinVersion = 0,
kOnPeerToPeerConnectionsCountChangeMinVersion = 0,
kSetTrustTokenKeyCommitmentsMinVersion = 0,
kClearSCTAuditingCacheMinVersion = 0,
kConfigureSCTAuditingMinVersion = 0,
kUpdateCtLogListMinVersion = 0,
kUpdateCtKnownPopularSCTsMinVersion = 0,
kSetCtEnforcementEnabledMinVersion = 0,
kUpdateKeyPinsListMinVersion = 0,
kBindTestInterfaceForTestingMinVersion = 0,
kSetFirstPartySetsMinVersion = 0,
kSetExplicitlyAllowedPortsMinVersion = 0,
kUpdateMaskedDomainListMinVersion = 0,
kParseHeadersMinVersion = 0,
kEnableDataUseUpdatesMinVersion = 0,
kSetIPv6ReachabilityOverrideMinVersion = 0,
kSetNetworkAnnotationMonitorMinVersion = 0,
kSetTpcdMetadataGrantsMinVersion = 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 SetParams_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct StartNetLog_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct AttachNetLogProxy_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetSSLKeyLogFile_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct CreateNetworkContext_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ConfigureStubHostResolver_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct DisableQuic_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetUpHttpAuth_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ConfigureHttpAuthPrefs_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetRawHeadersAccess_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetMaxConnectionsPerProxyChain_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetNetworkChangeManager_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetNetworkQualityEstimatorManager_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetDnsConfigChangeManager_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetNetworkList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnTrustStoreChanged_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnClientCertStoreChanged_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetEncryptionKey_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnMemoryPressure_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnPeerToPeerConnectionsCountChange_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetTrustTokenKeyCommitments_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ClearSCTAuditingCache_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ConfigureSCTAuditing_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateCtLogList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateCtKnownPopularSCTs_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetCtEnforcementEnabled_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateKeyPinsList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct BindTestInterfaceForTesting_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetFirstPartySets_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetExplicitlyAllowedPorts_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateMaskedDomainList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ParseHeaders_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EnableDataUseUpdates_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetIPv6ReachabilityOverride_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetNetworkAnnotationMonitor_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetTpcdMetadataGrants_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~NetworkService() = default;
// @generated_from: network.mojom.NetworkService.SetParams
virtual void SetParams(NetworkServiceParamsPtr params) = 0;
// @generated_from: network.mojom.NetworkService.StartNetLog
virtual void StartNetLog(::base::File file, uint64_t max_total_size, ::network::mojom::blink::NetLogCaptureMode capture_mode, ::base::Value::Dict constants) = 0;
// @generated_from: network.mojom.NetworkService.AttachNetLogProxy
virtual void AttachNetLogProxy(::mojo::PendingRemote<::network::mojom::blink::NetLogProxySource> proxy_source, ::mojo::PendingReceiver<::network::mojom::blink::NetLogProxySink> proxy_sink) = 0;
// @generated_from: network.mojom.NetworkService.SetSSLKeyLogFile
virtual void SetSSLKeyLogFile(::base::File file) = 0;
// @generated_from: network.mojom.NetworkService.CreateNetworkContext
virtual void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::blink::NetworkContext> context, ::network::mojom::blink::NetworkContextParamsPtr params) = 0;
// @generated_from: network.mojom.NetworkService.ConfigureStubHostResolver
virtual void ConfigureStubHostResolver(bool insecure_dns_client_enabled, ::network::mojom::blink::SecureDnsMode secure_dns_mode, ::network::mojom::blink::DnsOverHttpsConfigPtr dns_over_https_config, bool additional_dns_types_enabled) = 0;
// @generated_from: network.mojom.NetworkService.DisableQuic
virtual void DisableQuic() = 0;
// @generated_from: network.mojom.NetworkService.SetUpHttpAuth
virtual void SetUpHttpAuth(HttpAuthStaticParamsPtr http_auth_static_params) = 0;
// @generated_from: network.mojom.NetworkService.ConfigureHttpAuthPrefs
virtual void ConfigureHttpAuthPrefs(HttpAuthDynamicParamsPtr http_auth_dynamic_params) = 0;
// @generated_from: network.mojom.NetworkService.SetRawHeadersAccess
virtual void SetRawHeadersAccess(int32_t process_id, const WTF::Vector<::scoped_refptr<const ::blink::SecurityOrigin>>& origins) = 0;
// @generated_from: network.mojom.NetworkService.SetMaxConnectionsPerProxyChain
virtual void SetMaxConnectionsPerProxyChain(int32_t max_connections) = 0;
// @generated_from: network.mojom.NetworkService.GetNetworkChangeManager
virtual void GetNetworkChangeManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkChangeManager> network_change_manager) = 0;
// @generated_from: network.mojom.NetworkService.GetNetworkQualityEstimatorManager
virtual void GetNetworkQualityEstimatorManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkQualityEstimatorManager> receiver) = 0;
// @generated_from: network.mojom.NetworkService.GetDnsConfigChangeManager
virtual void GetDnsConfigChangeManager(::mojo::PendingReceiver<::network::mojom::blink::DnsConfigChangeManager> receiver) = 0;
using GetNetworkListCallback = base::OnceCallback<void(const std::optional<WTF::Vector<::net::NetworkInterface>>&)>;
// @generated_from: network.mojom.NetworkService.GetNetworkList
virtual void GetNetworkList(uint32_t policy, GetNetworkListCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.OnTrustStoreChanged
virtual void OnTrustStoreChanged() = 0;
// @generated_from: network.mojom.NetworkService.OnClientCertStoreChanged
virtual void OnClientCertStoreChanged() = 0;
// @generated_from: network.mojom.NetworkService.SetEncryptionKey
virtual void SetEncryptionKey(const std::string& encryption_key) = 0;
// @generated_from: network.mojom.NetworkService.OnMemoryPressure
virtual void OnMemoryPressure(::mojo_base::mojom::blink::MemoryPressureLevel memory_pressure_level) = 0;
// @generated_from: network.mojom.NetworkService.OnPeerToPeerConnectionsCountChange
virtual void OnPeerToPeerConnectionsCountChange(uint32_t count) = 0;
using SetTrustTokenKeyCommitmentsCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.SetTrustTokenKeyCommitments
virtual void SetTrustTokenKeyCommitments(const WTF::String& raw_commitments, SetTrustTokenKeyCommitmentsCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.ClearSCTAuditingCache
virtual void ClearSCTAuditingCache() = 0;
// @generated_from: network.mojom.NetworkService.ConfigureSCTAuditing
virtual void ConfigureSCTAuditing(SCTAuditingConfigurationPtr configuration) = 0;
using UpdateCtLogListCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.UpdateCtLogList
virtual void UpdateCtLogList(WTF::Vector<::network::mojom::blink::CTLogInfoPtr> log_list, UpdateCtLogListCallback callback) = 0;
using UpdateCtKnownPopularSCTsCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.UpdateCtKnownPopularSCTs
virtual void UpdateCtKnownPopularSCTs(const WTF::Vector<WTF::Vector<uint8_t>>& sct_hashes, UpdateCtKnownPopularSCTsCallback callback) = 0;
using SetCtEnforcementEnabledCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.SetCtEnforcementEnabled
virtual void SetCtEnforcementEnabled(bool enabled, SetCtEnforcementEnabledCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.UpdateKeyPinsList
virtual void UpdateKeyPinsList(::network::mojom::blink::PinListPtr pin_list, ::base::Time update_time) = 0;
// @generated_from: network.mojom.NetworkService.BindTestInterfaceForTesting
virtual void BindTestInterfaceForTesting(::mojo::PendingReceiver<::network::mojom::blink::NetworkServiceTest> receiver) = 0;
// @generated_from: network.mojom.NetworkService.SetFirstPartySets
virtual void SetFirstPartySets(::network::mojom::blink::GlobalFirstPartySetsPtr sets) = 0;
// @generated_from: network.mojom.NetworkService.SetExplicitlyAllowedPorts
virtual void SetExplicitlyAllowedPorts(const WTF::Vector<uint16_t>& ports) = 0;
// @generated_from: network.mojom.NetworkService.UpdateMaskedDomainList
virtual void UpdateMaskedDomainList(::mojo_base::ProtoWrapper masked_domain_list, const WTF::Vector<WTF::String>& exclusion_list) = 0;
using ParseHeadersCallback = base::OnceCallback<void(::network::mojom::blink::ParsedHeadersPtr)>;
// @generated_from: network.mojom.NetworkService.ParseHeaders
virtual void ParseHeaders(const ::blink::KURL& url, ::network::mojom::blink::HttpResponseHeadersPtr headers, ParseHeadersCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.EnableDataUseUpdates
virtual void EnableDataUseUpdates(bool enable) = 0;
// @generated_from: network.mojom.NetworkService.SetIPv6ReachabilityOverride
virtual void SetIPv6ReachabilityOverride(bool reachability_override) = 0;
// @generated_from: network.mojom.NetworkService.SetNetworkAnnotationMonitor
virtual void SetNetworkAnnotationMonitor(::mojo::PendingRemote<::network::mojom::blink::NetworkAnnotationMonitor> remote) = 0;
// @generated_from: network.mojom.NetworkService.SetTpcdMetadataGrants
virtual void SetTpcdMetadataGrants(WTF::Vector<::content_settings::mojom::blink::ContentSettingPatternSourcePtr> settings) = 0;
};
// @generated_from: network.mojom.NetworkService
class BLINK_PLATFORM_EXPORT NetworkServiceProxy
: public NetworkService {
public:
using InterfaceType = NetworkService;
explicit NetworkServiceProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: network.mojom.NetworkService.SetParams
void SetParams(NetworkServiceParamsPtr params) final;
// @generated_from: network.mojom.NetworkService.StartNetLog
void StartNetLog(::base::File file, uint64_t max_total_size, ::network::mojom::blink::NetLogCaptureMode capture_mode, ::base::Value::Dict constants) final;
// @generated_from: network.mojom.NetworkService.AttachNetLogProxy
void AttachNetLogProxy(::mojo::PendingRemote<::network::mojom::blink::NetLogProxySource> proxy_source, ::mojo::PendingReceiver<::network::mojom::blink::NetLogProxySink> proxy_sink) final;
// @generated_from: network.mojom.NetworkService.SetSSLKeyLogFile
void SetSSLKeyLogFile(::base::File file) final;
// @generated_from: network.mojom.NetworkService.CreateNetworkContext
void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::blink::NetworkContext> context, ::network::mojom::blink::NetworkContextParamsPtr params) final;
// @generated_from: network.mojom.NetworkService.ConfigureStubHostResolver
void ConfigureStubHostResolver(bool insecure_dns_client_enabled, ::network::mojom::blink::SecureDnsMode secure_dns_mode, ::network::mojom::blink::DnsOverHttpsConfigPtr dns_over_https_config, bool additional_dns_types_enabled) final;
// @generated_from: network.mojom.NetworkService.DisableQuic
void DisableQuic() final;
// @generated_from: network.mojom.NetworkService.SetUpHttpAuth
void SetUpHttpAuth(HttpAuthStaticParamsPtr http_auth_static_params) final;
// @generated_from: network.mojom.NetworkService.ConfigureHttpAuthPrefs
void ConfigureHttpAuthPrefs(HttpAuthDynamicParamsPtr http_auth_dynamic_params) final;
// @generated_from: network.mojom.NetworkService.SetRawHeadersAccess
void SetRawHeadersAccess(int32_t process_id, const WTF::Vector<::scoped_refptr<const ::blink::SecurityOrigin>>& origins) final;
// @generated_from: network.mojom.NetworkService.SetMaxConnectionsPerProxyChain
void SetMaxConnectionsPerProxyChain(int32_t max_connections) final;
// @generated_from: network.mojom.NetworkService.GetNetworkChangeManager
void GetNetworkChangeManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkChangeManager> network_change_manager) final;
// @generated_from: network.mojom.NetworkService.GetNetworkQualityEstimatorManager
void GetNetworkQualityEstimatorManager(::mojo::PendingReceiver<::network::mojom::blink::NetworkQualityEstimatorManager> receiver) final;
// @generated_from: network.mojom.NetworkService.GetDnsConfigChangeManager
void GetDnsConfigChangeManager(::mojo::PendingReceiver<::network::mojom::blink::DnsConfigChangeManager> receiver) final;
// @generated_from: network.mojom.NetworkService.GetNetworkList
void GetNetworkList(uint32_t policy, GetNetworkListCallback callback) final;
// @generated_from: network.mojom.NetworkService.OnTrustStoreChanged
void OnTrustStoreChanged() final;
// @generated_from: network.mojom.NetworkService.OnClientCertStoreChanged
void OnClientCertStoreChanged() final;
// @generated_from: network.mojom.NetworkService.SetEncryptionKey
void SetEncryptionKey(const std::string& encryption_key) final;
// @generated_from: network.mojom.NetworkService.OnMemoryPressure
void OnMemoryPressure(::mojo_base::mojom::blink::MemoryPressureLevel memory_pressure_level) final;
// @generated_from: network.mojom.NetworkService.OnPeerToPeerConnectionsCountChange
void OnPeerToPeerConnectionsCountChange(uint32_t count) final;
// @generated_from: network.mojom.NetworkService.SetTrustTokenKeyCommitments
void SetTrustTokenKeyCommitments(const WTF::String& raw_commitments, SetTrustTokenKeyCommitmentsCallback callback) final;
// @generated_from: network.mojom.NetworkService.ClearSCTAuditingCache
void ClearSCTAuditingCache() final;
// @generated_from: network.mojom.NetworkService.ConfigureSCTAuditing
void ConfigureSCTAuditing(SCTAuditingConfigurationPtr configuration) final;
// @generated_from: network.mojom.NetworkService.UpdateCtLogList
void UpdateCtLogList(WTF::Vector<::network::mojom::blink::CTLogInfoPtr> log_list, UpdateCtLogListCallback callback) final;
// @generated_from: network.mojom.NetworkService.UpdateCtKnownPopularSCTs
void UpdateCtKnownPopularSCTs(const WTF::Vector<WTF::Vector<uint8_t>>& sct_hashes, UpdateCtKnownPopularSCTsCallback callback) final;
// @generated_from: network.mojom.NetworkService.SetCtEnforcementEnabled
void SetCtEnforcementEnabled(bool enabled, SetCtEnforcementEnabledCallback callback) final;
// @generated_from: network.mojom.NetworkService.UpdateKeyPinsList
void UpdateKeyPinsList(::network::mojom::blink::PinListPtr pin_list, ::base::Time update_time) final;
// @generated_from: network.mojom.NetworkService.BindTestInterfaceForTesting
void BindTestInterfaceForTesting(::mojo::PendingReceiver<::network::mojom::blink::NetworkServiceTest> receiver) final;
// @generated_from: network.mojom.NetworkService.SetFirstPartySets
void SetFirstPartySets(::network::mojom::blink::GlobalFirstPartySetsPtr sets) final;
// @generated_from: network.mojom.NetworkService.SetExplicitlyAllowedPorts
void SetExplicitlyAllowedPorts(const WTF::Vector<uint16_t>& ports) final;
// @generated_from: network.mojom.NetworkService.UpdateMaskedDomainList
void UpdateMaskedDomainList(::mojo_base::ProtoWrapper masked_domain_list, const WTF::Vector<WTF::String>& exclusion_list) final;
// @generated_from: network.mojom.NetworkService.ParseHeaders
void ParseHeaders(const ::blink::KURL& url, ::network::mojom::blink::HttpResponseHeadersPtr headers, ParseHeadersCallback callback) final;
// @generated_from: network.mojom.NetworkService.EnableDataUseUpdates
void EnableDataUseUpdates(bool enable) final;
// @generated_from: network.mojom.NetworkService.SetIPv6ReachabilityOverride
void SetIPv6ReachabilityOverride(bool reachability_override) final;
// @generated_from: network.mojom.NetworkService.SetNetworkAnnotationMonitor
void SetNetworkAnnotationMonitor(::mojo::PendingRemote<::network::mojom::blink::NetworkAnnotationMonitor> remote) final;
// @generated_from: network.mojom.NetworkService.SetTpcdMetadataGrants
void SetTpcdMetadataGrants(WTF::Vector<::content_settings::mojom::blink::ContentSettingPatternSourcePtr> settings) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class BLINK_PLATFORM_EXPORT NetworkServiceStubDispatch {
public:
static bool Accept(NetworkService* impl, mojo::Message* message);
static bool AcceptWithResponder(
NetworkService* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<NetworkService>>
class NetworkServiceStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
NetworkServiceStub() = default;
~NetworkServiceStub() 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 NetworkServiceStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return NetworkServiceStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class BLINK_PLATFORM_EXPORT NetworkServiceRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class BLINK_PLATFORM_EXPORT NetworkServiceResponseValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
// @generated_from: network.mojom.HttpAuthStaticParams
class BLINK_PLATFORM_EXPORT HttpAuthStaticParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<HttpAuthStaticParams, T>::value>;
using DataView = HttpAuthStaticParamsDataView;
using Data_ = internal::HttpAuthStaticParams_Data;
template <typename... Args>
static HttpAuthStaticParamsPtr New(Args&&... args) {
return HttpAuthStaticParamsPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static HttpAuthStaticParamsPtr From(const U& u) {
return mojo::TypeConverter<HttpAuthStaticParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, HttpAuthStaticParams>::Convert(*this);
}
HttpAuthStaticParams();
explicit HttpAuthStaticParams(
const WTF::String& gssapi_library_name);
~HttpAuthStaticParams();
// 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 = HttpAuthStaticParamsPtr>
HttpAuthStaticParamsPtr 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, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
size_t Hash(size_t seed) const;
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
HttpAuthStaticParams::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
HttpAuthStaticParams::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::HttpAuthStaticParams_UnserializedMessageContext<
UserType, HttpAuthStaticParams::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<HttpAuthStaticParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return HttpAuthStaticParams::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::HttpAuthStaticParams_UnserializedMessageContext<
UserType, HttpAuthStaticParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<HttpAuthStaticParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.HttpAuthStaticParams.gssapi_library_name
WTF::String gssapi_library_name;
// 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, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.EnvironmentVariable
class BLINK_PLATFORM_EXPORT EnvironmentVariable {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<EnvironmentVariable, T>::value>;
using DataView = EnvironmentVariableDataView;
using Data_ = internal::EnvironmentVariable_Data;
template <typename... Args>
static EnvironmentVariablePtr New(Args&&... args) {
return EnvironmentVariablePtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static EnvironmentVariablePtr From(const U& u) {
return mojo::TypeConverter<EnvironmentVariablePtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, EnvironmentVariable>::Convert(*this);
}
EnvironmentVariable();
EnvironmentVariable(
const WTF::String& name,
const WTF::String& value);
~EnvironmentVariable();
// 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 = EnvironmentVariablePtr>
EnvironmentVariablePtr 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, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
size_t Hash(size_t seed) const;
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
EnvironmentVariable::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
EnvironmentVariable::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::EnvironmentVariable_UnserializedMessageContext<
UserType, EnvironmentVariable::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<EnvironmentVariable::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return EnvironmentVariable::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::EnvironmentVariable_UnserializedMessageContext<
UserType, EnvironmentVariable::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<EnvironmentVariable::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.EnvironmentVariable.name
WTF::String name;
// @generated_from: network.mojom.EnvironmentVariable.value
WTF::String value;
// 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, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.HttpAuthDynamicParams
class BLINK_PLATFORM_EXPORT HttpAuthDynamicParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<HttpAuthDynamicParams, T>::value>;
using DataView = HttpAuthDynamicParamsDataView;
using Data_ = internal::HttpAuthDynamicParams_Data;
template <typename... Args>
static HttpAuthDynamicParamsPtr New(Args&&... args) {
return HttpAuthDynamicParamsPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static HttpAuthDynamicParamsPtr From(const U& u) {
return mojo::TypeConverter<HttpAuthDynamicParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, HttpAuthDynamicParams>::Convert(*this);
}
HttpAuthDynamicParams();
HttpAuthDynamicParams(
std::optional<WTF::Vector<WTF::String>> allowed_schemes,
WTF::Vector<WTF::String> patterns_allowed_to_use_all_schemes,
const WTF::String& server_allowlist,
const WTF::String& delegate_allowlist,
bool delegate_by_kdc_policy,
bool negotiate_disable_cname_lookup,
bool enable_negotiate_port,
bool ntlm_v2_enabled,
const WTF::String& android_negotiate_account_type,
bool allow_gssapi_library_load,
bool basic_over_http_enabled);
~HttpAuthDynamicParams();
// 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 = HttpAuthDynamicParamsPtr>
HttpAuthDynamicParamsPtr 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, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
HttpAuthDynamicParams::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
HttpAuthDynamicParams::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::HttpAuthDynamicParams_UnserializedMessageContext<
UserType, HttpAuthDynamicParams::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<HttpAuthDynamicParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return HttpAuthDynamicParams::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::HttpAuthDynamicParams_UnserializedMessageContext<
UserType, HttpAuthDynamicParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<HttpAuthDynamicParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.HttpAuthDynamicParams.allowed_schemes
std::optional<WTF::Vector<WTF::String>> allowed_schemes;
// @generated_from: network.mojom.HttpAuthDynamicParams.patterns_allowed_to_use_all_schemes
WTF::Vector<WTF::String> patterns_allowed_to_use_all_schemes;
// @generated_from: network.mojom.HttpAuthDynamicParams.server_allowlist
WTF::String server_allowlist;
// @generated_from: network.mojom.HttpAuthDynamicParams.delegate_allowlist
WTF::String delegate_allowlist;
// @generated_from: network.mojom.HttpAuthDynamicParams.delegate_by_kdc_policy
bool delegate_by_kdc_policy;
// @generated_from: network.mojom.HttpAuthDynamicParams.negotiate_disable_cname_lookup
bool negotiate_disable_cname_lookup;
// @generated_from: network.mojom.HttpAuthDynamicParams.enable_negotiate_port
bool enable_negotiate_port;
// @generated_from: network.mojom.HttpAuthDynamicParams.ntlm_v2_enabled
bool ntlm_v2_enabled;
// @generated_from: network.mojom.HttpAuthDynamicParams.android_negotiate_account_type
WTF::String android_negotiate_account_type;
// @generated_from: network.mojom.HttpAuthDynamicParams.allow_gssapi_library_load
bool allow_gssapi_library_load;
// @generated_from: network.mojom.HttpAuthDynamicParams.basic_over_http_enabled
bool basic_over_http_enabled;
// 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, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.NetworkServiceParams
class BLINK_PLATFORM_EXPORT NetworkServiceParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<NetworkServiceParams, T>::value>;
using DataView = NetworkServiceParamsDataView;
using Data_ = internal::NetworkServiceParams_Data;
template <typename... Args>
static NetworkServiceParamsPtr New(Args&&... args) {
return NetworkServiceParamsPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static NetworkServiceParamsPtr From(const U& u) {
return mojo::TypeConverter<NetworkServiceParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, NetworkServiceParams>::Convert(*this);
}
NetworkServiceParams();
NetworkServiceParams(
::network::mojom::blink::ConnectionType initial_connection_type,
::network::mojom::blink::ConnectionSubtype initial_connection_subtype,
WTF::Vector<EnvironmentVariablePtr> environment,
::mojo::PendingRemote<::network::mojom::blink::URLLoaderNetworkServiceObserver> default_observer,
bool first_party_sets_enabled,
::mojo::PendingRemote<::network::mojom::blink::SystemDnsResolver> system_dns_resolver,
::network::mojom::blink::IpProtectionProxyBypassPolicy ip_protection_proxy_bypass_policy);
NetworkServiceParams(const NetworkServiceParams&) = delete;
NetworkServiceParams& operator=(const NetworkServiceParams&) = delete;
~NetworkServiceParams();
// 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 = NetworkServiceParamsPtr>
NetworkServiceParamsPtr 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, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
NetworkServiceParams::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::NetworkServiceParams_UnserializedMessageContext<
UserType, NetworkServiceParams::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<NetworkServiceParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return NetworkServiceParams::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::NetworkServiceParams_UnserializedMessageContext<
UserType, NetworkServiceParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<NetworkServiceParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.NetworkServiceParams.initial_connection_type
::network::mojom::blink::ConnectionType initial_connection_type;
// @generated_from: network.mojom.NetworkServiceParams.initial_connection_subtype
::network::mojom::blink::ConnectionSubtype initial_connection_subtype;
// @generated_from: network.mojom.NetworkServiceParams.environment
WTF::Vector<EnvironmentVariablePtr> environment;
// @generated_from: network.mojom.NetworkServiceParams.default_observer
::mojo::PendingRemote<::network::mojom::blink::URLLoaderNetworkServiceObserver> default_observer;
// @generated_from: network.mojom.NetworkServiceParams.first_party_sets_enabled
bool first_party_sets_enabled;
// @generated_from: network.mojom.NetworkServiceParams.system_dns_resolver
::mojo::PendingRemote<::network::mojom::blink::SystemDnsResolver> system_dns_resolver;
// @generated_from: network.mojom.NetworkServiceParams.ip_protection_proxy_bypass_policy
::network::mojom::blink::IpProtectionProxyBypassPolicy ip_protection_proxy_bypass_policy;
// 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, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.SCTAuditingConfiguration
class BLINK_PLATFORM_EXPORT SCTAuditingConfiguration {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<SCTAuditingConfiguration, T>::value>;
using DataView = SCTAuditingConfigurationDataView;
using Data_ = internal::SCTAuditingConfiguration_Data;
template <typename... Args>
static SCTAuditingConfigurationPtr New(Args&&... args) {
return SCTAuditingConfigurationPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static SCTAuditingConfigurationPtr From(const U& u) {
return mojo::TypeConverter<SCTAuditingConfigurationPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, SCTAuditingConfiguration>::Convert(*this);
}
SCTAuditingConfiguration();
SCTAuditingConfiguration(
double sampling_rate,
::base::TimeDelta log_expected_ingestion_delay,
::base::TimeDelta log_max_ingestion_random_delay,
const ::blink::KURL& report_uri,
const ::blink::KURL& hashdance_lookup_uri,
const ::net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
const ::net::MutableNetworkTrafficAnnotationTag& hashdance_traffic_annotation);
~SCTAuditingConfiguration();
// 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 = SCTAuditingConfigurationPtr>
SCTAuditingConfigurationPtr 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, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
template <typename UserType>
static WTF::Vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
SCTAuditingConfiguration::DataView, WTF::Vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
SCTAuditingConfiguration::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::SCTAuditingConfiguration_UnserializedMessageContext<
UserType, SCTAuditingConfiguration::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<SCTAuditingConfiguration::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const WTF::Vector<uint8_t>& input,
UserType* output) {
return SCTAuditingConfiguration::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::SCTAuditingConfiguration_UnserializedMessageContext<
UserType, SCTAuditingConfiguration::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<SCTAuditingConfiguration::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.SCTAuditingConfiguration.sampling_rate
double sampling_rate;
// @generated_from: network.mojom.SCTAuditingConfiguration.log_expected_ingestion_delay
::base::TimeDelta log_expected_ingestion_delay;
// @generated_from: network.mojom.SCTAuditingConfiguration.log_max_ingestion_random_delay
::base::TimeDelta log_max_ingestion_random_delay;
// @generated_from: network.mojom.SCTAuditingConfiguration.report_uri
::blink::KURL report_uri;
// @generated_from: network.mojom.SCTAuditingConfiguration.hashdance_lookup_uri
::blink::KURL hashdance_lookup_uri;
// @generated_from: network.mojom.SCTAuditingConfiguration.traffic_annotation
::net::MutableNetworkTrafficAnnotationTag traffic_annotation;
// @generated_from: network.mojom.SCTAuditingConfiguration.hashdance_traffic_annotation
::net::MutableNetworkTrafficAnnotationTag hashdance_traffic_annotation;
// 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, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
template <typename StructPtrType>
HttpAuthStaticParamsPtr HttpAuthStaticParams::Clone() const {
return New(
mojo::Clone(gssapi_library_name)
);
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>*>
bool HttpAuthStaticParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->gssapi_library_name, other_struct.gssapi_library_name))
return false;
return true;
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.gssapi_library_name < rhs.gssapi_library_name)
return true;
if (rhs.gssapi_library_name < lhs.gssapi_library_name)
return false;
return false;
}
template <typename StructPtrType>
HttpAuthDynamicParamsPtr HttpAuthDynamicParams::Clone() const {
return New(
mojo::Clone(allowed_schemes),
mojo::Clone(patterns_allowed_to_use_all_schemes),
mojo::Clone(server_allowlist),
mojo::Clone(delegate_allowlist),
mojo::Clone(delegate_by_kdc_policy),
mojo::Clone(negotiate_disable_cname_lookup),
mojo::Clone(enable_negotiate_port),
mojo::Clone(ntlm_v2_enabled),
mojo::Clone(android_negotiate_account_type),
mojo::Clone(allow_gssapi_library_load),
mojo::Clone(basic_over_http_enabled)
);
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>*>
bool HttpAuthDynamicParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->allowed_schemes, other_struct.allowed_schemes))
return false;
if (!mojo::Equals(this->patterns_allowed_to_use_all_schemes, other_struct.patterns_allowed_to_use_all_schemes))
return false;
if (!mojo::Equals(this->server_allowlist, other_struct.server_allowlist))
return false;
if (!mojo::Equals(this->delegate_allowlist, other_struct.delegate_allowlist))
return false;
if (!mojo::Equals(this->delegate_by_kdc_policy, other_struct.delegate_by_kdc_policy))
return false;
if (!mojo::Equals(this->negotiate_disable_cname_lookup, other_struct.negotiate_disable_cname_lookup))
return false;
if (!mojo::Equals(this->enable_negotiate_port, other_struct.enable_negotiate_port))
return false;
if (!mojo::Equals(this->ntlm_v2_enabled, other_struct.ntlm_v2_enabled))
return false;
if (!mojo::Equals(this->android_negotiate_account_type, other_struct.android_negotiate_account_type))
return false;
if (!mojo::Equals(this->allow_gssapi_library_load, other_struct.allow_gssapi_library_load))
return false;
if (!mojo::Equals(this->basic_over_http_enabled, other_struct.basic_over_http_enabled))
return false;
return true;
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.allowed_schemes < rhs.allowed_schemes)
return true;
if (rhs.allowed_schemes < lhs.allowed_schemes)
return false;
if (lhs.patterns_allowed_to_use_all_schemes < rhs.patterns_allowed_to_use_all_schemes)
return true;
if (rhs.patterns_allowed_to_use_all_schemes < lhs.patterns_allowed_to_use_all_schemes)
return false;
if (lhs.server_allowlist < rhs.server_allowlist)
return true;
if (rhs.server_allowlist < lhs.server_allowlist)
return false;
if (lhs.delegate_allowlist < rhs.delegate_allowlist)
return true;
if (rhs.delegate_allowlist < lhs.delegate_allowlist)
return false;
if (lhs.delegate_by_kdc_policy < rhs.delegate_by_kdc_policy)
return true;
if (rhs.delegate_by_kdc_policy < lhs.delegate_by_kdc_policy)
return false;
if (lhs.negotiate_disable_cname_lookup < rhs.negotiate_disable_cname_lookup)
return true;
if (rhs.negotiate_disable_cname_lookup < lhs.negotiate_disable_cname_lookup)
return false;
if (lhs.enable_negotiate_port < rhs.enable_negotiate_port)
return true;
if (rhs.enable_negotiate_port < lhs.enable_negotiate_port)
return false;
if (lhs.ntlm_v2_enabled < rhs.ntlm_v2_enabled)
return true;
if (rhs.ntlm_v2_enabled < lhs.ntlm_v2_enabled)
return false;
if (lhs.android_negotiate_account_type < rhs.android_negotiate_account_type)
return true;
if (rhs.android_negotiate_account_type < lhs.android_negotiate_account_type)
return false;
if (lhs.allow_gssapi_library_load < rhs.allow_gssapi_library_load)
return true;
if (rhs.allow_gssapi_library_load < lhs.allow_gssapi_library_load)
return false;
if (lhs.basic_over_http_enabled < rhs.basic_over_http_enabled)
return true;
if (rhs.basic_over_http_enabled < lhs.basic_over_http_enabled)
return false;
return false;
}
template <typename StructPtrType>
EnvironmentVariablePtr EnvironmentVariable::Clone() const {
return New(
mojo::Clone(name),
mojo::Clone(value)
);
}
template <typename T, EnvironmentVariable::EnableIfSame<T>*>
bool EnvironmentVariable::Equals(const T& other_struct) const {
if (!mojo::Equals(this->name, other_struct.name))
return false;
if (!mojo::Equals(this->value, other_struct.value))
return false;
return true;
}
template <typename T, EnvironmentVariable::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.name < rhs.name)
return true;
if (rhs.name < lhs.name)
return false;
if (lhs.value < rhs.value)
return true;
if (rhs.value < lhs.value)
return false;
return false;
}
template <typename StructPtrType>
NetworkServiceParamsPtr NetworkServiceParams::Clone() const {
return New(
mojo::Clone(initial_connection_type),
mojo::Clone(initial_connection_subtype),
mojo::Clone(environment),
mojo::Clone(default_observer),
mojo::Clone(first_party_sets_enabled),
mojo::Clone(system_dns_resolver),
mojo::Clone(ip_protection_proxy_bypass_policy)
);
}
template <typename T, NetworkServiceParams::EnableIfSame<T>*>
bool NetworkServiceParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->initial_connection_type, other_struct.initial_connection_type))
return false;
if (!mojo::Equals(this->initial_connection_subtype, other_struct.initial_connection_subtype))
return false;
if (!mojo::Equals(this->environment, other_struct.environment))
return false;
if (!mojo::Equals(this->default_observer, other_struct.default_observer))
return false;
if (!mojo::Equals(this->first_party_sets_enabled, other_struct.first_party_sets_enabled))
return false;
if (!mojo::Equals(this->system_dns_resolver, other_struct.system_dns_resolver))
return false;
if (!mojo::Equals(this->ip_protection_proxy_bypass_policy, other_struct.ip_protection_proxy_bypass_policy))
return false;
return true;
}
template <typename T, NetworkServiceParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.initial_connection_type < rhs.initial_connection_type)
return true;
if (rhs.initial_connection_type < lhs.initial_connection_type)
return false;
if (lhs.initial_connection_subtype < rhs.initial_connection_subtype)
return true;
if (rhs.initial_connection_subtype < lhs.initial_connection_subtype)
return false;
if (lhs.environment < rhs.environment)
return true;
if (rhs.environment < lhs.environment)
return false;
if (lhs.default_observer < rhs.default_observer)
return true;
if (rhs.default_observer < lhs.default_observer)
return false;
if (lhs.first_party_sets_enabled < rhs.first_party_sets_enabled)
return true;
if (rhs.first_party_sets_enabled < lhs.first_party_sets_enabled)
return false;
if (lhs.system_dns_resolver < rhs.system_dns_resolver)
return true;
if (rhs.system_dns_resolver < lhs.system_dns_resolver)
return false;
if (lhs.ip_protection_proxy_bypass_policy < rhs.ip_protection_proxy_bypass_policy)
return true;
if (rhs.ip_protection_proxy_bypass_policy < lhs.ip_protection_proxy_bypass_policy)
return false;
return false;
}
template <typename StructPtrType>
SCTAuditingConfigurationPtr SCTAuditingConfiguration::Clone() const {
return New(
mojo::Clone(sampling_rate),
mojo::Clone(log_expected_ingestion_delay),
mojo::Clone(log_max_ingestion_random_delay),
mojo::Clone(report_uri),
mojo::Clone(hashdance_lookup_uri),
mojo::Clone(traffic_annotation),
mojo::Clone(hashdance_traffic_annotation)
);
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>*>
bool SCTAuditingConfiguration::Equals(const T& other_struct) const {
if (!mojo::Equals(this->sampling_rate, other_struct.sampling_rate))
return false;
if (!mojo::Equals(this->log_expected_ingestion_delay, other_struct.log_expected_ingestion_delay))
return false;
if (!mojo::Equals(this->log_max_ingestion_random_delay, other_struct.log_max_ingestion_random_delay))
return false;
if (!mojo::Equals(this->report_uri, other_struct.report_uri))
return false;
if (!mojo::Equals(this->hashdance_lookup_uri, other_struct.hashdance_lookup_uri))
return false;
if (!mojo::Equals(this->traffic_annotation, other_struct.traffic_annotation))
return false;
if (!mojo::Equals(this->hashdance_traffic_annotation, other_struct.hashdance_traffic_annotation))
return false;
return true;
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.sampling_rate < rhs.sampling_rate)
return true;
if (rhs.sampling_rate < lhs.sampling_rate)
return false;
if (lhs.log_expected_ingestion_delay < rhs.log_expected_ingestion_delay)
return true;
if (rhs.log_expected_ingestion_delay < lhs.log_expected_ingestion_delay)
return false;
if (lhs.log_max_ingestion_random_delay < rhs.log_max_ingestion_random_delay)
return true;
if (rhs.log_max_ingestion_random_delay < lhs.log_max_ingestion_random_delay)
return false;
if (lhs.report_uri < rhs.report_uri)
return true;
if (rhs.report_uri < lhs.report_uri)
return false;
if (lhs.hashdance_lookup_uri < rhs.hashdance_lookup_uri)
return true;
if (rhs.hashdance_lookup_uri < lhs.hashdance_lookup_uri)
return false;
if (lhs.traffic_annotation < rhs.traffic_annotation)
return true;
if (rhs.traffic_annotation < lhs.traffic_annotation)
return false;
if (lhs.hashdance_traffic_annotation < rhs.hashdance_traffic_annotation)
return true;
if (rhs.hashdance_traffic_annotation < lhs.hashdance_traffic_annotation)
return false;
return false;
}
} // network::mojom::blink
namespace mojo {
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::HttpAuthStaticParams::DataView,
::network::mojom::blink::HttpAuthStaticParamsPtr> {
static bool IsNull(const ::network::mojom::blink::HttpAuthStaticParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::HttpAuthStaticParamsPtr* output) { output->reset(); }
static const decltype(::network::mojom::blink::HttpAuthStaticParams::gssapi_library_name)& gssapi_library_name(
const ::network::mojom::blink::HttpAuthStaticParamsPtr& input) {
return input->gssapi_library_name;
}
static bool Read(::network::mojom::blink::HttpAuthStaticParams::DataView input, ::network::mojom::blink::HttpAuthStaticParamsPtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::HttpAuthDynamicParams::DataView,
::network::mojom::blink::HttpAuthDynamicParamsPtr> {
static bool IsNull(const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::HttpAuthDynamicParamsPtr* output) { output->reset(); }
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::allowed_schemes)& allowed_schemes(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->allowed_schemes;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::patterns_allowed_to_use_all_schemes)& patterns_allowed_to_use_all_schemes(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->patterns_allowed_to_use_all_schemes;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::server_allowlist)& server_allowlist(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->server_allowlist;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::delegate_allowlist)& delegate_allowlist(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->delegate_allowlist;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::delegate_by_kdc_policy) delegate_by_kdc_policy(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->delegate_by_kdc_policy;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::negotiate_disable_cname_lookup) negotiate_disable_cname_lookup(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->negotiate_disable_cname_lookup;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::enable_negotiate_port) enable_negotiate_port(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->enable_negotiate_port;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::ntlm_v2_enabled) ntlm_v2_enabled(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->ntlm_v2_enabled;
}
static const decltype(::network::mojom::blink::HttpAuthDynamicParams::android_negotiate_account_type)& android_negotiate_account_type(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->android_negotiate_account_type;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::allow_gssapi_library_load) allow_gssapi_library_load(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->allow_gssapi_library_load;
}
static decltype(::network::mojom::blink::HttpAuthDynamicParams::basic_over_http_enabled) basic_over_http_enabled(
const ::network::mojom::blink::HttpAuthDynamicParamsPtr& input) {
return input->basic_over_http_enabled;
}
static bool Read(::network::mojom::blink::HttpAuthDynamicParams::DataView input, ::network::mojom::blink::HttpAuthDynamicParamsPtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::EnvironmentVariable::DataView,
::network::mojom::blink::EnvironmentVariablePtr> {
static bool IsNull(const ::network::mojom::blink::EnvironmentVariablePtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::EnvironmentVariablePtr* output) { output->reset(); }
static const decltype(::network::mojom::blink::EnvironmentVariable::name)& name(
const ::network::mojom::blink::EnvironmentVariablePtr& input) {
return input->name;
}
static const decltype(::network::mojom::blink::EnvironmentVariable::value)& value(
const ::network::mojom::blink::EnvironmentVariablePtr& input) {
return input->value;
}
static bool Read(::network::mojom::blink::EnvironmentVariable::DataView input, ::network::mojom::blink::EnvironmentVariablePtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::NetworkServiceParams::DataView,
::network::mojom::blink::NetworkServiceParamsPtr> {
static bool IsNull(const ::network::mojom::blink::NetworkServiceParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::NetworkServiceParamsPtr* output) { output->reset(); }
static decltype(::network::mojom::blink::NetworkServiceParams::initial_connection_type) initial_connection_type(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->initial_connection_type;
}
static decltype(::network::mojom::blink::NetworkServiceParams::initial_connection_subtype) initial_connection_subtype(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->initial_connection_subtype;
}
static const decltype(::network::mojom::blink::NetworkServiceParams::environment)& environment(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->environment;
}
static decltype(::network::mojom::blink::NetworkServiceParams::default_observer)& default_observer(
::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->default_observer;
}
static decltype(::network::mojom::blink::NetworkServiceParams::first_party_sets_enabled) first_party_sets_enabled(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->first_party_sets_enabled;
}
static decltype(::network::mojom::blink::NetworkServiceParams::system_dns_resolver)& system_dns_resolver(
::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->system_dns_resolver;
}
static decltype(::network::mojom::blink::NetworkServiceParams::ip_protection_proxy_bypass_policy) ip_protection_proxy_bypass_policy(
const ::network::mojom::blink::NetworkServiceParamsPtr& input) {
return input->ip_protection_proxy_bypass_policy;
}
static bool Read(::network::mojom::blink::NetworkServiceParams::DataView input, ::network::mojom::blink::NetworkServiceParamsPtr* output);
};
template <>
struct BLINK_PLATFORM_EXPORT StructTraits<::network::mojom::blink::SCTAuditingConfiguration::DataView,
::network::mojom::blink::SCTAuditingConfigurationPtr> {
static bool IsNull(const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) { return !input; }
static void SetToNull(::network::mojom::blink::SCTAuditingConfigurationPtr* output) { output->reset(); }
static decltype(::network::mojom::blink::SCTAuditingConfiguration::sampling_rate) sampling_rate(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->sampling_rate;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::log_expected_ingestion_delay)& log_expected_ingestion_delay(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->log_expected_ingestion_delay;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::log_max_ingestion_random_delay)& log_max_ingestion_random_delay(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->log_max_ingestion_random_delay;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::report_uri)& report_uri(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->report_uri;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::hashdance_lookup_uri)& hashdance_lookup_uri(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->hashdance_lookup_uri;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::traffic_annotation)& traffic_annotation(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->traffic_annotation;
}
static const decltype(::network::mojom::blink::SCTAuditingConfiguration::hashdance_traffic_annotation)& hashdance_traffic_annotation(
const ::network::mojom::blink::SCTAuditingConfigurationPtr& input) {
return input->hashdance_traffic_annotation;
}
static bool Read(::network::mojom::blink::SCTAuditingConfiguration::DataView input, ::network::mojom::blink::SCTAuditingConfigurationPtr* output);
};
} // namespace mojo
#endif // SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_BLINK_H_
/* Metadata comment
eyJ0eXBlIjogImt5dGhlMCIsICJtZXRhIjogW3sidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
ZWdpbiI6IDQ3NDgsICJlbmQiOiA0NzYyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlIn0s
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgImJlZ2luIjogMTA1NjMsICJlbmQiOiAxMDU3MiwgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3Jr
U2VydmljZS5TZXRQYXJhbXMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7
InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMDY5MCwgImVuZCI6IDEwNzAxLCAi
dm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJu
ZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlN0YXJ0TmV0TG9nIn0sICJlZGdlIjogIiUva3l0
aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjog
MTA5MjUsICJlbmQiOiAxMDk0MiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8v
bWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5BdHRhY2hO
ZXRMb2dQcm94eSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDExMTkxLCAiZW5kIjogMTEyMDcsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuU2V0U1NMS2V5TG9nRmlsZSJ9LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEx
MzIxLCAiZW5kIjogMTEzNDEsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
aW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ3JlYXRlTmV0
d29ya0NvbnRleHQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUi
OiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMTU3MiwgImVuZCI6IDExNTk3LCAidm5hbWUi
OiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2Uu
Y29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3Jr
Lm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNvbmZpZ3VyZVN0dWJIb3N0UmVzb2x2ZXIifSwgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
YmVnaW4iOiAxMTg3OCwgImVuZCI6IDExODg5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9t
IiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21p
dW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNl
LkRpc2FibGVRdWljIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTE5NzksICJlbmQiOiAxMTk5MiwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRVcEh0dHBBdXRoIn0sICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTIx
MzgsICJlbmQiOiAxMjE2MCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5Db25maWd1cmVI
dHRwQXV0aFByZWZzIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTIzMDUsICJlbmQiOiAxMjMyNCwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRSYXdIZWFkZXJzQWNjZXNzIn0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogMTI1MjUsICJlbmQiOiAxMjU1NSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRN
YXhDb25uZWN0aW9uc1BlclByb3h5Q2hhaW4ifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMjY3OCwgImVuZCI6
IDEyNzAxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkdldE5ldHdvcmtDaGFuZ2VNYW5h
Z2VyIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgImJlZ2luIjogMTI5MDQsICJlbmQiOiAxMjkzNywgInZuYW1lIjogeyJsYW5n
dWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rl
c2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZS5HZXROZXR3b3JrUXVhbGl0eUVzdGltYXRvck1hbmFnZXIifSwgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
YmVnaW4iOiAxMzEyOCwgImVuZCI6IDEzMTUzLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9t
IiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21p
dW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNl
LkdldERuc0NvbmZpZ0NoYW5nZU1hbmFnZXIifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMzQ0NSwgImVuZCI6
IDEzNDU5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkdldE5ldHdvcmtMaXN0In0sICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgImJlZ2luIjogMTM2MDMsICJlbmQiOiAxMzYyMiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2Vy
dmljZS5PblRydXN0U3RvcmVDaGFuZ2VkIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTM3MjMsICJlbmQiOiAx
Mzc0NywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5PbkNsaWVudENlcnRTdG9yZUNoYW5n
ZWQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAiYmVnaW4iOiAxMzg0MCwgImVuZCI6IDEzODU2LCAidm5hbWUiOiB7Imxhbmd1
YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5l
dHdvcmtTZXJ2aWNlLlNldEVuY3J5cHRpb25LZXkifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMzk4MiwgImVu
ZCI6IDEzOTk4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNp
Z25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLk9uTWVtb3J5UHJlc3N1cmUi
fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAiYmVnaW4iOiAxNDE3NywgImVuZCI6IDE0MjExLCAidm5hbWUiOiB7Imxhbmd1YWdl
IjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFy
Y2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdv
cmtTZXJ2aWNlLk9uUGVlclRvUGVlckNvbm5lY3Rpb25zQ291bnRDaGFuZ2UifSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVn
aW4iOiAxNDQwNCwgImVuZCI6IDE0NDMxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNl
dFRydXN0VG9rZW5LZXlDb21taXRtZW50cyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE0NjA5LCAiZW5kIjog
MTQ2MzAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0
dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ2xlYXJTQ1RBdWRpdGluZ0NhY2hl
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogMTQ3MjcsICJlbmQiOiAxNDc0NywgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3
b3JrU2VydmljZS5Db25maWd1cmVTQ1RBdWRpdGluZyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv
Z2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE0OTQzLCAi
ZW5kIjogMTQ5NTgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAi
c2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuVXBkYXRlQ3RMb2dMaXN0
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogMTUyMjQsICJlbmQiOiAxNTI0OCwgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3
b3JrU2VydmljZS5VcGRhdGVDdEtub3duUG9wdWxhclNDVHMifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNTUx
MywgImVuZCI6IDE1NTM2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldEN0RW5mb3Jj
ZW1lbnRFbmFibGVkIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTU2ODQsICJlbmQiOiAxNTcwMSwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5OZXR3b3JrU2VydmljZS5VcGRhdGVLZXlQaW5zTGlzdCJ9LCAiZWRnZSI6ICIlL2t5
dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6
IDE1ODc1LCAiZW5kIjogMTU5MDIsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMv
L21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQmluZFRl
c3RJbnRlcmZhY2VGb3JUZXN0aW5nIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
fSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTYwNzMsICJlbmQiOiAxNjA5
MCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUi
OiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRGaXJzdFBhcnR5U2V0cyJ9LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJiZWdpbiI6IDE2MjQ1LCAiZW5kIjogMTYyNzAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZp
Y2UuU2V0RXhwbGljaXRseUFsbG93ZWRQb3J0cyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2Vu
ZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE2NDAzLCAiZW5k
IjogMTY0MjUsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2ln
bmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuVXBkYXRlTWFza2VkRG9tYWlu
TGlzdCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNo
b3JfZGVmaW5lcyIsICJiZWdpbiI6IDE2NzA3LCAiZW5kIjogMTY3MTksICJ2bmFtZSI6IHsibGFu
Z3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29k
ZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20u
TmV0d29ya1NlcnZpY2UuUGFyc2VIZWFkZXJzIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTY5MjgsICJlbmQi
OiAxNjk0OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5FbmFibGVEYXRhVXNlVXBkYXRl
cyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJiZWdpbiI6IDE3MDYzLCAiZW5kIjogMTcwOTAsICJ2bmFtZSI6IHsibGFuZ3Vh
Z2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNl
YXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0
d29ya1NlcnZpY2UuU2V0SVB2NlJlYWNoYWJpbGl0eU92ZXJyaWRlIn0sICJlZGdlIjogIiUva3l0
aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjog
MTcyMjAsICJlbmQiOiAxNzI0NywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8v
bWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXROZXR3
b3JrQW5ub3RhdGlvbk1vbml0b3IifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9
LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNzQyNCwgImVuZCI6IDE3NDQ1
LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6
ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldFRwY2RNZXRhZGF0YUdyYW50cyJ9LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJiZWdpbiI6IDE3ODY5LCAiZW5kIjogMTc4NzgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAi
bW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9j
aHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1Nl
cnZpY2UuU2V0UGFyYW1zIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTc5ODksICJlbmQiOiAxODAwMCwgInZu
YW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0
d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TdGFydE5ldExvZyJ9LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE4
MjE3LCAiZW5kIjogMTgyMzQsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
aW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQXR0YWNoTmV0
TG9nUHJveHkifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxODQ3NiwgImVuZCI6IDE4NDkyLCAidm5hbWUiOiB7
Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1v
am9tLk5ldHdvcmtTZXJ2aWNlLlNldFNTTEtleUxvZ0ZpbGUifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxODU5
OSwgImVuZCI6IDE4NjE5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNyZWF0ZU5ldHdv
cmtDb250ZXh0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTg4NDMsICJlbmQiOiAxODg2OCwgInZuYW1lIjog
eyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5t
b2pvbS5OZXR3b3JrU2VydmljZS5Db25maWd1cmVTdHViSG9zdFJlc29sdmVyIn0sICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJl
Z2luIjogMTkxNDIsICJlbmQiOiAxOTE1MywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVt
L3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5E
aXNhYmxlUXVpYyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE5MjM2LCAiZW5kIjogMTkyNDksICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuU2V0VXBIdHRwQXV0aCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE5Mzg4
LCAiZW5kIjogMTk0MTAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjog
ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4i
LCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ29uZmlndXJlSHR0
cEF1dGhQcmVmcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE5NTQ4LCAiZW5kIjogMTk1NjcsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuU2V0UmF3SGVhZGVyc0FjY2VzcyJ9LCAiZWRnZSI6ICIlL2t5
dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6
IDE5NzYxLCAiZW5kIjogMTk3OTEsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMv
L21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0TWF4
Q29ubmVjdGlvbnNQZXJQcm94eUNoYWluIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTk5MDcsICJlbmQiOiAx
OTkzMCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5HZXROZXR3b3JrQ2hhbmdlTWFuYWdl
ciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJiZWdpbiI6IDIwMTI2LCAiZW5kIjogMjAxNTksICJ2bmFtZSI6IHsibGFuZ3Vh
Z2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNl
YXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0
d29ya1NlcnZpY2UuR2V0TmV0d29ya1F1YWxpdHlFc3RpbWF0b3JNYW5hZ2VyIn0sICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJl
Z2luIjogMjAzNDMsICJlbmQiOiAyMDM2OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVt
L3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5H
ZXREbnNDb25maWdDaGFuZ2VNYW5hZ2VyIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjA1MzMsICJlbmQiOiAy
MDU0NywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5HZXROZXR3b3JrTGlzdCJ9LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJiZWdpbiI6IDIwNjg0LCAiZW5kIjogMjA3MDMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZp
Y2UuT25UcnVzdFN0b3JlQ2hhbmdlZCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
In0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIwNzk3LCAiZW5kIjogMjA4
MjEsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJl
IjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuT25DbGllbnRDZXJ0U3RvcmVDaGFuZ2Vk
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogMjA5MDcsICJlbmQiOiAyMDkyMywgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3
b3JrU2VydmljZS5TZXRFbmNyeXB0aW9uS2V5In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjEwNDIsICJlbmQi
OiAyMTA1OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5Pbk1lbW9yeVByZXNzdXJlIn0s
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgImJlZ2luIjogMjEyMzAsICJlbmQiOiAyMTI2NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3Jr
U2VydmljZS5PblBlZXJUb1BlZXJDb25uZWN0aW9uc0NvdW50Q2hhbmdlIn0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogMjEzNzUsICJlbmQiOiAyMTQwMiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRU
cnVzdFRva2VuS2V5Q29tbWl0bWVudHMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
cyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMTU3MywgImVuZCI6IDIx
NTk0LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVy
ZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNsZWFyU0NUQXVkaXRpbmdDYWNoZSJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDIxNjg0LCAiZW5kIjogMjE3MDQsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29y
a1NlcnZpY2UuQ29uZmlndXJlU0NUQXVkaXRpbmcifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMTgzMCwgImVu
ZCI6IDIxODQ1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNp
Z25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZUN0TG9nTGlzdCJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDIyMDMyLCAiZW5kIjogMjIwNTYsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29y
a1NlcnZpY2UuVXBkYXRlQ3RLbm93blBvcHVsYXJTQ1RzIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjIyNDMs
ICJlbmQiOiAyMjI2NiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRDdEVuZm9yY2Vt
ZW50RW5hYmxlZCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIyNDA3LCAiZW5kIjogMjI0MjQsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuVXBkYXRlS2V5UGluc0xpc3QifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAy
MjU5MSwgImVuZCI6IDIyNjE4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9t
YWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkJpbmRUZXN0
SW50ZXJmYWNlRm9yVGVzdGluZyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0s
IHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIyNzgyLCAiZW5kIjogMjI3OTks
ICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2ds
ZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjog
Im5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0Rmlyc3RQYXJ0eVNldHMifSwgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
YmVnaW4iOiAyMjk0NywgImVuZCI6IDIyOTcyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9t
IiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21p
dW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNl
LlNldEV4cGxpY2l0bHlBbGxvd2VkUG9ydHMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMzA5OCwgImVuZCI6
IDIzMTIwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZU1hc2tlZERvbWFpbkxp
c3QifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAiYmVnaW4iOiAyMzI5NCwgImVuZCI6IDIzMzA2LCAidm5hbWUiOiB7Imxhbmd1
YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5l
dHdvcmtTZXJ2aWNlLlBhcnNlSGVhZGVycyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIzNTA4LCAiZW5kIjog
MjM1MjgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0
dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuRW5hYmxlRGF0YVVzZVVwZGF0ZXMi
fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAiYmVnaW4iOiAyMzYzNiwgImVuZCI6IDIzNjYzLCAidm5hbWUiOiB7Imxhbmd1YWdl
IjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFy
Y2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdv
cmtTZXJ2aWNlLlNldElQdjZSZWFjaGFiaWxpdHlPdmVycmlkZSJ9LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIz
Nzg2LCAiZW5kIjogMjM4MTMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
aW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0TmV0d29y
a0Fubm90YXRpb25Nb25pdG9yIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwg
eyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjM5ODMsICJlbmQiOiAyNDAwNCwg
InZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAi
bmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRUcGNkTWV0YWRhdGFHcmFudHMifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiAyNTg4MCwgImVuZCI6IDI1OTAwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1v
am9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hy
b21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoU3Rh
dGljUGFyYW1zIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjk5MDYsICJlbmQiOiAyOTkyNSwgInZuYW1lIjog
eyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5t
b2pvbS5IdHRwQXV0aFN0YXRpY1BhcmFtcy5nc3NhcGlfbGlicmFyeV9uYW1lIn0sICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJl
Z2luIjogMzEwMDcsICJlbmQiOiAzMTAyNiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVt
L3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5FbnZpcm9ubWVudFZhcmlh
YmxlIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgImJlZ2luIjogMzQ5OTksICJlbmQiOiAzNTAwMywgInZuYW1lIjogeyJsYW5n
dWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rl
c2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5F
bnZpcm9ubWVudFZhcmlhYmxlLm5hbWUifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
cyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAzNTA4MiwgImVuZCI6IDM1
MDg3LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVy
ZSI6ICJuZXR3b3JrLm1vam9tLkVudmlyb25tZW50VmFyaWFibGUudmFsdWUifSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVn
aW4iOiAzNjE3MSwgImVuZCI6IDM2MTkyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoRHluYW1pY1Bh
cmFtcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNo
b3JfZGVmaW5lcyIsICJiZWdpbiI6IDQwNjQ5LCAiZW5kIjogNDA2NjQsICJ2bmFtZSI6IHsibGFu
Z3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29k
ZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20u
SHR0cEF1dGhEeW5hbWljUGFyYW1zLmFsbG93ZWRfc2NoZW1lcyJ9LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDQw
Nzg4LCAiZW5kIjogNDA4MjMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
aW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhEeW5hbWljUGFyYW1zLnBh
dHRlcm5zX2FsbG93ZWRfdG9fdXNlX2FsbF9zY2hlbWVzIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDA5MTUs
ICJlbmQiOiA0MDkzMSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuc2VydmVy
X2FsbG93bGlzdCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDQxMDI1LCAiZW5kIjogNDEwNDMsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uSHR0cEF1dGhEeW5hbWljUGFyYW1zLmRlbGVnYXRlX2FsbG93bGlzdCJ9LCAiZWRnZSI6
ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
ZWdpbiI6IDQxMTM0LCAiZW5kIjogNDExNTYsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20i
LCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1
bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhEeW5hbWlj
UGFyYW1zLmRlbGVnYXRlX2J5X2tkY19wb2xpY3kifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA0MTI1NSwgImVu
ZCI6IDQxMjg1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNp
Z25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoRHluYW1pY1BhcmFtcy5uZWdvdGlhdGVf
ZGlzYWJsZV9jbmFtZV9sb29rdXAifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9
LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA0MTM3NSwgImVuZCI6IDQxMzk2
LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6
ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoRHluYW1pY1BhcmFtcy5lbmFibGVfbmVnb3RpYXRlX3Bv
cnQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAiYmVnaW4iOiA0MTQ4MCwgImVuZCI6IDQxNDk1LCAidm5hbWUiOiB7Imxhbmd1
YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0
dHBBdXRoRHluYW1pY1BhcmFtcy5udGxtX3YyX2VuYWJsZWQifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA0MTYw
MSwgImVuZCI6IDQxNjMxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoRHluYW1pY1BhcmFtcy5hbmRy
b2lkX25lZ290aWF0ZV9hY2NvdW50X3R5cGUifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA0MTcyNSwgImVuZCI6
IDQxNzUwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoRHluYW1pY1BhcmFtcy5hbGxvd19nc3NhcGlf
bGlicmFyeV9sb2FkIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDE4NDIsICJlbmQiOiA0MTg2NSwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuYmFzaWNfb3Zlcl9odHRwX2VuYWJsZWQifSwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAiYmVnaW4iOiA0Mjk1MiwgImVuZCI6IDQyOTcyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjog
Im1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gv
Y2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtT
ZXJ2aWNlUGFyYW1zIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDczNzksICJlbmQiOiA0NzQwMiwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5OZXR3b3JrU2VydmljZVBhcmFtcy5pbml0aWFsX2Nvbm5lY3Rpb25fdHlwZSJ9LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJiZWdpbiI6IDQ3NTM0LCAiZW5kIjogNDc1NjAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAi
bW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9j
aHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1Nl
cnZpY2VQYXJhbXMuaW5pdGlhbF9jb25uZWN0aW9uX3N1YnR5cGUifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA0
NzY3MCwgImVuZCI6IDQ3NjgxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9t
YWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlUGFyYW1zLmVu
dmlyb25tZW50In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDc4NDAsICJlbmQiOiA0Nzg1NiwgInZuYW1lIjog
eyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5t
b2pvbS5OZXR3b3JrU2VydmljZVBhcmFtcy5kZWZhdWx0X29ic2VydmVyIn0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogNDc5NDgsICJlbmQiOiA0Nzk3MiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZVBhcmFt
cy5maXJzdF9wYXJ0eV9zZXRzX2VuYWJsZWQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA0ODEyMCwgImVuZCI6
IDQ4MTM5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlUGFyYW1zLnN5c3RlbV9kbnNfcmVz
b2x2ZXIifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5j
aG9yX2RlZmluZXMiLCAiYmVnaW4iOiA0ODI5MCwgImVuZCI6IDQ4MzIzLCAidm5hbWUiOiB7Imxh
bmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nv
ZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9t
Lk5ldHdvcmtTZXJ2aWNlUGFyYW1zLmlwX3Byb3RlY3Rpb25fcHJveHlfYnlwYXNzX3BvbGljeSJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDQ5NDA5LCAiZW5kIjogNDk0MzMsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uU0NUQXVk
aXRpbmdDb25maWd1cmF0aW9uIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwg
eyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNTM4MjksICJlbmQiOiA1Mzg0Miwg
InZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAi
bmV0d29yay5tb2pvbS5TQ1RBdWRpdGluZ0NvbmZpZ3VyYXRpb24uc2FtcGxpbmdfcmF0ZSJ9LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJiZWdpbiI6IDUzOTU1LCAiZW5kIjogNTM5ODMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAi
bW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9j
aHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uU0NUQXVkaXRp
bmdDb25maWd1cmF0aW9uLmxvZ19leHBlY3RlZF9pbmdlc3Rpb25fZGVsYXkifSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVn
aW4iOiA1NDA5OCwgImVuZCI6IDU0MTI4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1ZGl0aW5nQ29uZmln
dXJhdGlvbi5sb2dfbWF4X2luZ2VzdGlvbl9yYW5kb21fZGVsYXkifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1
NDIxOSwgImVuZCI6IDU0MjI5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9t
YWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1ZGl0aW5nQ29uZmlndXJhdGlv
bi5yZXBvcnRfdXJpIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNTQzMzAsICJlbmQiOiA1NDM1MCwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29y
ay5tb2pvbS5TQ1RBdWRpdGluZ0NvbmZpZ3VyYXRpb24uaGFzaGRhbmNlX2xvb2t1cF91cmkifSwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAiYmVnaW4iOiA1NDQ3NywgImVuZCI6IDU0NDk1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjog
Im1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gv
Y2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1ZGl0
aW5nQ29uZmlndXJhdGlvbi50cmFmZmljX2Fubm90YXRpb24ifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1NDYz
MiwgImVuZCI6IDU0NjYwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1ZGl0aW5nQ29uZmlndXJhdGlvbi5o
YXNoZGFuY2VfdHJhZmZpY19hbm5vdGF0aW9uIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMifV19
*/