// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_EVENTS_MOJO_EVENT_CONSTANTS_MOJOM_SHARED_H_
#define UI_EVENTS_MOJO_EVENT_CONSTANTS_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <ostream>
#include <type_traits>
#include <utility>

#include "base/compiler_specific.h"
#include "base/containers/flat_map.h"
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"
#include "ui/events/mojo/event_constants.mojom-shared-internal.h"

#include "mojo/public/cpp/bindings/lib/interface_serialization.h"


#include "mojo/public/cpp/bindings/native_enum.h"
#include "mojo/public/cpp/bindings/lib/native_struct_serialization.h"

#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif


namespace ui {
namespace mojom {


}  // namespace mojom
}  // namespace ui

namespace mojo {
namespace internal {

}  // namespace internal
}  // namespace mojo


namespace ui {
namespace mojom {


// @generated_from: ui.mojom.AcceleratorPhase
enum class AcceleratorPhase : int32_t {
  
// @generated_from: ui.mojom.AcceleratorPhase.PRE_TARGET
  PRE_TARGET,
  
// @generated_from: ui.mojom.AcceleratorPhase.POST_TARGET
  POST_TARGET,
  kMinValue = 0,
  kMaxValue = 1,
};

 std::ostream& operator<<(std::ostream& os, AcceleratorPhase value);
inline bool IsKnownEnumValue(AcceleratorPhase value) {
  return internal::AcceleratorPhase_Data::IsKnownValue(
      static_cast<int32_t>(value));
}


// @generated_from: ui.mojom.EventType
enum class EventType : int32_t {
  
// @generated_from: ui.mojom.EventType.UNKNOWN
  UNKNOWN,
  
// @generated_from: ui.mojom.EventType.KEY_PRESSED
  KEY_PRESSED,
  
// @generated_from: ui.mojom.EventType.KEY_RELEASED
  KEY_RELEASED,
  
// @generated_from: ui.mojom.EventType.GESTURE_TAP
  GESTURE_TAP,
  
// @generated_from: ui.mojom.EventType.GESTURE_SWIPE
  GESTURE_SWIPE,
  
// @generated_from: ui.mojom.EventType.GESTURE_PINCH_BEGIN
  GESTURE_PINCH_BEGIN,
  
// @generated_from: ui.mojom.EventType.GESTURE_PINCH_END
  GESTURE_PINCH_END,
  
// @generated_from: ui.mojom.EventType.GESTURE_PINCH_UPDATE
  GESTURE_PINCH_UPDATE,
  
// @generated_from: ui.mojom.EventType.SCROLL
  SCROLL,
  
// @generated_from: ui.mojom.EventType.SCROLL_FLING_START
  SCROLL_FLING_START,
  
// @generated_from: ui.mojom.EventType.SCROLL_FLING_CANCEL
  SCROLL_FLING_CANCEL,
  
// @generated_from: ui.mojom.EventType.CANCEL_MODE
  CANCEL_MODE,
  
// @generated_from: ui.mojom.EventType.MOUSE_PRESSED_EVENT
  MOUSE_PRESSED_EVENT,
  
// @generated_from: ui.mojom.EventType.MOUSE_DRAGGED_EVENT
  MOUSE_DRAGGED_EVENT,
  
// @generated_from: ui.mojom.EventType.MOUSE_RELEASED_EVENT
  MOUSE_RELEASED_EVENT,
  
// @generated_from: ui.mojom.EventType.MOUSE_MOVED_EVENT
  MOUSE_MOVED_EVENT,
  
// @generated_from: ui.mojom.EventType.MOUSE_ENTERED_EVENT
  MOUSE_ENTERED_EVENT,
  
// @generated_from: ui.mojom.EventType.MOUSE_EXITED_EVENT
  MOUSE_EXITED_EVENT,
  
// @generated_from: ui.mojom.EventType.MOUSE_WHEEL_EVENT
  MOUSE_WHEEL_EVENT,
  
// @generated_from: ui.mojom.EventType.MOUSE_CAPTURE_CHANGED_EVENT
  MOUSE_CAPTURE_CHANGED_EVENT,
  
// @generated_from: ui.mojom.EventType.TOUCH_RELEASED
  TOUCH_RELEASED,
  
// @generated_from: ui.mojom.EventType.TOUCH_PRESSED
  TOUCH_PRESSED,
  
// @generated_from: ui.mojom.EventType.TOUCH_MOVED
  TOUCH_MOVED,
  
// @generated_from: ui.mojom.EventType.TOUCH_CANCELLED
  TOUCH_CANCELLED,
  kMinValue = 0,
  kMaxValue = 23,
};

