@charset "UTF-8";
/*------------------------------------*\
	RESET
\*------------------------------------*/
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body {
  margin: 0;
  min-height: 100vh;
}

body, h1, h2, h3, h4,
p, figure, blockquote, dl, dd {
  margin-block-start: 0;
  margin-block-end: 0;
}

h1, h2, h3, h4 {
  text-wrap: pretty;
}

ul,
ol {
  margin: unset;
  padding: unset;
  list-style: none;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

img,
picture {
  display: block;
  max-width: 100%;
  height: auto;
}

input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

button {
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
}

button:disabled, button[aria-disabled=true],
input:disabled,
input[aria-disabled=true],
select:disabled,
select[aria-disabled=true],
textarea:disabled,
textarea[aria-disabled=true] {
  cursor: not-allowed;
}

a[aria-disabled=true] {
  cursor: not-allowed;
}

fieldset {
  border: none;
  padding: 0;
}

textarea {
  max-width: 100%;
  box-sizing: border-box;
}

textarea:not([rows]) {
  min-height: 10em;
}

:where([popover]) {
  border: none;
  padding: 0;
}

:target {
  scroll-margin-block: 5ex;
}

/*------------------------------------*\
	MEDIA QUERY

	Wraps content in the appropriate media query.

	Usage:
	.block {
		@include media-query('768') { ... }
	}

	Available aliases:
	portrait, landscape
	768, 768-plus
	900, 900-plus
	1024, 1024-plus
	1440, 1440-plus
	1920, 1920-plus
\*------------------------------------*/
/*------------------------------------*\
	GRID
\*------------------------------------*/
.grid {
  display: grid;
  grid-column: 1/-1;
  row-gap: var(--grid-gap, 25px);
  column-gap: var(--grid-gap, 25px);
  width: 100%;
}

.grid--in-cell {
  grid-column: auto;
}

.grid--1 {
  grid-template-columns: 100%;
}

.grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media screen and (max-width: 767px) {
  .grid--2 {
    grid-template-columns: 100%;
  }
}
.grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media screen and (max-width: 767px) {
  .grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media screen and (max-width: 767px) {
  .grid--4 {
    grid-template-columns: 100%;
  }
}
.grid--5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media screen and (max-width: 767px) {
  .grid--5 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.grid--6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

@media screen and (max-width: 1024px) {
  .grid--6 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .grid--6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.grid--split {
  grid-template-columns: var(--grid-columns, 1fr 1fr);
}

.grid--2-1 {
  grid-template-columns: 2fr 1fr;
}

.grid--1-2 {
  grid-template-columns: 1fr 2fr;
}

@media screen and (max-width: 1024px) {
  .grid--split, .grid--2-1, .grid--1-2 {
    grid-template-columns: 100%;
  }
}
.grid--center {
  align-items: center;
}

.grid--align-start {
  align-items: start;
}

/*------------------------------------*\
	BREATHE — vertical-rhythm utility
\*------------------------------------*/
.breathe {
  display: block;
}

.breathe:not([class*=breathe--]) {
  margin-top: 24px;
  margin-bottom: 24px;
}

.breathe[style*="--breathe-top"] {
  margin-top: var(--breathe-top);
}

.breathe[style*="--breathe-bottom"] {
  margin-bottom: var(--breathe-bottom);
}

.breathe--top {
  margin-top: 24px !important;
}

.breathe--top-tiny {
  margin-top: 4px !important;
}

.breathe--top-mini {
  margin-top: 8px !important;
}

.breathe--top-small {
  margin-top: 12px !important;
}

.breathe--top-large {
  margin-top: 40px !important;
}

.breathe--top-huge {
  margin-top: 64px !important;
}

.breathe--top-auto {
  margin-top: auto !important;
}

.breathe--bottom {
  margin-bottom: 24px !important;
}

.breathe--bottom-tiny {
  margin-bottom: 4px !important;
}

.breathe--bottom-mini {
  margin-bottom: 8px !important;
}

.breathe--bottom-small {
  margin-bottom: 12px !important;
}

.breathe--bottom-large {
  margin-bottom: 40px !important;
}

.breathe--bottom-huge {
  margin-bottom: 64px !important;
}

.breathe--bottom-auto {
  margin-bottom: auto !important;
}

/*------------------------------------*\
	IMAGES
\*------------------------------------*/
/*------------------------------------*\
	TRANSITIONS
\*------------------------------------*/
.hover-zoom {
  display: block;
  overflow: hidden;
}

.hover-zoom img {
  transition: all 300ms ease;
  width: 100%;
  height: auto;
}

.hover-zoom:hover img {
  transform: scale(1.08);
}

.img--cover {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.img--contain {
  object-fit: contain;
  width: 100%;
  height: 100%;
}

/*------------------------------------*\
	VISIBILITY
\*------------------------------------*/
.is-hidden {
  display: none;
}

@media screen and (max-width: 767px) {
  .is-hidden--mobile {
    display: none !important;
  }
}
@media screen and (max-width: 1024px) {
  .is-hidden--tablet {
    display: none !important;
  }
}
@media screen and (min-width: 1025px) {
  .is-hidden--desktop {
    display: none !important;
  }
}
@media (orientation: portrait) {
  .is-hidden--portrait {
    display: none !important;
  }
}
@media (orientation: landscape) {
  .is-hidden--landscape {
    display: none !important;
  }
}
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
}

[dir=rtl] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* Lightbox */
.slick-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  height: 100%;
  background: black;
  -webkit-transition: opacity 0.5s ease;
  transition: opacity 0.5s ease;
}

.slick-lightbox .slick-loading .slick-list {
  background-color: transparent;
}

.slick-lightbox .slick-prev {
  left: 15px;
}

.slick-lightbox .slick-next {
  right: 15px;
}

.slick-lightbox-hide {
  opacity: 0;
}

.slick-lightbox-hide.slick-lightbox-ie {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
}

.slick-lightbox-hide-init {
  position: absolute;
  top: -9999px;
  opacity: 0;
}

.slick-lightbox-hide-init.slick-lightbox-ie {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
}

.slick-lightbox-inner {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.slick-lightbox-slick-item {
  text-align: center;
  overflow: hidden;
}

.slick-lightbox-slick-item:before {
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  margin-right: -0.25em;
}

.slick-caption-bottom .slick-lightbox-slick-item .slick-lightbox-slick-item .slick-lightbox-slick-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  text-align: center;
  width: 100%;
  margin-bottom: 20px;
}

.slick-caption-dynamic .slick-lightbox-slick-item .slick-lightbox-slick-item .slick-lightbox-slick-caption {
  display: block;
  text-align: center;
}

.slick-lightbox-slick-item-inner {
  display: inline-block;
  vertical-align: middle;
  max-width: 90%;
  max-height: 90%;
}

.slick-lightbox-slick-img {
  margin: 0 auto;
  display: block;
  max-width: 90%;
  max-height: 90%;
}

.slick-lightbox-slick-caption {
  margin: 10px 0 0;
  color: white;
}

.slick-lightbox-close {
  position: absolute;
  top: 15px;
  right: 15px;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0;
  font-size: 0;
  cursor: pointer;
  background: transparent;
  color: transparent;
  padding: 0;
  border: none;
}

.slick-lightbox-close:focus {
  outline: none;
}

.slick-lightbox-close:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: white;
  opacity: 0.85;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "×";
}

.wrapper {
  position: relative;
  width: 100%;
  max-width: var(--site-max-width, 1440px);
  margin: 0 auto;
  padding-left: var(--gutter-small, 20px);
  padding-right: var(--gutter-small, 20px);
}

@media print {
  .wrapper {
    max-width: unset;
    padding: 0;
  }
}
.section {
  padding-top: var(--section-padding, 96px);
  padding-bottom: var(--section-padding, 96px);
  min-height: var(--section-min-height, auto);
}

.section__inner {
  position: relative;
  width: 100%;
  max-width: var(--site-max-width, 1440px);
  margin: 0 auto;
  padding-left: var(--gutter-small, 20px);
  padding-right: var(--gutter-small, 20px);
}

.section--flush {
  --section-padding: 0;
}

.section--near-black {
  background-color: var(--near-black);
  color: var(--off-white);
}

.section--off-white {
  background-color: var(--off-white);
  color: var(--near-black);
}

.section--green {
  background-color: var(--green);
  color: var(--off-white);
}

.section--saffron {
  background-color: var(--saffron);
  color: var(--near-black);
}

.section--forest {
  background-color: var(--forest);
  color: var(--off-white);
}

.section--anchor {
  background-color: var(--anchor);
  color: var(--bright);
}

.section--bright {
  background-color: var(--bright);
  color: var(--anchor);
}

.section--primary {
  background-color: var(--primary);
  color: var(--bright);
}

/*------------------------------------*\
	HOVER

	Generates hover, focus, and active states.
	Pass $include-active: true to also include
	:active and .is-active states.
\*------------------------------------*/
/*------------------------------------*\
	BACKGROUND

	Shorthand for rgba background with opacity.

	Usage: @include background($dark-charcoal, 0.8);
\*------------------------------------*/
/*------------------------------------*\
	SITE HEAD
\*------------------------------------*/
.site-head {
  position: relative;
  width: 100%;
}

@media print {
  .site-head {
    display: none;
  }
}
.site-head__alerts__inner, .site-head__main__inner {
  position: relative;
  display: flex;
  height: 100%;
  width: 100%;
  max-width: var(--site-max-width, 1440px);
  margin: 0 auto;
  padding-left: var(--gutter-small, 20px);
  padding-right: var(--gutter-small, 20px);
}

.site-head__alerts {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 10px;
}

@media screen and (max-width: 767px) {
  .site-head__alerts {
    height: auto;
  }
}
.site-head__main {
  height: 75px;
}

.site-head__actions {
  --icon-size: 24px;
  --action-box: 44px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  column-gap: 5px;
  height: 100%;
  flex: 0 0 auto;
  margin-left: auto;
  margin-right: 0;
}

.site-head__actions > * {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  min-width: var(--action-box);
  min-height: var(--action-box);
}

.site-head__actions .icon {
  transition: all 300ms ease;
}

.site-head__actions__basket__count {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 18px;
  padding: 1px 5px;
  border-radius: var(--radius-pill, 999px);
  font-size: 11px;
  line-height: 1.4;
  text-align: center;
}

/*------------------------------------*\
	SITE NAV
\*------------------------------------*/
.site-nav {
  display: flex;
  align-items: center;
  column-gap: 50px;
  height: 100%;
  width: 100%;
}

@media screen and (max-width: 1024px) {
  .site-nav {
    column-gap: 0;
  }
}
.site-nav__logo {
  display: flex;
  align-items: center;
  height: 100%;
  width: 160px;
}

@media screen and (max-width: 1024px) {
  .site-nav__logo {
    width: 50px;
  }
  .site-nav__logo--desktop.site-nav__logo {
    display: none;
  }
}
@media screen and (min-width: 1025px) {
  .site-nav__logo--mobile.site-nav__logo {
    display: none;
  }
}
.site-nav__logo img {
  height: auto;
  max-height: 75px;
  width: auto;
}

.site-nav__logo-text {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

.site-nav__close {
  transition: all 180ms ease;
  position: absolute;
  top: 20px;
  right: 30px;
  background: transparent;
  border: none;
  cursor: pointer;
  opacity: 0;
}

.site-nav__close.is-active {
  opacity: 1;
}

.site-nav__close .icon {
  height: 30px;
  width: 30px;
}

.site-nav__menu {
  display: flex;
  column-gap: 25px;
}

@media screen and (max-width: 1024px) {
  .site-nav__menu.site-nav__menu {
    display: none;
  }
}
.site-nav__menu__item {
  transition: all 180ms ease;
  text-transform: uppercase;
  text-decoration: none;
  margin-top: 5px;
  padding: 0 0 2px;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
}

.site-nav__menu__item:hover {
  cursor: pointer;
}

.site-nav__burger {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-right: 25px;
  cursor: pointer;
  background: none;
  padding: 5px;
  border: none;
  -webkit-tap-highlight-color: transparent;
}

@media screen and (min-width: 1025px) {
  .site-nav__burger {
    display: none;
  }
}
.site-nav__burger .icon {
  height: 30px;
  width: 35px;
  margin-bottom: 5px;
}

/*------------------------------------*\
	DESKTOP NAV
\*------------------------------------*/
.desktop-nav {
  position: absolute;
  height: 100%;
  width: fit-content !important;
  min-width: 750px;
  max-width: calc(100vw - 100px);
  margin: 0;
  padding: 0 170px 0 0;
  background: transparent;
  border: none;
  overflow: visible;
}

.desktop-nav::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: -5;
  animation: desktop-nav-slide-in 0.35s ease-in-out;
}

@keyframes desktop-nav-slide-in {
  0% {
    right: 20%;
  }
  100% {
    right: 0;
  }
}
.desktop-nav::before {
  content: "";
  position: absolute;
  top: 0;
  right: 100%;
  width: 200%;
  height: 100%;
}

.desktop-nav__inner {
  display: grid;
  align-items: center;
  height: 75px;
  width: 100%;
  margin: 50px auto 0;
  padding: 0 20px;
}

.desktop-nav__menu {
  position: relative;
  height: calc(100% - 185px);
  width: fit-content;
  margin-left: 230px;
  padding-right: 25px;
}

.desktop-nav__menu__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  column-gap: 25px;
  height: 100%;
  width: fit-content;
  padding: 0;
  padding-bottom: 4px;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
}

.desktop-nav__menu__item a:not(.desktop-nav__archive),
.desktop-nav__menu__item span {
  transition: all 180ms ease;
  padding-bottom: 3px;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.desktop-nav__menu__item .icon {
  height: 18px;
  width: 18px;
  margin-top: -6px;
  padding-bottom: 3px;
}

.desktop-nav__menu__item:hover {
  cursor: pointer;
}

.desktop-nav__menu__panel {
  display: none;
  flex-direction: column;
  row-gap: 20px;
}

.desktop-nav__menu__panel.is-active {
  display: flex;
}

.desktop-nav__menu__drawer {
  transition: all 180ms ease;
  display: none;
  flex-direction: column;
  align-items: flex-start;
  position: absolute;
  left: 100%;
  height: 100%;
  width: fit-content;
  padding-left: 25px;
  border-left: 2px solid transparent;
  opacity: 0;
  /*
   * A LONG DRAWER SCROLLS INSTEAD OF RUNNING OFF THE BOTTOM.
   *
   * `height: 100%` resolves against a parent that is as tall as the
   * DOCUMENT — the nav measured 11,372px — so without a viewport
   * bound a drawer taller than the screen simply continued past it
   * with nothing to scroll: overflow-y was `visible` on the drawer,
   * the menu and the nav alike. At 1366x768 the 58-item Characters
   * list ended at 858px and its tail was unreachable.
   *
   * The cap is on max-height so short drawers are untouched, and it
   * matters more at narrow widths, where the single-column
   * arrangement above makes every long drawer tall by design.
   */
  max-height: 100vh;
  overflow-y: auto;
}

.desktop-nav__menu__drawer > .desktop-nav__archive {
  margin-bottom: 20px;
}

.desktop-nav__menu__drawer.is-active {
  display: flex;
  opacity: 1;
}

.desktop-nav__archive {
  transition: all 180ms ease;
  width: fit-content;
  padding-bottom: 2px;
  text-decoration: none;
  white-space: nowrap;
}

.desktop-nav__archive:hover {
  cursor: pointer;
}

.desktop-nav__drawer-items {
  --nav-drawer-rows: 10;
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(var(--nav-drawer-rows), min-content);
  column-gap: 25px;
  row-gap: 20px;
  align-items: start;
}

@media screen and (max-width: 1199px) {
  .desktop-nav__drawer-items {
    grid-auto-flow: row;
    grid-template-rows: none;
  }
}
.desktop-nav__drawer-item {
  transition: all 180ms ease;
  opacity: 0;
  white-space: nowrap;
}

.desktop-nav__drawer-item.is-active {
  opacity: 1;
}

/*------------------------------------*\
	MOBILE NAV
\*------------------------------------*/
.mobile-nav,
.mobile-nav__panel {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  animation: mobile-nav-slide-in 0.2s ease-in-out;
}

@keyframes mobile-nav-slide-in {
  0% {
    left: -150vw;
  }
  100% {
    left: 0;
  }
}
.mobile-nav__header {
  display: flex;
  align-items: center;
  height: 55px;
}

.mobile-nav__header__title {
  display: flex;
  align-items: center;
  column-gap: 5px;
  line-height: 100%;
}

.mobile-nav__header__title__icon {
  position: relative;
  height: 15px;
  width: 15px;
  top: 1px;
  margin-left: 0;
  opacity: 1;
  animation: mobile-nav-title-enter 0.2s ease-in-out;
}

@keyframes mobile-nav-title-enter {
  0% {
    margin-left: -15px;
    opacity: 0;
  }
  100% {
    margin-left: 0;
    opacity: 1;
  }
}
.mobile-nav__header__close {
  display: flex;
  align-items: center;
  height: 100%;
  margin-right: 0;
  margin-left: auto;
}

.mobile-nav__header__close button {
  width: 50px;
  margin-right: -5px;
  padding-left: 10px;
  background: transparent;
  border: none;
}

.mobile-nav__header__close .icon {
  height: 25px;
  width: 25px;
}

.mobile-nav__list__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  column-gap: 10px;
  height: 100%;
  padding: 0;
}

.mobile-nav__list__item:first-child {
  padding-top: 0;
  border-top: none;
}

.mobile-nav__list__item:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.mobile-nav__list__item a,
.mobile-nav__list__item button {
  line-height: 16px;
  flex-grow: 1;
  text-align: left;
}

.mobile-nav__list__item .icon {
  position: relative;
  height: 15px;
  width: 15px;
  top: 1px;
}

/*------------------------------------*\
	FOOTER
\*------------------------------------*/
.footer {
  min-height: 400px;
  width: 100%;
}

@media print {
  .footer {
    display: none;
  }
}
.footer__cta {
  height: 80px;
}

.footer__cta__inner {
  height: 100%;
  width: 100%;
  margin: 0 auto;
}

.footer__inner {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-areas: "footer-columns footer-columns footer-columns footer-promo footer-promo" "footer-legal footer-legal footer-legal footer-legal footer-legal";
  height: 100%;
  width: 100%;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .footer__inner {
    grid-template-columns: 1fr;
    grid-template-areas: "footer-promo" "footer-columns" "footer-legal";
    column-gap: 0;
  }
}
.footer__columns {
  grid-area: footer-columns;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

@media screen and (max-width: 767px) {
  .footer__columns {
    grid-template-columns: 100%;
  }
}
.footer__columns__list li + li {
  margin-top: 5px;
}

.footer__columns__cta {
  grid-column: 1/-1;
}

.footer__promo {
  grid-area: footer-promo;
  width: 100%;
}

.footer__promo__logo img {
  height: auto;
  max-width: 300px;
}

.footer__legal {
  grid-area: footer-legal;
  width: 100%;
  text-align: center;
}

.cart-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(28rem, 100vw);
  max-width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
  border: none;
  overflow: visible;
  background: var(--cart-drawer-bg, #fff);
  color: var(--cart-drawer-fg, inherit);
  translate: 100% 0;
  opacity: 0;
  transition: translate 250ms ease-out, opacity 200ms ease-out, overlay 250ms ease-out allow-discrete, display 250ms ease-out allow-discrete;
}

.cart-drawer:popover-open {
  translate: 0 0;
  opacity: 1;
}

@starting-style {
  .cart-drawer:popover-open {
    translate: 100% 0;
    opacity: 0;
  }
}
.cart-drawer::backdrop {
  background-color: transparent;
  transition: background-color 250ms ease-out;
}

.cart-drawer:popover-open::backdrop {
  background-color: rgba(0, 0, 0, 0.4);
}

@starting-style {
  .cart-drawer:popover-open::backdrop {
    background-color: transparent;
  }
}
.cart-drawer__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.cart-drawer__header {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 20px 25px;
  border-bottom: 1px solid var(--cart-drawer-divider, rgba(0, 0, 0, 0.1));
  flex-shrink: 0;
}

.cart-drawer__title {
  margin: 0;
  flex: 1;
}

.cart-drawer__full-link {
  font-size: 14px;
  text-decoration: underline;
}

.cart-drawer__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: 24px;
  line-height: 1;
  background: transparent;
  border: none;
  cursor: pointer;
}

.cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 25px;
  min-height: 0;
}

.cart-drawer__items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.cart-drawer__item {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 15px;
  align-items: start;
}

.cart-drawer__item__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.cart-drawer__item__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.cart-drawer__item__title {
  margin: 0;
  font-size: 15px;
  line-height: 1.3;
}

.cart-drawer__item__title a {
  color: inherit;
  text-decoration: none;
}

.cart-drawer__item__variant {
  margin: 0;
  font-size: 13px;
  opacity: 0.7;
}

.cart-drawer__item__qty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}

.cart-drawer__item__qty__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: transparent;
  border: 1px solid var(--cart-drawer-divider, rgba(0, 0, 0, 0.15));
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}

.cart-drawer__item__qty__button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.cart-drawer__item__qty__value {
  min-width: 22px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.cart-drawer__item__price {
  font-weight: 600;
  margin-top: 4px;
}

.cart-drawer__item__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: transparent;
  border: none;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  align-self: start;
}

.cart-drawer__empty {
  padding: 60px 25px 40px;
  text-align: center;
}

.cart-drawer__empty__title {
  margin: 0 0 10px;
}

.cart-drawer__empty__lead {
  margin: 0 0 25px;
  opacity: 0.7;
}

.cart-drawer__empty__cta {
  display: inline-block;
}

.cart-drawer__recs:empty {
  display: none;
}

.cart-drawer__recs {
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid var(--cart-drawer-divider, rgba(0, 0, 0, 0.1));
}

.cart-drawer__totals {
  padding: 20px 25px;
  border-top: 1px solid var(--cart-drawer-divider, rgba(0, 0, 0, 0.1));
  flex-shrink: 0;
}

.cart-drawer__totals__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 15px;
}

.cart-drawer__totals__row--subtotal {
  font-size: 18px;
  font-weight: 600;
}

.cart-drawer__totals__label {
  flex: 1;
}

.cart-drawer__totals__note {
  margin: 8px 0 0;
  font-size: 13px;
  opacity: 0.7;
}

/*----------------------------------------------
	TITLE
	Cross-brand heading primitive. Structural only — the size tiers are
	STUBS at the global level; actual font-size + line-height + tracking
	live in each brand's theme SCSS
	(framework-v2/theme/<brand>/scss/components/_title.scss). Global
	owns only what's truly universal: a full-width layout hook + the
	tier selectors as reachable stubs so `@extend` and audit tooling
	can discover them.

	TWO NAMING SCHEMES, deliberately.

	The original ladder is ordinal — __primary through __quaternary —
	and those names are load-bearing in shipped markup across brands, so
	they cannot be renumbered.

	The ordinal sequence bottoms out at __quaternary, which brands map to
	their BASE size. That left the two scale steps ABOVE base with no tier
	at all: a component sized between base and the tertiary step had
	nowhere to land and was forced to hardcode a literal. That is exactly
	how ARTSABERS ended up with 517 literal font sizes against 111
	token-based ones.

	Inserting the missing steps into the ordinal run would shift what
	every existing ordinal means, so the new tiers are named for the token
	they carry instead — __subheading and __large. Self-describing, and
	non-breaking. Prefer the token-named form for anything new; the
	ordinals stay for what already ships.
----------------------------------------------*/
.title {
  width: 100%;
}

.form__row {
  margin-bottom: 20px;
}

.form__row:last-child {
  margin-bottom: 0;
}

.form__row--full {
  grid-column: 1/-1;
}

.form__grid {
  display: grid;
  gap: 20px;
  margin-bottom: 20px;
}

.form__label {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
}

.form__input, .form__select, .form__textarea {
  width: 100%;
  outline: none;
}

.form__textarea {
  resize: vertical;
}

.form__select {
  appearance: none;
}

.form__help {
  margin-top: 6px;
}

.form__input-wrap {
  position: relative;
}

.form__input-adorn {
  position: absolute;
  top: 50%;
  right: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  transform: translateY(-50%);
}

.form__input-toggle {
  position: absolute;
  top: 50%;
  right: 10px;
  background: transparent;
  border: none;
  transform: translateY(-50%);
  cursor: pointer;
}

.form__country {
  position: relative;
}

.form__country-flag {
  position: absolute;
  top: 50%;
  left: 14px;
  pointer-events: none;
  transform: translateY(-50%);
}

.form__actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
}

.modal {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 9999;
}

.modal.is-active {
  display: block;
}

.modal__background {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 1;
}

.modal__background--clear {
  background-color: transparent;
}

.modal__wrapper {
  position: absolute;
  left: 0;
  right: 0;
  margin-block-start: 40px;
  margin-inline: auto;
  width: 100%;
  max-width: 900px;
  z-index: 2;
}

@media screen and (max-width: 767px) {
  .modal__wrapper {
    margin-block-start: 48px;
    padding: 0 20px;
  }
}
.modal__close {
  position: absolute;
  top: -30px;
  right: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 3;
}

.modal__close .icon {
  fill: #fff;
}

@media screen and (max-width: 767px) {
  .modal__close {
    right: 20px;
  }
}
.search-form {
  margin-left: auto;
  margin-right: auto;
}

.search-form__wrapper {
  display: flex;
  align-items: stretch;
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
  background-color: #fff;
}

.search-form__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0 18px;
  height: 56px;
  border: 0;
  font-family: inherit;
  font-size: 16px;
  color: #1a1a1a;
  background-color: transparent;
}

.search-form__input::placeholder {
  color: #6b6b6b;
}

.search-form__input:focus {
  outline: 2px solid #1a1a1a;
  outline-offset: -2px;
}

.search-form__submit {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: 0;
  cursor: pointer;
  background-color: transparent;
}

.search-form__submit .icon {
  width: 20px;
  height: 20px;
  fill: #1a1a1a;
}

.search-form__submit:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: -2px;
}

/*----------------------------------------------
	ICON
----------------------------------------------*/
.icon {
  display: block;
  position: relative;
  height: var(--icon-size, 20px);
  width: var(--icon-size, 20px);
  max-width: 100%;
}

.icon--medium {
  height: var(--icon-size-md, 30px);
  width: var(--icon-size-md, 30px);
}

.icon--large {
  height: var(--icon-size-lg, 50px);
  width: var(--icon-size-lg, 50px);
}

.icon--extra-large {
  height: var(--icon-size-xl, 80px);
  width: var(--icon-size-xl, 80px);
}

/*----------------------------------------------
	WOOCOMMERCE COMPOSITE PRODUCTS
----------------------------------------------*/
.composite_form .composite_price p.price,
.single-product .composite_form .composite_price p.price {
  margin: 0 !important;
}

/*----------------------------------------------
	WOOCOMMERCE COUPON FORM
----------------------------------------------*/
.woocommerce-form-coupon .form__group--inline {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 100%;
  margin-bottom: 10px;
}

.woocommerce-form-coupon .form__group--inline .form__input,
.woocommerce-form-coupon .form__group--inline .form__submit {
  width: fit-content;
}

@media screen and (max-width: 767px) {
  .woocommerce-form-coupon .form__group--inline {
    margin-bottom: 0;
  }
  .woocommerce-form-coupon .form__group--inline .form__input {
    width: 100%;
  }
  .woocommerce-form-coupon .form__group--inline .form__submit {
    margin-top: 10px;
  }
}
.woocommerce-form-coupon .form__group--inline .coupon-error-notice {
  display: block;
  width: 100%;
  margin-top: 10px;
}

/*----------------------------------------------
	WOOCOMMERCE NOTICES
----------------------------------------------*/
.woocommerce-notices-wrapper {
  grid-column: 1/-1;
  border: none;
}

.woocommerce-notices-wrapper:empty {
  display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  display: flex;
  grid-column: 1/-1;
  align-items: center;
  position: relative;
  max-width: var(--site-max-width, 1440px);
}

.woocommerce-message li + li,
.woocommerce-info li + li,
.woocommerce-error li + li {
  width: 100%;
}

.woocommerce-message:active, .woocommerce-message:focus,
.woocommerce-info:active,
.woocommerce-info:focus,
.woocommerce-error:active,
.woocommerce-error:focus {
  outline: none;
}

@media screen and (max-width: 767px) {
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error {
    flex-direction: column;
    align-items: center;
  }
  .woocommerce-message > *,
  .woocommerce-info > *,
  .woocommerce-error > * {
    margin: 0 !important;
  }
  .woocommerce-message li,
  .woocommerce-info li,
  .woocommerce-error li {
    flex-direction: column;
  }
  .woocommerce-message .button,
  .woocommerce-info .button,
  .woocommerce-error .button {
    margin: 10px auto 0 0 !important;
  }
}
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  white-space: nowrap;
  clear: both;
}

/*----------------------------------------------
	WOOCOMMERCE PRODUCT ATTRIBUTES
----------------------------------------------*/
.shop_attributes {
  width: 100%;
}

.shop_attributes .attribute_name_values {
  width: 100%;
}

@media screen and (max-width: 767px) {
  .shop_attributes .attribute_name_values {
    display: block;
  }
  .shop_attributes .attribute_name_values tbody,
  .shop_attributes .attribute_name_values tr {
    display: block;
  }
}
.shop_attributes .attribute_name {
  white-space: nowrap;
}

/*----------------------------------------------
	WPFORMS
----------------------------------------------*/
.wpforms-container .wpforms-list-2-columns .wpforms-icon-choices {
  grid-template-columns: repeat(2, 1fr);
}

.wpforms-container .wpforms-list-3-columns .wpforms-icon-choices {
  grid-template-columns: repeat(3, 1fr);
}

.wpforms-container .wpforms-list-4-columns .wpforms-icon-choices {
  grid-template-columns: repeat(4, 1fr);
}

.wpforms-container .wpforms-icon-choices {
  display: grid;
}

.wpforms-container .wpforms-icon-choices-item {
  padding: 25% 0;
  text-align: center;
}

.wpforms-container .wpforms-icon-choices-item label {
  display: flex;
  flex-direction: column;
}

.wpforms-container .wpforms-icon-choices-item label input {
  display: none;
}

.wpforms-container .wpforms-icon-choices-icon svg {
  height: auto;
  max-width: 90%;
  width: 200px;
}

.wpforms-container .wpforms-hidden {
  display: none !important;
}

/*----------------------------------------------
	YAY PRICING
----------------------------------------------*/
.yaydp-original-prices {
  display: block;
}

.yaydp-original-prices + .yaydp-calculated-prices {
  display: block;
  margin-left: 15px;
}

@media screen and (max-width: 767px) {
  .yaydp-original-prices + .yaydp-calculated-prices {
    margin-top: 10px;
    margin-left: 0;
  }
}
.yaydp-discounted-price {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

@media screen and (max-width: 767px) {
  .yaydp-discounted-price {
    flex-direction: column;
    justify-content: center;
  }
}
.yaydp-calculated-prices-suffix {
  display: none;
}

/*----------------------------------------------
	WP BLOCK: GROUP — layout-class repair
----------------------------------------------*/
/* A GROUP CARRYING A LAYOUT CLASS NEEDS ITS RESTORED WRAPPER TAKEN OUT OF THE
   LAYOUT — and its children taken out of core's flow spacing. The two look
   unrelated, one is layout and one is spacing, and shipping only the first gives
   a page that lays out correctly and measures wrong. Keep them together.

   WordPress restores `.wp-block-group__inner-container` on any site with no
   `theme.json` — which is every theme in this line, BY POLICY — and it does so at
   RENDER time, so the saved markup is clean and the rendered tree is not. A
   `.grid` class on the group then styles a container holding exactly one child,
   and the tiles inside stack instead of forming columns. It reads as a grid that
   "didn't take": the gap is right, the columns are none, and nothing in either
   file looks wrong.

   THIS IS GLOBAL BECAUSE THE FAULT IS GLOBAL. It is a consequence of the
   no-`theme.json` policy meeting the global `.grid` primitive — neither of which
   is brand vocabulary. ARTSABERS and ParagonGaming each derived this pair
   independently, in their own `blocks/_wp-block-group.scss`, which is the signal
   that it belonged here rather than in a brand silo. Promoted 2026-09-17 on
   ParagonGaming's request; the duplicates were removed from both brands in the
   same commit.

   Additive for every other brand: a group that does not carry `.grid` keeps its
   container untouched, so a brand with no grid groups sees no change at all.

   The EDITOR needs the same repair and cannot get it from here — the canvas does
   not load the compiled brand or global stylesheet. It is stated separately in
   `global/scss/editor-canvas.scss`, which also has to undo an auto inline margin
   core only applies inside the editor. Two statements of one idea, deliberately,
   because the two surfaces load different sheets. */
.wp-block-group.grid > .wp-block-group__inner-container {
  display: contents;
  /* Dissolving the wrapper does not take its children out of core's FLOW
     layout: the container is still `.is-layout-flow`, so core's
     `:root :where(.is-layout-flow) > *` keeps handing every child after the
     first a block-gap top margin. As grid items they then sit a gap lower than
     their first sibling, and a grid row is as tall as its tallest item, so
     every row reads as cards of unequal height with the first one taller.
     Measured on ParagonGaming's homepage: five grids off by exactly 24px, the
     first tile 324 and its siblings 300.

     Both block axes. In a grid the GAP owns the spacing between items, and two
     systems spacing the same children is one too many. Core writes its rule
     inside `:where()`, so it carries zero specificity and a single class is
     enough to take it back.

     Longhands rather than a `margin` shorthand: the inline axis belongs to
     `.wrapper` and to each brand's own group rules, and a shorthand here would
     silently write it. That exact collateral un-centred every composed band on
     ARTSABERS once already. */
}

.wp-block-group.grid > .wp-block-group__inner-container > * {
  margin-block-start: 0;
  margin-block-end: 0;
}

/*----------------------------------------------
	WP BLOCK: MEDIA TEXT
----------------------------------------------*/
/* Structural overrides for wp-block-media-text are set per theme */
body {
  margin: 0;
  overflow-x: hidden;
}

a {
  text-decoration: none;
  color: inherit;
}

.center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.centered {
  text-align: center;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvX3Jlc2V0LnNjc3MiLCJmdW5jdGlvbnMvX21lZGlhLXF1ZXJ5LnNjc3MiLCJjb3JlL19ncmlkLnNjc3MiLCJjb3JlL19icmVhdGhlLnNjc3MiLCJjb3JlL19pbWFnZXMuc2NzcyIsImZ1bmN0aW9ucy9fdHJhbnNpdGlvbnMuc2NzcyIsImNvcmUvX3Zpc2liaWxpdHkuc2NzcyIsInZlbmRvci9fc2xpY2suc2NzcyIsImxheW91dHMvX3dyYXBwZXIuc2NzcyIsImxheW91dHMvX3NlY3Rpb24uc2NzcyIsImZ1bmN0aW9ucy9faG92ZXIuc2NzcyIsImZ1bmN0aW9ucy9fYmFja2dyb3VuZC5zY3NzIiwibGF5b3V0cy9fc2l0ZS1oZWFkLnNjc3MiLCJsYXlvdXRzL19zaXRlLW5hdi5zY3NzIiwibGF5b3V0cy9fbmF2LWRlc2t0b3Auc2NzcyIsImxheW91dHMvX25hdi1tb2JpbGUuc2NzcyIsImxheW91dHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fY2FydC1kcmF3ZXIuc2NzcyIsImNvbXBvbmVudHMvX3RpdGxlLnNjc3MiLCJjb21wb25lbnRzL19mb3JtLnNjc3MiLCJjb21wb25lbnRzL19tb2RhbC5zY3NzIiwiY29tcG9uZW50cy9faWNvbi5zY3NzIiwidGhpcmQtcGFydHkvX3dvb2NvbW1lcmNlLWNvbXBvc2l0ZS1wcm9kdWN0cy5zY3NzIiwidGhpcmQtcGFydHkvX3dvb2NvbW1lcmNlLWNvdXBvbi1mb3JtLnNjc3MiLCJ0aGlyZC1wYXJ0eS9fd29vY29tbWVyY2Utbm90aWNlcy5zY3NzIiwidGhpcmQtcGFydHkvX3dvb2NvbW1lcmNlLXByb2R1Y3QtYXR0cmlidXRlcy5zY3NzIiwidGhpcmQtcGFydHkvX3dwZm9ybXMuc2NzcyIsInRoaXJkLXBhcnR5L195YXktcHJpY2luZy5zY3NzIiwiYmxvY2tzL193cC1ibG9jay1ncm91cC5zY3NzIiwiYmxvY2tzL193cC1ibG9jay1tZWRpYS10ZXh0LnNjc3MiLCJnbG9iYWwuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBSUM7OztBQUlEO0VBRUM7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7OztBQUlEO0FBQUE7RUFHQztFQUNBOzs7QUFJRDtFQUVDOzs7QUFJRDtBQUFBO0VBR0M7RUFDQTtFQUNBOzs7QUFJRDtFQUVDOzs7QUFXRDtBQUFBO0VBR0M7RUFDQTtFQUNBOzs7QUFJRDtBQUFBO0VBR0M7RUFDQTs7O0FBSUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTs7O0FBc0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBR0M7OztBQU1GO0VBRUM7OztBQUlEO0VBRUM7RUFDQTs7O0FBSUQ7RUFFQztFQUNBOzs7QUFJRDtFQUVDOzs7QUFjRDtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7OztBQ2pLRDtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNFQTtBQUFBO0FBQUE7QUFJQTtFQWtCQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHQTtFQUVDOzs7QUFJRDtFQUVDOzs7QUFJRDtFQUVDOzs7QUR3QkM7RUMxQkY7SUFNRTs7O0FBTUY7RUFFQzs7O0FEWUM7RUNkRjtJQU1FOzs7QUFNRjtFQUVDOzs7QURBQztFQ0ZGO0lBTUU7OztBQU1GO0VBRUM7OztBRFpDO0VDVUY7SUFNRTs7O0FBTUY7RUFFQzs7O0FEeEJDO0VDc0JGO0lBTUU7OztBRDVCQTtFQ3NCRjtJQVlFOzs7QUFhRjtFQUVDOzs7QUFjRDtFQUVDOzs7QUFPRDtFQUVDOzs7QUQxRUM7RUM4RUY7SUFNRTs7O0FBU0Y7RUFFQzs7O0FBUUQ7RUFFQzs7O0FDOUtGO0FBQUE7QUFBQTtBQWdDQTtFQUVDOzs7QUFJQTtFQUVDO0VBQ0E7OztBQVFEO0VBRUM7OztBQUlEO0VBRUM7OztBQUlEO0VBQWU7OztBQUNmO0VBQWU7OztBQUNmO0VBQWU7OztBQUNmO0VBQWU7OztBQUNmO0VBQWU7OztBQUNmO0VBQWU7OztBQUNmO0VBQWU7OztBQUVmO0VBQWtCOzs7QUFDbEI7RUFBa0I7OztBQUNsQjtFQUFrQjs7O0FBQ2xCO0VBQWtCOzs7QUFDbEI7RUFBa0I7OztBQUNsQjtFQUFrQjs7O0FBQ2xCO0VBQWtCOzs7QUMzRW5CO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBRE1BO0VBRUM7RUFDQTs7O0FBRUE7RUNMQTtFRFNDO0VBQ0E7OztBQU1BO0VBRUM7OztBQVVGO0VBRUM7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7RUFDQTs7O0FFNUNGO0FBQUE7QUFBQTtBQUlBO0VBRUM7OztBTDZERTtFSzNERjtJQUlFOzs7QUx1REE7RUtqREY7SUFJRTs7O0FMNkNBO0VLdkNGO0lBSUU7OztBQVFEO0VBRkQ7SUFJRTs7O0FBUUQ7RUFGRDtJQUlFOzs7QUN0REg7QUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtFQUNDOzs7QUFHRDtFQUNDO0VBQ0E7OztBQUlGO0FBQUE7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUE7RUFFQztFQUNBOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUFJRjtFQUNDO0VBQ0E7RUFDQTs7O0FBRUE7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUlGO0VBQ0M7OztBQUlEO0FBQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQzlORDtFQUVDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUE7RUFURDtJQVdFO0lBQ0E7OztBQ21DRjtFQUVDO0VBQ0E7RUFDQTs7O0FBR0E7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQXdERDtFQUVDOzs7QUFPRDtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTs7O0FBSUQ7RUFFQztFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTs7O0FBT0Q7RUFFQztFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTs7O0FDaE1GO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUNFQTtBQUFBO0FBQUE7QUFJQTtFQUVDO0VBQ0E7OztBQUVBO0VBTEQ7SUFPRTs7O0FBT0E7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUVDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FYMkJDO0VXbENGO0lBV0U7OztBQU1GO0VBRUM7OztBQUlEO0VBYUM7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQVFBO0VBQ0E7RUFlQTtFQUNBO0VBQ0E7OztBQVVBO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRDtFUHJIRDs7O0FPa0lFO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNoSko7QUFBQTtBQUFBO0FBSUE7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QVp5REU7RVkvREg7SUFVRTs7O0FBSUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTs7O0FaNENDO0VZakRGO0lBd0JFOztFQUVBO0lBRUM7OztBWnFCRDtFWWZEO0lBSUU7OztBQU1GO0VBRUM7RUFDQTtFQUNBOzs7QUFhRDtFQUVDO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFUjFFQTtFUThFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUE7RUFFQzs7O0FBSUQ7RUFFQztFQUNBOzs7QUFNRjtFQUVDO0VBQ0E7OztBWnJEQztFWXNGRDtJQUlFOzs7QUFNRjtFUm5KRDtFUXVKRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFjQTtFQUVDOzs7QUFRSDtFQUVDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FaN0lDO0VZbUlGO0lBY0U7OztBQUlEO0VBRUM7RUFDQTtFQUNBOzs7QUM1Tkg7QUFBQTtBQUFBO0FBSUE7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUE7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0lBRUM7O0VBSUQ7SUFFQzs7O0FBUUg7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVBO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFBO0FBQUE7RVQvRUY7RVNvRkc7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRDtFQUVDOzs7QUFNRjtFQUVDO0VBQ0E7RUFPQTs7O0FBRUE7RUFFQzs7O0FBU0Y7RVRsSUQ7RVNzSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBY0E7RUFDQTs7O0FBTUE7RUFFQzs7O0FBSUQ7RUFFQztFQUNBOzs7QUF1Qkg7RVR0TUE7RVMwTUM7RUFDQTtFQUNBO0VBQ0E7OztBQUVBO0VBRUM7OztBQThDRjtFQUVDO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QWJyTkM7RWE0TUY7SUFhRTtJQUNBOzs7QUFjRjtFVDNSQTtFUytSQztFQUNBOzs7QUFFQTtFQUVDOzs7QUN0VEg7QUFBQTtBQUFBO0FBV0E7QUFBQTtFQUdDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUE7RUFFQztJQUVDOztFQUlEO0lBRUM7OztBQVVGO0VBRUM7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0lBRUM7SUFDQTs7RUFJRDtJQUVDO0lBQ0E7OztBQVVKO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUE7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7OztBQVVGO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTs7O0FBSUQ7QUFBQTtFQUdDO0VBQ0E7RUFDQTs7O0FBSUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTs7O0FDeEpKO0FBQUE7QUFBQTtBQUlBO0VBRUM7RUFDQTs7O0FBRUE7RUFMRDtJQU9FOzs7QUFJRDtFQUVDOzs7QUFFQTtFQUVDO0VBQ0E7RUFDQTs7O0FBTUY7RUFFQztFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7OztBZjZCQztFZXRDRjtJQWFFO0lBQ0E7SUFJQTs7O0FBTUY7RUFFQztFQUNBO0VBQ0E7OztBZlVDO0VlZEY7SUFRRTs7O0FBTUE7RUFFQzs7O0FBTUY7RUFFQzs7O0FBTUY7RUFFQztFQUNBOzs7QUFJQztFQUVDO0VBQ0E7OztBQVFIO0VBRUM7RUFDQTtFQUNBOzs7QUM5RkY7RUFHQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFDQTtFQUNBOzs7QUFNQTtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7SUFFQztJQUNBOzs7QUFRRjtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7OztBQUlEO0VBRUM7SUFFQzs7O0FBTUY7RUFFQztFQUNBO0VBQ0E7OztBQU1EO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTs7O0FBSUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUQ7RUFFQztFQUNBO0VBQ0E7RUFJQTs7O0FBTUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTtFQUNBO0VBQ0E7OztBQUlDO0VBRUM7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBRUM7RUFDQTtFQUNBO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0VBQ0E7OztBQU1GO0VBRUM7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVBO0VBRUM7RUFDQTs7O0FBTUY7RUFFQztFQUNBO0VBQ0E7OztBQU1GO0VBRUM7RUFDQTs7O0FBSUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRRjtFQUVDO0VBQ0E7OztBQUVBO0VBRUM7OztBQUlEO0VBRUM7RUFDQTs7O0FBSUQ7RUFFQzs7O0FBVUQ7RUFFQzs7O0FBSkY7RUFRQztFQUNBO0VBQ0E7OztBQU1EO0VBRUM7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtFQUVDO0VBQ0E7OztBQU1GO0VBRUM7OztBQUlEO0VBRUM7RUFDQTtFQUNBOzs7QUNoV0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBOEJBO0VBRUM7OztBQ2FBO0VBRUM7OztBQUVBO0VBRUM7OztBQU1EO0VBRUM7OztBQU1GO0VBRUM7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRDtFQUlDO0VBQ0E7OztBQUlEO0VBRUM7OztBQUlEO0VBRUM7OztBQUlEO0VBRUM7OztBQUlEO0VBRUM7OztBQUlEO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlEO0VBRUM7OztBQUlEO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUQ7RUFFQztFQUNBO0VBQ0E7RUFDQTs7O0FDNUdGO0VBT0M7RUFJQTtFQUNBO0VBQ0E7RUFFQTtFQUtBO0VBRUE7OztBQUVBO0VBRUM7OztBQUlEO0VBTUM7RUFDQTtFQUtBO0VBRUE7OztBQUVBO0VBRUM7OztBQU1GO0VBdUJDO0VBQ0E7RUFDQTtFQVlBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7OztBbkJsRkM7RW1CdUNGO0lBeURFO0lBQ0E7OztBQU1GO0VBRUM7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTs7O0FBU0E7RUFFQzs7O0FuQjdIQTtFbUJ1R0Y7SUErQkU7OztBQTJCSDtFQUVDO0VBQ0E7OztBQUVBO0VBRUM7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUE7RUFFQzs7O0FBSUQ7RUFFQztFQUNBOzs7QUFNRjtFQUVDO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTs7O0FBRUE7RUFFQztFQUNBO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTs7O0FDaFRIO0FBQUE7QUFBQTtBQUlBO0VBRUM7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUE7RUFFQztFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7OztBQUlEO0VBRUM7RUFDQTs7O0FDN0JGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFHQzs7O0FDTEQ7QUFBQTtBQUFBO0FBTUM7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFQTtBQUFBO0VBR0M7OztBdEJrREE7RXNCN0RGO0lBaUJFOztFQUVBO0lBRUM7O0VBSUQ7SUFFQzs7O0FBTUY7RUFFQztFQUNBO0VBQ0E7OztBQzNDSDtBQUFBO0FBQUE7QUFJQTtFQUVDO0VBQ0E7OztBQU9BO0VBRUM7OztBQU1GO0FBQUE7QUFBQTtFQUlDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVBO0FBQUE7QUFBQTtFQUVDOzs7QUFJRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBR0M7OztBdkIwQkM7RXVCN0NIO0FBQUE7QUFBQTtJQXlCRTtJQUNBOztFQUVBO0FBQUE7QUFBQTtJQUVDOztFQUlEO0FBQUE7QUFBQTtJQUVDOztFQUlEO0FBQUE7QUFBQTtJQUVDOzs7QUFNRjtBQUFBO0FBQUE7RUFFQztFQUNBOzs7QUN6RUY7QUFBQTtBQUFBO0FBSUE7RUFFQzs7O0FBRUE7RUFFQzs7O0F4QnlEQztFd0IzREY7SUFNRTs7RUFFQTtBQUFBO0lBR0M7OztBQVFIO0VBRUM7OztBQy9CRjtBQUFBO0FBQUE7QUFNQztFQUVDOzs7QUFJRDtFQUVDOzs7QUFJRDtFQUVDOzs7QUFJRDtFQUVDOzs7QUFFQTtFQUVDO0VBQ0E7OztBQUVBO0VBRUM7RUFDQTs7O0FBRUE7RUFFQzs7O0FBVUY7RUFFQztFQUNBO0VBQ0E7OztBQVFIO0VBRUM7OztBQzlERjtBQUFBO0FBQUE7QUFJQTtFQUVDOzs7QUFFQTtFQUVDO0VBQ0E7OztBMUJ3REM7RTBCM0RGO0lBT0U7SUFDQTs7O0FBUUg7RUFFQztFQUNBO0VBQ0E7OztBMUJ1Q0U7RTBCM0NIO0lBUUU7SUFDQTs7O0FBTUY7RUFFQzs7O0FDM0NEO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQThCQTtFQUVDO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FBa0JBO0VBRUM7RUFDQTs7O0FDM0RGO0FBQUE7QUFBQTtBQUlBO0FDNENBO0VBRUM7RUFDQTs7O0FBUUQ7RUFFQztFQUNBOzs7QUFJRDtFQUVDO0VBQ0E7RUFDQTs7O0FBSUQ7RUFFQyIsImZpbGUiOiJnbG9iYWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0UkVTRVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG5cblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxufVxuXG5odG1sIHtcblxuXHQtbW96LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG5cdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcblx0dGV4dC1zaXplLWFkanVzdDogbm9uZTtcblxufVxuXG5ib2R5IHtcblxuXHRtYXJnaW46IDA7XG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xuXG59XG5cbmJvZHksIGgxLCBoMiwgaDMsIGg0LFxucCwgZmlndXJlLCBibG9ja3F1b3RlLCBkbCwgZGQge1xuXG5cdG1hcmdpbi1ibG9jay1zdGFydDogMDtcblx0bWFyZ2luLWJsb2NrLWVuZDogMDtcblxufVxuXG5oMSwgaDIsIGgzLCBoNCB7XG5cblx0dGV4dC13cmFwOiBwcmV0dHk7XG5cbn1cblxudWwsXG5vbCB7XG5cblx0bWFyZ2luOiB1bnNldDtcblx0cGFkZGluZzogdW5zZXQ7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cbn1cblxuYTpub3QoW2NsYXNzXSkge1xuXG5cdHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bztcblxufVxuXG4vLyBgaGVpZ2h0OiBhdXRvYCBCRVNJREUgYG1heC13aWR0aGAsIGFsd2F5cy4gV29yZFByZXNzIGFuZCBXb29Db21tZXJjZSBwcmludCBpbWFnZXNcbi8vIHdpdGggd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIChhIHByb2R1Y3QgdGh1bWJuYWlsIGlzIGhlaWdodD1cIjMwMFwiKSwgYW5kXG4vLyBtYXgtd2lkdGggYWxvbmUgbmFycm93cyB0aGUgYm94IHdoaWxlIHRoZSBhdHRyaWJ1dGUga2VlcHMgaXRzIGhlaWdodCDigJQgc28gb24gYVxuLy8gcGhvbmUgZXZlcnkgbmFycm93ZWQgaW1hZ2UgYmVjYW1lIGEgdGFsbCBmcmFtZSB3aXRoIHRoZSBwaWN0dXJlIGZsb2F0aW5nIGluIGl0LlxuLy8gRm91ciBQYXJhZ29uIGNvbXBvbmVudHMgKGJhc2tldCwgY2hlY2tvdXQgYW5kIGNvbmZpcm1hdGlvbiBsaW5lcywgdGhlIHByb2R1Y3Rcbi8vIGdhbGxlcnkpIGhhZCBlYWNoIHBhdGNoZWQgdGhpcyBsb2NhbGx5IGJlZm9yZSBpdCB3YXMgZml4ZWQgaGVyZSAoMjAyNi0wOS0yNykuIFplcm8gc3BlY2lmaWNpdHk6IGFueSBjb21wb25lbnQgdGhhdCBzaXplcyBhbiBpbWFnZSB0byBmaWxsIGl0c1xuLy8gZnJhbWUgKGhlaWdodDogMTAwJSwgb2JqZWN0LWZpdDogY292ZXIpIHN0aWxsIHdpbnMuXG5pbWcsXG5waWN0dXJlIHtcblxuXHRkaXNwbGF5OiBibG9jaztcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG5cbn1cblxuaW5wdXQsIGJ1dHRvbixcbnRleHRhcmVhLCBzZWxlY3Qge1xuXG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cbn1cblxuYnV0dG9uIHtcblxuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IG5vbmU7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblxufVxuXG4vLyBEaXNhYmxlZCBjb250cm9scyBtdXN0IG5ldmVyIHByZXNlbnQgYXMgY2xpY2thYmxlLiBUaGlzIGlzIHRoZSB1bml2ZXJzYWwgaGFsZlxuLy8gb2YgYSBkaXNhYmxlZCBzdGF0ZSDigJQgdHJ1ZSBvZiBhbnkgY29udHJvbCBpbiBhbnkgZGVzaWduLCBhbmQgdGhlIG9uZSB0aGluZyBub1xuLy8gYnJhbmQgc2hvdWxkIGV2ZXIgb3ZlcnJpZGUgYXdheS4gSE9XIGEgZGlzYWJsZWQgY29udHJvbCBsb29rcyAoZGltbWluZywgbXV0ZWRcbi8vIGFjY2VudCwgZHJvcHBlZCBnbG93KSBpcyBicmFuZCBpZGVudGl0eSBhbmQgYmVsb25ncyBpbiB0aGUgYnJhbmQgc2lsbydzIG93blxuLy8gY29tcG9uZW50LlxuLy9cbi8vIEl0IGxpdmVzIGluIHRoZSByZXNldCByYXRoZXIgdGhhbiBhIGdsb2JhbCBidXR0b24gY29tcG9uZW50IGZvciB0d28gcmVhc29uczpcbi8vIHRoZSAyMDI2LTA3LTMwIGNsZWFudXAgZGVsaWJlcmF0ZWx5IG1vdmVkIGBidXR0b25gIG91dCBvZiB0aGUgZ2xvYmFsIHNpbG8sIHNvXG4vLyByZS1hZGRpbmcgaXQgdGhlcmUgd291bGQgcmV2ZXJzZSBhIHNldHRsZWQgZGVjaXNpb247IGFuZCB0aGlzIGFwcGxpZXMgZXF1YWxseVxuLy8gdG8gaW5wdXRzLCBzZWxlY3RzIGFuZCB0ZXh0YXJlYXMsIHdoaWNoIGEgYnV0dG9uIGNvbXBvbmVudCBjb3VsZCBub3QgY292ZXIuXG4vL1xuLy8gYFthcmlhLWRpc2FibGVkXWAgaXMgaW5jbHVkZWQgYmVjYXVzZSBhbiA8YT4gc3R5bGVkIGFzIGEgYnV0dG9uIGNhbm5vdCBjYXJyeVxuLy8gdGhlIHJlYWwgYGRpc2FibGVkYCBhdHRyaWJ1dGUuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblxuXHQmOmRpc2FibGVkLFxuXHQmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG5cblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG5cdH1cblxufVxuXG5hW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG5cblx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblxufVxuXG5maWVsZHNldCB7XG5cblx0Ym9yZGVyOiBub25lO1xuXHRwYWRkaW5nOiAwO1xuXG59XG5cbnRleHRhcmVhIHtcblxuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbn1cblxudGV4dGFyZWE6bm90KFtyb3dzXSkge1xuXG5cdG1pbi1oZWlnaHQ6IDEwZW07XG5cbn1cblxuLy8gUG9wb3ZlciByZXNldCDigJQgZHJvcCB0aGUgVUEtZGVmYXVsdCBzb2xpZCBib3JkZXIgKyAwLjI1ZW0gcGFkZGluZyBvbmx5LlxuLy8gU2l6aW5nICh3aWR0aC9oZWlnaHQpIGlzIHRoZSBwb3BvdmVyJ3Mgb3duIGNvbmNlcm47IHRoZSBtZW51IHBvcG92ZXJzXG4vLyAoZGVza3RvcC1uYXYsIG1vYmlsZS1uYXYpIHNldCB0aGVpciBvd24gd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCUgZXhwbGljaXRseSxcbi8vIGFuZCB0aGUgY2FydC1kcmF3ZXIgKyBmdXR1cmUgc2lkZS1wYW5lbCBwb3BvdmVycyBuZWVkIHRoZWlyIG93biBkaW1lbnNpb25zLlxuLy9cbi8vIGA6d2hlcmUoKWAga2VlcHMgdGhpcyBhdCB6ZXJvIHNwZWNpZmljaXR5IHNvIGFueSBjb21wb25lbnQgcnVsZSBiZWF0cyBpdC5cbi8vIEFzIGAqW3BvcG92ZXJdYCBpdCB0aWVkIHdpdGggYSBzaW5nbGUgY2xhc3MsIGFuZCBicmFuZCBzaGVldHMgcmUtZW1pdCB0aGVcbi8vIHJlc2V0IGFmdGVyIHRoZSBnbG9iYWwg4oCUIHNvIGl0IHplcm9lZCBgLmRlc2t0b3AtbmF2YCdzIHJpZ2h0IHBhZGRpbmcgb25cbi8vIGV2ZXJ5IGJyYW5kLiBaZXJvIHNwZWNpZmljaXR5IHN0aWxsIGJlYXRzIHRoZSBicm93c2VyJ3Mgb3duIHBvcG92ZXJcbi8vIGRlZmF1bHRzOiBhdXRob3Igc3R5bGVzIHdpbiBvdmVyIHRoZSB1c2VyLWFnZW50IHNoZWV0IGF0IGFueSBzcGVjaWZpY2l0eS5cbjp3aGVyZShbcG9wb3Zlcl0pIHtcblxuXHRib3JkZXI6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG5cbn1cblxuOnRhcmdldCB7XG5cblx0c2Nyb2xsLW1hcmdpbi1ibG9jazogNWV4O1xuXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHRNRURJQSBRVUVSWVxuXG5cdFdyYXBzIGNvbnRlbnQgaW4gdGhlIGFwcHJvcHJpYXRlIG1lZGlhIHF1ZXJ5LlxuXG5cdFVzYWdlOlxuXHQuYmxvY2sge1xuXHRcdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCc3NjgnKSB7IC4uLiB9XG5cdH1cblxuXHRBdmFpbGFibGUgYWxpYXNlczpcblx0cG9ydHJhaXQsIGxhbmRzY2FwZVxuXHQ3NjgsIDc2OC1wbHVzXG5cdDkwMCwgOTAwLXBsdXNcblx0MTAyNCwgMTAyNC1wbHVzXG5cdDE0NDAsIDE0NDAtcGx1c1xuXHQxOTIwLCAxOTIwLXBsdXNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRicmVha3BvaW50LS1wb3J0cmFpdDogICAgJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJztcbiRicmVha3BvaW50LS1sYW5kc2NhcGU6ICAgJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKSc7XG5cbiRicmVha3BvaW50LS03Njg6ICAgICAgICAgJyhtYXgtd2lkdGg6IDc2N3B4KSc7XG4kYnJlYWtwb2ludC0tNzY4LXBsdXM6ICAgICcobWluLXdpZHRoOiA3NjhweCknO1xuXG4kYnJlYWtwb2ludC0tOTAwOiAgICAgICAgICcobWF4LXdpZHRoOiA5MDBweCknO1xuJGJyZWFrcG9pbnQtLTkwMC1wbHVzOiAgICAnKG1pbi13aWR0aDogOTAxcHgpJztcblxuJGJyZWFrcG9pbnQtLTEwMjQ6ICAgICAgICAnKG1heC13aWR0aDogMTAyNHB4KSc7XG4kYnJlYWtwb2ludC0tMTAyNC1wbHVzOiAgICcobWluLXdpZHRoOiAxMDI1cHgpJztcblxuJGJyZWFrcG9pbnQtLTEyMDA6ICAgICAgICAnKG1heC13aWR0aDogMTE5OXB4KSc7XG4kYnJlYWtwb2ludC0tMTIwMC1wbHVzOiAgICcobWluLXdpZHRoOiAxMjAwcHgpJztcblxuJGJyZWFrcG9pbnQtLTE0NDA6ICAgICAgICAnKG1heC13aWR0aDogMTQzOXB4KSc7XG4kYnJlYWtwb2ludC0tMTQ0MC1wbHVzOiAgICcobWluLXdpZHRoOiAxNDQwcHgpJztcblxuJGJyZWFrcG9pbnQtLTE5MjA6ICAgICAgICAnKG1heC13aWR0aDogMTkxOXB4KSc7XG4kYnJlYWtwb2ludC0tMTkyMC1wbHVzOiAgICcobWluLXdpZHRoOiAxOTIwcHgpJztcblxuQG1peGluIG1lZGlhLXF1ZXJ5KCRhbGlhcywgJHNjcmVlbi1vbmx5OiB0cnVlKSB7XG5cblx0JGNhbGN1bGF0ZWQtYnJlYWtwb2ludDogJyc7XG5cblx0QGlmICgkYWxpYXMgPT0gJ3BvcnRyYWl0JykgICAgeyAkY2FsY3VsYXRlZC1icmVha3BvaW50OiAkYnJlYWtwb2ludC0tcG9ydHJhaXQ7IH1cblx0QGlmICgkYWxpYXMgPT0gJ2xhbmRzY2FwZScpICAgeyAkY2FsY3VsYXRlZC1icmVha3BvaW50OiAkYnJlYWtwb2ludC0tbGFuZHNjYXBlOyB9XG5cblx0QGlmICgkYWxpYXMgPT0gJzc2OCcpICAgICAgICAgeyAkY2FsY3VsYXRlZC1icmVha3BvaW50OiAkYnJlYWtwb2ludC0tNzY4OyB9XG5cdEBpZiAoJGFsaWFzID09ICc3NjgtcGx1cycpICAgIHsgJGNhbGN1bGF0ZWQtYnJlYWtwb2ludDogJGJyZWFrcG9pbnQtLTc2OC1wbHVzOyB9XG5cblx0QGlmICgkYWxpYXMgPT0gJzkwMCcpICAgICAgICAgeyAkY2FsY3VsYXRlZC1icmVha3BvaW50OiAkYnJlYWtwb2ludC0tOTAwOyB9XG5cdEBpZiAoJGFsaWFzID09ICc5MDAtcGx1cycpICAgIHsgJGNhbGN1bGF0ZWQtYnJlYWtwb2ludDogJGJyZWFrcG9pbnQtLTkwMC1wbHVzOyB9XG5cblx0QGlmICgkYWxpYXMgPT0gJzEwMjQnKSAgICAgICAgeyAkY2FsY3VsYXRlZC1icmVha3BvaW50OiAkYnJlYWtwb2ludC0tMTAyNDsgfVxuXHRAaWYgKCRhbGlhcyA9PSAnMTAyNC1wbHVzJykgICB7ICRjYWxjdWxhdGVkLWJyZWFrcG9pbnQ6ICRicmVha3BvaW50LS0xMDI0LXBsdXM7IH1cblxuXHRAaWYgKCRhbGlhcyA9PSAnMTIwMCcpICAgICAgICB7ICRjYWxjdWxhdGVkLWJyZWFrcG9pbnQ6ICRicmVha3BvaW50LS0xMjAwOyB9XG5cdEBpZiAoJGFsaWFzID09ICcxMjAwLXBsdXMnKSAgIHsgJGNhbGN1bGF0ZWQtYnJlYWtwb2ludDogJGJyZWFrcG9pbnQtLTEyMDAtcGx1czsgfVxuXG5cdEBpZiAoJGFsaWFzID09ICcxNDQwJykgICAgICAgIHsgJGNhbGN1bGF0ZWQtYnJlYWtwb2ludDogJGJyZWFrcG9pbnQtLTE0NDA7IH1cblx0QGlmICgkYWxpYXMgPT0gJzE0NDAtcGx1cycpICAgeyAkY2FsY3VsYXRlZC1icmVha3BvaW50OiAkYnJlYWtwb2ludC0tMTQ0MC1wbHVzOyB9XG5cblx0QGlmICgkYWxpYXMgPT0gJzE5MjAnKSAgICAgICAgeyAkY2FsY3VsYXRlZC1icmVha3BvaW50OiAkYnJlYWtwb2ludC0tMTkyMDsgfVxuXHRAaWYgKCRhbGlhcyA9PSAnMTkyMC1wbHVzJykgICB7ICRjYWxjdWxhdGVkLWJyZWFrcG9pbnQ6ICRicmVha3BvaW50LS0xOTIwLXBsdXM7IH1cblxuXHRAaWYgKCRjYWxjdWxhdGVkLWJyZWFrcG9pbnQgIT0gJycpIHtcblxuXHRcdEBpZiAoJHNjcmVlbi1vbmx5ID09IHRydWUpIHtcblxuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgI3skY2FsY3VsYXRlZC1icmVha3BvaW50fSB7XG5cblx0XHRcdFx0QGNvbnRlbnQ7XG5cblx0XHRcdH1cblxuXHRcdH0gQGVsc2Uge1xuXG5cdFx0XHRAbWVkaWEgYWxsIGFuZCAjeyRjYWxjdWxhdGVkLWJyZWFrcG9pbnR9IHtcblxuXHRcdFx0XHRAY29udGVudDtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxufVxuIiwiQHVzZSAnLi4vZnVuY3Rpb25zL21lZGlhLXF1ZXJ5JyBhcyAqO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHRHUklEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZ3JpZCB7XG5cblx0Ly8gYGdyaWQtY29sdW1uOiAxIC8gLTFgIG1ha2VzIGEgZ3JpZCBzcGFuIGl0cyBwYXJlbnQncyBmdWxsIHRyYWNrIHNldCwgd2hpY2hcblx0Ly8gaXMgcmlnaHQgZm9yIHRoZSBjb21tb24gY2FzZSDigJQgYSBncmlkIGRyb3BwZWQgaW50byBhIGJhbmQgb2NjdXBpZXMgdGhlXG5cdC8vIGJhbmQuIEl0IGlzIHdyb25nIGZvciBhIGdyaWQgbmVzdGVkIElOU0lERSBvbmUgY2VsbCBvZiBhbm90aGVyIGdyaWQsIGFuZFxuXHQvLyB0aGUgd2F5IGl0IGlzIHdyb25nIGlzIHZlcnkgaGFyZCB0byByZWFkOiB0aGUgaW5uZXIgZ3JpZCBzcGFucyBldmVyeSBjb2x1bW5cblx0Ly8gb2YgaXRzIHBhcmVudCBhbmQgcHVzaGVzIGl0c2VsZiBvbnRvIGEgc2Vjb25kIHJvdywgYW5kIHdoYXRldmVyIHdhcyBtZWFudFxuXHQvLyB0byBzaXQgYmVzaWRlIGl0IHRoZW4gc2l6ZXMgdG8gaXRzIG93biBjb250ZW50LlxuXHQvL1xuXHQvLyBJdCBsb29rcyBleGFjdGx5IGxpa2UgYSBoZWlnaHQgdGhhdCBmYWlsZWQgdG8gc3RyZXRjaCwgd2hpY2ggaXMgd2hhdCBtYWtlc1xuXHQvLyBpdCBleHBlbnNpdmUuIE9uIE1QRzEgdGhlIGZpcnN0IGZpeCBhdHRlbXB0ZWQgd2FzIGEgc3RyZXRjaCBmaXggYW5kIHdhc1xuXHQvLyB3cm9uZyBmb3IgdGhhdCByZWFzb247IHRoZSB0ZWxsIHdhcyBgZ3JpZC10ZW1wbGF0ZS1yb3dzYCByZXBvcnRpbmcgVFdPIHJvd3Ncblx0Ly8gb24gYSBwYXJlbnQgdGhhdCBzaG91bGQgaGF2ZSBoYWQgb25lLiBDaGVjayB0aGUgcm93IGNvdW50IGJlZm9yZSByZWFjaGluZ1xuXHQvLyBmb3IgYWxpZ24taXRlbXMuXG5cdC8vXG5cdC8vIFVzZSBgLmdyaWQtLWluLWNlbGxgIGZvciB0aGF0IGNhc2UuIEFkZGl0aXZlIOKAlCBpdCBjaGFuZ2VzIG5vdGhpbmcgdGhhdCBkb2VzXG5cdC8vIG5vdCBvcHQgaW4sIHdoaWNoIGlzIHdoeSBpdCBpcyBoZXJlIHJhdGhlciB0aGFuIGEgY2hhbmdlIHRvIHRoZSBiYXNlIHRoYXRcblx0Ly8gd291bGQgbW92ZSBmb3VyIGJyYW5kcyBhdCBvbmNlLlxuXHRkaXNwbGF5OiBncmlkO1xuXHRncmlkLWNvbHVtbjogMSAvIC0xO1xuXHRyb3ctZ2FwOiB2YXIoLS1ncmlkLWdhcCwgMjVweCk7XG5cdGNvbHVtbi1nYXA6IHZhcigtLWdyaWQtZ2FwLCAyNXB4KTtcblx0d2lkdGg6IDEwMCU7XG5cblx0Ly8gQSBncmlkIHRoYXQgb2NjdXBpZXMgT05FIENFTEwgb2YgaXRzIHBhcmVudCBncmlkIHJhdGhlciB0aGFuIHNwYW5uaW5nIGl0LlxuXHQmLS1pbi1jZWxsIHtcblxuXHRcdGdyaWQtY29sdW1uOiBhdXRvO1xuXG5cdH1cblxuXHQmLS0xIHtcblxuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcblxuXHR9XG5cblx0Ji0tMiB7XG5cblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnNzY4Jykge1xuXG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG5cblx0XHR9XG5cblx0fVxuXG5cdCYtLTMge1xuXG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzc2OCcpIHtcblxuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQmLS00IHtcblxuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCc3NjgnKSB7XG5cblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcblxuXHRcdH1cblxuXHR9XG5cblx0Ji0tNSB7XG5cblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBtaW5tYXgoMCwgMWZyKSk7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnNzY4Jykge1xuXG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG5cblx0XHR9XG5cblx0fVxuXG5cdCYtLTYge1xuXG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzEwMjQnKSB7XG5cblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcblxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCc3NjgnKSB7XG5cblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcblxuXHRcdH1cblxuXHR9XG5cblx0Ly8gQXN5bW1ldHJpYyB0d28tY29sdW1uIHNwbGl0LiBDb2x1bW4gcmF0aW8gdmlhIHRoZSBgLS1ncmlkLWNvbHVtbnNgXG5cdC8vIGN1c3RvbSBwcm9wIG9uIHRoZSBncmlkIGVsZW1lbnQ6XG5cdC8vICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC0tc3BsaXRcIiBzdHlsZT1cIi0tZ3JpZC1jb2x1bW5zOiAxLjE1ZnIgMC44NWZyO1wiPlxuXHQvLyBEZWZhdWx0IGlzIGEgcGxhaW4gMToxIHNwbGl0IChlcXVpdmFsZW50IHRvIGAuZ3JpZC0tMmApLCBzbyB0aGVcblx0Ly8gbW9kaWZpZXIgaXMgc3RpbGwgdXNlZnVsIHdoZW4gdGhlIGNvbHVtbnMgY29tZSBmcm9tIEpTIG9yIGFuXG5cdC8vIHVwc3RyZWFtIGN1c3RvbSBwcm9wLiBDb2xsYXBzZXMgdG8gc2luZ2xlLWNvbHVtbiBhdCAxMDI0IOKAlCBzZWUgdGhlXG5cdC8vIHNoYXJlZCBgJi0tc3BsaXQsICYtLTItMWAgcnVsZSBiZWxvdyBmb3IgdGhlIGNvbGxhcHNlIGJyZWFrcG9pbnQuXG5cdCYtLXNwbGl0IHtcblxuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tZ3JpZC1jb2x1bW5zLCAxZnIgMWZyKTtcblxuXHR9XG5cblx0Ly8gQXN5bW1ldHJpYyB0d28tY29sdW1uIGludGVnZXIgcmF0aW9zLiBOYW1lZCBieSBmciB1bml0cyDigJQgdGhlIGNsYXNzXG5cdC8vIHN1ZmZpeCByZWFkcyBhcyB0aGUgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlIGRpcmVjdGx5OlxuXHQvLyBgLmdyaWQtLTItMWAgaXMgYDJmciAxZnJgICh3aWRlci1sZWZ0LCBuYXJyb3dlci1yaWdodCDigJQgdGhlIHByb3NlIC9cblx0Ly8gYXNpZGUgc2hhcGUgdXNlZCBvbiBlZGl0b3JpYWwgYmFuZHMpLiBSZWNpcHJvY2FsIHJhdGlvcyAoYC0tMS0yYFxuXHQvLyBhc2lkZS1sZWZ0LCBgLS0zLTFgLCBgLS0xLTNgLCBgLS0zLTJgLCBldGMuKSBmb2xsb3cgdGhlIHNhbWUgc2hhcGVcblx0Ly8gYW5kIGdldCBhZGRlZCBiZWxvdyB3aGVuIGEgd2FsayBuZWVkcyB0aGVtIOKAlCBkb24ndCBzZWVkIHNwZWN1bGF0aXZlbHkuXG5cdC8vIEZvciBub24taW50ZWdlciByYXRpb3MsIHVzZSBgLmdyaWQtLXNwbGl0YCB3aXRoIGAtLWdyaWQtY29sdW1uc2AuXG5cdC8vIEFsbCBuYW1lZC1yYXRpbyBtb2RpZmllcnMgc2hhcmUgdGhlIHNhbWUgc2luZ2xlLWNvbHVtbi1hdC0xMDI0XG5cdC8vIGNvbGxhcHNlIGFzIGAuZ3JpZC0tc3BsaXRgIOKAlCBncm91cGVkIHRvZ2V0aGVyIGJlbG93IHNvIHRoZSBjb21waWxlZFxuXHQvLyBDU1MgZW1pdHMgb25lIGBAbWVkaWFgIGJsb2NrIGluc3RlYWQgb2Ygb25lIHBlciBtb2RpZmllci5cblx0Ji0tMi0xIHtcblxuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcblxuXHR9XG5cblx0Ly8gVGhlIHJlY2lwcm9jYWwg4oCUIG5hcnJvd2VyLWxlZnQsIHdpZGVyLXJpZ2h0LiBBZGRlZCBieSB0aGUgUGFyYWdvbkdhbWluZ1xuXHQvLyBNUEcxIGhvbWVwYWdlIHdhbGsgKDIwMjYtMDktMTYpLCB3aGljaCBuZWVkZWQgaXQgZm9yIGEgQmVzdCBTZWxsZXJzIGJhbmRcblx0Ly8gcGFpcmluZyBvbmUgdGFsbCBwcm9tb3Rpb25hbCB0aWxlIHdpdGggYSAyeDIgcHJvZHVjdCBncmlkLlxuXHQmLS0xLTIge1xuXG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyO1xuXG5cdH1cblxuXHQmLS1zcGxpdCxcblx0Ji0tMi0xLFxuXHQmLS0xLTIge1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzEwMjQnKSB7XG5cblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcblxuXHRcdH1cblxuXHR9XG5cblx0Ly8gQ2VudGVyIGdyaWQgY2hpbGRyZW4gdmVydGljYWxseSBpbnNpZGUgdGhlaXIgY2VsbHMuIFVzZWQgd2hlbiBhXG5cdC8vIGxlZnQtaGFuZCBwcm9zZSBjb2x1bW4gcGFpcnMgd2l0aCBhIHJpZ2h0LWhhbmQgZm9ybSAvIGNvbnRyb2wgcGFuZWxcblx0Ly8gb2YgZGlmZmVyZW50IGhlaWdodHMgYW5kIGJvdGggc2hvdWxkIHNpdCBjZW50cmVkLlxuXHQmLS1jZW50ZXIge1xuXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHR9XG5cblx0Ly8gVG9wLWFsaWduIGdyaWQgY2hpbGRyZW4gaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBzdHJldGNoLiBVc2VkIHdoZW4gYVxuXHQvLyB0YWxsIGxlZnQtaGFuZCBmb3JtIGNvbHVtbiBwYWlycyB3aXRoIGEgc2hvcnRlciByaWdodC1oYW5kIHN0aWNreVxuXHQvLyBzdW1tYXJ5IGFzaWRlIOKAlCB0aGUgc3VtbWFyeSBzaXRzIGF0IGl0cyBuYXR1cmFsIGhlaWdodCBhdCB0aGUgdG9wXG5cdC8vIG9mIGl0cyBjZWxsIGluc3RlYWQgb2Ygc3RyZXRjaGluZyB0byBtYXRjaCB0aGUgZm9ybSBjb2x1bW4uXG5cdCYtLWFsaWduLXN0YXJ0IHtcblxuXHRcdGFsaWduLWl0ZW1zOiBzdGFydDtcblxuXHR9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdEJSRUFUSEUg4oCUIHZlcnRpY2FsLXJoeXRobSB1dGlsaXR5XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyAuYnJlYXRoZSBpcyBhIGNsYXNzLW1peCB1dGlsaXR5IHRoYXQgYWRkcyB0b3AvYm90dG9tIG1hcmdpbiB0byBhbnlcbi8vIGVsZW1lbnQsIGluZGVwZW5kZW50IG9mIHRoZSBibG9jaydzIG93biBtYXJnaW4gcnVsZXMuIExheWVyZWQgb250b1xuLy8gYW55dGhpbmcgdGhhdCBuZWVkcyBpdHMgb3duIHZlcnRpY2FsIHJoeXRobSB3aXRob3V0IGludHJvZHVjaW5nIGFcbi8vIGRlZGljYXRlZCBtb2RpZmllciBvbiB0aGUgaG9zdCBibG9jay5cbi8vXG4vLyBVc2FnZTpcbi8vICAgPGRpdiBjbGFzcz1cImhlcm8gYnJlYXRoZSBicmVhdGhlLS1ib3R0b20tbGFyZ2VcIj7igKY8L2Rpdj5cbi8vICAgPHAgY2xhc3M9XCJlZGl0b3JpYWwtcHJvc2UgYnJlYXRoZS0tdG9wLXRpbnkgYnJlYXRoZS0tYm90dG9tXCI+4oCmPC9wPlxuLy9cbi8vIFJ1bGVzOlxuLy8gICAtIE5vIG1vZGlmaWVyIOKHkiAyNHB4IHRvcCArIDI0cHggYm90dG9tIChgLmJyZWF0aGVgIGFsb25lKS5cbi8vICAgLSBXaXRoIGFueSAtLXRvcC0qIG9yIC0tYm90dG9tLSogbW9kaWZpZXIsIHRoZSBiYXNlIHJ1bGUgaXMgc3VwcHJlc3NlZFxuLy8gICAgIHNvIHRoZSBtb2RpZmllcidzIHZhbHVlIGlzIGF1dGhvcml0YXRpdmUuIENvbWJpbmUgdG9wICsgYm90dG9tXG4vLyAgICAgbW9kaWZpZXJzIGFzIG5lZWRlZC5cbi8vICAgLSBNb2RpZmllcnMgdXNlICFpbXBvcnRhbnQgdG8gZGVmZWF0IGhvc3QtYmxvY2sgbWFyZ2luIHJ1bGVzOyB0aGVcbi8vICAgICB3aG9sZSBwb2ludCBvZiB0aGlzIHV0aWxpdHkgaXMgdG8gb3ZlcnJpZGUgdGhlIGJsb2NrLCBub3QgbG9zZSB0byBpdC5cbi8vICAgLSBGb3IgY3VzdG9tIC8gb25lLW9mZiBzcGFjaW5nLCBzZXQgLS1icmVhdGhlLXRvcCBvciAtLWJyZWF0aGUtYm90dG9tXG4vLyAgICAgYXMgYSBDU1MgY3VzdG9tIHByb3BlcnR5IG9uIHRoZSBlbGVtZW50IChzZWUgdGhlIGVzY2FwZSBoYXRjaCBiZWxvdykuXG4vL1xuLy8gTW9kaWZpZXIgc2NhbGUgKG1hdGNoZXMgdGhlIGZyYW1ld29yaydzIHVzdWFsIHJoeXRobSk6XG4vLyAgIHRpbnkgICA9IDRweFxuLy8gICBtaW5pICAgPSA4cHhcbi8vICAgc21hbGwgID0gMTJweFxuLy8gICAoYmFzZSkgPSAyNHB4XG4vLyAgIGxhcmdlICA9IDQwcHhcbi8vICAgaHVnZSAgID0gNjRweFxuLy8gICBhdXRvICAgPSBhdXRvIChmb3IgcHVzaGluZyBhbiBlbGVtZW50IHRvIGJvdHRvbSBvZiBhIGZsZXggY29udGFpbmVyKVxuXG4uYnJlYXRoZSB7XG5cblx0ZGlzcGxheTogYmxvY2s7XG5cblx0Ly8gRGVmYXVsdCB0b3ArYm90dG9tIHJoeXRobSDigJQga2lja3MgaW4gb25seSB3aGVuIG5vIC0tdG9wLSogb3Jcblx0Ly8gLS1ib3R0b20tKiBtb2RpZmllciBpcyBwcmVzZW50LlxuXHQmOm5vdChbY2xhc3MqPSdicmVhdGhlLS0nXSkge1xuXG5cdFx0bWFyZ2luLXRvcDogMjRweDtcblx0XHRtYXJnaW4tYm90dG9tOiAyNHB4O1xuXG5cdH1cblxuXHQvLyBFc2NhcGUtaGF0Y2ggQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIOKAlCBzZXQgLS1icmVhdGhlLXRvcCBvclxuXHQvLyAtLWJyZWF0aGUtYm90dG9tIG9uIHRoZSBlbGVtZW50IGZvciBvbmUtb2ZmIHNwYWNpbmcgd2l0aG91dCBhZGRpbmdcblx0Ly8gYSBuZXcgbW9kaWZpZXIgY2xhc3MuIE92ZXJyaWRkZW4gYnkgZXhwbGljaXQgLS10b3AtKiAvIC0tYm90dG9tLSpcblx0Ly8gbW9kaWZpZXJzIGJlbG93LlxuXHQmW3N0eWxlKj1cIi0tYnJlYXRoZS10b3BcIl0ge1xuXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tYnJlYXRoZS10b3ApO1xuXG5cdH1cblxuXHQmW3N0eWxlKj1cIi0tYnJlYXRoZS1ib3R0b21cIl0ge1xuXG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tYnJlYXRoZS1ib3R0b20pO1xuXG5cdH1cblxuXHQmLS10b3AgICAgICAgeyBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7IH1cblx0Ji0tdG9wLXRpbnkgIHsgbWFyZ2luLXRvcDogNHB4ICAhaW1wb3J0YW50OyB9XG5cdCYtLXRvcC1taW5pICB7IG1hcmdpbi10b3A6IDhweCAgIWltcG9ydGFudDsgfVxuXHQmLS10b3Atc21hbGwgeyBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7IH1cblx0Ji0tdG9wLWxhcmdlIHsgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OyB9XG5cdCYtLXRvcC1odWdlICB7IG1hcmdpbi10b3A6IDY0cHggIWltcG9ydGFudDsgfVxuXHQmLS10b3AtYXV0byAgeyBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuXHQmLS1ib3R0b20gICAgICAgeyBtYXJnaW4tYm90dG9tOiAyNHB4ICFpbXBvcnRhbnQ7IH1cblx0Ji0tYm90dG9tLXRpbnkgIHsgbWFyZ2luLWJvdHRvbTogNHB4ICAhaW1wb3J0YW50OyB9XG5cdCYtLWJvdHRvbS1taW5pICB7IG1hcmdpbi1ib3R0b206IDhweCAgIWltcG9ydGFudDsgfVxuXHQmLS1ib3R0b20tc21hbGwgeyBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7IH1cblx0Ji0tYm90dG9tLWxhcmdlIHsgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OyB9XG5cdCYtLWJvdHRvbS1odWdlICB7IG1hcmdpbi1ib3R0b206IDY0cHggIWltcG9ydGFudDsgfVxuXHQmLS1ib3R0b20tYXV0byAgeyBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0SU1BR0VTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AdXNlICcuLi9mdW5jdGlvbnMvdHJhbnNpdGlvbnMnIGFzICo7XG5cbi5ob3Zlci16b29tIHtcblxuXHRkaXNwbGF5OiBibG9jaztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRpbWcge1xuXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi1hbGw7XG5cblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cblx0fVxuXG5cdCY6aG92ZXIge1xuXG5cdFx0aW1nIHtcblxuXHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjA4KTtcblxuXHRcdH1cblxuXHR9XG5cbn1cblxuLmltZyB7XG5cblx0Ji0tY292ZXIge1xuXG5cdFx0b2JqZWN0LWZpdDogY292ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdH1cblxuXHQmLS1jb250YWluIHtcblxuXHRcdG9iamVjdC1maXQ6IGNvbnRhaW47XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0VFJBTlNJVElPTlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtaXhpbiB0cmFuc2l0aW9uLWFsbCB7XG5cblx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG5cbn1cblxuQG1peGluIHRyYW5zaXRpb24tYWxsLS1zbG93IHtcblxuXHR0cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZTtcblxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1hbGwtLXF1aWNrIHtcblxuXHR0cmFuc2l0aW9uOiBhbGwgMTgwbXMgZWFzZTtcblxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1hbGwtLXJhcGlkIHtcblxuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zLCB2aXNpYmlsaXR5IDBtcztcblxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1hbGwtLWluLXNsb3cge1xuXG5cdHRyYW5zaXRpb246IGFsbCA0MDBtcyBlYXNlLWluO1xuXG59XG4iLCJAdXNlICcuLi9mdW5jdGlvbnMvbWVkaWEtcXVlcnknIGFzICo7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdFZJU0lCSUxJVFlcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pcy1oaWRkZW4ge1xuXG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0Ji0tbW9iaWxlIHtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCc3NjgnKSB7XG5cblx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuXHRcdH1cblxuXHR9XG5cblx0Ji0tdGFibGV0IHtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCcxMDI0Jykge1xuXG5cdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cblx0XHR9XG5cblx0fVxuXG5cdCYtLWRlc2t0b3Age1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzEwMjQtcGx1cycpIHtcblxuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG5cdFx0fVxuXG5cdH1cblxuXHQmLS1wb3J0cmFpdCB7XG5cblx0XHRAbWVkaWEgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuXG5cdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cblx0XHR9XG5cblx0fVxuXG5cdCYtLWxhbmRzY2FwZSB7XG5cblx0XHRAbWVkaWEgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcblxuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG5cdFx0fVxuXG5cdH1cblxufVxuIiwiLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuXHR0b3VjaC1hY3Rpb246IHBhbi15O1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uc2xpY2stbGlzdCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0XG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblx0XG5cdCYuZHJhZ2dpbmcge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRjdXJzb3I6IGhhbmQ7XG5cdH1cbn1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFxuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdH1cblx0XG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG5cdFxuXHQuc2xpY2stbG9hZGluZyAmIHtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdH1cbn1cblxuLnNsaWNrLXNsaWRlIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdGhlaWdodDogMTAwJTtcblx0bWluLWhlaWdodDogMXB4O1xuXHRcblx0W2Rpcj0ncnRsJ10gJiB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cdFxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdFxuXHQmLnNsaWNrLWxvYWRpbmcgaW1nIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cdFxuXHQmLmRyYWdnaW5nIGltZyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblx0XG5cdC5zbGljay1pbml0aWFsaXplZCAmIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXHRcblx0LnNsaWNrLWxvYWRpbmcgJiB7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR9XG5cdFxuXHQuc2xpY2stdmVydGljYWwgJiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG5cbi8qIExpZ2h0Ym94ICovXG4uc2xpY2stbGlnaHRib3gge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogOTk5OTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZDogYmxhY2s7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlXG59XG5cbi5zbGljay1saWdodGJveCAuc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XG59XG5cbi5zbGljay1saWdodGJveCAuc2xpY2stcHJldiB7XG5cdGxlZnQ6IDE1cHhcbn1cblxuLnNsaWNrLWxpZ2h0Ym94IC5zbGljay1uZXh0IHtcblx0cmlnaHQ6IDE1cHhcbn1cblxuLnNsaWNrLWxpZ2h0Ym94LWhpZGUge1xuXHRvcGFjaXR5OiAwXG59XG5cbi5zbGljay1saWdodGJveC1oaWRlLnNsaWNrLWxpZ2h0Ym94LWllIHtcblx0LW1zLWZpbHRlcjogJ3Byb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApJztcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApXG59XG5cbi5zbGljay1saWdodGJveC1oaWRlLWluaXQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogLTk5OTlweDtcblx0b3BhY2l0eTogMFxufVxuXG4uc2xpY2stbGlnaHRib3gtaGlkZS1pbml0LnNsaWNrLWxpZ2h0Ym94LWllIHtcblx0LW1zLWZpbHRlcjogJ3Byb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApJztcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApXG59XG5cbi5zbGljay1saWdodGJveC1pbm5lciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlXG59XG5cbi5zbGljay1saWdodGJveC1zbGljay1pdGVtIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRvdmVyZmxvdzogaGlkZGVuXG59XG5cbi5zbGljay1saWdodGJveC1zbGljay1pdGVtOmJlZm9yZSB7XG5cdGNvbnRlbnQ6ICcnO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGhlaWdodDogMTAwJTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bWFyZ2luLXJpZ2h0OiAtMC4yNWVtXG59XG5cbi5zbGljay1jYXB0aW9uLWJvdHRvbSAuc2xpY2stbGlnaHRib3gtc2xpY2staXRlbSAuc2xpY2stbGlnaHRib3gtc2xpY2staXRlbSAuc2xpY2stbGlnaHRib3gtc2xpY2stY2FwdGlvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4XG59XG5cbi5zbGljay1jYXB0aW9uLWR5bmFtaWMgLnNsaWNrLWxpZ2h0Ym94LXNsaWNrLWl0ZW0gLnNsaWNrLWxpZ2h0Ym94LXNsaWNrLWl0ZW0gLnNsaWNrLWxpZ2h0Ym94LXNsaWNrLWNhcHRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyXG59XG5cbi5zbGljay1saWdodGJveC1zbGljay1pdGVtLWlubmVyIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRtYXgtd2lkdGg6IDkwJTtcblx0bWF4LWhlaWdodDogOTAlXG59XG5cbi5zbGljay1saWdodGJveC1zbGljay1pbWcge1xuXHRtYXJnaW46IDAgYXV0bztcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1heC13aWR0aDogOTAlO1xuXHRtYXgtaGVpZ2h0OiA5MCVcbn1cblxuLnNsaWNrLWxpZ2h0Ym94LXNsaWNrLWNhcHRpb24ge1xuXHRtYXJnaW46IDEwcHggMCAwO1xuXHRjb2xvcjogd2hpdGVcbn1cblxuLnNsaWNrLWxpZ2h0Ym94LWNsb3NlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDE1cHg7XG5cdHJpZ2h0OiAxNXB4O1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiAyMHB4O1xuXHR3aWR0aDogMjBweDtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdGZvbnQtc2l6ZTogMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Y29sb3I6IHRyYW5zcGFyZW50O1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IG5vbmVcbn1cblxuLnNsaWNrLWxpZ2h0Ym94LWNsb3NlOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uc2xpY2stbGlnaHRib3gtY2xvc2U6YmVmb3JlIHtcblx0Zm9udC1mYW1pbHk6ICdzbGljayc7XG5cdGZvbnQtc2l6ZTogMjBweDtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdGNvbG9yOiB3aGl0ZTtcblx0b3BhY2l0eTogMC44NTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdGNvbnRlbnQ6ICfDlydcbn0iLCIvLyBXcmFwcGVyIOKAlCB1bml2ZXJzYWwgc2l0ZS13aWR0aCBjb250YWluZXIuXG4vL1xuLy8gVGhlIGNhbm9uaWNhbCBjb250YWluZXIgdGhhdCBjb25zdHJhaW5zIGNvbnRlbnQgdG8gdGhlIHNpdGUncyBtYXgtd2lkdGggd2l0aFxuLy8gaG9yaXpvbnRhbCBndXR0ZXIgcGFkZGluZy4gVXNlZCBkaXJlY3RseSBvbiBwYWdlcyB3aXRob3V0IGZ1bGwtYmxlZWQgY29sb3VyZWRcbi8vIGJhY2tncm91bmRzLCBhbmQgYXV0by1leHRlbmRlZCBvbnRvIHRoZSBmaXJzdCA8ZGl2PiBjaGlsZCBvZiBldmVyeSAuc2VjdGlvblxuLy8gKHNlZSBfc2VjdGlvbi5zY3NzIGZvciB0aGF0IGV4Y2VwdGlvbikuXG4vL1xuLy8gVGhlbWVzIG92ZXJyaWRlIC0tc2l0ZS1tYXgtd2lkdGggYW5kIC0tZ3V0dGVyLXNtYWxsIHZpYSA6cm9vdCBpbiB0aGVpciBzZXR0aW5nc1xuLy8gc2NzczsgZGVmYXVsdHMgcHJvdmlkZWQgaGVyZSBtZWFuIGdsb2JhbC5jc3Mgd29ya3Mgc3RhbmRhbG9uZSBpZiBhIHRoZW1lIGlzXG4vLyBtaXNzaW5nLlxuXG4ud3JhcHBlciB7XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiB2YXIoLS1zaXRlLW1heC13aWR0aCwgMTQ0MHB4KTtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyLXNtYWxsLCAyMHB4KTtcblx0cGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyLXNtYWxsLCAyMHB4KTtcblxuXHRAbWVkaWEgcHJpbnQge1xuXG5cdFx0bWF4LXdpZHRoOiB1bnNldDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdH1cblxufVxuIiwiLy8gU2VjdGlvbiDigJQgZnVsbC1ibGVlZCBiYWNrZ3JvdW5kIHRvbmUgd3JhcHBlci5cbi8vXG4vLyBPbmUgb2YgdGhyZWUgc3RydWN0dXJhbCBsYXllcnMgKHNlY3Rpb24gLyB3cmFwcGVyIC8gY29tcG9uZW50KSwgZWFjaCBvd25pbmdcbi8vIGV4YWN0bHkgb25lIGpvYiAobG9ja2VkIDIwMjYtMDktMDgpOlxuLy9cbi8vICAgLnNlY3Rpb24gICAgICAgICBWRVJUSUNBTCByaHl0aG0gKyB0b25lLiBQYWRkaW5nLCBuZXZlciBtYXJnaW4g4oCUIHRoZSB0b25lXG4vLyAgICAgICAgICAgICAgICAgICAgaGFzIHRvIHBhaW50IGJlaGluZCB0aGUgc3BhY2UsIGFuZCBtYXJnaW4gd291bGQgcHV0IHRoZVxuLy8gICAgICAgICAgICAgICAgICAgIGdhcCBvdXRzaWRlIHRoZSBjb2xvdXJlZCBiYW5kIGFuZCBzcGxpdCBhZGphY2VudCBzYW1lLXRvbmVcbi8vICAgICAgICAgICAgICAgICAgICBiYW5kcyB0aGF0IGFyZSBtZWFudCB0byByZWFkIGFzIG9uZSBydW4uXG4vLyAgIC5zZWN0aW9uX19pbm5lciAgTEFURVJBTCBwYWRkaW5nLiBPUFQtSU4g4oCUIG9taXQgaXQgYW5kIHRoZSBjb250ZW50IHJlYWNoZXNcbi8vICAgICAgICAgICAgICAgICAgICB0aGUgc2VjdGlvbidzIG93biBlZGdlLiAoQmxvY2tlZCB0b2RheTsgc2VlIHRoZSBsZWdhY3lcbi8vICAgICAgICAgICAgICAgICAgICBhdXRvLXdyYXAgbm90ZSBiZWxvdy4pXG4vLyAgIC53cmFwcGVyICAgICAgICAgVGhlIGNvbnRlbnQgY29sdW1uLiBXaGljaGV2ZXIgZWxlbWVudCBjYXJyaWVzIGl0IGRlY2lkZXNcbi8vICAgICAgICAgICAgICAgICAgICBob3cgd2lkZSBcImZ1bGwgd2lkdGhcIiBtZWFucyBmb3IgZXZlcnl0aGluZyBiZW5lYXRoLlxuLy9cbi8vIFdIQVQgSVMgQSBTRUNUSU9OIGlzIGRlY2lkZWQgYnkgcG9zaXRpb24gaW4gdGhlIHJlbmRlcmVkIERPTSwgbm90IGJ5IGp1ZGdpbmdcbi8vIHdoZXRoZXIgc29tZXRoaW5nIGZlZWxzIGxpa2UgYSBwYWdlIGJhbmQ6IGEgZGlyZWN0IGNoaWxkIG9mIHRoZSBwYWdlLWZsb3dcbi8vIGNvbnRhaW5lciBpcyBhIHNlY3Rpb247IGFueXRoaW5nIGluc2lkZSB0aGUgY29udGVudCBjb2x1bW4gaXMgYSBkaXYuIEFcbi8vIHNlY3Rpb24gc3BhbnMgaXRzIFBBUkVOVCdzIGZ1bGwgd2lkdGgsIHdoYXRldmVyIHRoYXQgcGFyZW50IGlzIOKAlCBzbyBib3RoIG9mXG4vLyB0aGVzZSBhcmUgdGhlIHNhbWUgc3RydWN0dXJlIGF0IGRpZmZlcmVudCBsZXZlbHM6XG4vL1xuLy8gICBib2R5ID4gbWFpbiAgICAgICAgID4gc2VjdGlvbi5zZWN0aW9uID4gLnNlY3Rpb25fX2lubmVyICAgYmFuZHMgYXJlIDEwMHZ3XG4vLyAgIGJvZHkgPiBtYWluLndyYXBwZXIgPiBzZWN0aW9uLnNlY3Rpb24gICAgICAgICAgICAgICAgICAgICBiYW5kcyBzcGFuIHRoZSBjb2x1bW5cbi8vXG4vLyBUaGUgc2Vjb25kIGlzIHRoZSBQYXJhZ29uR2FtaW5nIC8gV2FyIER1bmdlb24gc2hhcGUg4oCUIGEgdmlzaWJsZSBjb250ZW50XG4vLyBjb2x1bW4gb24gYSBjb250cmFzdGluZyBib2R5LiBJdHMgYmFuZHMgYXJlIGZ1bGwtYmxlZWQgaW4gdGhlIG9ubHkgc2Vuc2Vcbi8vIHRoYXQgYXBwbGllcyB0aGVyZS4gQ29uc2VxdWVuY2U6IHRob3NlIHNpdGVzIGhhdmUgbm8gMTAwdncgYmFuZHMsIGJ5IGRlc2lnbi5cbi8vXG4vLyBPd25zIHZlcnRpY2FsIHJoeXRobSArIHRvbmUgb25seS4gVHdvIHRvbmUgdm9jYWJ1bGFyaWVzIGNvZXhpc3QgZHVyaW5nIHRoZSBzZWN0aW9uLXdhbGtcbi8vIG1pZ3JhdGlvbjogbGVnYWN5IGNvbG91ci1uYW1lcyAoLnNlY3Rpb24tLW5lYXItYmxhY2sgLyAuLS1vZmYtd2hpdGUgL1xuLy8gLi0tZ3JlZW4sIGZyb20gdGhlIHJldGlyZWQgQkVNLWNvbnZlcnQgZXJhKSBhbmQgdGhlIGN1cnJlbnQgc2VtYW50aWMgZ3JvdW5kc1xuLy8gKC5zZWN0aW9uLS1hbmNob3IgLyAuLS1icmlnaHQgLyAuLS1wcmltYXJ5KSB0aGUgZGVzaWduIHBoYXNlIG5vdyBhdXRob3JzXG4vLyBkaXJlY3RseS4gTmV3IGJyYW5kIHdvcmsgdXNlcyB0aGUgc2VtYW50aWMgZ3JvdW5kczsgY29sb3VyLW5hbWVzIGFyZSByZXRhaW5lZFxuLy8gZm9yIHNlY3Rpb25zIG5vdCB5ZXQgbWlncmF0ZWQuIEVhY2ggdGhlbWUgZGVmaW5lcyB0aGUgbWF0Y2hpbmcgLS17dG9rZW59LlxuLy9cbi8vIENPTlRFTlQgV1JBUFBFUiDigJQgYC5zZWN0aW9uX19pbm5lcmAgKGFkZGVkIDIwMjYtMDctMzApLiBUaGUgY2Fub25pY2FsIHdheVxuLy8gdG8gY29uc3RyYWluIHRoZSBzZWN0aW9uJ3MgY29udGVudCBjb2x1bW4gYXQgd3JhcHBlciB3aWR0aCArIGd1dHRlci5cbi8vIEV4cGxpY2l0IEJFTSBjaGlsZCBvZiBgLnNlY3Rpb25gLCBhcHBsaWVkIGluIG1hcmt1cDpcbi8vXG4vLyAgIDxzZWN0aW9uIGNsYXNzPVwic2VjdGlvbiBzZWN0aW9uLS1jYXJib25cIj5cbi8vICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbl9faW5uZXJcIj5cbi8vICAgICAgIOKApmNvbnRlbnTigKZcbi8vICAgICA8L2Rpdj5cbi8vICAgPC9zZWN0aW9uPlxuLy9cbi8vIEtlcHQgZXhwbGljaXQgcmF0aGVyIHRoYW4gYXV0by13cmFwcGluZyBldmVyeSBkaXJlY3QgPGRpdj4gY2hpbGQgYmVjYXVzZVxuLy8gYXV0by13cmFwIGZvcmNlZCBtYXJnaW46MCBhdXRvIG9udG8gZXZlcnkgY29udGVudCBlbGVtZW50LCB3aXBpbmcgdGhlaXJcbi8vIG93biBtYXJnaW4tYm90dG9tIHJ1bGVzIGFuZCBicmVha2luZyB2ZXJ0aWNhbCByaHl0aG0gaW5zaWRlIHRoZSBzZWN0aW9uLlxuLy9cbi8vIFRoZSBsZWdhY3kgYD4gZGl2YCBhdXRvLXdyYXAgcnVsZSBiZWxvdyBpcyByZXRhaW5lZCBmb3Igb2xkZXIgc2VjdGlvbnNcbi8vIHRoYXQgZG9uJ3QgdXNlIGAuc2VjdGlvbl9faW5uZXJgIHlldCDigJQgbWlycm9ycyB0aGUgLndyYXBwZXIgcHJpbWl0aXZlJ3Ncbi8vIHJ1bGVzIHBlciB0aGUgbm90ZSBmdXJ0aGVyIGRvd24uIE5ldyBzZWN0aW9ucyB1c2UgYC5zZWN0aW9uX19pbm5lcmAuXG4vL1xuLy8gVG9uZSBtb2RpZmllcnMgcmVmZXJlbmNlIGJyYW5kIGNvbG91ciBDU1MgY3VzdG9tIHByb3BlcnRpZXMuIEVhY2ggY2hpbGQgdGhlbWVcbi8vIGRlY2xhcmVzIHRoZSBicmFuZCBwYWxldHRlIGluIGl0cyBzZXR0aW5ncyBhcyA6cm9vdCBjdXN0b20gcHJvcGVydGllczsgdGhlXG4vLyBzZWN0aW9uIG1vZGlmaWVycyBiZWxvdyByZXNvbHZlIHRob3NlIGF0IHJlbmRlciB0aW1lLiBUaGVtZXMgdGhhdCBkb24ndFxuLy8gcHVibGlzaCBhIGdpdmVuIHRvbmUgc2ltcGx5IHdvbid0IGhhdmUgYSBzZWN0aW9uIHVzaW5nIGl0LlxuXG4uc2VjdGlvbiB7XG5cblx0cGFkZGluZy10b3A6IHZhcigtLXNlY3Rpb24tcGFkZGluZywgOTZweCk7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1zZWN0aW9uLXBhZGRpbmcsIDk2cHgpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1zZWN0aW9uLW1pbi1oZWlnaHQsIGF1dG8pO1xuXG5cdC8vIEV4cGxpY2l0IGNvbnRlbnQgd3JhcHBlciDigJQgdGhlIG5ldyBjb252ZW50aW9uLlxuXHQmX19pbm5lciB7XG5cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1zaXRlLW1heC13aWR0aCwgMTQ0MHB4KTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlci1zbWFsbCwgMjBweCk7XG5cdFx0cGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyLXNtYWxsLCAyMHB4KTtcblxuXHR9XG5cblx0Ly8gVGhlIGxlZ2FjeSBhdXRvLXdyYXAgdGhhdCB1c2VkIHRvIGxpdmUgaGVyZSB3YXMgUkVNT1ZFRCBvbiAyMDI2LTA5LTA4LlxuXHQvL1xuXHQvLyBJdCBhcHBsaWVkIHRoZSBjb2x1bW4gY29uc3RyYWludCB0byBhbnkgZGlyZWN0IDxkaXY+IGNoaWxkIGxhY2tpbmdcblx0Ly8gYC5zZWN0aW9uX19pbm5lcmAsIHdoaWNoIHNpbGVudGx5IGRlZmVhdGVkIHRoZSBvcHQtaW4gY29udHJhY3Qgc3RhdGVkIGF0XG5cdC8vIHRoZSB0b3Agb2YgdGhpcyBmaWxlOiBvbWl0dGluZyB0aGUgaW5uZXIgaXMgaG93IGEgYmFuZCdzIGNvbnRlbnQgcmVhY2hlc1xuXHQvLyB0aGUgc2VjdGlvbidzIG93biBlZGdlLCBhbmQgd2l0aCB0aGUgYXV0by13cmFwIHByZXNlbnQgb21pdHRpbmcgaXQganVzdFxuXHQvLyByZS1hcHBsaWVkIHRoZSBzYW1lIGxhdGVyYWwgcGFkZGluZyBvbmUgbGV2ZWwgZG93bi4gQmFuZHMgdGhhdCB3YW50ZWQgYVxuXHQvLyB0cnVlIGJsZWVkIGhhZCB0byBpbnZlbnQgYSBtb2RpZmllciBpbnN0ZWFkIOKAlCBBUlRTQUJFUlMnIGAtLWZpbGxgIHN0aWxsXG5cdC8vIGNhcnJpZXMgYG1heC13aWR0aDogbm9uZWAgb24gaXRzIGlubmVyIGZvciBleGFjdGx5IHRoYXQgcmVhc29uLCBhbmQgY2FuXG5cdC8vIG5vdyBkcm9wIGl0IHdoZW5ldmVyIHRoYXQgdGVtcGxhdGUgaXMgbmV4dCB0b3VjaGVkLlxuXHQvL1xuXHQvLyBBdWRpdGVkIGJlZm9yZSByZW1vdmFsIHJhdGhlciB0aGFuIGFmdGVyLiBPbmx5IHRoZW1lcyBvbiB0aGUgY2FtY29tLXYyXG5cdC8vIHBhcmVudCBzZWUgdGhpcyBmaWxlIGF0IGFsbCDigJQgdGhlIHYxIGZyYW1ld29yayBoYXMgbm8gYF9zZWN0aW9uLnNjc3NgLCBzb1xuXHQvLyBzYWJlcmNvLCBwYXJhZ29uX3YxLCB3YXItZHVuZ2VvbiwgcGFyYXR1cmEtZ2FtaW5nIGFuZFxuXHQvLyB1bHRpbWF0ZWdhbWluZ3BhcmFkaXNlIHdlcmUgbmV2ZXIgYWZmZWN0ZWQuIE9mIHRoZSBvbmVzIHRoYXQgZG86XG5cdC8vICAgYXJ0c2FiZXJzICAgICAgNjcgc2VjdGlvbnMgLyA4MSBgLnNlY3Rpb25fX2lubmVyYCByZWZzIOKAlCBvbmUgc2VjdGlvblxuXHQvLyAgICAgICAgICAgICAgICAgIHJlbGllZCBvbiB0aGUgYXV0by13cmFwIChgd29vY29tbWVyY2UvY2FydC9jYXJ0LWVtcHR5LnBocGApXG5cdC8vICAgICAgICAgICAgICAgICAgYW5kIHdhcyBnaXZlbiBhbiBleHBsaWNpdCBpbm5lciBmaXJzdC5cblx0Ly8gICBuZXJkd29ya3MgICAgICA5IHNlY3Rpb25zIC8gMCByZWZzIOKAlCBhbGwgbmluZSBjaGFuZ2UuIEFjY2VwdGVkOiB0aGUgdGhlbWVcblx0Ly8gICAgICAgICAgICAgICAgICBpcyBiZWluZyByZWJ1aWx0IGZyb20gc2NyYXRjaCwgYW5kIExJVkUgbmVyZHdvcmtzLnVrIGxvYWRzXG5cdC8vICAgICAgICAgICAgICAgICAgYC90aGVtZXMvY2FtY29tL2Nzcy9nbG9iYWwuY3NzYCAodGhlIHYxIHBhcmVudCksIHNvIG9ubHlcblx0Ly8gICAgICAgICAgICAgICAgICB0aGUgZGV2IHJlYnVpbGQgdGFyZ2V0IGlzIHRvdWNoZWQuXG5cdC8vICAgdGhlbWUtZmFjdG9yeSAgMCByZWFsIHVzYWdlcy4gVHdvIG1hdGNoZXMgaW4gYGRldmh1Yi1mZC1jb21waWxlci5waHBgIGFyZVxuXHQvLyAgICAgICAgICAgICAgICAgIHByb21wdCB0ZXh0IGluc2lkZSB0aGUgcmV0aXJlZCBGRCBnZW5lcmF0b3IsIG5vdCBtYXJrdXAg4oCUXG5cdC8vICAgICAgICAgICAgICAgICAgYW5kIHRoYXQgcHJvbXB0IGRvY3VtZW50ZWQgdGhlIGF1dG8td3JhcCBhcyBpbnRlbmRlZCBBUEksXG5cdC8vICAgICAgICAgICAgICAgICAgd2hpY2ggaXMgd2hlcmUgdGhlIGhhYml0IGNhbWUgZnJvbS5cblx0Ly8gICBjYW1jb20tdjIgICAgICAwLlxuXHQvL1xuXHQvLyBTdHJ1Y3R1cmFsIG1vZGlmaWVyIOKAlCBkcm9wIHRoZSB2ZXJ0aWNhbCByaHl0aG0gc28gYSBmdWxsLWJsZWVkIGNoaWxkXG5cdC8vIChlLmcuIGEgc3BsaXQgaGVybyB3aG9zZSBtZWRpYSBjb2x1bW4gc2hvdWxkIHJlYWNoIHRoZSBzZWN0aW9uIGVkZ2VzKVxuXHQvLyBjYW4gZmlsbCB0aGUgc2VjdGlvbidzIGZ1bGwgaGVpZ2h0LiBPdmVycmlkZXMgdGhlIC0tc2VjdGlvbi1wYWRkaW5nXG5cdC8vIGN1c3RvbSBwcm9wZXJ0eSB0aGUgYmFzZSBydWxlIHJlYWRzOyB0aGUgY2hpbGQgb3ducyBpdHMgb3duIGJyZWF0aGluZyByb29tLlxuXHQvL1xuXHQvLyDimqAgVEhJUyBERVNDUklQVElPTiBJUyBUUlVFIE9GIFRIRSBHTE9CQUwgT05MWS4gT3BlbiBhcyBvZiAyMDI2LTA5LTA4LlxuXHQvLyBBUlRTQUJFUlMgcmVkZWZpbmVzIGAtLWZsdXNoYCBpbiBpdHMgb3duIGxheWVyIHRvIGRvIGNvbnNpZGVyYWJseSBtb3JlOlxuXHQvLyB6ZXJvIHRoZSB2ZXJ0aWNhbCBwYWRkaW5nIEFORCBtYWtlIHRoZSBzZWN0aW9uIGEgZmxleCBjb2x1bW4gQU5EIHN0cmlwXG5cdC8vIGAuc2VjdGlvbl9faW5uZXJgJ3MgbWF4LXdpZHRoIGFuZCBsYXRlcmFsIHBhZGRpbmcgQU5EIHN0cmV0Y2ggdGhlIGlubmVyXG5cdC8vIGdyaWQuIFNvIG9uIHRoYXQgYnJhbmQgYC0tZmx1c2hgIGlzIGEgTEFURVJBTCBlc2NhcGUgYXMgd2VsbCBhcyBhXG5cdC8vIHZlcnRpY2FsIG9uZSwgd2hpY2ggaXMgYSBzZWNvbmQgbWVjaGFuaXNtIGZvciB3aGF0IG9taXR0aW5nXG5cdC8vIGAuc2VjdGlvbl9faW5uZXJgIGlzIHN1cHBvc2VkIHRvIGV4cHJlc3Mg4oCUIGFuZCBpdCBtZWFucyB5b3UgY2Fubm90XG5cdC8vIGFuc3dlciBcIndoaWNoIGJhbmRzIGFyZSBmdWxsLWJsZWVkP1wiIGJ5IGdyZXBwaW5nIGZvciBvbmUgdGhpbmcuXG5cdC8vXG5cdC8vIEl0IGFsc28gY3JlYXRlcyBhIGZsZXggY29udGV4dCBhbmQgZ2l2ZXMgYC5zZWN0aW9uX19pbm5lcmAgYGZsZXg6IDFgLlxuXHQvLyBBIGNvbnRhaW5lciB0aGF0IHR1cm5zIGl0c2VsZiBpbnRvIGZsZXggY2hhbmdlcyB3aGF0IGl0cyBjaGlsZHJlbidzXG5cdC8vIGBtYXJnaW46IDAgYXV0b2AgbWVhbnMg4oCUIHRoZSAyMDI2LTA5LTAzLzA0IGZhdWx0IHdoZXJlIGJhbmQgaGVhZGVyc1xuXHQvLyBzaWxlbnRseSBzaHJhbmsgZnJvbSAxNDAwcHggdG8gODAycHguIEFsbCBmb3VyIEFSVFNBQkVSUyBjb25zdW1lcnMgYXJlXG5cdC8vIHRhbGwgaGVyby1zdHlsZSBiYW5kcywgd2hpY2ggaXMgZXhhY3RseSB3aGVyZSB0aGF0IGJpdGVzLlxuXHQvL1xuXHQvLyBTZXR0bGUgYmVmb3JlIHJlbHlpbmcgb24gZWl0aGVyOiBkb2VzIHRoZSBnbG9iYWwgYWRvcHQgdGhlIGZ1bGxlclxuXHQvLyBjb250cmFjdCwgb3IgZG9lcyBBUlRTQUJFUlMgcmVuYW1lIGl0cyB2YXJpYW50PyBEbyBub3Qgd3JpdGUgb25lIG9mIHRoZW1cblx0Ly8gdXAgYXMgY29ycmVjdCBpbiB0aGUgbWVhbnRpbWUuXG5cblx0Ji0tZmx1c2gge1xuXG5cdFx0LS1zZWN0aW9uLXBhZGRpbmc6IDA7XG5cblx0fVxuXG5cdC8vIEJyYW5kLXRvbmUgbW9kaWZpZXJzIOKAlCBjb2xvdXItbmFtZWQsIG5ldmVyIHJvbGUtbmFtZWQuXG5cdC8vIEVhY2ggdGhlbWUgZGVmaW5lcyB0aGUgY29ycmVzcG9uZGluZyAtLXtjb2xvdXJ9IGN1c3RvbSBwcm9wZXJ0eS5cblxuXHQmLS1uZWFyLWJsYWNrIHtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5lYXItYmxhY2spO1xuXHRcdGNvbG9yOiB2YXIoLS1vZmYtd2hpdGUpO1xuXG5cdH1cblxuXHQmLS1vZmYtd2hpdGUge1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb2ZmLXdoaXRlKTtcblx0XHRjb2xvcjogdmFyKC0tbmVhci1ibGFjayk7XG5cblx0fVxuXG5cdCYtLWdyZWVuIHtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZWVuKTtcblx0XHRjb2xvcjogdmFyKC0tb2ZmLXdoaXRlKTtcblxuXHR9XG5cblx0Ji0tc2FmZnJvbiB7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYWZmcm9uKTtcblx0XHRjb2xvcjogdmFyKC0tbmVhci1ibGFjayk7XG5cblx0fVxuXG5cdCYtLWZvcmVzdCB7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3Jlc3QpO1xuXHRcdGNvbG9yOiB2YXIoLS1vZmYtd2hpdGUpO1xuXG5cdH1cblxuXHQvLyBTZW1hbnRpYyBncm91bmRzIOKAlCB0aGUgZGVzaWduLXBoYXNlIHZvY2FidWxhcnkgKG1vY2t1cC1hdXRob3JlZCkuIEVhY2hcblx0Ly8gdGhlbWUgZGVjbGFyZXMgdGhlIG1hdGNoaW5nIC0tYW5jaG9yIC8gLS1icmlnaHQgLyAtLXByaW1hcnkgY3VzdG9tIHByb3BzLlxuXG5cdCYtLWFuY2hvciB7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hbmNob3IpO1xuXHRcdGNvbG9yOiB2YXIoLS1icmlnaHQpO1xuXG5cdH1cblxuXHQmLS1icmlnaHQge1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnJpZ2h0KTtcblx0XHRjb2xvcjogdmFyKC0tYW5jaG9yKTtcblxuXHR9XG5cblx0Ji0tcHJpbWFyeSB7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcblx0XHRjb2xvcjogdmFyKC0tYnJpZ2h0KTtcblxuXHR9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdEhPVkVSXG5cblx0R2VuZXJhdGVzIGhvdmVyLCBmb2N1cywgYW5kIGFjdGl2ZSBzdGF0ZXMuXG5cdFBhc3MgJGluY2x1ZGUtYWN0aXZlOiB0cnVlIHRvIGFsc28gaW5jbHVkZVxuXHQ6YWN0aXZlIGFuZCAuaXMtYWN0aXZlIHN0YXRlcy5cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtaXhpbiBob3ZlcigkaW5jbHVkZS1hY3RpdmU6IGZhbHNlKSB7XG5cblx0QGlmICgkaW5jbHVkZS1hY3RpdmUpIHtcblxuXHRcdCY6dGFyZ2V0LFxuXHRcdCY6YWN0aXZlLFxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyxcblx0XHQmLmlzLWFjdGl2ZSB7XG5cblx0XHRcdEBjb250ZW50O1xuXG5cdFx0fVxuXG5cdH0gQGVsc2Uge1xuXG5cdFx0Jjp0YXJnZXQsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmhvdmVyIHtcblxuXHRcdFx0QGNvbnRlbnQ7XG5cblx0XHR9XG5cblx0fVxuXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHRCQUNLR1JPVU5EXG5cblx0U2hvcnRoYW5kIGZvciByZ2JhIGJhY2tncm91bmQgd2l0aCBvcGFjaXR5LlxuXG5cdFVzYWdlOiBAaW5jbHVkZSBiYWNrZ3JvdW5kKCRkYXJrLWNoYXJjb2FsLCAwLjgpO1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQG1peGluIGJhY2tncm91bmQoJGNvbG9yLCAkb3BhY2l0eTogMC41KSB7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsICRvcGFjaXR5KTtcblxufVxuIiwiQHVzZSAnLi4vZnVuY3Rpb25zJyBhcyAqO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHRTSVRFIEhFQURcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5zaXRlLWhlYWQge1xuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cblx0QG1lZGlhIHByaW50IHtcblxuXHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0fVxuXG5cdCZfX2FsZXJ0cyxcblx0Jl9fbWFpbiB7XG5cblx0XHQmX19pbm5lciB7XG5cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1heC13aWR0aDogdmFyKC0tc2l0ZS1tYXgtd2lkdGgsIDE0NDBweCk7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyLXNtYWxsLCAyMHB4KTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlci1zbWFsbCwgMjBweCk7XG5cblx0XHR9XG5cblx0fVxuXG5cdCZfX2FsZXJ0cyB7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRtaW4taGVpZ2h0OiA1MHB4O1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnNzY4Jykge1xuXG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cblx0XHR9XG5cblx0fVxuXG5cdCZfX21haW4ge1xuXG5cdFx0aGVpZ2h0OiA3NXB4O1xuXG5cdH1cblxuXHQmX19hY3Rpb25zIHtcblxuXHRcdC8vIFRIRSBQQVJFTlQgT1dOUyBUSEUgR0VPTUVUUlkgT0YgVEhFU0UgQ09OVFJPTFMg4oCUIGljb24gc2l6ZSwgdGFwLXRhcmdldFxuXHRcdC8vIGJveCwgdGhlIGFpciBiZXR3ZWVuIHRoZW0sIGFuZCB3aGVyZSB0aGUgYmFza2V0IGNvdW50IHNpdHMuIEEgYnJhbmRcblx0XHQvLyBzZXRzIENPTE9VUiBhbmQgbm90aGluZyBzdHJ1Y3R1cmFsOiBgZmlsbGAgb24gdGhlIGljb24sIGFuZCBvcHRpb25hbGx5XG5cdFx0Ly8gYSBiYWNrZ3JvdW5kIG9uIGEgY29udHJvbCBvciB0aGUgY291bnQuIEJlZm9yZSB0aGlzLCB0aHJlZSBicmFuZHMgZWFjaFxuXHRcdC8vIHNvbHZlZCB0aGUgc2FtZSB0aHJlZSBwcm9ibGVtcyBkaWZmZXJlbnRseSDigJQgQVJUU0FCRVJTIGFuZCBOZXJkd29ya3Ncblx0XHQvLyB3cm90ZSBieXRlLWlkZW50aWNhbCBgLS1pY29uLXNpemU6IDI0cHhgIGhlcmUsIGFuZCBQYXJhZ29uR2FtaW5nIHJvdXRlZFxuXHRcdC8vIGFyb3VuZCB0aGUgbGV2ZXIgZW50aXJlbHkgd2l0aCBgLnNpdGUtaGVhZF9fbWFpbiAuaWNvbiB7IDIycHggfWAgcGx1cyBhXG5cdFx0Ly8gNjZweCBib3ggYW5kIGEgMjZweCBzZWFyY2gtaWNvbiBleGNlcHRpb24uIEFsbCB0aHJlZSByZWplY3RlZCB0aGUgMjBweFxuXHRcdC8vIHRoZSBnbG9iYWwgYC5pY29uYCBwcmltaXRpdmUgZmFsbHMgYmFjayB0bywgd2hpY2ggaXMgdGhlIGV2aWRlbmNlIHRoYXRcblx0XHQvLyB0aGUgZGVmYXVsdCB3YXMgdGhlIHByb2JsZW0gcmF0aGVyIHRoYW4gdGhlIGJyYW5kcy5cblx0XHQvLyBDb250cmFjdDogd3AtY29udGVudC90aGVtZXMvQ0xBVURFLm1kLCBcIkhlYWRlciBhY3Rpb24gY29udHJvbHNcIi5cblx0XHQtLWljb24tc2l6ZTogMjRweDtcblx0XHQtLWFjdGlvbi1ib3g6IDQ0cHg7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdC8vIDVweCwgbm90IHRoZSAyNXB4IHRoaXMgY2FycmllZCB3aGlsZSB0aGUgY29udHJvbHMgd2VyZSBiYXJlIGljb25zLlxuXHRcdC8vIEFpciBiZXR3ZWVuIHR3byBpY29ucyBpcyBgY29sdW1uLWdhcCArICgtLWFjdGlvbi1ib3ggLSAtLWljb24tc2l6ZSlgXG5cdFx0Ly8gPSA1ICsgMjAgPSB0aGUgc2FtZSAyNXB4IGl0IHJlYWQgYXMgYmVmb3JlIOKAlCBidXQgdHdvIHRoaXJkcyBvZiBpdCBub3dcblx0XHQvLyBzaXRzIElOU0lERSB0aGUgdGFwIHRhcmdldHMgaW5zdGVhZCBvZiBiZWluZyBkZWFkIHNwYWNlIGJldHdlZW4gdGhlbS5cblx0XHQvLyBDaGFuZ2UgdGhlIGJveCBhbmQgdGhlIGFpciBmb2xsb3dzOyB0aGF0IGlzIHRoZSBwb2ludCBvZiBleHByZXNzaW5nIGl0XG5cdFx0Ly8gdGhpcyB3YXkgcm91bmQgcmF0aGVyIHRoYW4gYXMgYSBiYXJlIGdhcC5cblx0XHRjb2x1bW4tZ2FwOiA1cHg7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdFx0Ly8gU2l6ZSB0byB0aGUgY29udHJvbHM6IG5ldmVyIGdyb3csIG5ldmVyIHNocmluay4gVGhpcyB3YXMgYHdpZHRoOiAzMDBweGAsXG5cdFx0Ly8gaW5oZXJpdGVkIHZlcmJhdGltIGZyb20gdjEg4oCUIGEgZml4ZWQgd2lkdGggb24gYSBmbGV4IGNoaWxkLCB3aGljaCByZWFkc1xuXHRcdC8vIGFzIGEgcmVzZXJ2YXRpb24gYW5kIGlzIG5vdCBvbmUuIEl0IG1hZGUgdGhpcyBjbHVzdGVyIHRoZSBoZWFkZXIgbGluZSdzXG5cdFx0Ly8gc2hyaW5rIGFic29yYmVyLCBzbyBvbmUgcnVsZSByZXNvbHZlZCB0byAzMDBweCBvbiBQYXJhZ29uR2FtaW5nIChuYXZcblx0XHQvLyBncm93cyBmcm9tIGEgemVybyBiYXNpcykgYW5kIDI0Ny4wNnB4IG9uIEFSVFNBQkVSUyBhbmQgTmVyZHdvcmtzIChuYXZcblx0XHQvLyBzaXplZCBieSBpdHMgb3duIGNvbnRlbnQsIGJvdGggc2hyaW5rIHByb3BvcnRpb25hbGx5KS4gTm9uZSBvZiB0aGF0IHdhc1xuXHRcdC8vIGV2ZXIgdmlzaWJsZTogYG1hcmdpbi1sZWZ0OiBhdXRvYCArIGBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kYCBhbHJlYWR5XG5cdFx0Ly8gcGluIHRoZSBjb250cm9scyB0byB0aGUgaW5uZXIgY29udGFpbmVyJ3MgcmlnaHQgZWRnZSwgc28gdGhlIGRlY2xhcmVkXG5cdFx0Ly8gd2lkdGggb25seSBldmVyIHNldCB0aGUgbGVmdCBlZGdlIG9mIGFuIGludmlzaWJsZSBib3gg4oCUIDEwMy43cHggb2YgaXRcblx0XHQvLyBlbXB0eSBvbiBBUlRTQUJFUlMgYXQgMTQ0MCDigJQgYW5kIHRvb2sgdGhhdCBzcGFjZSBvZmYgdGhlIG5hdi4gU2l6ZWQgdG9cblx0XHQvLyBjb250ZW50LCB0aGUgY2x1c3RlciBjYW5ub3QgY29tcHJlc3MgaXRzIG93biBpY29ucyBob3dldmVyIG1hbnkgbWVudVxuXHRcdC8vIGl0ZW1zIGEgYnJhbmQgYWRkczsgYSBsb25nIG5hdiBub3cgc2hyaW5rcyB0aGUgbmF2LCB3aGljaCBjYW4gd3JhcCBhbmRcblx0XHQvLyBzY3JvbGwsIHJhdGhlciB0aGFuIHRocmVlIGNvbnRyb2xzIHRoYXQgY2Fubm90LlxuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblxuXHRcdC8vIEV2ZXJ5IGNvbnRyb2wgaXMgdGhlIHNhbWUgYm94IHdoYXRldmVyIGl0IGNvbnRhaW5zLCB3aGljaCBpcyB3aGF0IG1ha2VzXG5cdFx0Ly8gXCJhbGwgc2l6ZWQgYW5kIHBvc2l0aW9uZWQgdGhlIHNhbWVcIiB0cnVlIHJhdGhlciB0aGFuIGFzcGlyYXRpb25hbC4gVGhlXG5cdFx0Ly8gNDRweCBmbG9vciBpcyB0aGUgV0NBRyAyLjIgQUFBIHRhcmdldCBzaXplOyBhIGJhcmUgMjRweCBpY29uLCB3aGljaCBpc1xuXHRcdC8vIHdoYXQgdHdvIGJyYW5kcyBzaGlwcGVkLCBzaXRzIGV4YWN0bHkgb24gdGhlIEFBIG1pbmltdW0gd2l0aCBub3RoaW5nXG5cdFx0Ly8gc3BhcmUuIGBtaW4tYCByYXRoZXIgdGhhbiBgd2lkdGhgIHNvIGEgY29udHJvbCBob2xkaW5nIG1vcmUgdGhhbiBhblxuXHRcdC8vIGljb24gZ3Jvd3MgaW5zdGVhZCBvZiBjbGlwcGluZyDigJQgbm90aGluZyBkb2VzIHRvZGF5LCBiZWNhdXNlIHRoZSBjb3VudFxuXHRcdC8vIGlzIHRha2VuIG91dCBvZiBmbG93IGJlbG93LCBhbmQgdGhhdCBpcyBkZWxpYmVyYXRlOiBpdCBrZWVwcyB0aGUgYmFza2V0XG5cdFx0Ly8gdGhlIHNhbWUgd2lkdGggYXMgaXRzIG5laWdoYm91cnMuXG5cdFx0PiAqIHtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tYWN0aW9uLWJveCk7XG5cdFx0XHRtaW4taGVpZ2h0OiB2YXIoLS1hY3Rpb24tYm94KTtcblxuXHRcdH1cblxuXHRcdC5pY29uIHtcblxuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi1hbGw7XG5cblx0XHR9XG5cblx0XHQmX19iYXNrZXQge1xuXG5cdFx0XHQvLyBBbmNob3JlZCB0byB0aGUgQk9YLCBub3QgdG8gdGhlIGljb24uIFRoZSBpY29uIGlzIGNlbnRyZWQgaW5zaWRlIGFcblx0XHRcdC8vIGxhcmdlciBib3ggbm93LCBzbyBhbiBpY29uLXJlbGF0aXZlIG9mZnNldCB3b3VsZCBkcm9wIHRoZSBiYWRnZVxuXHRcdFx0Ly8gaW5zaWRlIHRoZSBnbHlwaC4gR2VvbWV0cnkgb25seSDigJQgYSBicmFuZCBzdXBwbGllcyB0aGUgYmFja2dyb3VuZFxuXHRcdFx0Ly8gYW5kIGNvbG91ciwgYW5kIG9uZSB0aGF0IHN1cHBsaWVzIG5laXRoZXIgZ2V0cyBsZWdpYmxlIGJhcmUgZGlnaXRzXG5cdFx0XHQvLyBpbiB0aGUgcmlnaHQgcGxhY2UgcmF0aGVyIHRoYW4gYSBicm9rZW4gcGlsbC5cblx0XHRcdCZfX2NvdW50IHtcblxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogNHB4O1xuXHRcdFx0XHRyaWdodDogNHB4O1xuXHRcdFx0XHRtaW4td2lkdGg6IDE4cHg7XG5cdFx0XHRcdHBhZGRpbmc6IDFweCA1cHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1waWxsLCA5OTlweCk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG59XG4iLCJAdXNlICcuLi9mdW5jdGlvbnMnIGFzICo7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdFNJVEUgTkFWXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uc2l0ZS1uYXYge1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGNvbHVtbi1nYXA6IDUwcHg7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cblx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzEwMjQnKSB7XG5cblx0XHRjb2x1bW4tZ2FwOiAwO1xuXG5cdH1cblxuXHQmX19sb2dvIHtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDE2MHB4O1xuXG5cdFx0Ly8g4pSA4pSAIFdoaWNoIG9mIHRoZSB0d28gbWFya3MgaXMgb24gc2NyZWVuIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXHRcdC8vXG5cdFx0Ly8gRG91YmxlZCBjbGFzcyAoYC5zaXRlLW5hdl9fbG9nby5zaXRlLW5hdl9fbG9nby0tbW9iaWxlYCkgcmF0aGVyIHRoYW5cblx0XHQvLyB0aGUgYmFyZSBtb2RpZmllciwgYW5kIHRoYXQgaXMgbm90IGNvc21ldGljLiBUaGUgcGFyZW50IHJlbmRlcnMgQk9USFxuXHRcdC8vIGEgZGVza3RvcCBhbmQgYSBtb2JpbGUgbG9nbyBhbmNob3IgYW5kIHJlbGllcyBvbiB0aGVzZSBydWxlcyB0byBzaG93XG5cdFx0Ly8gZXhhY3RseSBvbmU7IGEgYnJhbmQgdGhhdCB3cml0ZXMgYSBwbGFpbiBgLnNpdGUtbmF2X19sb2dvIHsgZGlzcGxheTpcblx0XHQvLyBmbGV4IH1gIOKAlCB3aGljaCBpcyB3aGF0IGEgbW9ja3VwIHByb2R1Y2VzLCBiZWNhdXNlIGEgbW9ja3VwIG9ubHkgZXZlclxuXHRcdC8vIGRyYXdzIG9uZSDigJQgdGllcyB0aGlzIG9uIHNwZWNpZmljaXR5IGFuZCB3aW5zIG9uIHNvdXJjZSBvcmRlciwgc2luY2Vcblx0XHQvLyB0aGUgYnJhbmQgc2hlZXQgbG9hZHMgYWZ0ZXIgZ2xvYmFsLiBUaGUgcmVzdWx0IGlzIGJvdGggbWFya3Mgc2lkZSBieVxuXHRcdC8vIHNpZGUuXG5cdFx0Ly9cblx0XHQvLyBJdCBzdGF5ZWQgaW52aXNpYmxlIHdoaWxlIFBhcmFnb25HYW1pbmcncyBsb2dvIGF0dGFjaG1lbnQgd2FzIGRlYWRcblx0XHQvLyBhbmQgYm90aCBhbmNob3JzIHJlbmRlcmVkIGVtcHR5LiBUaGUgbW9tZW50IGEgbG9nbyByZXNvbHZlZCwgdGhlXG5cdFx0Ly8gYnJhbmQgaGVhZGVyIHNob3dlZCB0d28uIEEgcnVsZSB3aG9zZSB3aG9sZSBqb2IgaXMgdG8gaGlkZSBvbmUgb2YgdHdvXG5cdFx0Ly8gdGhpbmdzIGhhcyB0byBvdXRyYW5rIHRoZSBwYWludCBhcHBsaWVkIHRvIGJvdGguXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzEwMjQnKSB7XG5cblx0XHRcdHdpZHRoOiA1MHB4O1xuXG5cdFx0XHQmLS1kZXNrdG9wLnNpdGUtbmF2X19sb2dvIHtcblxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmLS1tb2JpbGUuc2l0ZS1uYXZfX2xvZ28ge1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnMTAyNC1wbHVzJykge1xuXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdGltZyB7XG5cblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdG1heC1oZWlnaHQ6IDc1cHg7XG5cdFx0XHR3aWR0aDogYXV0bztcblxuXHRcdH1cblxuXHRcdC8vIFRleHQgZmFsbGJhY2sg4oCUIGBjYW1jb21fc2l0ZV9sb2dvX2h0bWwoKWAgcmVuZGVycyB0aGUgc2l0ZSBuYW1lIHdoZW4gbm9cblx0XHQvLyBsb2dvIGltYWdlIHJlc29sdmVzLCByYXRoZXIgdGhhbiBsZWF2aW5nIHRoZSBhbmNob3IgZW1wdHkuIEFuIGVtcHR5XG5cdFx0Ly8gYW5jaG9yIGlzIHplcm8td2lkdGggYW5kIGNvbGxhcHNlcyB0aGUgaGVhZGVyJ3MgbGF5b3V0IHNpbGVudGx5LCB3aGljaFxuXHRcdC8vIGlzIHdoYXQgUGFyYWdvbkdhbWluZyBzaGlwcGVkIHdoZW4gaXRzIGBjdXN0b21fbG9nb2AgcG9pbnRlZCBhdCBhblxuXHRcdC8vIGF0dGFjaG1lbnQgdGhhdCBkaWQgbm90IGV4aXN0LlxuXHRcdC8vXG5cdFx0Ly8gR2l2ZW4gbm8gc2l6ZSBpdCB3b3VsZCBpbmhlcml0IGJvZHkgY29weSBhbmQgcmVhZCBhcyBhIHN0cmF5IGxpbmssIHNvXG5cdFx0Ly8gaXQgdGFrZXMgZW5vdWdoIHdlaWdodCB0byBiZSByZWNvZ25pc2FibGUgYXMgYSB3b3JkbWFyay4gQSBicmFuZCB3aXRoIGFcblx0XHQvLyByZWFsIGxvZ28gbmV2ZXIgcmVuZGVycyB0aGlzLlxuXHRcdCYtdGV4dCB7XG5cblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdH1cblxuXHR9XG5cblx0Jl9fY2xvc2Uge1xuXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi1hbGwtLXF1aWNrO1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMjBweDtcblx0XHRyaWdodDogMzBweDtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdG9wYWNpdHk6IDA7XG5cblx0XHQmLmlzLWFjdGl2ZSB7XG5cblx0XHRcdG9wYWNpdHk6IDE7XG5cblx0XHR9XG5cblx0XHQuaWNvbiB7XG5cblx0XHRcdGhlaWdodDogMzBweDtcblx0XHRcdHdpZHRoOiAzMHB4O1xuXG5cdFx0fVxuXG5cdH1cblxuXHQmX19tZW51IHtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0Y29sdW1uLWdhcDogMjVweDtcblxuXHRcdC8vIOKUgOKUgCBIYW5kcyBvdmVyIHRvIHRoZSBidXJnZXIgYXQgdGhlIFNBTUUgYm91bmRhcnkgdGhlIGJ1cmdlciB1c2VzIOKUgOKUgOKUgOKUgFxuXHRcdC8vXG5cdFx0Ly8gVGhpcyB3YXMgYG1lZGlhLXF1ZXJ5KCc3NjgnKWAg4oCUIG1heC13aWR0aCA3Njcg4oCUIHdoaWxlIHRoZSBidXJnZXIgaGlkZXNcblx0XHQvLyBhdCBtaW4td2lkdGggMTAyNS4gVHdvIHJ1bGVzIG1lYW50IHRvIGhhbmQgb3ZlciB0byBlYWNoIG90aGVyLCB1c2luZ1xuXHRcdC8vIGRpZmZlcmVudCBudW1iZXJzLCBsZWF2aW5nIGEgMjU3cHggYmFuZCB3aGVyZSBCT1RIIHJlbmRlcjogdGhlIGZ1bGxcblx0XHQvLyBob3Jpem9udGFsIG1lbnUgYW5kIHRoZSBjb250cm9sIHRoYXQgb3BlbnMgdGhlIGRyYXdlciwgc2lkZSBieSBzaWRlLFxuXHRcdC8vIHR3byByb3V0ZXMgaW50byB0aGUgc2FtZSBuYXZpZ2F0aW9uLlxuXHRcdC8vXG5cdFx0Ly8gSXQgc3VyZmFjZWQgb24gQVJUU0FCRVJTLCB3aG9zZSA3OC1pdGVtIG1lbnUgbWVhc3VyZXMgNjMzcHggYXQgNzY4IGFuZFxuXHRcdC8vIGxlYXZlcyAzMHB4IGZvciBhbiBhY3Rpb25zIGNsdXN0ZXIgbmVlZGluZyA1MSDigJQgdGhlIGhlYWRlciByYW4gcGFzdCB0aGVcblx0XHQvLyB2aWV3cG9ydCBhbmQgdG9vayB0aGUgd2hvbGUgZG9jdW1lbnQgaW50byBob3Jpem9udGFsIHNjcm9sbCwgb24gZXZlcnlcblx0XHQvLyBwYWdlLCBhdCB0aGUgbW9zdCBjb21tb24gdGFibGV0IHdpZHRoIHRoZXJlIGlzLiBOZXJkd29ya3MgcmVuZGVyZWQgYm90aFxuXHRcdC8vIGNvbnRyb2xzIHRvbyBhbmQgc2ltcGx5IGhhZCBhIHNob3J0IGVub3VnaCBtZW51IG5vdCB0byBvdmVyZmxvdywgd2hpY2hcblx0XHQvLyBpcyB0aGUgdmVyc2lvbiBvZiB0aGlzIGZhdWx0IHRoYXQgc3Vydml2ZXMgYmVjYXVzZSBub3RoaW5nIGxvb2tzIHdyb25nLlxuXHRcdC8vXG5cdFx0Ly8gSGFuZGluZyBvdmVyIGF0IDEwMjQgcmF0aGVyIHRoYW4gcHVsbGluZyB0aGUgYnVyZ2VyIGJhY2sgdG8gNzY4OiB0aGVcblx0XHQvLyBidXJnZXIgYWxyZWFkeSB3b3JrcyBhdCB0aGVzZSB3aWR0aHMsIGFuZCB0aGUgYWx0ZXJuYXRpdmUgcmVpbnRyb2R1Y2VzXG5cdFx0Ly8gdGhlIG92ZXJmbG93IGZvciBhbnkgYnJhbmQgd2hvc2UgbmF2IGdyb3dzLiBBIG1lbnUgdGhhdCBmaXRzIHRvZGF5IGlzXG5cdFx0Ly8gbm90IGEgZ3VhcmFudGVlIGFib3V0IHRoZSBicmFuZCB0aGF0IGdldHMgYnVpbHQgbmV4dC5cblx0XHQvL1xuXHRcdC8vIERPVUJMRUQgQ0xBU1MsIGZvciB0aGUgc2FtZSByZWFzb24gYXMgdGhlIGxvZ28gYWJvdmUuIEEgYnJhbmQgdGhhdFxuXHRcdC8vIHdyaXRlcyBgLnNpdGUtbmF2X19tZW51IHsgZGlzcGxheTogZmxleCB9YCDigJQgd2hpY2ggaXMgd2hhdCBhIG1vY2t1cFxuXHRcdC8vIHByb2R1Y2VzLCBiZWNhdXNlIGEgbW9ja3VwIGhhcyBubyBnbG9iYWwgbGF5ZXIgdG8gaGFuZCBvdmVyIHRvIOKAlCB0aWVzXG5cdFx0Ly8gYSBzaW5nbGUtY2xhc3MgaGlkZSBvbiBzcGVjaWZpY2l0eSBhbmQgd2lucyBvbiBzb3VyY2Ugb3JkZXIuIFRoZSBydWxlXG5cdFx0Ly8gdGhlbiBkb2VzIG5vdGhpbmcgb24gZXhhY3RseSB0aGUgYnJhbmQgdGhhdCBuZWVkZWQgaXQuXG5cdFx0Ly9cblx0XHQvLyBQYXJhZ29uR2FtaW5nIHByb3ZlZCBpdDogaXQgY2FycmllZCBpdHMgb3duIGNvcHkgb2YgdGhpcyBoYW5kb3ZlciwgYW5kXG5cdFx0Ly8gZGVsZXRpbmcgdGhhdCBjb3B5IGFzIFwicmVkdW5kYW50XCIgcHV0IGJvdGggY29udHJvbHMgYmFjayBvbiBzY3JlZW4gYXRcblx0XHQvLyAxMDI0IOKAlCBiZWNhdXNlIGdsb2JhbCdzIHZlcnNpb24gY291bGQgbmV2ZXIgaGF2ZSB3b24uIFZlcmlmeWluZyB0aGF0XG5cdFx0Ly8gZ2xvYmFsIERFQ0xBUkVTIHRoZSBzYW1lIHJ1bGUgaXMgbm90IHRoZSBzYW1lIGFzIHZlcmlmeWluZyBnbG9iYWwnc1xuXHRcdC8vIHJ1bGUgVEFLRVMgRUZGRUNULCBhbmQgb25seSB0aGUgc2Vjb25kIG9uZSBtYXR0ZXJzLlxuXHRcdCYuc2l0ZS1uYXZfX21lbnUge1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnMTAyNCcpIHtcblxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmX19pdGVtIHtcblxuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi1hbGwtLXF1aWNrO1xuXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdFx0cGFkZGluZzogMCAwIDJweDtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0XHQvLyBgcGFkZGluZy1ib3R0b206IDJweGAgdXNlZCB0byBzaXQgaGVyZSBhbmQgaGFzIGJlZW4gcmVtb3ZlZC4gSXQgd2FzXG5cdFx0XHQvLyBJREVOVElDQUwgdG8gdGhlIGJhc2UgYHBhZGRpbmc6IDAgMCAycHhgIGFib3ZlLCBzbyBpdCBjaGFuZ2VkXG5cdFx0XHQvLyBub3RoaW5nIGZvciB0aGlzIGxheWVyIOKAlCBidXQgYC5zaXRlLW5hdl9fbWVudV9faXRlbTpob3ZlcmAgaXNcblx0XHRcdC8vIDAtMi0wIGFuZCBhIGJyYW5kJ3Mgb3duIGAuc2l0ZS1uYXZfX21lbnVfX2l0ZW0geyBwYWRkaW5nOiAwIH1gIGlzXG5cdFx0XHQvLyAwLTEtMCwgc28gb24gYW55IGJyYW5kIHRoYXQgemVyb2VzIHRoZSBiYXNlIHRoZSBob3ZlciBydWxlIHB1dCB0aGVcblx0XHRcdC8vIDJweCBiYWNrLiBXaXRoIHRoZSBgdHJhbnNpdGlvbi1hbGwtLXF1aWNrYCBhYm92ZSBhbmltYXRpbmcgaXQsIHRoZVxuXHRcdFx0Ly8gbGFiZWwgdmlzaWJseSBsaWZ0ZWQgb24gaG92ZXIg4oCUIGEgbW92ZW1lbnQgbm90aGluZyBpbiB0aGUgYnJhbmQnc1xuXHRcdFx0Ly8gc3R5bGVzaGVldCBhc2tlZCBmb3IgYW5kIG5vdGhpbmcgaW4gdGhpcyBvbmUgaW50ZW5kZWQuXG5cdFx0XHQvL1xuXHRcdFx0Ly8gUGFyYWdvbkdhbWluZyBoYWQgaXQgb24gZXZlcnkgbmF2IGl0ZW0uIFRoZSB0ZWxsIGZvciB0aGlzIHNoYXBlOiBhXG5cdFx0XHQvLyBkZWNsYXJhdGlvbiB0aGF0IGlzIGluZXJ0IHdoZXJlIGl0IGlzIHdyaXR0ZW4sIGJlY2F1c2UgaXQgcmVzdGF0ZXNcblx0XHRcdC8vIHRoZSBiYXNlLCBhbmQgdGhlcmVmb3JlIG9ubHkgZXZlciBzaG93cyB1cCBzb21ld2hlcmUgZWxzZS5cblx0XHRcdCY6aG92ZXIge1xuXG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxuXHQmX19idXJnZXIge1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyNXB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdHBhZGRpbmc6IDVweDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCcxMDI0LXBsdXMnKSB7XG5cblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHR9XG5cblx0XHQuaWNvbiB7XG5cblx0XHRcdGhlaWdodDogMzBweDtcblx0XHRcdHdpZHRoOiAzNXB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0fVxuXG5cdH1cblxufVxuIiwiQHVzZSAnLi4vZnVuY3Rpb25zJyBhcyAqO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHRERVNLVE9QIE5BVlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmRlc2t0b3AtbmF2IHtcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IGZpdC1jb250ZW50ICFpbXBvcnRhbnQ7XG5cdG1pbi13aWR0aDogNzUwcHg7XG5cdG1heC13aWR0aDogY2FsYygxMDB2dyAtIDEwMHB4KTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwIDE3MHB4IDAgMDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogbm9uZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0Jjo6YWZ0ZXIge1xuXG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0ei1pbmRleDogLTU7XG5cdFx0YW5pbWF0aW9uOiBkZXNrdG9wLW5hdi1zbGlkZS1pbiAwLjM1cyBlYXNlLWluLW91dDtcblxuXHRcdEBrZXlmcmFtZXMgZGVza3RvcC1uYXYtc2xpZGUtaW4ge1xuXG5cdFx0XHQwJSB7XG5cblx0XHRcdFx0cmlnaHQ6IDIwJTtcblxuXHRcdFx0fVxuXG5cdFx0XHQxMDAlIHtcblxuXHRcdFx0XHRyaWdodDogMDtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMTAwJTtcblx0XHR3aWR0aDogMjAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0fVxuXG5cdCZfX2lubmVyIHtcblxuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRoZWlnaHQ6IDc1cHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiA1MHB4IGF1dG8gMDtcblx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cblx0fVxuXG5cdCZfX21lbnUge1xuXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGhlaWdodDogY2FsYygxMDAlIC0gMTg1cHgpO1xuXHRcdHdpZHRoOiBmaXQtY29udGVudDtcblx0XHRtYXJnaW4tbGVmdDogMjMwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMjVweDtcblxuXHRcdCZfX2l0ZW0ge1xuXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdGNvbHVtbi1nYXA6IDI1cHg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDRweDtcblx0XHRcdGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHRcdC8vIFRoZSBhcmNoaXZlIGxpbmsgb3B0cyBPVVQgb2YgdGhlIHRyYW5zcGFyZW50IGJvdHRvbSBib3JkZXIgcmF0aGVyXG5cdFx0XHQvLyB0aGFuIG92ZXJyaWRpbmcgaXQuIFRoaXMgc2VsZWN0b3IgaXMgb25lIGNsYXNzIHBsdXMgb25lIGVsZW1lbnQsXG5cdFx0XHQvLyBzbyBhIGJhcmUgYC5kZXNrdG9wLW5hdl9fYXJjaGl2ZWAgaW4gYSBicmFuZCBzaGVldCBsb3NlcyB0byBpdCBvblxuXHRcdFx0Ly8gc3BlY2lmaWNpdHkgYW5kIGl0cyB1bmRlcmxpbmUgc2lsZW50bHkgbmV2ZXIgcGFpbnRzIOKAlCB3aGljaCBpc1xuXHRcdFx0Ly8gZXhhY3RseSB3aGF0IGhhcHBlbmVkLiBFeGNsdWRpbmcgaXQgaGVyZSBsZWF2ZXMgdGhlIGJyYW5kIHJ1bGVcblx0XHRcdC8vIHVuY29udGVzdGVkIGluc3RlYWQgb2YgYXNraW5nIGV2ZXJ5IGJyYW5kIHRvIG91dC1zcGVjaWZ5IHRoaXMgb25lLlxuXHRcdFx0YTpub3QoLmRlc2t0b3AtbmF2X19hcmNoaXZlKSxcblx0XHRcdHNwYW4ge1xuXG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24tYWxsLS1xdWljaztcblxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogM3B4O1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHRcdH1cblxuXHRcdFx0Lmljb24ge1xuXG5cdFx0XHRcdGhlaWdodDogMThweDtcblx0XHRcdFx0d2lkdGg6IDE4cHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC02cHg7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAzcHg7XG5cblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmX19wYW5lbCB7XG5cblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0XHQvLyBNZWFzdXJlZCBhdCByb3ctZ2FwIGBub3JtYWxgIOKAlCBpLmUuIFpFUk8uIEV2ZXJ5IGJpdCBvZiBhcHBhcmVudFxuXHRcdFx0Ly8gc3BhY2UgYmV0d2VlbiB0aGVzZSBpdGVtcyB3YXMgdGhlIGl0ZW0ncyBvd24gcGFkZGluZyBhbmQgYm90dG9tXG5cdFx0XHQvLyBib3JkZXIsIHNvIHRoZSBsaXN0IHJlYWQgYXMgY3JhbXBlZCBubyBtYXR0ZXIgd2hhdCBhIGJyYW5kIGRpZCB0b1xuXHRcdFx0Ly8gdGhlIHR5cGUuIE1hdGNoZXMgdGhlIGRyYXdlcidzIG93biByb3ctZ2FwIHNvIHRoZSB0d28gbGlzdHMgc2hhcmVcblx0XHRcdC8vIG9uZSByaHl0aG0uXG5cdFx0XHRyb3ctZ2FwOiAyMHB4O1xuXG5cdFx0XHQmLmlzLWFjdGl2ZSB7XG5cblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Ly8gSG9sZHMgLmRlc2t0b3AtbmF2X19kcmF3ZXItaXRlbXMgYW5kIG93bnMgdGhlIGxldmVsJ3MgaW5kZW50ICsgcnVsZS5cblx0XHQvLyBUaGUgZ3JpZCBpcyBvbiB0aGUgaW5uZXIgZWxlbWVudCBzbyB0aGlzIG9uZSBjYW4ga2VlcCBpdHMgYm9yZGVyIGFuZFxuXHRcdC8vIHBhZGRpbmcgd2l0aG91dCB0aG9zZSBiZWNvbWluZyBncmlkIHByb3BlcnRpZXMuXG5cdFx0Jl9fZHJhd2VyIHtcblxuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi1hbGwtLXF1aWNrO1xuXG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiBmaXQtY29udGVudDtcblx0XHRcdHBhZGRpbmctbGVmdDogMjVweDtcblx0XHRcdGJvcmRlci1sZWZ0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogQSBMT05HIERSQVdFUiBTQ1JPTExTIElOU1RFQUQgT0YgUlVOTklORyBPRkYgVEhFIEJPVFRPTS5cblx0XHRcdCAqXG5cdFx0XHQgKiBgaGVpZ2h0OiAxMDAlYCByZXNvbHZlcyBhZ2FpbnN0IGEgcGFyZW50IHRoYXQgaXMgYXMgdGFsbCBhcyB0aGVcblx0XHRcdCAqIERPQ1VNRU5UIOKAlCB0aGUgbmF2IG1lYXN1cmVkIDExLDM3MnB4IOKAlCBzbyB3aXRob3V0IGEgdmlld3BvcnRcblx0XHRcdCAqIGJvdW5kIGEgZHJhd2VyIHRhbGxlciB0aGFuIHRoZSBzY3JlZW4gc2ltcGx5IGNvbnRpbnVlZCBwYXN0IGl0XG5cdFx0XHQgKiB3aXRoIG5vdGhpbmcgdG8gc2Nyb2xsOiBvdmVyZmxvdy15IHdhcyBgdmlzaWJsZWAgb24gdGhlIGRyYXdlcixcblx0XHRcdCAqIHRoZSBtZW51IGFuZCB0aGUgbmF2IGFsaWtlLiBBdCAxMzY2eDc2OCB0aGUgNTgtaXRlbSBDaGFyYWN0ZXJzXG5cdFx0XHQgKiBsaXN0IGVuZGVkIGF0IDg1OHB4IGFuZCBpdHMgdGFpbCB3YXMgdW5yZWFjaGFibGUuXG5cdFx0XHQgKlxuXHRcdFx0ICogVGhlIGNhcCBpcyBvbiBtYXgtaGVpZ2h0IHNvIHNob3J0IGRyYXdlcnMgYXJlIHVudG91Y2hlZCwgYW5kIGl0XG5cdFx0XHQgKiBtYXR0ZXJzIG1vcmUgYXQgbmFycm93IHdpZHRocywgd2hlcmUgdGhlIHNpbmdsZS1jb2x1bW5cblx0XHRcdCAqIGFycmFuZ2VtZW50IGFib3ZlIG1ha2VzIGV2ZXJ5IGxvbmcgZHJhd2VyIHRhbGwgYnkgZGVzaWduLlxuXHRcdFx0ICovXG5cdFx0XHRtYXgtaGVpZ2h0OiAxMDB2aDtcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XG5cblx0XHRcdC8vIFRoZSBhcmNoaXZlIGxpbmsgaXMgbm93IGEgZGlyZWN0IGNoaWxkLCBhYm92ZSB0aGUgaXRlbSBncmlkIOKAlFxuXHRcdFx0Ly8gc2VlIHRoZSBub3RlIGluIGNhbWNvbS12Mi9oZWFkZXIucGhwLiBJdCBuZWVkcyBzZXBhcmF0aW5nIGZyb21cblx0XHRcdC8vIHRoZSBjb2x1bW5zIGJlbmVhdGggaXQ7IHdpdGhvdXQgdGhlIGdhcCBpdCByZWFkcyBhcyB0aGUgZmlyc3Rcblx0XHRcdC8vIHJvdyBvZiB0aGUgZ3JpZCBpdCB3YXMganVzdCBsaWZ0ZWQgb3V0IG9mLlxuXHRcdFx0PiAuZGVza3RvcC1uYXZfX2FyY2hpdmUge1xuXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cblx0XHRcdH1cblxuXHRcdFx0Ji5pcy1hY3RpdmUge1xuXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG5cblx0Ly8gQW4gT1JESU5BUlkgbWVudSBpdGVtIHRoZSBvcGVyYXRvciBoYXMgdGlja2VkIFwiQXJjaGl2ZSBsaW5rXCIgb24g4oCUIHRoZSB3YXlcblx0Ly8gb3V0IG9mIGEgZ3JvdXAgdG8gdGhlIGdyb3VwJ3Mgb3duIHBhZ2UuIE5vdGhpbmcgZ2VuZXJhdGVzIGl0OyBpdCBpcyBhXG5cdC8vIGN1c3RvbSBsaW5rIHBsYWNlZCBmaXJzdCBpbiB0aGUgc3ViLW1lbnUsIGFuZCB0aGlzIGNsYXNzIG9ubHkgbWFya3MgaXQgc29cblx0Ly8gdGhlIGJyYW5kIGNhbiB0ZWxsIGl0IGFwYXJ0IGZyb20gaXRzIHNpYmxpbmdzLlxuXHQvL1xuXHQvLyBEZWxpYmVyYXRlbHkgYW4gZWxlbWVudCBvZiAuZGVza3RvcC1uYXYgcmF0aGVyIHRoYW4gb2YgLmRlc2t0b3AtbmF2X19tZW51OlxuXHQvLyB0aGUgY2xhc3MgbGludCBjYXBzIEJFTSBhdCBibG9ja19fZWxlbWVudCwgYW5kIHRoZSBzdXJyb3VuZGluZ1xuXHQvLyBkZXNrdG9wLW5hdl9fbWVudV9fKiBuYW1lcyBwcmVkYXRlIHRoYXQgcnVsZSBhbmQgYXJlIGdyYW5kZmF0aGVyZWQuIE5ld1xuXHQvLyBjbGFzc2VzIGluIHRoaXMgZmlsZSB0YWtlIHRoZSBzaGFsbG93IGZvcm0uXG5cdC8vXG5cdC8vIFNldHMgTk8gZm9udC1zaXplIGFuZCBOTyBmYW1pbHkuIEl0IGFwcGVhcnMgYXQgdHdvIGRlcHRocyB3aXRoIGRpZmZlcmVudFxuXHQvLyBzY2FsZXMg4oCUIGJlc2lkZSB0aGUgc2Vjb25kLWxldmVsIGl0ZW1zIGluIGEgcGFuZWwsIGFuZCBpbnNpZGUgdGhlXG5cdC8vIHRoaXJkLWxldmVsIGdyaWQgaW4gYSBkcmF3ZXIg4oCUIHNvIHNpemUgYmVsb25ncyB0byB3aGljaGV2ZXIgbGV2ZWwgaXRcblx0Ly8gbGFuZHMgaW4uIE9ubHkgZW1waGFzaXMgaXMgdGhpcyBjbGFzcydzIGJ1c2luZXNzLCBhbmQgdGhlIGJyYW5kIHN1cHBsaWVzXG5cdC8vIHRoYXQuXG5cdCZfX2FyY2hpdmUge1xuXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi1hbGwtLXF1aWNrO1xuXG5cdFx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRcdHBhZGRpbmctYm90dG9tOiAycHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHQmOmhvdmVyIHtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvLyBUaGUgcnVuIG9mIHRoaXJkLWxldmVsIGl0ZW1zIGluc2lkZSBhIGRyYXdlci5cblx0Ly9cblx0Ly8gYGdyaWQtYXV0by1mbG93OiBjb2x1bW5gIHdpdGggRVhQTElDSVQgcm93cyBmaWxscyBhIGNvbHVtbiB0b3AgdG8gYm90dG9tXG5cdC8vIGJlZm9yZSBzdGFydGluZyB0aGUgbmV4dCBvbmUg4oCUIGRvd24sIHRoZW4gYWNyb3NzLiBXaXRob3V0IHRoZSBleHBsaWNpdFxuXHQvLyByb3dzIHRoZSBzYW1lIGRlY2xhcmF0aW9uIGRvZXMgdGhlIG9wcG9zaXRlOiBpdCBtYWtlcyBhIHNpbmdsZSByb3cgYW5kXG5cdC8vIGdyb3dzIGEgY29sdW1uIHBlciBpdGVtLCB3aGljaCBpcyB3aGF0IHB1c2hlZCBBUlRTQUJFUlMnIGZvdXItaXRlbVxuXHQvLyBFbGVjdHJvbmljcyBkcmF3ZXIgb2ZmIHRoZSByaWdodCBvZiB0aGUgdmlld3BvcnQuXG5cdC8vXG5cdC8vIENvbHVtbnMgYXJlIGltcGxpY2l0LCBjcmVhdGVkIG9ubHkgYXMgaXRlbXMgb3ZlcmZsb3cgdGhlIHJvdyBjb3VudCwgc28gYVxuXHQvLyB0d28taXRlbSBkcmF3ZXIgaXMgb25lIGNvbHVtbiB3aWRlIHdpdGggbm8gZW1wdHkgdHJhY2tzIGFuZCBubyBwaGFudG9tXG5cdC8vIGNvbHVtbi1nYXAgcGFkZGluZyBpdHMgd2lkdGguXG5cdC8vXG5cdC8vIEhvdyBtYW55IHJvd3MgYSBkcmF3ZXIgc3RhY2tzIGJlZm9yZSBpdCBvcGVucyBhbm90aGVyIGNvbHVtbi5cblx0Ly9cblx0Ly8gQSBISUdIIENPVU5UIE5FVkVSIE1BS0VTIEEgU0hPUlQgRFJBV0VSIFRBTExFUi4gQ29sdW1ucyBoZXJlIGFyZVxuXHQvLyBpbXBsaWNpdCwgY3JlYXRlZCBvbmx5IGFzIGl0ZW1zIG92ZXJmbG93IHRoZSByb3cgY291bnQsIHNvIGEgdGhyZWUtaXRlbVxuXHQvLyBkcmF3ZXIgaXMgb25lIGNvbHVtbiBvZiB0aHJlZSB3aGF0ZXZlciB0aGUgY2VpbGluZyBpcyBzZXQgdG8uIFRoZSBjb3VudFxuXHQvLyBvbmx5IGJpdGVzIG9uY2UgYSBkcmF3ZXIgaG9sZHMgbW9yZSBpdGVtcyB0aGFuIHJvd3Mg4oCUIGV4YWN0bHkgdGhlIG1vbWVudFxuXHQvLyBhbm90aGVyIGNvbHVtbiB3b3VsZCBvdGhlcndpc2Ugb3Blbi4gVGhhdCBpcyB3aHkgdGhpcyBpcyBhIGdsb2JhbCBmaWd1cmVcblx0Ly8gcmF0aGVyIHRoYW4gYSBwZXItYnJhbmQgb25lOiBldmVyeSBicmFuZCB1c2VzIHRoaXMgbmF2LCBhbmQgdGhlIGJyYW5kc1xuXHQvLyB3aXRoIHNob3J0IGxpc3RzIGFyZSB1bmFmZmVjdGVkIGJ5IHRoZSB2YWx1ZS5cblx0Ly9cblx0Ly8gMTAgVEFSR0VUUyBUV08gQ09MVU1OUywgd2hpY2ggaXMgdGhlIHNoYXBlIHRoZSBkZXNpZ24gd2FudHMuIEFSVFNBQkVSUydcblx0Ly8gbG9uZ2VzdCBkcmF3ZXIgaXMgQ2hhcmFjdGVycyBhdCAyMCBpdGVtcyDigJQgdGhlIDIwIGJlc3Qtc2VsbGluZyBjaGFyYWN0ZXJzXG5cdC8vIOKAlCBzbyAxMCByb3dzIHNwbGl0cyB0aGVtIGV2ZW5seS4gVGhlIGFyY2hpdmUgbGluayBpcyBOT1QgYW1vbmcgdGhlbTogaXRcblx0Ly8gc2l0cyBhYm92ZSB0aGlzIGdyaWQgYXMgaXRzIG93biByb3csIHNvIHRoZSBjb3VudCBoZXJlIGlzIGNhdGVnb3JpZXNcblx0Ly8gb25seS4gRXZlcnkgb3RoZXIgZHJhd2VyIG9uIHRoYXQgYnJhbmQgaXMgMTAgaXRlbXMgb3IgZmV3ZXIgYW5kIHN0YXlzIGFcblx0Ly8gc2luZ2xlIGNvbHVtbiwgd2hpY2ggaXMgdGhlIHBvaW50OiB0aGUgY2VpbGluZyBzaGFwZXMgdGhlIG9uZSBsaXN0IGxvbmdcblx0Ly8gZW5vdWdoIHRvIG5lZWQgaXQgYW5kIGxlYXZlcyB0aGUgcmVzdCBhbG9uZS5cblx0Ly9cblx0Ly8gU1RFUFBFRCBET1dOIEFUIDEyMDAsIGJlY2F1c2UgdGhlIGRyYXdlcidzIHdpZHRoIHJlcXVpcmVtZW50IGRvZXMgTk9UXG5cdC8vIHNocmluayB3aXRoIHRoZSBzY3JlZW4uIEl0cyBsZWZ0IGVkZ2UgaXMgc2V0IGJ5IHRoZSBwYW5lbCBjb2x1bW4gYmVzaWRlXG5cdC8vIGl0LCBzbyB0d28gY29sdW1ucyBuZWVkIGEgZml4ZWQgfjEwNzFweCBvZiByb29tIHdoZXRoZXIgdGhlIHZpZXdwb3J0IGlzXG5cdC8vIDE5MjAgb3IgMTAyNS4gVGhhdCBmaXRzIGNvbWZvcnRhYmx5IHRvIGFib3V0IDExMDAgYW5kIG92ZXJmbG93cyBieSA0NnB4XG5cdC8vIGF0IDEwMjUsIHRha2luZyB0aGUgd2hvbGUgcGFnZSBpbnRvIGhvcml6b250YWwgc2Nyb2xsIHdpdGggaXQg4oCUIHNvIGJlbG93XG5cdC8vIDEyMDAgdGhlIGRyYXdlciBmbG93cyB0b3AgdG8gYm90dG9tIGluIG9uZSBjb2x1bW4gaW5zdGVhZC5cblx0Ly9cblx0Ly8gU3RhdGVkIGFzIGBncmlkLWF1dG8tZmxvdzogcm93YCByYXRoZXIgdGhhbiBhIHZlcnkgbGFyZ2Ugcm93IGNvdW50OiBhXG5cdC8vIGxpdGVyYWwgbGlrZSBgcmVwZWF0KDU4LCDigKYpYCB3b3VsZCBiZSBhIG51bWJlciBib3Jyb3dlZCBmcm9tIG9uZSBicmFuZCdzXG5cdC8vIGxvbmdlc3QgbGlzdCBhbmQgbWVhbmluZ2xlc3MgdG8gdGhlIG5leHQuXG5cdCZfX2RyYXdlci1pdGVtcyB7XG5cblx0XHQtLW5hdi1kcmF3ZXItcm93czogMTA7XG5cblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG5cdFx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQodmFyKC0tbmF2LWRyYXdlci1yb3dzKSwgbWluLWNvbnRlbnQpO1xuXHRcdGNvbHVtbi1nYXA6IDI1cHg7XG5cdFx0cm93LWdhcDogMjBweDtcblx0XHRhbGlnbi1pdGVtczogc3RhcnQ7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnMTIwMCcpIHtcblxuXHRcdFx0Z3JpZC1hdXRvLWZsb3c6IHJvdztcblx0XHRcdGdyaWQtdGVtcGxhdGUtcm93czogbm9uZTtcblxuXHRcdH1cblxuXHR9XG5cblx0Ly8gV2FzIC5kZXNrdG9wLW5hdl9fbWVudV9fZHJhd2VyX19pdGVtLiBGbGF0dGVuZWQgaGVyZSBiZWNhdXNlIG1vdmluZyB0aGVcblx0Ly8gaXRlbXMgaW50byB0aGUgd3JhcHBlciBhYm92ZSBwdXQgdGhlIG9sZCBuYW1lIG9uIGEgY2hhbmdlZCBsaW5lLCBhbmQgdGhlXG5cdC8vIGxpbnQncyBibG9ja19fZWxlbWVudCBjYXAgb25seSBncmFuZGZhdGhlcnMgbGluZXMgbm9ib2R5IHRvdWNoZXMuIFRoZSBuZXdcblx0Ly8gbmFtZSBpcyBub3QgaW52ZW50ZWQg4oCUIGB2MS1oZWFkZXItcG9ydC5tZGAgYWxyZWFkeSBsaXN0cyB0aGlzIGV4YWN0IHJlbmFtZVxuXHQvLyBhcyBhIFBoYXNlIEQgZmxhdHRlbiB0YXJnZXQsIHNvIHRoaXMgZG9lcyBvbmUgb2YgdGhlbSBlYXJseS5cblx0Ly9cblx0Ly8gVGhlIHYxIGBjYW1jb21gIHBhcmVudCBzdGlsbCBlbWl0cyB0aGUgZGVlcCBuYW1lIGZyb20gaXRzIG93biBoZWFkZXIgYW5kXG5cdC8vIGl0cyBvd24gZnJhbWV3b3JrLyBidWlsZCwgYW5kIGlzIGRlbGliZXJhdGVseSBsZWZ0IGFsb25lLlxuXHQmX19kcmF3ZXItaXRlbSB7XG5cblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uLWFsbC0tcXVpY2s7XG5cblx0XHRvcGFjaXR5OiAwO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0XHQmLmlzLWFjdGl2ZSB7XG5cblx0XHRcdG9wYWNpdHk6IDE7XG5cblx0XHR9XG5cblx0fVxuXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHRNT0JJTEUgTkFWXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBCb3RoIHRoZSByb290IGRyYXdlciBhbmQgZWFjaCBzdWItcGFuZWwgYXJlIGZ1bGwtc2NyZWVuIHBvcG92ZXJzIOKAlCB0aGVcbi8vIHN1Yi1wYW5lbCByZW5kZXJzIG9uIHRvcCBvZiB0aGUgZHJhd2VyIGluIHRoZSBwb3BvdmVyIHRvcC1sYXllciAobmVzdGVkXG4vLyB2aWEgcG9wb3ZlcnRhcmdldCkgYW5kIHZpc3VhbGx5IHJlcGxhY2VzIGl0LiBUaGUgc2hhcmVkIHN0cnVjdHVyYWwgcnVsZXNcbi8vIChzaXplICsgc2xpZGUtaW4pIGdvIG9uIGJvdGggc2VsZWN0b3JzOyBlbGVtZW50IHJ1bGVzIChoZWFkZXIsIGxpc3QpXG4vLyBzdGF5IHVuZGVyIC5tb2JpbGUtbmF2IGFuZCBjb21waWxlIGZsYXQsIHNvIHRoZXkgbWF0Y2ggZWxlbWVudHMgaW5zaWRlXG4vLyAubW9iaWxlLW5hdl9fcGFuZWwgdG9vLlxuXG4ubW9iaWxlLW5hdixcbi5tb2JpbGUtbmF2X19wYW5lbCB7XG5cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGFuaW1hdGlvbjogbW9iaWxlLW5hdi1zbGlkZS1pbiAwLjJzIGVhc2UtaW4tb3V0O1xuXG5cdEBrZXlmcmFtZXMgbW9iaWxlLW5hdi1zbGlkZS1pbiB7XG5cblx0XHQwJSB7XG5cblx0XHRcdGxlZnQ6IC0xNTB2dztcblxuXHRcdH1cblxuXHRcdDEwMCUge1xuXG5cdFx0XHRsZWZ0OiAwO1xuXG5cdFx0fVxuXG5cdH1cblxufVxuXG4ubW9iaWxlLW5hdiB7XG5cblx0Jl9faGVhZGVyIHtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRoZWlnaHQ6IDU1cHg7XG5cblx0XHQmX190aXRsZSB7XG5cblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0Y29sdW1uLWdhcDogNXB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEwMCU7XG5cblx0XHRcdCZfX2ljb24ge1xuXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0aGVpZ2h0OiAxNXB4O1xuXHRcdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdFx0dG9wOiAxcHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRhbmltYXRpb246IG1vYmlsZS1uYXYtdGl0bGUtZW50ZXIgMC4ycyBlYXNlLWluLW91dDtcblxuXHRcdFx0XHRAa2V5ZnJhbWVzIG1vYmlsZS1uYXYtdGl0bGUtZW50ZXIge1xuXG5cdFx0XHRcdFx0MCUge1xuXG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cdFx0XHRcdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0MTAwJSB7XG5cblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMTtcblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdCZfX2Nsb3NlIHtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblxuXHRcdFx0YnV0dG9uIHtcblxuXHRcdFx0XHR3aWR0aDogNTBweDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAtNXB4O1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cblx0XHRcdH1cblxuXHRcdFx0Lmljb24ge1xuXG5cdFx0XHRcdGhlaWdodDogMjVweDtcblx0XHRcdFx0d2lkdGg6IDI1cHg7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHR9XG5cblx0Jl9fbGlzdCB7XG5cblx0XHQmX19pdGVtIHtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRjb2x1bW4tZ2FwOiAxMHB4O1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cblx0XHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cblx0XHRcdH1cblxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblxuXHRcdFx0fVxuXG5cdFx0XHRhLFxuXHRcdFx0YnV0dG9uIHtcblxuXHRcdFx0XHRsaW5lLWhlaWdodDogMTZweDtcblx0XHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHR9XG5cblx0XHRcdC5pY29uIHtcblxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdFx0d2lkdGg6IDE1cHg7XG5cdFx0XHRcdHRvcDogMXB4O1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG59XG4iLCJAdXNlICcuLi9mdW5jdGlvbnMnIGFzICo7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdEZPT1RFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZvb3RlciB7XG5cblx0bWluLWhlaWdodDogNDAwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdEBtZWRpYSBwcmludCB7XG5cblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdH1cblxuXHQmX19jdGEge1xuXG5cdFx0aGVpZ2h0OiA4MHB4O1xuXG5cdFx0Jl9faW5uZXIge1xuXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQmX19pbm5lciB7XG5cblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1hcmVhczpcblx0XHRcdCdmb290ZXItY29sdW1ucyBmb290ZXItY29sdW1ucyBmb290ZXItY29sdW1ucyBmb290ZXItcHJvbW8gZm9vdGVyLXByb21vJ1xuXHRcdFx0J2Zvb3Rlci1sZWdhbCBmb290ZXItbGVnYWwgZm9vdGVyLWxlZ2FsIGZvb3Rlci1sZWdhbCBmb290ZXItbGVnYWwnO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IDAgYXV0bztcblxuXHRcdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCc3NjgnKSB7XG5cblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1hcmVhczpcblx0XHRcdFx0J2Zvb3Rlci1wcm9tbydcblx0XHRcdFx0J2Zvb3Rlci1jb2x1bW5zJ1xuXHRcdFx0XHQnZm9vdGVyLWxlZ2FsJztcblx0XHRcdGNvbHVtbi1nYXA6IDA7XG5cblx0XHR9XG5cblx0fVxuXG5cdCZfX2NvbHVtbnMge1xuXG5cdFx0Z3JpZC1hcmVhOiBmb290ZXItY29sdW1ucztcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnNzY4Jykge1xuXG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG5cblx0XHR9XG5cblx0XHQmX19saXN0IHtcblxuXHRcdFx0bGkgKyBsaSB7XG5cblx0XHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmX19jdGEge1xuXG5cdFx0XHRncmlkLWNvbHVtbjogMSAvIC0xO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQmX19wcm9tbyB7XG5cblx0XHRncmlkLWFyZWE6IGZvb3Rlci1wcm9tbztcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdCZfX2xvZ28ge1xuXG5cdFx0XHRpbWcge1xuXG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0bWF4LXdpZHRoOiAzMDBweDtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxuXHQmX19sZWdhbCB7XG5cblx0XHRncmlkLWFyZWE6IGZvb3Rlci1sZWdhbDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0fVxuXG59XG4iLCJAdXNlICcuLi9mdW5jdGlvbnMnIGFzICo7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgIENBUlQgRFJBV0VSIOKAlCB1bml2ZXJzYWwgc3RydWN0dXJhbCBza2VsZXRvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vXG4vLyAgIFNsaWRlLWluIG1pbmktY2FydCBwYW5lbC4gQnJhbmQgdmlzdWFscyBsaXZlIGluIHRoZSBicmFuZCBzaWxvXG4vLyAgIChmcmFtZXdvcmstdjIvdGhlbWUve2JyYW5kfS9zY3NzL2NvbXBvbmVudHMvX2NhcnQtZHJhd2VyLnNjc3MpLlxuLy9cbi8vICAgTWFya3VwOiA8YXNpZGUgaWQ9XCJjYXJ0LWRyYXdlclwiIHBvcG92ZXI9XCJhdXRvXCIgY2xhc3M9XCJjYXJ0LWRyYXdlclwiPlxuLy8gICBTZWU6ICAgIG9ic2lkaWFuLXZhdWx0L1RoZW1lIEZhY3RvcnkvVGhlbWUgRmFjdG9yeSAtIENhcnQgRHJhd2VyLm1kXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uY2FydC1kcmF3ZXIge1xuXG5cdC8vIFVBLWRlZmF1bHQgcG9wb3ZlciByZXNldC5cblx0cG9zaXRpb246IGZpeGVkO1xuXHRpbnNldDogMCAwIDAgYXV0bztcblx0d2lkdGg6IG1pbigyOHJlbSwgMTAwdncpO1xuXHRtYXgtd2lkdGg6IDEwMHZ3O1xuXHRoZWlnaHQ6IDEwMHZoO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogbm9uZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNhcnQtZHJhd2VyLWJnLCAjZmZmKTtcblx0Y29sb3I6IHZhcigtLWNhcnQtZHJhd2VyLWZnLCBpbmhlcml0KTtcblxuXHQvLyBTbGlkZS1pbiBlbnRyeS9leGl0LlxuXHQvLyBVc2VzIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlIG9uIGRpc3BsYXkgKyBvdmVybGF5IHNvIHdlIGNhblxuXHQvLyBhbmltYXRlIGRpc3BsYXk6bm9uZSDihpQgZGlzcGxheTpibG9jayAocG9wb3ZlciB0b2dnbGUpIHNtb290aGx5LlxuXHR0cmFuc2xhdGU6IDEwMCUgMDtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjpcblx0XHR0cmFuc2xhdGUgMjUwbXMgZWFzZS1vdXQsXG5cdFx0b3BhY2l0eSAyMDBtcyBlYXNlLW91dCxcblx0XHRvdmVybGF5IDI1MG1zIGVhc2Utb3V0IGFsbG93LWRpc2NyZXRlLFxuXHRcdGRpc3BsYXkgMjUwbXMgZWFzZS1vdXQgYWxsb3ctZGlzY3JldGU7XG5cblx0Jjpwb3BvdmVyLW9wZW4ge1xuXG5cdFx0dHJhbnNsYXRlOiAwIDA7XG5cdFx0b3BhY2l0eTogMTtcblxuXHR9XG5cblx0QHN0YXJ0aW5nLXN0eWxlIHtcblxuXHRcdCY6cG9wb3Zlci1vcGVuIHtcblxuXHRcdFx0dHJhbnNsYXRlOiAxMDAlIDA7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvLyBCYWNrZHJvcCBvdmVybGF5ICh0aGUgOjpiYWNrZHJvcCBwc2V1ZG8tZWxlbWVudCBpcyBwYXJ0IG9mIHRoZVxuXHQvLyBwb3BvdmVyL2RpYWxvZyB0b3AgbGF5ZXIgcmVuZGVyaW5nKS5cblx0Jjo6YmFja2Ryb3Age1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlLW91dDtcblxuXHR9XG5cblx0Jjpwb3BvdmVyLW9wZW46OmJhY2tkcm9wIHtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcblxuXHR9XG5cblx0QHN0YXJ0aW5nLXN0eWxlIHtcblxuXHRcdCY6cG9wb3Zlci1vcGVuOjpiYWNrZHJvcCB7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG5cdFx0fVxuXG5cdH1cblxuXHQmX19pbm5lciB7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdH1cblxuXHQvLyDilIDilIAgSEVBREVSIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5cdCZfX2hlYWRlciB7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAxNXB4O1xuXHRcdHBhZGRpbmc6IDIwcHggMjVweDtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2FydC1kcmF3ZXItZGl2aWRlciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcblx0XHRmbGV4LXNocmluazogMDtcblxuXHR9XG5cblx0Jl9fdGl0bGUge1xuXG5cdFx0bWFyZ2luOiAwO1xuXHRcdGZsZXg6IDE7XG5cblx0fVxuXG5cdCZfX2Z1bGwtbGluayB7XG5cblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cblx0fVxuXG5cdCZfX2Nsb3NlIHtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR3aWR0aDogMzJweDtcblx0XHRoZWlnaHQ6IDMycHg7XG5cdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0fVxuXG5cdC8vIOKUgOKUgCBCT0RZIChzY3JvbGwgcmVnaW9uKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuXHQmX19ib2R5IHtcblxuXHRcdGZsZXg6IDE7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRwYWRkaW5nOiAyMHB4IDI1cHg7XG5cblx0XHQvLyBSZXNlcnZlIHJvb20gYWJvdmUgdGhlIHRvdGFscyByb3cgd2hlbiB0aGUgYm9keSBpcyBlbXB0eSAoZS5nLiBjcm9zcy1cblx0XHQvLyBzZWxsLW9ubHkgc2NlbmFyaW9zKSBzbyBpdCBkb2Vzbid0IGNvbGxhcHNlIG9uIGl0c2VsZi5cblx0XHRtaW4taGVpZ2h0OiAwO1xuXG5cdH1cblxuXHQvLyDilIDilIAgSVRFTVMgTElTVCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuXHQmX19pdGVtcyB7XG5cblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRnYXA6IDIwcHg7XG5cblx0fVxuXG5cdCZfX2l0ZW0ge1xuXG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDgwcHggMWZyIGF1dG87XG5cdFx0Z2FwOiAxNXB4O1xuXHRcdGFsaWduLWl0ZW1zOiBzdGFydDtcblxuXHRcdCZfX21lZGlhIHtcblxuXHRcdFx0aW1nIHtcblxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmX19ib2R5IHtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRnYXA6IDhweDtcblx0XHRcdG1pbi13aWR0aDogMDtcblxuXHRcdH1cblxuXHRcdCZfX3RpdGxlIHtcblxuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMztcblxuXHRcdFx0YSB7XG5cblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Jl9fdmFyaWFudCB7XG5cblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdG9wYWNpdHk6IDAuNztcblxuXHRcdH1cblxuXHRcdCZfX3F0eSB7XG5cblx0XHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGdhcDogOHB4O1xuXHRcdFx0bWFyZ2luLXRvcDogNHB4O1xuXG5cdFx0XHQmX19idXR0b24ge1xuXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0XHR3aWR0aDogMjhweDtcblx0XHRcdFx0aGVpZ2h0OiAyOHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FydC1kcmF3ZXItZGl2aWRlciwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0XHRcdCY6ZGlzYWJsZWQge1xuXG5cdFx0XHRcdFx0b3BhY2l0eTogMC40O1xuXHRcdFx0XHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHRcdCZfX3ZhbHVlIHtcblxuXHRcdFx0XHRtaW4td2lkdGg6IDIycHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Zm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0Jl9fcHJpY2Uge1xuXG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0bWFyZ2luLXRvcDogNHB4O1xuXG5cdFx0fVxuXG5cdFx0Jl9fcmVtb3ZlIHtcblxuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdHdpZHRoOiAyOHB4O1xuXHRcdFx0aGVpZ2h0OiAyOHB4O1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGFsaWduLXNlbGY6IHN0YXJ0O1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvLyDilIDilIAgRU1QVFkgU1RBVEUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cblx0Jl9fZW1wdHkge1xuXG5cdFx0cGFkZGluZzogNjBweCAyNXB4IDQwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0Jl9fdGl0bGUge1xuXG5cdFx0XHRtYXJnaW46IDAgMCAxMHB4O1xuXG5cdFx0fVxuXG5cdFx0Jl9fbGVhZCB7XG5cblx0XHRcdG1hcmdpbjogMCAwIDI1cHg7XG5cdFx0XHRvcGFjaXR5OiAwLjc7XG5cblx0XHR9XG5cblx0XHQmX19jdGEge1xuXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHR9XG5cblx0fVxuXG5cdC8vIOKUgOKUgCBDUk9TUy1TRUxMIFJFQ1MgU0xPVCAoZW1wdHkgYnkgZGVmYXVsdCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cblx0Jl9fcmVjcyB7XG5cblx0XHQmOmVtcHR5IHtcblxuXHRcdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdH1cblxuXHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNhcnQtZHJhd2VyLWRpdmlkZXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG5cblx0fVxuXG5cdC8vIOKUgOKUgCBUT1RBTFMgKHN0aWNreSBib3R0b20pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5cdCZfX3RvdGFscyB7XG5cblx0XHRwYWRkaW5nOiAyMHB4IDI1cHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNhcnQtZHJhd2VyLWRpdmlkZXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cblx0XHQmX19yb3cge1xuXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0YWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXHRcdFx0Z2FwOiAxNXB4O1xuXG5cdFx0XHQmLS1zdWJ0b3RhbCB7XG5cblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmX19sYWJlbCB7XG5cblx0XHRcdGZsZXg6IDE7XG5cblx0XHR9XG5cblx0XHQmX19ub3RlIHtcblxuXHRcdFx0bWFyZ2luOiA4cHggMCAwO1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0b3BhY2l0eTogMC43O1xuXG5cdFx0fVxuXG5cdH1cblxuXHQvLyDilIDilIAgTU9CSUxFIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5cdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCc0ODAnKSB7XG5cblx0XHR3aWR0aDogMTAwdnc7XG5cblx0fVxuXG59XG4iLCJAdXNlICcuLi9mdW5jdGlvbnMnIGFzICo7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRUSVRMRVxuXHRDcm9zcy1icmFuZCBoZWFkaW5nIHByaW1pdGl2ZS4gU3RydWN0dXJhbCBvbmx5IOKAlCB0aGUgc2l6ZSB0aWVycyBhcmVcblx0U1RVQlMgYXQgdGhlIGdsb2JhbCBsZXZlbDsgYWN0dWFsIGZvbnQtc2l6ZSArIGxpbmUtaGVpZ2h0ICsgdHJhY2tpbmdcblx0bGl2ZSBpbiBlYWNoIGJyYW5kJ3MgdGhlbWUgU0NTU1xuXHQoZnJhbWV3b3JrLXYyL3RoZW1lLzxicmFuZD4vc2Nzcy9jb21wb25lbnRzL190aXRsZS5zY3NzKS4gR2xvYmFsXG5cdG93bnMgb25seSB3aGF0J3MgdHJ1bHkgdW5pdmVyc2FsOiBhIGZ1bGwtd2lkdGggbGF5b3V0IGhvb2sgKyB0aGVcblx0dGllciBzZWxlY3RvcnMgYXMgcmVhY2hhYmxlIHN0dWJzIHNvIGBAZXh0ZW5kYCBhbmQgYXVkaXQgdG9vbGluZ1xuXHRjYW4gZGlzY292ZXIgdGhlbS5cblxuXHRUV08gTkFNSU5HIFNDSEVNRVMsIGRlbGliZXJhdGVseS5cblxuXHRUaGUgb3JpZ2luYWwgbGFkZGVyIGlzIG9yZGluYWwg4oCUIF9fcHJpbWFyeSB0aHJvdWdoIF9fcXVhdGVybmFyeSDigJRcblx0YW5kIHRob3NlIG5hbWVzIGFyZSBsb2FkLWJlYXJpbmcgaW4gc2hpcHBlZCBtYXJrdXAgYWNyb3NzIGJyYW5kcywgc29cblx0dGhleSBjYW5ub3QgYmUgcmVudW1iZXJlZC5cblxuXHRUaGUgb3JkaW5hbCBzZXF1ZW5jZSBib3R0b21zIG91dCBhdCBfX3F1YXRlcm5hcnksIHdoaWNoIGJyYW5kcyBtYXAgdG9cblx0dGhlaXIgQkFTRSBzaXplLiBUaGF0IGxlZnQgdGhlIHR3byBzY2FsZSBzdGVwcyBBQk9WRSBiYXNlIHdpdGggbm8gdGllclxuXHRhdCBhbGw6IGEgY29tcG9uZW50IHNpemVkIGJldHdlZW4gYmFzZSBhbmQgdGhlIHRlcnRpYXJ5IHN0ZXAgaGFkXG5cdG5vd2hlcmUgdG8gbGFuZCBhbmQgd2FzIGZvcmNlZCB0byBoYXJkY29kZSBhIGxpdGVyYWwuIFRoYXQgaXMgZXhhY3RseVxuXHRob3cgQVJUU0FCRVJTIGVuZGVkIHVwIHdpdGggNTE3IGxpdGVyYWwgZm9udCBzaXplcyBhZ2FpbnN0IDExMVxuXHR0b2tlbi1iYXNlZCBvbmVzLlxuXG5cdEluc2VydGluZyB0aGUgbWlzc2luZyBzdGVwcyBpbnRvIHRoZSBvcmRpbmFsIHJ1biB3b3VsZCBzaGlmdCB3aGF0XG5cdGV2ZXJ5IGV4aXN0aW5nIG9yZGluYWwgbWVhbnMsIHNvIHRoZSBuZXcgdGllcnMgYXJlIG5hbWVkIGZvciB0aGUgdG9rZW5cblx0dGhleSBjYXJyeSBpbnN0ZWFkIOKAlCBfX3N1YmhlYWRpbmcgYW5kIF9fbGFyZ2UuIFNlbGYtZGVzY3JpYmluZywgYW5kXG5cdG5vbi1icmVha2luZy4gUHJlZmVyIHRoZSB0b2tlbi1uYW1lZCBmb3JtIGZvciBhbnl0aGluZyBuZXc7IHRoZVxuXHRvcmRpbmFscyBzdGF5IGZvciB3aGF0IGFscmVhZHkgc2hpcHMuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnRpdGxlIHtcblxuXHR3aWR0aDogMTAwJTtcblxuXHQmX19kaXNwbGF5LFxuXHQmX19oZXJvLFxuXHQmX19wcmltYXJ5LFxuXHQmX19zZWNvbmRhcnksXG5cdCZfX3RlcnRpYXJ5LFxuXHQmX19zdWJoZWFkaW5nLFxuXHQmX19sYXJnZSxcblx0Jl9fcXVhdGVybmFyeSB7XG5cblx0XHQvLyBUaWVyIHNpemUgKyBsaW5lLWhlaWdodCArIHRyYWNraW5nIGFyZSBzZXQgcGVyLWJyYW5kLlxuXG5cdH1cblxufVxuIiwiLy8gRnJhbWV3b3JrIGdsb2JhbCDigJQgLmZvcm0gYmxvY2sgc2tlbGV0b25cbi8vXG4vLyAuZm9ybSBpcyB0aGUgbWFzdGVyIGJsb2NrIGZvciBhbGwgZm9ybSBzdHJ1Y3R1cmUuIEV2ZXJ5IGZvcm0tYWRqYWNlbnRcbi8vIGNsYXNzIGlzIGFuIGVsZW1lbnQgb2YgLmZvcm0gb3IgYSBtb2RpZmllciBvZiBhbiBlbGVtZW50LiBUaGUgcHJldmlvdXNcbi8vIHNjYXR0ZXJlZCBlY29zeXN0ZW0gKC5mb3JtLWZpZWxkLCAuZm9ybS1sYWJlbCwgLmZvcm0taW5wdXQsIC5mb3JtLXJvdyxcbi8vIC5mb3JtLWlucHV0LXdyYXAsIC5mb3JtLWFjdGlvbnMsIC5mb3JtLWdyaWQsIC5mb3JtLWhlbHAsIC5mb3JtLWRpdmlkZXIsXG4vLyAuZm9ybS1jb3VudHJ5LCAuZm9ybS1zaWduaW4tbm90ZSkgaXMgY29uc29saWRhdGVkOiBlYWNoIGJlY29tZXMgYW5cbi8vIGVsZW1lbnQgb2YgLmZvcm0uXG4vL1xuLy8gQ2Fub25pY2FsIGVsZW1lbnRzOlxuLy8gICAuZm9ybSAgICAgICAgICAgICAgICAgICAg4oCUIHRoZSBmb3JtIGJsb2NrXG4vLyAgIC5mb3JtX19yb3cgICAgICAgICAgICAgICDigJQgYSBmaWVsZCByb3cgKGxhYmVsICsgaW5wdXQgKyBoZWxwIHR1cGxlKVxuLy8gICAuZm9ybV9fcm93LS1pbmxpbmUgICAgICAg4oCUIGlubGluZSByb3cgKGxhYmVsICsgaW5wdXQgb24gb25lIGxpbmUpXG4vLyAgIC5mb3JtX19yb3ctLWRpdmlkZWQgICAgICDigJQgcm93IHdpdGggYSBkYXNoZWQgaGFpcmxpbmUgdG9wXG4vLyAgIC5mb3JtX19ncmlkICAgICAgICAgICAgICDigJQgZ3JpZCBsYXlvdXQgZm9yIG11bHRpcGxlIHJvd3Ncbi8vICAgLmZvcm1fX2dyaWQtLTIgLyAtLTMgICAgIOKAlCBncmlkIG1vZGlmaWVycyAoMi1jb2wgLyAzLWNvbCAvIGV0Yy4pXG4vLyAgIC5mb3JtX19yb3ctLWZ1bGwgICAgICAgICDigJQgZnVsbC13aWR0aCByb3cgaW5zaWRlIGEgZ3JpZCAoc3BhbnMgY29scylcbi8vICAgLmZvcm1fX2xhYmVsICAgICAgICAgICAgIOKAlCBsYWJlbFxuLy8gICAuZm9ybV9fbGFiZWwtcmVxICAgICAgICAg4oCUIHJlcXVpcmVkLW1hcmtlciBnbHlwaCBpbnNpZGUgYSBsYWJlbFxuLy8gICAuZm9ybV9fbGFiZWwtb3B0ICAgICAgICAg4oCUIG9wdGlvbmFsLW1hcmtlciBnbHlwaCBpbnNpZGUgYSBsYWJlbFxuLy8gICAuZm9ybV9faW5wdXQgICAgICAgICAgICAg4oCUIDxpbnB1dD4gY29udHJvbFxuLy8gICAuZm9ybV9faW5wdXQtLWZvY3VzZWQgICAg4oCUIGZvY3VzZWQtc3RhdGUgbW9kaWZpZXJcbi8vICAgLmZvcm1fX3NlbGVjdCAgICAgICAgICAgIOKAlCA8c2VsZWN0PiBjb250cm9sXG4vLyAgIC5mb3JtX190ZXh0YXJlYSAgICAgICAgICDigJQgPHRleHRhcmVhPiBjb250cm9sXG4vLyAgIC5mb3JtX19oZWxwICAgICAgICAgICAgICDigJQgaGVscCB0ZXh0IGJlbmVhdGggYSBmaWVsZFxuLy8gICAuZm9ybV9faW5wdXQtd3JhcCAgICAgICAg4oCUIHdyYXBwZXIgYXJvdW5kIGlucHV0ICsgYWRvcm5tZW50cy90b2dnbGVzXG4vLyAgIC5mb3JtX19pbnB1dC1hZG9ybiAgICAgICDigJQgZGVjb3JhdGl2ZSBhZG9ybm1lbnQgKGN1cnJlbmN5LCB1bml0LCBpY29ucylcbi8vICAgLmZvcm1fX2lucHV0LXRvZ2dsZSAgICAgIOKAlCBpbnRlcmFjdGl2ZSB0b2dnbGUgYnV0dG9uIChzaG93L2hpZGUgcGFzc3dvcmQpXG4vLyAgIC5mb3JtX19tYXRjaCAgICAgICAgICAgICDigJQgdmFsaWRhdGlvbi1tYXRjaCBpbmRpY2F0b3Jcbi8vICAgLmZvcm1fX2NvdW50cnkgICAgICAgICAgIOKAlCBjb3VudHJ5L3JlZ2lvbiBzZWxlY3RvciB3cmFwcGVyXG4vLyAgIC5mb3JtX19jb3VudHJ5LWZsYWcgICAgICDigJQgZmxhZyBnbHlwaCBpbnNpZGUgY291bnRyeSB3cmFwcGVyXG4vLyAgIC5mb3JtX19zaWduaW4tbm90ZSAgICAgICDigJQgc2lnbi1pbiBwcm9tcHQgcm93IGJlbmVhdGggYSBmaWVsZHNldFxuLy8gICAuZm9ybV9fYWN0aW9ucyAgICAgICAgICAg4oCUIGJ1dHRvbiByb3dcbi8vICAgLmZvcm1fX2RpdmlkZXIgICAgICAgICAgIOKAlCBoYWlybGluZSBkaXZpZGVyIGJldHdlZW4gc2VjdGlvbnNcbi8vXG4vLyBTdHlsZSB2YXJpYW50cyAoZm9ybS1sZXZlbCBtb2RpZmllcnMpOlxuLy8gICAuZm9ybSAoZGVmYXVsdCkgICAgICAgICAg4oCUIGJveC1zdHlsZSBmb3JtIChjaGVja291dCwgdHJhbnNhY3Rpb25hbClcbi8vICAgLmZvcm0tLXVuZGVybGluZSAgICAgICAgIOKAlCB1bmRlcmxpbmUtc3R5bGUgZm9ybSAobXktYWNjb3VudCxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlbWVudC1tb2RlIHN1cmZhY2VzKVxuLy9cbi8vIFRoaXMgZ2xvYmFsIGZpbGUgY2FycmllcyBTVFJVQ1RVUkFMIGJvbmVzIG9ubHkg4oCUIGxheW91dCwgcG9zaXRpb25pbmcsXG4vLyByZXNldHMuIEJyYW5kIHNpbG9zIHN1cHBseSBjb2xvdXJzLCBib3JkZXJzLCB0eXBvZ3JhcGh5LCBmb2N1cyBzaWduYWwuXG5cbi5mb3JtIHtcblxuXHQvLyBTdHJ1Y3R1cmFsIG9ubHkg4oCUIG5vIGNvbG91ciwgbm8gdHlwb2dyYXBoeSwgbm8gYm9yZGVyIHN0eWxlIGF0IGdsb2JhbC5cblxuXHQmX19yb3cge1xuXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHR9XG5cblx0XHQvLyBGdWxsLXdpZHRoIHJvdyBtb2RpZmllciDigJQgYXBwbGllZCB0byBhIC5mb3JtX19yb3cgaW5zaWRlIGFcblx0XHQvLyAuZm9ybV9fZ3JpZCB0byBzcGFuIGFsbCBjb2x1bW5zLiBOby1vcCBvdXRzaWRlIGEgZ3JpZCBwYXJlbnQuXG5cdFx0Ji0tZnVsbCB7XG5cblx0XHRcdGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cblx0XHR9XG5cblx0fVxuXG5cdCZfX2dyaWQge1xuXG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRnYXA6IDIwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHR9XG5cblx0Jl9fbGFiZWwge1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cdFx0Z2FwOiA4cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogOHB4O1xuXG5cdH1cblxuXHQmX19pbnB1dCxcblx0Jl9fc2VsZWN0LFxuXHQmX190ZXh0YXJlYSB7XG5cblx0XHR3aWR0aDogMTAwJTtcblx0XHRvdXRsaW5lOiBub25lO1xuXG5cdH1cblxuXHQmX190ZXh0YXJlYSB7XG5cblx0XHRyZXNpemU6IHZlcnRpY2FsO1xuXG5cdH1cblxuXHQmX19zZWxlY3Qge1xuXG5cdFx0YXBwZWFyYW5jZTogbm9uZTtcblxuXHR9XG5cblx0Jl9faGVscCB7XG5cblx0XHRtYXJnaW4tdG9wOiA2cHg7XG5cblx0fVxuXG5cdCZfX2lucHV0LXdyYXAge1xuXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdH1cblxuXHQmX19pbnB1dC1hZG9ybiB7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0cmlnaHQ6IDEycHg7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNnB4O1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuXHR9XG5cblx0Jl9faW5wdXQtdG9nZ2xlIHtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRyaWdodDogMTBweDtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHR9XG5cblx0Jl9fY291bnRyeSB7XG5cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0fVxuXG5cdCZfX2NvdW50cnktZmxhZyB7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogMTRweDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cblx0fVxuXG5cdCZfX2FjdGlvbnMge1xuXG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogMTRweDtcblx0XHRtYXJnaW4tdG9wOiAyOHB4O1xuXG5cdH1cblxufVxuIiwiQHVzZSAnLi4vZnVuY3Rpb25zJyBhcyAqO1xuXG4vLyDilIDilIAgTW9kYWwg4oCUIHBhcmVudCBjaHJvbWUsIHN0cnVjdHVyYWwgb25seSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vXG4vLyBXSFkgVEhJUyBJUyBJTiBHTE9CQUwuIGBjYW1jb20tdjIvZm9vdGVyLnBocGAgaW5jbHVkZXNcbi8vIGBwYXJ0aWFscy9tb2RhbC1zZWFyY2gucGhwYCBvbiBFVkVSWSBicmFuZCwgYW5kIGBoZWFkZXIucGhwYCByZW5kZXJzIHRoZVxuLy8gdHJpZ2dlciB0aGF0IG9wZW5zIGl0LiBUaGlzIGluZGV4J3Mgb3duIHJ1bGUgaXMgdGhhdCBhbnkgY2xhc3Mtcm9vdCB0aGVcbi8vIHBhcmVudCByZW5kZXJzIGJlbG9uZ3MgaGVyZSDigJQgYGNhcnQtZHJhd2VyYCBpcyBoZXJlIGZvciBleGFjdGx5IHRoYXQgcmVhc29uXG4vLyDigJQgYW5kIHRoZSBtb2RhbCBzaW1wbHkgbmV2ZXIgd2FzLlxuLy9cbi8vIFRoZSBjb25zZXF1ZW5jZSB3YXMgbm90IHN1YnRsZS4gVGhlIG9ubHkgYC5tb2RhbGAgcnVsZXMgaW4gdGhlIGNvZGViYXNlIGxpdmVkXG4vLyBpbiBgdGhlbWUvYXJ0c2FiZXJzL3Njc3MvY29tcG9uZW50cy9fc2l0ZS1zZWFyY2guc2Nzc2AsIGEgQlJBTkQgc2lsby4gU28gb25cbi8vIEFSVFNBQkVSUyB0aGUgc2VhcmNoIG1vZGFsIHdvcmtlZCwgYW5kIG9uIGV2ZXJ5IG90aGVyIGJyYW5kIHRoZSBwYXJlbnRcbi8vIGVtaXR0ZWQgYSBmdWxsIHNlYXJjaCBmb3JtIHdpdGggbm8gcG9zaXRpb25pbmcsIG5vIGhpZGluZyBhbmQgbm8gb3ZlcmxheSDigJRcbi8vIHdoaWNoIHJlbmRlcnMgYXMgYSBzdHJheSBzZWFyY2ggYm94IHNpdHRpbmcgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSwgYmVsb3dcbi8vIHRoZSBmb290ZXIsIG9uIGV2ZXJ5IHNpbmdsZSBwYWdlIG9mIHRoZSBzaXRlLiBQYXJhZ29uR2FtaW5nIHNoaXBwZWQgdGhhdCB3YXkuXG4vL1xuLy8gU1RSVUNUVVJFIE9OTFkuIFRoaXMgZ2l2ZXMgdGhlIG1vZGFsIGl0cyBtZWNoYW5pY3M6IGhpZGRlbiB1bnRpbCBvcGVuZWQsXG4vLyBjb3ZlcmluZyB0aGUgdmlld3BvcnQsIGNsb3NhYmxlLCB3aXRoIGl0cyBwYW5lbCBjZW50cmVkIGFuZCBib3VuZGVkLiBJdCBzZXRzXG4vLyBubyBjb2xvdXIgYmV5b25kIHRoZSBzY3JpbSBhIGNsaWNrLXRvLWNsb3NlIG92ZXJsYXkgbmVlZHMgdG8gYmUgdmlzaWJsZSBhdFxuLy8gYWxsLCBubyB0eXBlLCBubyByYWRpdXMsIG5vIGJvcmRlci4gQSBicmFuZCBwYWludHMgaXQgYnkgdGFyZ2V0aW5nIHRoZSBzYW1lXG4vLyBjbGFzcy1yb290czsgQVJUU0FCRVJTIGFscmVhZHkgZG9lcyBhbmQgaXMgdW5hZmZlY3RlZCwgYmVjYXVzZSBldmVyeXRoaW5nIGl0XG4vLyBkZWNsYXJlcyBpcyBtb3JlIHNwZWNpZmljIHRoYW4gb3IgaWRlbnRpY2FsIHRvIHdoYXQgaXMgaGVyZSBhbmQgaXRzIHNoZWV0XG4vLyBsb2FkcyBhZnRlciBnbG9iYWwuXG4vL1xuLy8g4pqgIFJFV1JJVFRFTiAyMDI2LTA5LTIxIOKAlCBUSEUgTU9EQUwgSVMgQU5DSE9SRUQgVE8gVEhFIEhFQURFUiBOT1cuXG4vL1xuLy8gSXQgdXNlZCB0byBiZSBpbmNsdWRlZCBmcm9tIGBmb290ZXIucGhwYCwgc28gaXQgd2FzIGEgZGlyZWN0IGNoaWxkIG9mIGBib2R5YFxuLy8gd2l0aCBubyByZWxhdGlvbnNoaXAgdG8gdGhlIGNvbnRyb2wgdGhhdCBvcGVucyBpdCwgYW5kIGBfbW9kYWwuanNgIGRyYWdnZWQgaXRcbi8vIGludG8gdmlldyB3aXRoIGB0YXJnZXQuY3NzKCd0b3AnLCBzY3JvbGxQb3NpdGlvbilgIOKAlCBtb3ZpbmcgaXQgZG93biB0aGVcbi8vIERPQ1VNRU5UIHRvIHdoZXJldmVyIHRoZSByZWFkZXIgd2FzLiBUaGF0IHdvcmtlZCwgYnV0IGl0IGFuY2hvcmVkIHRoZSBwYW5lbCB0b1xuLy8gdGhlIHRvcCBvZiB0aGUgZG9jdW1lbnQsIHNvIGFueXRoaW5nIHRoYXQgcHVzaGVkIHRoZSBoZWFkZXIgZG93biBsZWZ0IHRoZSBwYW5lbFxuLy8gYmVoaW5kOiB3aXRoIHRoZSBhZG1pbiBiYXIgYW5kIFJhbmsgTWF0aCdzIHRvb2xiYXIgdGhlIHNlYXJjaCBvcGVuZWQgT1ZFUiB0aGVcbi8vIGhlYWRlciByYXRoZXIgdGhhbiB1bmRlciBpdC4gTWVhc3VyZWQgb24gQVJUU0FCRVJTOiBwYW5lbCBhdCAxMjgsIGhlYWRlciBib3R0b21cbi8vIGF0IDI4OC5cbi8vXG4vLyBUaGUgaW5jbHVkZSBtb3ZlZCBpbnRvIGBoZWFkZXIucGhwYCwgaW5zaWRlIGAuc2l0ZS1oZWFkYCwgd2hpY2ggaXNcbi8vIGBwb3NpdGlvbjogcmVsYXRpdmVgIHdpdGggbm8gdHJhbnNmb3JtLCBubyBvdmVyZmxvdyBjbGlwIGFuZCBubyBzdGFja2luZ1xuLy8gY29udGV4dCDigJQgYSBjbGVhbiBjb250YWluaW5nIGJsb2NrLiBgdG9wOiAxMDAlYCBub3cgbWVhbnMgXCJ0aGUgaGVhZGVyJ3MgYm90dG9tXG4vLyBlZGdlXCIsIHdoYXRldmVyIHNpdHMgYWJvdmUgaXQsIG9uIGV2ZXJ5IGJyYW5kIGFuZCBmb3IgYW55IGZ1dHVyZSBjaHJvbWUuXG4vL1xuLy8gVGhlIGBzY3JvbGxQb3NpdGlvbmAgbGluZSBpcyBnb25lIGZyb20gYF9tb2RhbC5qc2Agd2l0aCBpdC4gSXQgZXhpc3RlZCBvbmx5IHRvXG4vLyBwbGFjZSBhIGRvY3VtZW50LWFuY2hvcmVkIG1vZGFsLCBhbmQgbGVmdCBpbiBwbGFjZSBpdHMgSU5MSU5FIGB0b3BgIGJlYXQgdGhpc1xuLy8gcnVsZSBhbmQgdW5kaWQgdGhlIGFuY2hvci5cbi8vXG4vLyBUaGUgQkFDS0RST1AgaXMgdGhlIHBpZWNlIHRoYXQgc3RpbGwgaGFzIHRvIHNwYW4gdGhlIHZpZXdwb3J0LCBzbyBpdCBpcyB0aGUgb25lXG4vLyB0aGluZyBoZXJlIHRoYXQgaXMgYHBvc2l0aW9uOiBmaXhlZGAuXG4vL1xuLy8gYGRpc3BsYXk6IG5vbmVgIGlzIHRoZSBjbG9zZWQgc3RhdGUgYW5kIGpRdWVyeSdzIGBmYWRlSW5gIHdyaXRlc1xuLy8gYGRpc3BsYXk6IGJsb2NrYCBpbmxpbmU7IGAuaXMtYWN0aXZlYCBpcyBhZGRlZCBBRlRFUiB0aGUgZmFkZSBjb21wbGV0ZXMsIHNvXG4vLyBpdCBpcyBhIHN0YXRlIGZsYWcgZm9yIHRoZSBKUyByYXRoZXIgdGhhbiB3aGF0IGRvZXMgdGhlIHNob3dpbmcuIEtlZXAgYm90aCDigJRcbi8vIHJlbW92aW5nIHRoZSBgLmlzLWFjdGl2ZWAgcnVsZSBsZWF2ZXMgdGhlIG1vZGFsIHN0dWNrIG9wZW4gb25jZSBhbnkgQ1NTXG4vLyB0cmFuc2l0aW9uIG9yIGEgcmVkdWNlZC1tb3Rpb24gc2V0dGluZyBzaG9ydC1jaXJjdWl0cyB0aGUgZmFkZS5cblxuLm1vZGFsIHtcblxuXHQvLyBTaGFyZWQgYnkgYCZfX3dyYXBwZXJgJ3MgbW9iaWxlIHNpZGUgcGFkZGluZyBhbmQgYCZfX2Nsb3NlYCdzIG1vYmlsZVxuXHQvLyByaWdodCBvZmZzZXQgYmVsb3cg4oCUIHRoZSBjbG9zZSBidXR0b24ncyBpbnNldCBoYXMgdG8gbWF0Y2ggdGhlIHBhbmVsJ3Ncblx0Ly8gb3duIGd1dHRlciBvciBpdCBkcmlmdHMgb2ZmIHRoZSBlZGdlIGl0IGlzIG1lYW50IHRvIHNpdCBpbnNpZGUuXG5cdCRtb2JpbGUtZ3V0dGVyOiAyMHB4O1xuXG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0Ly8gQW5jaG9yZWQgdG8gYC5zaXRlLWhlYWRgLCB3aGljaCBob3N0cyB0aGlzIG1hcmt1cC4gYHRvcDogMTAwJWAgaXMgdGhlXG5cdC8vIGhlYWRlcidzIGJvdHRvbSBlZGdlIOKAlCBzZWUgdGhlIG5vdGUgYWJvdmUuXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAxMDAlO1xuXHRsZWZ0OiAwO1xuXG5cdHdpZHRoOiAxMDAlO1xuXG5cdC8vIEhlaWdodCBjb21lcyBmcm9tIHRoZSBwYW5lbCwgbm90IHRoZSB2aWV3cG9ydC4gYDEwMHZoYCBoZXJlIG1hZGUgdGhlIG1vZGFsXG5cdC8vIGEgZnVsbC12aWV3cG9ydCBib3ggaGFuZ2luZyBCRUxPVyB0aGUgaGVhZGVyLCB3aGljaCBwdXNoZWQgdGhlIHBhZ2UncyBvd25cblx0Ly8gc2Nyb2xsIGhlaWdodCBvdXQgYnkgYSBzY3JlZW4gZm9yIG5vIHZpc2libGUgcmVhc29uLlxuXHRoZWlnaHQ6IGF1dG87XG5cblx0ei1pbmRleDogOTk5OTtcblxuXHQmLmlzLWFjdGl2ZSB7XG5cblx0XHRkaXNwbGF5OiBibG9jaztcblxuXHR9XG5cblx0Jl9fYmFja2dyb3VuZCB7XG5cblx0XHQvLyBGSVhFRCwgdW5saWtlIGl0cyBwYXJlbnQuIFRoaXMgaXMgdGhlIGNsaWNrLXRvLWNsb3NlIHN1cmZhY2UgYW5kIGl0IGhhc1xuXHRcdC8vIHRvIGNvdmVyIHRoZSB3aG9sZSB2aWV3cG9ydDsgdGhlIG1vZGFsIGl0c2VsZiBpcyBub3cgb25seSBhcyB0YWxsIGFzIGl0c1xuXHRcdC8vIHBhbmVsIGFuZCBzdGFydHMgYXQgdGhlIGhlYWRlcidzIGJvdHRvbSBlZGdlLCBzbyBhbiBhYnNvbHV0ZSBiYWNrZHJvcFxuXHRcdC8vIHdvdWxkIGNvdmVyIG5laXRoZXIgdGhlIGhlYWRlciBhYm92ZSBpdCBub3IgdGhlIHBhZ2UgYmVsb3cgdGhlIGZvbGQuXG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdGluc2V0OiAwO1xuXG5cdFx0Ly8gVGhlIG9uZSBjb2xvdXIgaGVyZSwgYW5kIGl0IGlzIGxvYWQtYmVhcmluZzogdGhpcyBlbGVtZW50IGlzIHRoZVxuXHRcdC8vIGNsaWNrLXRvLWNsb3NlIHN1cmZhY2UsIHNvIGl0IGhhcyB0byBiZSB2aXNpYmxlIGVub3VnaCB0byByZWFkIGFzXG5cdFx0Ly8gb25lLiBBIGJyYW5kIG92ZXJyaWRlcyBpdCBmcmVlbHkuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuXG5cdFx0ei1pbmRleDogMTtcblxuXHRcdCYtLWNsZWFyIHtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0XHR9XG5cblx0fVxuXG5cdCZfX3dyYXBwZXIge1xuXG5cdFx0Ly8gQ0VOVFJFRCBBTkQgT0ZGU0VUIFdJVEggTUFSR0lOUywgTk9UIFdJVEggYGxlZnRgL2B0b3BgL2B0cmFuc2Zvcm1gLlxuXHRcdC8vXG5cdFx0Ly8gVGhpcyB1c2VkIHRvIGJlIGB0b3A6IDQwcHg7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpYC5cblx0XHQvLyBUaG9zZSBvbmx5IG1lYW4gXCJjZW50cmVcIiBvbiBhbiBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgZWxlbWVudCwgYW5kIGFcblx0XHQvLyBicmFuZCB0aGF0IHBvc2l0aW9ucyB0aGUgcGFuZWwgYW55IG90aGVyIHdheSBnZXRzIHRoZW0gYXBwbGllZCBPTiBUT1Bcblx0XHQvLyBvZiBpdHMgb3duIHJ1bGUgcmF0aGVyIHRoYW4gaW5zdGVhZCBvZiBpdC5cblx0XHQvL1xuXHRcdC8vIEFSVFNBQkVSUyBpcyB0aGUgd29ya2VkIGNhc2UuIEl0IHNldHMgYHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luOiA4OHB4XG5cdFx0Ly8gYXV0byAwYCDigJQgYSBwZXJmZWN0bHkgZ29vZCB3YXkgdG8gY2VudHJlIOKAlCBhbmQgZG9lcyBub3QgcmVzZXQgYGxlZnRgIG9yXG5cdFx0Ly8gYHRyYW5zZm9ybWAsIGJlY2F1c2Ugd2h5IHdvdWxkIGl0LiBPbiBhIHJlbGF0aXZlIGVsZW1lbnQgdGhvc2UgYmVjYW1lXG5cdFx0Ly8gT0ZGU0VUUyBmcm9tIGFuIGFscmVhZHktY2VudHJlZCBib3g6IDM0MCBjZW50cmVkLCArNzIwIGZyb20gYGxlZnQ6IDUwJWAsXG5cdFx0Ly8gLTM4MCBmcm9tIHRoZSB0cmFuc2Zvcm0gPSA2ODAsIGhhcmQgYWdhaW5zdCB0aGUgcmlnaHQgZWRnZS4gVmVydGljYWxseVxuXHRcdC8vIGl0cyA4OHB4IG1hcmdpbiBhbmQgdGhpcyBydWxlJ3MgNDBweCBzdGFja2VkIHRvIDEyOC5cblx0XHQvL1xuXHRcdC8vIGBsZWZ0OiAwOyByaWdodDogMGAgcGx1cyBgbWFyZ2luLWlubGluZTogYXV0b2AgY2VudHJlcyBhbiBhYnNvbHV0ZWx5XG5cdFx0Ly8gcG9zaXRpb25lZCBib3gganVzdCBhcyB3ZWxsLCBhbmQgb24gYSByZWxhdGl2ZSBvbmUgdGhlIG9mZnNldHMgYXJlIHplcm9cblx0XHQvLyBhbmQgdGhlIGJyYW5kJ3Mgb3duIGF1dG8gbWFyZ2lucyBkbyB0aGUgd29yay4gYG1hcmdpbi1ibG9jay1zdGFydGAgZm9yXG5cdFx0Ly8gdGhlIHNhbWUgcmVhc29uOiBhIGJyYW5kJ3Mgb3duIGBtYXJnaW4tdG9wYCBSRVBMQUNFUyBpdCBpbnN0ZWFkIG9mXG5cdFx0Ly8gYWRkaW5nIHRvIGl0LiBTYW1lIGZhbWlseSBhcyB0aGUgYG1hcmdpbmAgc2hvcnRoYW5kIHRyYXAgaW5cblx0XHQvLyB0aGVtZXMvQ0xBVURFLm1kIOKAlCBhIHByb3BlcnR5IHRoYXQgaXMgY29ycmVjdCBhYm91dCBvbmUgYm94IHRyZWUgYW5kXG5cdFx0Ly8gd3JvbmcgYWJvdXQgYW5vdGhlci5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblxuXHRcdC8vIDQwcHggSVMgVEhFIFVOU1RZTEVEIEJSQU5EJ1MgT05MWSBDTEVBUkFOQ0Ug4oCUIGRvIG5vdCB0YWtlIGl0IHRvIDAuXG5cdFx0Ly9cblx0XHQvLyBUcmllZCB0aGF0IG9uIDIwMjYtMDktMjEgYW5kIG1lYXN1cmVkIGl0OiBhIGJyYW5kIHdpdGggbm8gcGFuZWwgcGFkZGluZ1xuXHRcdC8vIG9mIGl0cyBvd24gcHV0cyB0aGUgc2VhcmNoIGlucHV0IGhhcmQgYWdhaW5zdCB0aGUgaGVhZGVyJ3MgYm90dG9tIGVkZ2UsXG5cdFx0Ly8gd2l0aCBub3RoaW5nIGJldHdlZW4gdGhlbS4gUGFyYWdvbkdhbWluZyBhbmQgTmVyZHdvcmtzIGJvdGggZG8gZXhhY3RseVxuXHRcdC8vIHRoYXQsIHNvIHRoaXMgcnVsZSBpcyB0aGUgd2hvbGUgb2YgdGhlaXIgYnJlYXRoaW5nIHJvb20uXG5cdFx0Ly9cblx0XHQvLyBBIGJyYW5kIHdpdGggaXRzIG93biBwYW5lbCB0cmVhdG1lbnQgb3ZlcnJpZGVzIHRoZSBtYXJnaW4gYW5kIHNldHMgdGhlXG5cdFx0Ly8gc3BhY2luZyBpdCB3YW50cyDigJQgQVJUU0FCRVJTIHNpdHMgZmx1c2ggYXQgMCBiZWNhdXNlIGl0cyBwYW5lbCBjYXJyaWVzXG5cdFx0Ly8gMzJweCBvZiBpbnRlcm5hbCBwYWRkaW5nIGFuZCByZWFkcyBhcyBoYW5naW5nIG9mZiB0aGUgaGVhZGVyLlxuXHRcdG1hcmdpbi1ibG9jay1zdGFydDogNDBweDtcblx0XHRtYXJnaW4taW5saW5lOiBhdXRvO1xuXG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiA5MDBweDtcblxuXHRcdHotaW5kZXg6IDI7XG5cblx0XHQvLyA0OHB4LCBOT1QgMjBweCDigJQgVEhFIENMT1NFIEJVVFRPTiBIQVMgVE8gRklUIEFCT1ZFIFRIRSBQQU5FTC5cblx0XHQvL1xuXHRcdC8vIFRoZSBjbG9zZSBzaXRzIGF0IGB0b3A6IC0zMHB4YCBhbmQgaXMgMjBweCB0YWxsLCBzbyBpdCBuZWVkcyBhdCBsZWFzdFxuXHRcdC8vIDM4cHggb2YgbWFyZ2luIHRvIGNsZWFyIHRoZSBoZWFkZXIuIEF0IDIwcHggaXQgcmVuZGVyZWQgdGVuIHBpeGVsc1xuXHRcdC8vIElOU0lERSB0aGUgaGVhZGVyOiBtZWFzdXJlZCAyMDI2LTA5LTIxIGF0IDM5MCBvbiBib3RoIFBhcmFnb24gYW5kXG5cdFx0Ly8gTmVyZHdvcmtzLCBjbG9zZSBhdCB5PTExNSBhZ2FpbnN0IGEgaGVhZGVyIGJvdHRvbSBlZGdlIG9mIDEyNS5cblx0XHQvL1xuXHRcdC8vIFRoZSBkZXNrdG9wIDQwcHggYWJvdmUgaXMgbGVmdCBhbG9uZSBkZWxpYmVyYXRlbHkg4oCUIGl0IGFscmVhZHkgc2VhdHNcblx0XHQvLyB0aGUgY2xvc2Ugd2l0aCAxMHB4IHRvIHNwYXJlLCBhbmQgdGhlIG5vdGUgYWJvdmUgcmVjb3JkcyB3aHkgaXQgbXVzdFxuXHRcdC8vIG5vdCBnbyBsb3dlci5cblx0XHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnNzY4Jykge1xuXG5cdFx0XHRtYXJnaW4tYmxvY2stc3RhcnQ6IDQ4cHg7XG5cdFx0XHRwYWRkaW5nOiAwICRtb2JpbGUtZ3V0dGVyO1xuXG5cdFx0fVxuXG5cdH1cblxuXHQmX19jbG9zZSB7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAtMzBweDtcblx0XHRyaWdodDogMDtcblxuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ei1pbmRleDogMztcblxuXHRcdC8vIFdISVRFLCBCRUNBVVNFIFRISVMgU0lUUyBPTiBUSEUgU0NSSU0gQU5EIEdMT0JBTCBPV05TIFRIRSBTQ1JJTS5cblx0XHQvL1xuXHRcdC8vIExlYXZpbmcgdGhlIGZpbGwgdG8gY2FzY2FkZSBpcyBub3QgYSBkZWZhdWx0LCBpdCBpcyBhIGNvaW4gdG9zczogd2l0aFxuXHRcdC8vIG5vdGhpbmcgaGVyZSBOZXJkd29ya3MgcmVzb2x2ZWQgdG8gcmdiKDAsMCwwKSBvbiBhIDcwJS1ibGFjayBiYWNrZHJvcFxuXHRcdC8vIGFuZCBQYXJhZ29uIHRvIHdoaXRlIG9ubHkgYnkgYWNjaWRlbnQgb2YgaXRzIG93biBgLnNpdGUtaGVhZCAuaWNvbmBcblx0XHQvLyBydWxlIHJlYWNoaW5nIGludG8gdGhlIG1vZGFsLiBOZWl0aGVyIGJyYW5kIGhhZCBkZWNpZGVkIGl0LiBBIGJyYW5kXG5cdFx0Ly8gdGhhdCB3YW50cyBpdHMgb3duIGNvbG91ciBzdGlsbCBzZXRzIG9uZSDigJQgdGhpcyBvbmx5IGZpbGxzIHRoZSBnYXAuXG5cdFx0Lmljb24ge1xuXG5cdFx0XHRmaWxsOiAjZmZmO1xuXG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzc2OCcpIHtcblxuXHRcdFx0Ly8gTWF0Y2hlcyB0aGUgd3JhcHBlcidzIG93biBndXR0ZXIgYWJvdmUuIEF0IGByaWdodDogMGAgdGhlIGdseXBoJ3Ncblx0XHRcdC8vIHJpZ2h0IGVkZ2UgbGFuZGVkIGV4YWN0bHkgb24gdGhlIHZpZXdwb3J0IGVkZ2Ug4oCUIG1lYXN1cmVkIGF0IDM5MCxcblx0XHRcdC8vIGNsb3NlIHNwYW5uaW5nIHggMzcwLTM5MCBvbiBhIDM5MCBzY3JlZW4uXG5cdFx0XHRyaWdodDogJG1vYmlsZS1ndXR0ZXI7XG5cblx0XHR9XG5cblx0fVxuXG59XG5cbi8vIOKUgOKUgCBTZWFyY2ggZm9ybSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vXG4vLyBSZW5kZXJlZCBieSBgcGFydGlhbHMvbW9kYWwtc2VhcmNoLnBocGAsIHNvIGl0IGlzIHBhcmVudCBjaHJvbWUgZm9yIHRoZSBzYW1lXG4vLyByZWFzb24gdGhlIG1vZGFsIGlzLlxuLy9cbi8vIEJBU0UgU1RZTElORywgTk9UIEpVU1QgU1RSVUNUVVJFLiBUaGUgZmlyc3QgcGFzcyBoZXJlIHNldCBsYXlvdXQgb25seSBhbmRcbi8vIGxlZnQgdGhlIGlucHV0IGF0IGJyb3dzZXIgZGVmYXVsdCDigJQgZnVuY3Rpb25hbCwgYW5kIGl0IGxvb2tlZCBsaWtlIGFuXG4vLyB1bnN0eWxlZCBmb3JtIGRyb3BwZWQgb24gdGhlIHBhZ2UsIHdoaWNoIGlzIG5vdCBhIHdvcmtpbmcgZGVmYXVsdCBzbyBtdWNoIGFzXG4vLyBhIHdvcmtpbmcgbWVjaGFuaXNtLiBXaGF0IGlzIGJlbG93IGlzIGRlbGliZXJhdGVseSBwbGFpbjogYSB3aGl0ZSBmaWVsZCwgYVxuLy8gc29mdCByYWRpdXMsIGNvbWZvcnRhYmxlIHRvdWNoLXNpemVkIHRhcmdldHMsIGEgZm9jdXMgcmluZy4gSXQgc2hvdWxkIHJlYWQgYXNcbi8vIFwibm9ib2R5IGhhcyB0aGVtZWQgdGhpcyB5ZXRcIiByYXRoZXIgdGhhbiBcInRoaXMgaXMgYnJva2VuXCIsIGFuZCBldmVyeSB2YWx1ZSBpc1xuLy8gb25lIGEgYnJhbmQgb3ZlcnJpZGVzIGluIGEgbGluZS5cbi8vXG4vLyBTaXplcyBhcmUgYWJzb2x1dGUgcmF0aGVyIHRoYW4gdG9rZW4tZHJpdmVuIE9OIFBVUlBPU0UuIEdsb2JhbCBjYW5ub3QgYXNzdW1lXG4vLyBhIGJyYW5kIGhhcyBkZWNsYXJlZCBgLS1mcy1iYXNlYCBvciBgLS1zcGFjZS00YCwgYW5kIGFuIHVuZGVmaW5lZCBjdXN0b21cbi8vIHByb3BlcnR5IGhlcmUgd291bGQgcmVzb2x2ZSB0byBub3RoaW5nIGFuZCBzaWxlbnRseSBjb2xsYXBzZSB0aGUgY29udHJvbCDigJRcbi8vIHRoZSBzYW1lIGZhaWx1cmUgY2xhc3MgdGhpcyB3aG9sZSBhcmVhIGhhcyBiZWVuIGZpeGluZyBhbGwgbmlnaHQuIEEgYnJhbmRcbi8vIHRoYXQgaGFzIHRva2VucyByZXN0YXRlcyB0aGVzZSBhZ2FpbnN0IHRoZW0uXG5cbi5zZWFyY2gtZm9ybSB7XG5cblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblxuXHQmX193cmFwcGVyIHtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdH1cblxuXHQmX19pbnB1dCB7XG5cblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtaW4td2lkdGg6IDA7XG5cblx0XHRwYWRkaW5nOiAwIDE4cHg7XG5cdFx0aGVpZ2h0OiA1NnB4O1xuXHRcdGJvcmRlcjogMDtcblxuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRjb2xvcjogIzFhMWExYTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuXHRcdC8vIDE2cHggbWluaW11bSBzdG9wcyBpT1Mgem9vbWluZyB0aGUgdmlld3BvcnQgb24gZm9jdXMsIHdoaWNoIG9uIGFcblx0XHQvLyBtb2RhbCB0aGF0IGhhcyBqdXN0IGRpc2FibGVkIHBhZ2Ugc2Nyb2xsaW5nIHN0cmFuZHMgdGhlIHJlYWRlci5cblx0XHQmOjpwbGFjZWhvbGRlciB7XG5cblx0XHRcdGNvbG9yOiAjNmI2YjZiO1xuXG5cdFx0fVxuXG5cdFx0Jjpmb2N1cyB7XG5cblx0XHRcdG91dGxpbmU6IDJweCBzb2xpZCAjMWExYTFhO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0ycHg7XG5cblx0XHR9XG5cblx0fVxuXG5cdCZfX3N1Ym1pdCB7XG5cblx0XHRmbGV4OiAwIDAgYXV0bztcblxuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0XHR3aWR0aDogNTZweDtcblx0XHRoZWlnaHQ6IDU2cHg7XG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG5cdFx0Lmljb24ge1xuXG5cdFx0XHR3aWR0aDogMjBweDtcblx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdGZpbGw6ICMxYTFhMWE7XG5cblx0XHR9XG5cblx0XHQmOmZvY3VzLXZpc2libGUge1xuXG5cdFx0XHRvdXRsaW5lOiAycHggc29saWQgIzFhMWExYTtcblx0XHRcdG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuXG5cdFx0fVxuXG5cdH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdElDT05cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaWNvbiB7XG5cblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiB2YXIoLS1pY29uLXNpemUsIDIwcHgpO1xuXHR3aWR0aDogdmFyKC0taWNvbi1zaXplLCAyMHB4KTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdCYtLW1lZGl1bSB7XG5cblx0XHRoZWlnaHQ6IHZhcigtLWljb24tc2l6ZS1tZCwgMzBweCk7XG5cdFx0d2lkdGg6IHZhcigtLWljb24tc2l6ZS1tZCwgMzBweCk7XG5cblx0fVxuXG5cdCYtLWxhcmdlIHtcblxuXHRcdGhlaWdodDogdmFyKC0taWNvbi1zaXplLWxnLCA1MHB4KTtcblx0XHR3aWR0aDogdmFyKC0taWNvbi1zaXplLWxnLCA1MHB4KTtcblxuXHR9XG5cblx0Ji0tZXh0cmEtbGFyZ2Uge1xuXG5cdFx0aGVpZ2h0OiB2YXIoLS1pY29uLXNpemUteGwsIDgwcHgpO1xuXHRcdHdpZHRoOiB2YXIoLS1pY29uLXNpemUteGwsIDgwcHgpO1xuXG5cdH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFdPT0NPTU1FUkNFIENPTVBPU0lURSBQUk9EVUNUU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jb21wb3NpdGVfZm9ybSAuY29tcG9zaXRlX3ByaWNlIHAucHJpY2UsXG4uc2luZ2xlLXByb2R1Y3QgLmNvbXBvc2l0ZV9mb3JtIC5jb21wb3NpdGVfcHJpY2UgcC5wcmljZSB7XG5cblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cbn1cbiIsIkB1c2UgJy4uL2Z1bmN0aW9ucycgYXMgKjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFdPT0NPTU1FUkNFIENPVVBPTiBGT1JNXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIHtcblxuXHQuZm9ybV9fZ3JvdXAtLWlubGluZSB7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblxuXHRcdC5mb3JtX19pbnB1dCxcblx0XHQuZm9ybV9fc3VibWl0IHtcblxuXHRcdFx0d2lkdGg6IGZpdC1jb250ZW50O1xuXG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzc2OCcpIHtcblxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRcdFx0LmZvcm1fX2lucHV0IHtcblxuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0fVxuXG5cdFx0XHQuZm9ybV9fc3VibWl0IHtcblxuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQuY291cG9uLWVycm9yLW5vdGljZSB7XG5cblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXG5cdFx0fVxuXG5cdH1cblxufVxuIiwiQHVzZSAnLi4vZnVuY3Rpb25zJyBhcyAqO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0V09PQ09NTUVSQ0UgTk9USUNFU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi53b29jb21tZXJjZS1ub3RpY2VzLXdyYXBwZXIge1xuXG5cdGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cdGJvcmRlcjogbm9uZTtcblxuXHQvLyBUaGUgd3JhcHBlciBpcyBub3cgcmVuZGVyZWQgdW5jb25kaXRpb25hbGx5IChzZWVcblx0Ly8gY2FtY29tLXYyL2luY2x1ZGVzL3dvb2NvbW1lcmNlLXRlbXBsYXRlLWhvb2tzL25vdGljZXMucGhwKSBzbyB0aGF0XG5cdC8vIEFKQVgtaW5qZWN0ZWQgbm90aWNlcyBoYXZlIGEgdGFyZ2V0IHRvIHByZXBlbmQgaW50byDigJQgd2l0aG91dCBvbmUgaW4gdGhlXG5cdC8vIERPTSB0aGV5IGFyZSBzaWxlbnRseSBkcm9wcGVkLiBDb2xsYXBzZSBpdCB3aGVuIGl0IGhvbGRzIG5vdGhpbmcgc28gYW5cblx0Ly8gYWx3YXlzLXByZXNlbnQgZWxlbWVudCBjb3N0cyBubyBsYXlvdXQuXG5cdCY6ZW1wdHkge1xuXG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHR9XG5cbn1cblxuLndvb2NvbW1lcmNlLW1lc3NhZ2UsXG4ud29vY29tbWVyY2UtaW5mbyxcbi53b29jb21tZXJjZS1lcnJvciB7XG5cblx0ZGlzcGxheTogZmxleDtcblx0Z3JpZC1jb2x1bW46IDEgLyAtMTtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXgtd2lkdGg6IHZhcigtLXNpdGUtbWF4LXdpZHRoLCAxNDQwcHgpO1xuXG5cdGxpICsgbGkge1xuXG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0fVxuXG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzIHtcblxuXHRcdG91dGxpbmU6IG5vbmU7XG5cblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KCc3NjgnKSB7XG5cblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHQmID4gKiB7XG5cblx0XHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXG5cdFx0fVxuXG5cdFx0bGkge1xuXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0fVxuXG5cdFx0LmJ1dHRvbiB7XG5cblx0XHRcdG1hcmdpbjogMTBweCBhdXRvIDAgMCAhaW1wb3J0YW50O1xuXG5cdFx0fVxuXG5cdH1cblxuXHQuYnV0dG9uIHtcblxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cblx0fVxuXG59XG4iLCJAdXNlICcuLi9mdW5jdGlvbnMnIGFzICo7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRXT09DT01NRVJDRSBQUk9EVUNUIEFUVFJJQlVURVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uc2hvcF9hdHRyaWJ1dGVzIHtcblxuXHR3aWR0aDogMTAwJTtcblxuXHQuYXR0cmlidXRlX25hbWVfdmFsdWVzIHtcblxuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzc2OCcpIHtcblxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdHRib2R5LFxuXHRcdFx0dHIge1xuXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cdC5hdHRyaWJ1dGVfbmFtZSB7XG5cblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFdQRk9STVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ud3Bmb3Jtcy1jb250YWluZXIge1xuXG5cdC53cGZvcm1zLWxpc3QtMi1jb2x1bW5zIC53cGZvcm1zLWljb24tY2hvaWNlcyB7XG5cblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXG5cdH1cblxuXHQud3Bmb3Jtcy1saXN0LTMtY29sdW1ucyAud3Bmb3Jtcy1pY29uLWNob2ljZXMge1xuXG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcblxuXHR9XG5cblx0LndwZm9ybXMtbGlzdC00LWNvbHVtbnMgLndwZm9ybXMtaWNvbi1jaG9pY2VzIHtcblxuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG5cblx0fVxuXG5cdC53cGZvcm1zLWljb24tY2hvaWNlcyB7XG5cblx0XHRkaXNwbGF5OiBncmlkO1xuXG5cdFx0Ji1pdGVtIHtcblxuXHRcdFx0cGFkZGluZzogMjUlIDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdGxhYmVsIHtcblxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0XHRcdGlucHV0IHtcblxuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmLWljb24ge1xuXG5cdFx0XHRzdmcge1xuXG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0bWF4LXdpZHRoOiA5MCU7XG5cdFx0XHRcdHdpZHRoOiAyMDBweDtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxuXHQud3Bmb3Jtcy1oaWRkZW4ge1xuXG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG5cdH1cblxufVxuIiwiQHVzZSAnLi4vZnVuY3Rpb25zJyBhcyAqO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0WUFZIFBSSUNJTkdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ueWF5ZHAtb3JpZ2luYWwtcHJpY2VzIHtcblxuXHRkaXNwbGF5OiBibG9jaztcblxuXHQmICsgLnlheWRwLWNhbGN1bGF0ZWQtcHJpY2VzIHtcblxuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoJzc2OCcpIHtcblxuXHRcdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXG5cdFx0fVxuXG5cdH1cblxufVxuXG4ueWF5ZHAtZGlzY291bnRlZC1wcmljZSB7XG5cblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuXHRAaW5jbHVkZSBtZWRpYS1xdWVyeSgnNzY4Jykge1xuXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHR9XG5cbn1cblxuLnlheWRwLWNhbGN1bGF0ZWQtcHJpY2VzLXN1ZmZpeCB7XG5cblx0ZGlzcGxheTogbm9uZTtcblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFdQIEJMT0NLOiBHUk9VUCDigJQgbGF5b3V0LWNsYXNzIHJlcGFpclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEEgR1JPVVAgQ0FSUllJTkcgQSBMQVlPVVQgQ0xBU1MgTkVFRFMgSVRTIFJFU1RPUkVEIFdSQVBQRVIgVEFLRU4gT1VUIE9GIFRIRVxuICAgTEFZT1VUIOKAlCBhbmQgaXRzIGNoaWxkcmVuIHRha2VuIG91dCBvZiBjb3JlJ3MgZmxvdyBzcGFjaW5nLiBUaGUgdHdvIGxvb2tcbiAgIHVucmVsYXRlZCwgb25lIGlzIGxheW91dCBhbmQgb25lIGlzIHNwYWNpbmcsIGFuZCBzaGlwcGluZyBvbmx5IHRoZSBmaXJzdCBnaXZlc1xuICAgYSBwYWdlIHRoYXQgbGF5cyBvdXQgY29ycmVjdGx5IGFuZCBtZWFzdXJlcyB3cm9uZy4gS2VlcCB0aGVtIHRvZ2V0aGVyLlxuXG4gICBXb3JkUHJlc3MgcmVzdG9yZXMgYC53cC1ibG9jay1ncm91cF9faW5uZXItY29udGFpbmVyYCBvbiBhbnkgc2l0ZSB3aXRoIG5vXG4gICBgdGhlbWUuanNvbmAg4oCUIHdoaWNoIGlzIGV2ZXJ5IHRoZW1lIGluIHRoaXMgbGluZSwgQlkgUE9MSUNZIOKAlCBhbmQgaXQgZG9lcyBzbyBhdFxuICAgUkVOREVSIHRpbWUsIHNvIHRoZSBzYXZlZCBtYXJrdXAgaXMgY2xlYW4gYW5kIHRoZSByZW5kZXJlZCB0cmVlIGlzIG5vdC4gQVxuICAgYC5ncmlkYCBjbGFzcyBvbiB0aGUgZ3JvdXAgdGhlbiBzdHlsZXMgYSBjb250YWluZXIgaG9sZGluZyBleGFjdGx5IG9uZSBjaGlsZCxcbiAgIGFuZCB0aGUgdGlsZXMgaW5zaWRlIHN0YWNrIGluc3RlYWQgb2YgZm9ybWluZyBjb2x1bW5zLiBJdCByZWFkcyBhcyBhIGdyaWQgdGhhdFxuICAgXCJkaWRuJ3QgdGFrZVwiOiB0aGUgZ2FwIGlzIHJpZ2h0LCB0aGUgY29sdW1ucyBhcmUgbm9uZSwgYW5kIG5vdGhpbmcgaW4gZWl0aGVyXG4gICBmaWxlIGxvb2tzIHdyb25nLlxuXG4gICBUSElTIElTIEdMT0JBTCBCRUNBVVNFIFRIRSBGQVVMVCBJUyBHTE9CQUwuIEl0IGlzIGEgY29uc2VxdWVuY2Ugb2YgdGhlXG4gICBuby1gdGhlbWUuanNvbmAgcG9saWN5IG1lZXRpbmcgdGhlIGdsb2JhbCBgLmdyaWRgIHByaW1pdGl2ZSDigJQgbmVpdGhlciBvZiB3aGljaFxuICAgaXMgYnJhbmQgdm9jYWJ1bGFyeS4gQVJUU0FCRVJTIGFuZCBQYXJhZ29uR2FtaW5nIGVhY2ggZGVyaXZlZCB0aGlzIHBhaXJcbiAgIGluZGVwZW5kZW50bHksIGluIHRoZWlyIG93biBgYmxvY2tzL193cC1ibG9jay1ncm91cC5zY3NzYCwgd2hpY2ggaXMgdGhlIHNpZ25hbFxuICAgdGhhdCBpdCBiZWxvbmdlZCBoZXJlIHJhdGhlciB0aGFuIGluIGEgYnJhbmQgc2lsby4gUHJvbW90ZWQgMjAyNi0wOS0xNyBvblxuICAgUGFyYWdvbkdhbWluZydzIHJlcXVlc3Q7IHRoZSBkdXBsaWNhdGVzIHdlcmUgcmVtb3ZlZCBmcm9tIGJvdGggYnJhbmRzIGluIHRoZVxuICAgc2FtZSBjb21taXQuXG5cbiAgIEFkZGl0aXZlIGZvciBldmVyeSBvdGhlciBicmFuZDogYSBncm91cCB0aGF0IGRvZXMgbm90IGNhcnJ5IGAuZ3JpZGAga2VlcHMgaXRzXG4gICBjb250YWluZXIgdW50b3VjaGVkLCBzbyBhIGJyYW5kIHdpdGggbm8gZ3JpZCBncm91cHMgc2VlcyBubyBjaGFuZ2UgYXQgYWxsLlxuXG4gICBUaGUgRURJVE9SIG5lZWRzIHRoZSBzYW1lIHJlcGFpciBhbmQgY2Fubm90IGdldCBpdCBmcm9tIGhlcmUg4oCUIHRoZSBjYW52YXMgZG9lc1xuICAgbm90IGxvYWQgdGhlIGNvbXBpbGVkIGJyYW5kIG9yIGdsb2JhbCBzdHlsZXNoZWV0LiBJdCBpcyBzdGF0ZWQgc2VwYXJhdGVseSBpblxuICAgYGdsb2JhbC9zY3NzL2VkaXRvci1jYW52YXMuc2Nzc2AsIHdoaWNoIGFsc28gaGFzIHRvIHVuZG8gYW4gYXV0byBpbmxpbmUgbWFyZ2luXG4gICBjb3JlIG9ubHkgYXBwbGllcyBpbnNpZGUgdGhlIGVkaXRvci4gVHdvIHN0YXRlbWVudHMgb2Ygb25lIGlkZWEsIGRlbGliZXJhdGVseSxcbiAgIGJlY2F1c2UgdGhlIHR3byBzdXJmYWNlcyBsb2FkIGRpZmZlcmVudCBzaGVldHMuICovXG5cbi53cC1ibG9jay1ncm91cC5ncmlkID4gLndwLWJsb2NrLWdyb3VwX19pbm5lci1jb250YWluZXIge1xuXG5cdGRpc3BsYXk6IGNvbnRlbnRzO1xuXG5cdC8qIERpc3NvbHZpbmcgdGhlIHdyYXBwZXIgZG9lcyBub3QgdGFrZSBpdHMgY2hpbGRyZW4gb3V0IG9mIGNvcmUncyBGTE9XXG5cdCAgIGxheW91dDogdGhlIGNvbnRhaW5lciBpcyBzdGlsbCBgLmlzLWxheW91dC1mbG93YCwgc28gY29yZSdzXG5cdCAgIGA6cm9vdCA6d2hlcmUoLmlzLWxheW91dC1mbG93KSA+ICpgIGtlZXBzIGhhbmRpbmcgZXZlcnkgY2hpbGQgYWZ0ZXIgdGhlXG5cdCAgIGZpcnN0IGEgYmxvY2stZ2FwIHRvcCBtYXJnaW4uIEFzIGdyaWQgaXRlbXMgdGhleSB0aGVuIHNpdCBhIGdhcCBsb3dlciB0aGFuXG5cdCAgIHRoZWlyIGZpcnN0IHNpYmxpbmcsIGFuZCBhIGdyaWQgcm93IGlzIGFzIHRhbGwgYXMgaXRzIHRhbGxlc3QgaXRlbSwgc29cblx0ICAgZXZlcnkgcm93IHJlYWRzIGFzIGNhcmRzIG9mIHVuZXF1YWwgaGVpZ2h0IHdpdGggdGhlIGZpcnN0IG9uZSB0YWxsZXIuXG5cdCAgIE1lYXN1cmVkIG9uIFBhcmFnb25HYW1pbmcncyBob21lcGFnZTogZml2ZSBncmlkcyBvZmYgYnkgZXhhY3RseSAyNHB4LCB0aGVcblx0ICAgZmlyc3QgdGlsZSAzMjQgYW5kIGl0cyBzaWJsaW5ncyAzMDAuXG5cblx0ICAgQm90aCBibG9jayBheGVzLiBJbiBhIGdyaWQgdGhlIEdBUCBvd25zIHRoZSBzcGFjaW5nIGJldHdlZW4gaXRlbXMsIGFuZCB0d29cblx0ICAgc3lzdGVtcyBzcGFjaW5nIHRoZSBzYW1lIGNoaWxkcmVuIGlzIG9uZSB0b28gbWFueS4gQ29yZSB3cml0ZXMgaXRzIHJ1bGVcblx0ICAgaW5zaWRlIGA6d2hlcmUoKWAsIHNvIGl0IGNhcnJpZXMgemVybyBzcGVjaWZpY2l0eSBhbmQgYSBzaW5nbGUgY2xhc3MgaXNcblx0ICAgZW5vdWdoIHRvIHRha2UgaXQgYmFjay5cblxuXHQgICBMb25naGFuZHMgcmF0aGVyIHRoYW4gYSBgbWFyZ2luYCBzaG9ydGhhbmQ6IHRoZSBpbmxpbmUgYXhpcyBiZWxvbmdzIHRvXG5cdCAgIGAud3JhcHBlcmAgYW5kIHRvIGVhY2ggYnJhbmQncyBvd24gZ3JvdXAgcnVsZXMsIGFuZCBhIHNob3J0aGFuZCBoZXJlIHdvdWxkXG5cdCAgIHNpbGVudGx5IHdyaXRlIGl0LiBUaGF0IGV4YWN0IGNvbGxhdGVyYWwgdW4tY2VudHJlZCBldmVyeSBjb21wb3NlZCBiYW5kIG9uXG5cdCAgIEFSVFNBQkVSUyBvbmNlIGFscmVhZHkuICovXG5cdD4gKiB7XG5cblx0XHRtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG5cdFx0bWFyZ2luLWJsb2NrLWVuZDogMDtcblxuXHR9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRXUCBCTE9DSzogTUVESUEgVEVYVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFN0cnVjdHVyYWwgb3ZlcnJpZGVzIGZvciB3cC1ibG9jay1tZWRpYS10ZXh0IGFyZSBzZXQgcGVyIHRoZW1lICovXG4iLCIvLyBDYW1Db20gRnJhbWV3b3JrIFYyIOKAlCBHbG9iYWwgQ1NTXG4vLyBDb21waWxlZCBieSBHdWxwIOKGkiBjYW1jb20tdjIvY3NzL2dsb2JhbC5jc3Ncbi8vIEVucXVldWVkIGFzICdjYW1jb21fZ2xvYmFsJyBvbiBldmVyeSBjaGlsZCB0aGVtZSBzaXRlLlxuLy9cbi8vIFVOSVZFUlNBTCBTVUJTVFJBVEUuIFBvc3QgMjAyNi0wNy0zMCBjbGVhbnVwLCB0aGlzIHBpcGVsaW5lIHByb3ZpZGVzOlxuLy8gICAtIGNvcmUvICAgICAocmVzZXQsIGdyaWQsIGltYWdlcywgdmlzaWJpbGl0eSlcbi8vICAgLSBsYXlvdXRzLyAgKHdyYXBwZXIgKyBzZWN0aW9uICsgY2FtY29tLXYyIHBhcmVudCBjaHJvbWUg4oCUIHNpdGUtaGVhZCxcbi8vICAgICAgICAgICAgICAgIHNpdGUtbmF2LCBuYXYtZGVza3RvcCwgbmF2LW1vYmlsZSwgZm9vdGVyKVxuLy8gICAtIGNvbXBvbmVudHMvIChwYXJlbnQgY2hyb21lIGNvbXBvbmVudHMg4oCUIGNhcnQtZHJhd2VyLCB0aXRsZSwgaWNvbilcbi8vICAgLSBibG9ja3MvICAgKHVuaXZlcnNhbCBXUCBibG9jayB0cmVhdG1lbnRzKVxuLy8gICAtIHZlbmRvci8sIHRoaXJkLXBhcnR5L1xuLy9cbi8vIFwiVW5pdmVyc2FsXCIgaGVyZSBtZWFucyBlaXRoZXI6XG4vLyAgIOKAoiB0cnVseSBjcm9zcy1icmFuZCB1dGlsaXRpZXMgKGdyaWQsIHdyYXBwZXIsIHNlY3Rpb24sIG1peGlucyksIE9SXG4vLyAgIOKAoiBjYW1jb20tdjIgUEFSRU5UIGNocm9tZSBzdHlsaW5nIOKAlCBldmVyeSBicmFuZCBpbmhlcml0cyB0aGUgcGFyZW50J3Ncbi8vICAgICBoZWFkZXIvZm9vdGVyIFBIUCB2aWEgZ2V0X2hlYWRlcigpL2dldF9mb290ZXIoKSwgc28gYW55IGNsYXNzLXJvb3QgdGhlXG4vLyAgICAgcGFyZW50IHJlbmRlcnMgYmVsb25ncyBpbiBmcmFtZXdvcmsvZ2xvYmFsLlxuLy9cbi8vIENIUk9NRSBNVVNUIFdPUksgV0lUSE9VVCBBIEJSQU5EOyBDT05URU5UIE1VU1QgQkUgREVTSUdORUQgQlkgT05FLlxuLy8gVGhhdCBpcyB0aGUgbGluZSwgYW5kIGdldHRpbmcgaXQgd3JvbmcgaXMgc2lsZW50LiBUaGUgc2VhcmNoIG1vZGFsIHNhdCBvbiB0aGVcbi8vIHdyb25nIHNpZGUgb2YgaXQgdW50aWwgMjAyNi0wOS0xNjogZm9vdGVyLnBocCBpbmNsdWRlcyBwYXJ0aWFscy9tb2RhbC1zZWFyY2gucGhwXG4vLyBvbiBldmVyeSBicmFuZCwgYnV0IHRoZSBvbmx5IC5tb2RhbCBydWxlcyBpbiB0aGUgY29kZWJhc2Ugd2VyZSBpbiBBUlRTQUJFUlMnXG4vLyBzaWxvIOKAlCBzbyBvbmUgYnJhbmQgaGFkIGEgc2VhcmNoIG92ZXJsYXkgYW5kIHRoZSBvdGhlcnMgcmVuZGVyZWQgYSBzdHJheVxuLy8gc2VhcmNoIGJveCBiZWxvdyB0aGUgZm9vdGVyLCBvbiBldmVyeSBwYWdlLiBOb2JvZHkgbm90aWNlZCBiZWNhdXNlIHRoZSBicmFuZFxuLy8gdGhhdCB3b3JrZWQgd2FzIHRoZSBvbmUgYmVpbmcgbG9va2VkIGF0LlxuLy9cbi8vIFRoZSB0ZXN0IGZvciBhbnl0aGluZyB0aGUgUEFSRU5UIHJlbmRlcnM6IHdpdGggbm8gYnJhbmQgc3R5bGVzaGVldCBhdCBhbGwsXG4vLyBkb2VzIGl0IHN0aWxsIGRvIGl0cyBqb2I/IENocm9tZSDigJQgbW9kYWwsIGRyYXdlciwgbmF2LCBoZWFkZXIsIGZvb3RlciDigJQgbXVzdFxuLy8gYW5zd2VyIHllcywgc28gaXRzIG1lY2hhbmljcyAoaGlkZS9zaG93LCBwb3NpdGlvbiwgb3ZlcmxheSwgei1vcmRlcikgbGl2ZVxuLy8gaGVyZS4gQ29udGVudCDigJQgY2FyZHMsIGJ1dHRvbnMsIGV5ZWJyb3dzLCBwcmljZXMg4oCUIGFuc3dlcnMgbm8gYnkgZGVzaWduLCBhbmRcbi8vIHN0YXlzIHBlci1icmFuZC4gV2hlbiBhZGRpbmcgYSBwYXJ0aWFsIHRvIHRoZSBwYXJlbnQsIGFkZCBpdHMgc3RydWN0dXJhbFxuLy8gc3R5bGluZyBoZXJlIGluIHRoZSBzYW1lIGNoYW5nZS5cbi8vXG4vLyBFdmVyeSBkZXNpZ24tdmFyaWVkIGJyYW5kIGNvbXBvbmVudCAoaGVybywgcHJvZHVjdC1jYXJkLCBidXR0b24sIGV5ZWJyb3csXG4vLyBzZWN0aW9uLWhlYWRlciwgbGluay1ib3gsIG5ld3NsZXR0ZXIsIHRlc3RpbW9uaWFsLWNhcmQsIGFsbCBjYXJkIHZhcmlhbnRzKVxuLy8gaXMgYXV0aG9yZWQgcGVyLWJyYW5kIGluIGZyYW1ld29yay12Mi90aGVtZS97YnJhbmR9L3Njc3MvLiBTZWVcbi8vIHNlY3Rpb24td2Fsay1tZXRob2RvbG9neS5tZCBQYXNzIDEgc3RlcCAxIGZvciB0aGUgcmV1c2UtdnMtYnJhbmQtYXV0aG9yXG4vLyBkaXNjaXBsaW5lLlxuLy9cbi8vIFByZS1jbGVhbnVwIHNuYXBzaG90OiBmcmFtZXdvcmstdjIvX2FyY2hpdmUvMjAyNi0wNy0zMC1nbG9iYWwtcHJlLWNsZWFudXAvXG5cbkB1c2UgJ2NvcmUnO1xuQHVzZSAndmVuZG9yJztcbkB1c2UgJ2xheW91dHMnO1xuQHVzZSAnY29tcG9uZW50cyc7XG5AdXNlICd0aGlyZC1wYXJ0eSc7XG5AdXNlICdibG9ja3MnO1xuXG5ib2R5IHtcblxuXHRtYXJnaW46IDA7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblxufVxuXG4vLyAud3JhcHBlciBhbmQgLnNlY3Rpb24gbGl2ZSBpbiBsYXlvdXRzL193cmFwcGVyLnNjc3MgYW5kIGxheW91dHMvX3NlY3Rpb24uc2Nzcy5cbi8vIFRocmVlLWxheWVyIHN0cnVjdHVyYWwgcGF0dGVybiAoc2VjdGlvbiAvIHdyYXBwZXIgLyBjb21wb25lbnQpIOKAlCBzZWVcbi8vIGZlZWRiYWNrX2JlbV9ob3dfdG8ubWQgYW5kIGZlZWRiYWNrX3NlY3Rpb25fd3JhcHBlcl9wYXR0ZXJuLm1kLlxuXG5hIHtcblxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGNvbG9yOiBpbmhlcml0O1xuXG59XG5cbi5jZW50ZXIge1xuXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tbGVmdDogYXV0bztcblx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG59XG5cbi5jZW50ZXJlZCB7XG5cblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG59XG4iXX0= */