 std::ostream& operator<<(std::ostream& os, EventType value);
inline bool IsKnownEnumValue(EventType value) {
  return internal::EventType_Data::IsKnownValue(
      static_cast<int32_t>(value));
}


// @generated_from: ui.mojom.PointerKind
enum class PointerKind : int32_t {
  
// @generated_from: ui.mojom.PointerKind.UNKNOWN
  UNKNOWN,
  
// @generated_from: ui.mojom.PointerKind.MOUSE
  MOUSE,
  
// @generated_from: ui.mojom.PointerKind.PEN
  PEN,
  
// @generated_from: ui.mojom.PointerKind.TOUCH
  TOUCH,
  
// @generated_from: ui.mojom.PointerKind.ERASER
  ERASER,
  kMinValue = 0,
  kMaxValue = 4,
};

 std::ostream& operator<<(std::ostream& os, PointerKind value);
inline bool IsKnownEnumValue(PointerKind value) {
  return internal::PointerKind_Data::IsKnownValue(
      static_cast<int32_t>(value));
}


// @generated_from: ui.mojom.ScrollEventPhase
enum class ScrollEventPhase : int32_t {
  
// @generated_from: ui.mojom.ScrollEventPhase.kNone
  kNone,
  
// @generated_from: ui.mojom.ScrollEventPhase.kBegan
  kBegan,
  
// @generated_from: ui.mojom.ScrollEventPhase.kUpdate
  kUpdate,
  
// @generated_from: ui.mojom.ScrollEventPhase.kEnd
  kEnd,
  kMinValue = 0,
  kMaxValue = 3,
};

 std::ostream& operator<<(std::ostream& os, ScrollEventPhase value);
inline bool IsKnownEnumValue(ScrollEventPhase value) {
  return internal::ScrollEventPhase_Data::IsKnownValue(
      static_cast<int32_t>(value));
}


// @generated_from: ui.mojom.EventMomentumPhase
enum class EventMomentumPhase : int32_t {
  
// @generated_from: ui.mojom.EventMomentumPhase.NONE
  NONE,
  
// @generated_from: ui.mojom.EventMomentumPhase.BEGAN
  BEGAN,
  
// @generated_from: ui.mojom.EventMomentumPhase.MAY_BEGIN
  MAY_BEGIN,
  
// @generated_from: ui.mojom.EventMomentumPhase.INERTIAL_UPDATE
  INERTIAL_UPDATE,
  
// @generated_from: ui.mojom.EventMomentumPhase.END
  END,
  kMinValue = 0,
  kMaxValue = 4,
};

 std::ostream& operator<<(std::ostream& os, EventMomentumPhase value);
inline bool IsKnownEnumValue(EventMomentumPhase value) {
  return internal::EventMomentumPhase_Data::IsKnownValue(
      static_cast<int32_t>(value));
}


// @generated_from: ui.mojom.GestureDeviceType
enum class GestureDeviceType : int32_t {
  
// @generated_from: ui.mojom.GestureDeviceType.DEVICE_UNKNOWN
  DEVICE_UNKNOWN,
  
// @generated_from: ui.mojom.GestureDeviceType.DEVICE_TOUCHPAD
  DEVICE_TOUCHPAD,
  
// @generated_from: ui.mojom.GestureDeviceType.DEVICE_TOUCHSCREEN
  DEVICE_TOUCHSCREEN,
  kMinValue = 0,
  kMaxValue = 2,
};

 std::ostream& operator<<(std::ostream& os, GestureDeviceType value);
inline bool IsKnownEnumValue(GestureDeviceType value) {
  return internal::GestureDeviceType_Data::IsKnownValue(
      static_cast<int32_t>(value));
}


}  // namespace mojom
}  // namespace ui

namespace std {

template <>
struct hash<::ui::mojom::AcceleratorPhase>
    : public mojo::internal::EnumHashImpl<::ui::mojom::AcceleratorPhase> {};

template <>
struct hash<::ui::mojom::EventType>
    : public mojo::internal::EnumHashImpl<::ui::mojom::EventType> {};

template <>
struct hash<::ui::mojom::PointerKind>
    : public mojo::internal::EnumHashImpl<::ui::mojom::PointerKind> {};

template <>
struct hash<::ui::mojom::ScrollEventPhase>
    : public mojo::internal::EnumHashImpl<::ui::mojom::ScrollEventPhase> {};

template <>
struct hash<::ui::mojom::EventMomentumPhase>
    : public mojo::internal::EnumHashImpl<::ui::mojom::EventMomentumPhase> {};

template <>
struct hash<::ui::mojom::GestureDeviceType>
    : public mojo::internal::EnumHashImpl<::ui::mojom::GestureDeviceType> {};

}  // namespace std

namespace mojo {


template <>
struct EnumTraits<::ui::mojom::AcceleratorPhase, ::ui::mojom::AcceleratorPhase> {
  static ::ui::mojom::AcceleratorPhase ToMojom(::ui::mojom::AcceleratorPhase input) { return input; }
  static bool FromMojom(::ui::mojom::AcceleratorPhase input, ::ui::mojom::AcceleratorPhase* output) {
    *output = input;
    return true;
  }
};

namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::ui::mojom::AcceleratorPhase, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = EnumTraits<::ui::mojom::AcceleratorPhase, UserType>;

  static void Serialize(UserType input, int32_t* output) {
    *output = static_cast<int32_t>(Traits::ToMojom(input));
  }

  static bool Deserialize(int32_t input, UserType* output) {
    return Traits::FromMojom(static_cast<::ui::mojom::AcceleratorPhase>(input), output);
  }
};

}  // namespace internal


template <>
struct EnumTraits<::ui::mojom::EventType, ::ui::mojom::EventType> {
  static ::ui::mojom::EventType ToMojom(::ui::mojom::EventType input) { return input; }
  static bool FromMojom(::ui::mojom::EventType input, ::ui::mojom::EventType* output) {
    *output = input;
    return true;
  }
};

namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::ui::mojom::EventType, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = EnumTraits<::ui::mojom::EventType, UserType>;

  static void Serialize(UserType input, int32_t* output) {
    *output = static_cast<int32_t>(Traits::ToMojom(input));
  }

  static bool Deserialize(int32_t input, UserType* output) {
    return Traits::FromMojom(static_cast<::ui::mojom::EventType>(input), output);
  }
};

}  // namespace internal


template <>
struct EnumTraits<::ui::mojom::PointerKind, ::ui::mojom::PointerKind> {
  static ::ui::mojom::PointerKind ToMojom(::ui::mojom::PointerKind input) { return input; }
  static bool FromMojom(::ui::mojom::PointerKind input, ::ui::mojom::PointerKind* output) {
    *output = input;
    return true;
  }
};

namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::ui::mojom::PointerKind, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = EnumTraits<::ui::mojom::PointerKind, UserType>;

  static void Serialize(UserType input, int32_t* output) {
    *output = static_cast<int32_t>(Traits::ToMojom(input));
  }

  static bool Deserialize(int32_t input, UserType* output) {
    return Traits::FromMojom(static_cast<::ui::mojom::PointerKind>(input), output);
  }
};

}  // namespace internal


template <>
struct EnumTraits<::ui::mojom::ScrollEventPhase, ::ui::mojom::ScrollEventPhase> {
  static ::ui::mojom::ScrollEventPhase ToMojom(::ui::mojom::ScrollEventPhase input) { return input; }
  static bool FromMojom(::ui::mojom::ScrollEventPhase input, ::ui::mojom::ScrollEventPhase* output) {
    *output = input;
    return true;
  }
};

namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::ui::mojom::ScrollEventPhase, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = EnumTraits<::ui::mojom::ScrollEventPhase, UserType>;

  static void Serialize(UserType input, int32_t* output) {
    *output = static_cast<int32_t>(Traits::ToMojom(input));
  }

  static bool Deserialize(int32_t input, UserType* output) {
    return Traits::FromMojom(static_cast<::ui::mojom::ScrollEventPhase>(input), output);
  }
};

}  // namespace internal


template <>
struct EnumTraits<::ui::mojom::EventMomentumPhase, ::ui::mojom::EventMomentumPhase> {
  static ::ui::mojom::EventMomentumPhase ToMojom(::ui::mojom::EventMomentumPhase input) { return input; }
  static bool FromMojom(::ui::mojom::EventMomentumPhase input, ::ui::mojom::EventMomentumPhase* output) {
    *output = input;
    return true;
  }
};

namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::ui::mojom::EventMomentumPhase, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = EnumTraits<::ui::mojom::EventMomentumPhase, UserType>;

  static void Serialize(UserType input, int32_t* output) {
    *output = static_cast<int32_t>(Traits::ToMojom(input));
  }

  static bool Deserialize(int32_t input, UserType* output) {
    return Traits::FromMojom(static_cast<::ui::mojom::EventMomentumPhase>(input), output);
  }
};

}  // namespace internal


template <>
struct EnumTraits<::ui::mojom::GestureDeviceType, ::ui::mojom::GestureDeviceType> {
  static ::ui::mojom::GestureDeviceType ToMojom(::ui::mojom::GestureDeviceType input) { return input; }
  static bool FromMojom(::ui::mojom::GestureDeviceType input, ::ui::mojom::GestureDeviceType* output) {
    *output = input;
    return true;
  }
};

namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::ui::mojom::GestureDeviceType, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = EnumTraits<::ui::mojom::GestureDeviceType, UserType>;

  static void Serialize(UserType input, int32_t* output) {
    *output = static_cast<int32_t>(Traits::ToMojom(input));
  }

  static bool Deserialize(int32_t input, UserType* output) {
    return Traits::FromMojom(static_cast<::ui::mojom::GestureDeviceType>(input), output);
  }
};

}  // namespace internal

}  // namespace mojo


namespace ui {
namespace mojom {


}  // namespace mojom
}  // namespace ui

#endif  // UI_EVENTS_MOJO_EVENT_CONSTANTS_MOJOM_SHARED_H_
/* Metadata comment
eyJtZXRhIjogW3siZW5kIjogMTQ1MSwgImJlZ2luIjogMTQzNSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogInVpLm1vam9tLkFjY2VsZXJhdG9yUGhhc2UifX0sIHsi
ZW5kIjogMTUzNiwgImJlZ2luIjogMTUyNiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
cyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAi
c2lnbmF0dXJlIjogInVpLm1vam9tLkFjY2VsZXJhdG9yUGhhc2UuUFJFX1RBUkdFVCJ9fSwgeyJl
bmQiOiAxNjEyLCAiYmVnaW4iOiAxNjAxLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz
aWduYXR1cmUiOiAidWkubW9qb20uQWNjZWxlcmF0b3JQaGFzZS5QT1NUX1RBUkdFVCJ9fSwgeyJl
bmQiOiAxOTMxLCAiYmVnaW4iOiAxOTIyLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
IiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJz
aWduYXR1cmUiOiAidWkubW9qb20uRXZlbnRUeXBlIn19LCB7ImVuZCI6IDIwMDMsICJiZWdpbiI6
IDE5OTYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
Y2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pv
bS5FdmVudFR5cGUuVU5LTk9XTiJ9fSwgeyJlbmQiOiAyMDcyLCAiYmVnaW4iOiAyMDYxLCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
dm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3Ny
YyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidWkubW9qb20uRXZlbnRUeXBl
LktFWV9QUkVTU0VEIn19LCB7ImVuZCI6IDIxNDMsICJiZWdpbiI6IDIxMzEsICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6
IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxh
bmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5FdmVudFR5cGUuS0VZX1JF
TEVBU0VEIn19LCB7ImVuZCI6IDIyMTIsICJiZWdpbiI6IDIyMDEsICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdl
IjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5FdmVudFR5cGUuR0VTVFVSRV9UQVAi
fX0sIHsiZW5kIjogMjI4NSwgImJlZ2luIjogMjI3MiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q
b20iLCAic2lnbmF0dXJlIjogInVpLm1vam9tLkV2ZW50VHlwZS5HRVNUVVJFX1NXSVBFIn19LCB7
ImVuZCI6IDIzNzAsICJiZWdpbiI6IDIzNTEsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5FdmVudFR5cGUuR0VTVFVSRV9QSU5DSF9CRUdJTiJ9fSwg
eyJlbmQiOiAyNDUxLCAiYmVnaW4iOiAyNDM0LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJzaWduYXR1cmUiOiAidWkubW9qb20uRXZlbnRUeXBlLkdFU1RVUkVfUElOQ0hfRU5EIn19LCB7
ImVuZCI6IDI1MzgsICJiZWdpbiI6IDI1MTgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5FdmVudFR5cGUuR0VTVFVSRV9QSU5DSF9VUERBVEUifX0s
IHsiZW5kIjogMjU5NywgImJlZ2luIjogMjU5MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i
LCAic2lnbmF0dXJlIjogInVpLm1vam9tLkV2ZW50VHlwZS5TQ1JPTEwifX0sIHsiZW5kIjogMjY4
MCwgImJlZ2luIjogMjY2MiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl
IjogInVpLm1vam9tLkV2ZW50VHlwZS5TQ1JPTExfRkxJTkdfU1RBUlQifX0sIHsiZW5kIjogMjc2
NSwgImJlZ2luIjogMjc0NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl
IjogInVpLm1vam9tLkV2ZW50VHlwZS5TQ1JPTExfRkxJTkdfQ0FOQ0VMIn19LCB7ImVuZCI6IDI4
MzQsICJiZWdpbiI6IDI4MjMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlw
ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2ds
ZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVy
ZSI6ICJ1aS5tb2pvbS5FdmVudFR5cGUuQ0FOQ0VMX01PREUifX0sIHsiZW5kIjogMjkxOSwgImJl
Z2luIjogMjkwMCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFu
Y2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInVp
Lm1vam9tLkV2ZW50VHlwZS5NT1VTRV9QUkVTU0VEX0VWRU5UIn19LCB7ImVuZCI6IDMwMDQsICJi
ZWdpbiI6IDI5ODUsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJh
bmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj
ZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1
aS5tb2pvbS5FdmVudFR5cGUuTU9VU0VfRFJBR0dFRF9FVkVOVCJ9fSwgeyJlbmQiOiAzMDkxLCAi
YmVnaW4iOiAzMDcxLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAi
dWkubW9qb20uRXZlbnRUeXBlLk1PVVNFX1JFTEVBU0VEX0VWRU5UIn19LCB7ImVuZCI6IDMxNzIs
ICJiZWdpbiI6IDMxNTUsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6
ICJ1aS5tb2pvbS5FdmVudFR5cGUuTU9VU0VfTU9WRURfRVZFTlQifX0sIHsiZW5kIjogMzI1Nywg
ImJlZ2luIjogMzIzOCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog
InVpLm1vam9tLkV2ZW50VHlwZS5NT1VTRV9FTlRFUkVEX0VWRU5UIn19LCB7ImVuZCI6IDMzNDAs
ICJiZWdpbiI6IDMzMjIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6
ICJ1aS5tb2pvbS5FdmVudFR5cGUuTU9VU0VfRVhJVEVEX0VWRU5UIn19LCB7ImVuZCI6IDM0MjEs
ICJiZWdpbiI6IDM0MDQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6
ICJ1aS5tb2pvbS5FdmVudFR5cGUuTU9VU0VfV0hFRUxfRVZFTlQifX0sIHsiZW5kIjogMzUyMiwg
ImJlZ2luIjogMzQ5NSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog
InVpLm1vam9tLkV2ZW50VHlwZS5NT1VTRV9DQVBUVVJFX0NIQU5HRURfRVZFTlQifX0sIHsiZW5k
IjogMzU5NywgImJlZ2luIjogMzU4MywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs
ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln
bmF0dXJlIjogInVpLm1vam9tLkV2ZW50VHlwZS5UT1VDSF9SRUxFQVNFRCJ9fSwgeyJlbmQiOiAz
NjcwLCAiYmVnaW4iOiAzNjU3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5
cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1
cmUiOiAidWkubW9qb20uRXZlbnRUeXBlLlRPVUNIX1BSRVNTRUQifX0sIHsiZW5kIjogMzczOSwg
ImJlZ2luIjogMzcyOCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog
InVpLm1vam9tLkV2ZW50VHlwZS5UT1VDSF9NT1ZFRCJ9fSwgeyJlbmQiOiAzODE2LCAiYmVnaW4i
OiAzODAxLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidWkubW9q
b20uRXZlbnRUeXBlLlRPVUNIX0NBTkNFTExFRCJ9fSwgeyJlbmQiOiA0MTE5LCAiYmVnaW4iOiA0
MTA4LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2No
cm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidWkubW9qb20u
UG9pbnRlcktpbmQifX0sIHsiZW5kIjogNDE5MywgImJlZ2luIjogNDE4NiwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInVpLm1vam9tLlBvaW50ZXJLaW5kLlVOS05P
V04ifX0sIHsiZW5kIjogNDI1MiwgImJlZ2luIjogNDI0NywgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi
bW9qb20iLCAic2lnbmF0dXJlIjogInVpLm1vam9tLlBvaW50ZXJLaW5kLk1PVVNFIn19LCB7ImVu
ZCI6IDQzMDcsICJiZWdpbiI6IDQzMDQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
Z25hdHVyZSI6ICJ1aS5tb2pvbS5Qb2ludGVyS2luZC5QRU4ifX0sIHsiZW5kIjogNDM2NiwgImJl
Z2luIjogNDM2MSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFu
Y2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInVp
Lm1vam9tLlBvaW50ZXJLaW5kLlRPVUNIIn19LCB7ImVuZCI6IDQ0MjcsICJiZWdpbiI6IDQ0MjEs
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5Qb2lu
dGVyS2luZC5FUkFTRVIifX0sIHsiZW5kIjogNDc0NSwgImJlZ2luIjogNDcyOSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1l
IjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAi
bGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInVpLm1vam9tLlNjcm9sbEV2ZW50UGhh
c2UifX0sIHsiZW5kIjogNDgyMCwgImJlZ2luIjogNDgxNSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi
bW9qb20iLCAic2lnbmF0dXJlIjogInVpLm1vam9tLlNjcm9sbEV2ZW50UGhhc2Uua05vbmUifX0s
IHsiZW5kIjogNDg4NiwgImJlZ2luIjogNDg4MCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i
LCAic2lnbmF0dXJlIjogInVpLm1vam9tLlNjcm9sbEV2ZW50UGhhc2Uua0JlZ2FuIn19LCB7ImVu
ZCI6IDQ5NTQsICJiZWdpbiI6IDQ5NDcsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
Z25hdHVyZSI6ICJ1aS5tb2pvbS5TY3JvbGxFdmVudFBoYXNlLmtVcGRhdGUifX0sIHsiZW5kIjog
NTAxNiwgImJlZ2luIjogNTAxMiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0
dXJlIjogInVpLm1vam9tLlNjcm9sbEV2ZW50UGhhc2Uua0VuZCJ9fSwgeyJlbmQiOiA1MzUzLCAi
YmVnaW4iOiA1MzM1LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAi
dWkubW9qb20uRXZlbnRNb21lbnR1bVBoYXNlIn19LCB7ImVuZCI6IDU0MjgsICJiZWdpbiI6IDU0
MjQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hy
b21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5F
dmVudE1vbWVudHVtUGhhc2UuTk9ORSJ9fSwgeyJlbmQiOiA1NDk0LCAiYmVnaW4iOiA1NDg5LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidWkubW9qb20uRXZlbnRN
b21lbnR1bVBoYXNlLkJFR0FOIn19LCB7ImVuZCI6IDU1NjgsICJiZWdpbiI6IDU1NTksICJlZGdl
IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2
bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj
IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5FdmVudE1vbWVu
dHVtUGhhc2UuTUFZX0JFR0lOIn19LCB7ImVuZCI6IDU2NTQsICJiZWdpbiI6IDU2MzksICJlZGdl
IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2
bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj
IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5FdmVudE1vbWVu
dHVtUGhhc2UuSU5FUlRJQUxfVVBEQVRFIn19LCB7ImVuZCI6IDU3MTYsICJiZWdpbiI6IDU3MTMs
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5FdmVu
dE1vbWVudHVtUGhhc2UuRU5EIn19LCB7ImVuZCI6IDYwNTcsICJiZWdpbiI6IDYwNDAsICJlZGdl
IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2
bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3Jj
IiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ1aS5tb2pvbS5HZXN0dXJlRGV2
aWNlVHlwZSJ9fSwgeyJlbmQiOiA2MTUxLCAiYmVnaW4iOiA2MTM3LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNv
cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidWkubW9qb20uR2VzdHVyZURldmljZVR5cGUuREVW
SUNFX1VOS05PV04ifX0sIHsiZW5kIjogNjIzNiwgImJlZ2luIjogNjIyMSwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInVpLm1vam9tLkdlc3R1cmVEZXZpY2VUeXBl
LkRFVklDRV9UT1VDSFBBRCJ9fSwgeyJlbmQiOiA2MzI3LCAiYmVnaW4iOiA2MzA5LCAiZWRnZSI6
ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5h
bWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIs
ICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidWkubW9qb20uR2VzdHVyZURldmlj
ZVR5cGUuREVWSUNFX1RPVUNIU0NSRUVOIn19XSwgInR5cGUiOiAia3l0aGUwIn0=
*/