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

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
  border: 0;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: #dfe6e9;
}

a {
  background-color: transparent;
}

a:focus {
  outline: unset;
}

b,
strong {
  font-weight: 700;
}

small {
  font-size: 0.875em;
}

img {
  height: auto;
}

main img {
  max-width: 100%;
  border-style: none;
}

picture img {
  display: block;
}

button,
input {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button,
input {
  overflow: visible;
}

button {
  text-transform: none;
  -webkit-appearance: button;
}

button::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring {
  outline: 1px dotted #fff;
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

.screen-reader-text,
.screen-reader-text span,
.screen-reader-shortcut {
  position: absolute !important;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  width: 1px;
  border: 0;
  overflow: hidden;
  color: #333;
  background: #fff;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/*--------------------------------------------------------------
# Fonts
--------------------------------------------------------------*/
@font-face {
  font-display: swap;
  font-family: "Raleway";
  font-style: normal;
  font-weight: 400;
  src: local(""), url("../fonts/Raleway-Regular.woff2") format("woff2"), url("../fonts/Raleway-Regular.ttf") format("truetype");
}
@font-face {
  font-display: swap;
  font-family: "Onest";
  font-style: normal;
  font-weight: 300;
  src: local(""), url("../fonts/onest-v6-cyrillic_latin-300.woff2") format("woff2"), url("../fonts/onest-v6-cyrillic_latin-300.ttf") format("truetype");
}
@font-face {
  font-display: swap;
  font-family: "Onest";
  font-style: normal;
  font-weight: 500;
  src: local(""), url("../fonts/onest-v6-cyrillic_latin-500.woff2") format("woff2"), url("../fonts/onest-v6-cyrillic_latin-500.ttf") format("truetype");
}
@font-face {
  font-display: swap;
  font-family: "Onest";
  font-style: normal;
  font-weight: 600;
  src: local(""), url("../fonts/onest-v6-cyrillic_latin-600.woff2") format("woff2"), url("../fonts/onest-v6-cyrillic_latin-600.ttf") format("truetype");
}
@font-face {
  font-display: swap;
  font-family: "Onest";
  font-style: normal;
  font-weight: 700;
  src: local(""), url("../fonts/onest-v6-cyrillic_latin-700.woff2") format("woff2"), url("../fonts/onest-v6-cyrillic_latin-700.ttf") format("truetype");
}
/*--------------------------------------------------------------
# Body
--------------------------------------------------------------*/
body {
  font-size: 17px;
  font-weight: 300;
  color: #000;
  line-height: 1.76;
  font-family: "Onest", sans-serif;
  background-color: #fff;
}

/*--------------------------------------------------------------
# Headings
--------------------------------------------------------------*/
h1 {
  font-size: clamp(26px, 2vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 35px;
}

h2,
.h2 {
  font-size: clamp(24px, 2vw, 26px);
  font-weight: 700;
  line-height: 1.5;
}

h3,
.h3 {
  font-size: clamp(22px, 2vw, 24px);
  font-weight: 700;
  line-height: 1.5;
}

h4,
.h4 {
  font-size: clamp(20px, 2vw, 22px);
  font-weight: 600;
  line-height: 1.4;
}

h5,
.h5 {
  font-size: clamp(18px, 2vw, 20px);
  font-weight: 600;
  line-height: 1.4;
}

h6,
.h6 {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
}

.h7 {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

/*--------------------------------------------------------------
# Paragraphs
--------------------------------------------------------------*/
p {
  margin-top: 0;
  margin-bottom: 20px;
}
p.empty, p:last-of-type {
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# Links
--------------------------------------------------------------*/
a {
  color: #4b80c4;
  text-decoration: none;
  transition: 0.3s;
}

.post a:not([class]):visited {
  color: #666666;
}

/*--------------------------------------------------------------
# Buttons
--------------------------------------------------------------*/
.button,
button,
input[type=button],
input[type=reset],
input[type=submit] {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  line-height: 1.2;
  padding: 20px 30px;
  text-align: center;
  background-color: #4b80c4;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: 0.3s;
  white-space: nowrap;
}
.button:focus,
button:focus,
input[type=button]:focus,
input[type=reset]:focus,
input[type=submit]:focus {
  outline: none;
}
.button:disabled,
button:disabled,
input[type=button]:disabled,
input[type=reset]:disabled,
input[type=submit]:disabled {
  color: #a4aeb9;
  background-color: #e4e8ec;
  cursor: not-allowed;
}
.button:hover,
button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover {
  opacity: 0.7;
}
.button.gray,
button.gray,
input[type=button].gray,
input[type=reset].gray,
input[type=submit].gray {
  color: rgba(0, 0, 0, 0.5);
  background-color: #f4f6f9;
}
.button.gray:hover,
button.gray:hover,
input[type=button].gray:hover,
input[type=reset].gray:hover,
input[type=submit].gray:hover {
  color: #fff;
  background-color: #4b80c4;
  opacity: 1;
}

/* ## With arrow */
.button-arrow {
  font-size: 14px;
  font-weight: 600;
  color: #4b80c4;
  line-height: 1;
  display: flex;
  gap: 17px;
  padding: 10px 20px;
  border-radius: 7px;
  white-space: nowrap;
}
.button-arrow svg {
  fill: #4b80c4;
}
.button-arrow:hover, .button-arrow.bg {
  color: #fff;
  background-color: #4b80c4;
}
.button-arrow:hover svg, .button-arrow.bg svg {
  fill: #fff;
}

/* ## Load more */
.load-more {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
  line-height: 1;
  margin-top: 50px;
  height: 50px;
  background-color: #f4f6f9;
  border-radius: 10px;
  transition: 0.3s;
  cursor: pointer;
}
.load-more:hover {
  color: #fff;
  background-color: #4b80c4;
}

/* ## Cross */
.cross {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  cursor: pointer;
}
.cross:before, .cross:after {
  content: "";
  width: 1px;
}
.cross:before {
  transform: rotate(45deg);
}
.cross:after {
  transform: rotate(-45deg);
}

/*--------------------------------------------------------------
# Scroll button
--------------------------------------------------------------*/
.scroll-button {
  position: fixed;
  right: 25px;
  bottom: 40px;
  z-index: 1099;
  display: flex;
  flex-direction: column;
  width: 35px;
  text-align: center;
}
.scroll-button-up, .scroll-button-down {
  margin-top: 5px;
  margin-bottom: 5px;
  opacity: 0.5;
  cursor: pointer;
  transition: 0.3s;
}
.scroll-button-up:hover, .scroll-button-down:hover {
  opacity: 1;
}
.scroll-button-up svg, .scroll-button-down svg {
  display: block;
  margin: auto;
  width: 14px;
  height: 16px;
}
.scroll-button-middle {
  font-size: 10px;
  font-weight: 700;
  opacity: 0.5;
}

/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
.form-bg {
  position: relative;
  padding: 50px;
  background-color: #f4f6f9;
  border-radius: 30px;
}
@media screen and (max-width: 640px) {
  .form-bg {
    margin-left: -40px;
    margin-right: -40px;
    padding: 40px;
  }
}
.form-bg form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.form-bg button {
  width: 300px;
}
@media screen and (max-width: 640px) {
  .form-bg button {
    width: 100%;
  }
}
.form-bg .form-silence {
  display: none;
}

.form-row {
  display: flex;
  align-items: center;
  gap: 20px;
}
.form-row:only-child > * {
  flex: 1;
}
@media screen and (max-width: 640px) {
  .form-row {
    flex-direction: column;
    align-items: stretch;
  }
}

.row-columns > * {
  flex: 1;
}

/* ## Main */
input[type=text],
input[type=email],
input[type=search],
input[type=tel],
input[type=date],
textarea,
select {
  font-size: 15px;
  font-weight: 300;
  color: #000;
  line-height: 1.3;
  display: block;
  margin: 0;
  padding: 15px 20px;
  width: 100%;
  background-color: #fff;
  border: 1px solid #e3e3e3;
  border-radius: 10px;
}
input[type=text]:focus,
input[type=email]:focus,
input[type=search]:focus,
input[type=tel]:focus,
input[type=date]:focus,
textarea:focus,
select:focus {
  border: 1px solid rgb(204.3, 204.3, 204.3);
  outline: none;
}
input[type=text]:disabled,
input[type=email]:disabled,
input[type=search]:disabled,
input[type=tel]:disabled,
input[type=date]:disabled,
textarea:disabled,
select:disabled {
  color: rgb(164, 174, 185);
  background-color: #eceff2;
  cursor: not-allowed;
}
input[type=text].error,
input[type=email].error,
input[type=search].error,
input[type=tel].error,
input[type=date].error,
textarea.error,
select.error {
  border-color: #eb3154;
}
@media screen and (max-width: 980px) {
  input[type=text],
  input[type=email],
  input[type=search],
  input[type=tel],
  input[type=date],
  textarea,
  select {
    font-size: 16px;
  }
}

.form-bg input,
.form-bg textarea {
  border-color: transparent;
}

label {
  display: block;
}

input[type=checkbox],
input[type=image],
input[type=radio] {
  width: auto;
}

/* ## Select */
select {
  padding-right: 50px;
  color: #808080;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNSA3Ij4KICA8cGF0aCBmaWxsPSIjNEI4MEM0IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC4yOTEgMS40MDcgOC4xNDYgNS43OTZsLS40MzcuNjExLS4yMDktLjE1LS4yMDkuMTUtLjQzNy0uNjExTC43MDkgMS40MDdsLjU4Mi0uODE0TDcuNSA1LjAyOCAxMy43MDkuNTkzbC41ODIuODE0WiIvPgo8L3N2Zz4K);
  background-size: 15px;
  background-position: right 20px center;
  background-repeat: no-repeat;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none !important;
}
select:hover {
  cursor: pointer;
}
select::-ms-expand {
  display: none;
}

.input-select {
  font-size: 14px;
}
.input-select .ts-wrapper *:focus {
  border: 1px solid rgb(204.3, 204.3, 204.3);
  outline: none;
}
.input-select .ts-control {
  display: flex;
  align-items: center;
  padding: 5px 50px 5px 20px;
  height: 50px;
  font-size: 14px;
  color: #000;
  border: unset;
  border-radius: 10px;
}
.input-select .ts-control .item {
  flex-direction: row;
  justify-content: space-between;
  padding-right: 60px;
  width: 100%;
  height: auto;
}
.input-select .ts-control input {
  width: auto;
  height: 100%;
  background-color: transparent;
}
.input-select .ts-wrapper:not(.form-control, .form-select).single .ts-control {
  background-color: #fff;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNSA3Ij4KICA8cGF0aCBmaWxsPSIjNEI4MEM0IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC4yOTEgMS40MDcgOC4xNDYgNS43OTZsLS40MzcuNjExLS4yMDktLjE1LS4yMDkuMTUtLjQzNy0uNjExTC43MDkgMS40MDdsLjU4Mi0uODE0TDcuNSA1LjAyOCAxMy43MDkuNTkzbC41ODIuODE0WiIvPgo8L3N2Zz4K);
  background-size: 15px;
  background-position: right 20px center;
  background-repeat: no-repeat;
}
.input-select .ts-dropdown {
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  border: unset;
  overflow: hidden;
}
.input-select .ts-dropdown .ts-dropdown-content {
  scrollbar-color: #4b80c4 rgb(228.05, 232.95, 240.3);
  scrollbar-width: thin;
}
.input-select .ts-dropdown .ts-dropdown-content::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
.input-select .ts-dropdown .ts-dropdown-content::-webkit-scrollbar-button {
  display: none;
}
.input-select .ts-dropdown .ts-dropdown-content::-webkit-scrollbar-corner {
  background: transparent;
}
.input-select .ts-dropdown .ts-dropdown-content::-webkit-scrollbar-track {
  background-color: rgb(228.05, 232.95, 240.3);
}
.input-select .ts-dropdown .ts-dropdown-content::-webkit-scrollbar-thumb {
  background-color: #4b80c4;
  transition: background-color 0.3s ease;
}
.input-select .ts-dropdown .ts-dropdown-content::-webkit-scrollbar-thumb:hover {
  background-color: rgb(60.209623431, 114.2962343096, 183.690376569);
}
.input-select .ts-dropdown .ts-dropdown-content::-webkit-resizer {
  display: none;
}
.input-select .ts-dropdown .active {
  background-color: rgb(237.62, 240.78, 245.52);
}
.input-select .ts-dropdown .option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  font-size: 14px;
  transition: background-color 0.3s ease;
}
.input-select .ts-dropdown .optgroup {
  margin-top: 10px;
}
.input-select .ts-dropdown .optgroup-header {
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
  text-transform: uppercase;
  opacity: 0.7;
}

/* ## Input radiobutton */
.input-radio {
  display: grid;
  grid-template-columns: 15px auto;
  gap: 15px;
  align-items: center;
  font-size: 14px;
  cursor: pointer;
}
.input-radio.disabled {
  color: rgba(0, 0, 0, 0.3);
  cursor: not-allowed;
}

input[type=radio] {
  display: grid;
  place-content: center;
  margin-top: 3px;
  width: 15px;
  height: 15px;
  background-color: #fff;
  border: 1px solid #dfe3ea;
  border-radius: 50%;
  transform: translateY(-0.075em);
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  transition: border-color 120ms ease-in-out;
}
input[type=radio]:before {
  content: "";
  width: 7px;
  height: 7px;
  background-color: #8ad024;
  border-radius: 50%;
  transform: scale(0);
  transition: 200ms transform ease-in-out;
}
input[type=radio]:checked:before {
  transform: scale(1);
}
input[type=radio]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.form-bg input[type=radio] {
  border-color: transparent;
  box-shadow: 0px 3px 7px 0px rgba(0, 0, 0, 0.05);
}

/* ## Input checkbox */
.input-checkbox {
  display: grid;
  grid-template-columns: 15px auto;
  gap: 15px;
  align-items: center;
  font-size: 14px;
  cursor: pointer;
}
.input-checkbox.disabled {
  color: rgba(0, 0, 0, 0.3);
  cursor: not-allowed;
}

input[type=checkbox] {
  display: grid;
  place-content: center;
  margin: 0;
  width: 15px;
  height: 15px;
  background-color: #fff;
  border: 1px solid #dfe3ea;
  border-radius: 3px;
  transform: translateY(-0.075em);
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  transition: border-color 120ms ease-in-out;
}
input[type=checkbox]:before {
  content: "";
  width: 10px;
  height: 9px;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMCI+CiAgPHBhdGggZmlsbD0iIzhBRDAyNCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtNC4zOCA4LjMyNS0uNzYtLjY1IDYtNyAuNzYuNjUtNiA3Wm0tLjczNCAxLjAyOS0zLTMgLjcwOC0uNzA4IDMgMy0uNzA4LjcwOFoiLz4KPC9zdmc+Cg==);
  background-repeat: no-repeat;
  background-position: center;
  transform: scale(0);
  transform-origin: bottom left;
  transition: 120ms transform ease-in-out;
}
input[type=checkbox]:checked {
  border-color: #8ad024;
}
input[type=checkbox]:checked:before {
  transform: scale(1);
}
input[type=checkbox]:focus {
  outline: max(2px, 0.15em) solid #4b80c4;
  outline-offset: max(2px, 0.15em);
}
input[type=checkbox]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ## Input number */
.input-number {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 100px;
  height: 30px;
  background-color: #fff;
  border: 1px solid #dfe3ea;
  border-radius: 5px;
}
.input-number--big {
  height: 50px;
  border: 0;
}
.input-number-field {
  position: absolute;
  top: 0;
  left: 0;
  padding: 3px 15px;
  width: 100%;
  height: 100%;
  font-size: 14px;
  font-weight: 300;
  text-align: center;
  background-color: transparent;
  border: none;
  border-radius: 0;
}
.input-number-field:focus {
  outline: unset;
}
.input-number-field:disabled ~ .input-number-button {
  opacity: 0.5;
  cursor: not-allowed;
}
.input-number-button {
  position: absolute;
  padding: 0;
  width: 25px;
  height: 100%;
  font-size: 14px;
  font-weight: 300;
  color: #000;
  background-color: transparent;
}
.input-number-button.decrement {
  left: 0;
}
.input-number-button.increment {
  right: 0;
}
.input-number-button:hover {
  color: #c41710;
}
.input-number--big .input-number-button {
  font-size: 16px;
}
.input-number.disable-editing input[type=number] {
  pointer-events: none;
  caret-color: transparent;
}

input[type=number] {
  -moz-appearance: textfield;
}
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

/* ## Rating */
.form-rating-wrap {
  display: flex;
  align-items: center;
  gap: 20px;
}
.form-rating-wrap span {
  font-size: 16px;
  font-weight: 500;
}

.rating-parameters {
  position: relative;
  display: flex;
  gap: 1px;
}
.rating-parameters label {
  margin-right: 2px;
  width: 20px;
  height: 20px;
  overflow: hidden;
  cursor: pointer;
}
.rating-parameters label svg {
  width: 100%;
  height: 100%;
  fill: #d7dee2;
  transition: 0.3s ease-in-out;
}
.rating-parameters label.selected svg {
  fill: #f5d03b;
}
.rating-parameters input {
  position: absolute;
  margin-top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

/* ## Drag & drop */
.drag-drop {
  position: relative;
  border-radius: 10px;
  transition: 0.3s;
  overflow: hidden;
  cursor: pointer;
}
.drag-drop:hover {
  opacity: 0.8;
}
.drag-drop input[type=file] {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 99;
  width: 100%;
  height: 100%;
  cursor: pointer;
  opacity: 0;
}
.drag-drop input[type=file]:disabled {
  cursor: not-allowed;
}
.drag-drop-label {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin: 0;
  padding: 15px 20px;
  height: 100%;
  min-height: 50px;
  width: 100%;
  font-size: 14px;
  color: rgba(0, 0, 0, 0.5);
  background-color: #f4f6f9;
  border-radius: 15px;
}

/* ### Form info */
.form-info {
  display: none;
  margin-top: 20px;
  font-size: 15px;
  line-height: 1.43;
}
.form-info.success, .form-info.error {
  display: flex;
  padding: 10px 15px;
  color: #fff;
  border-radius: 10px;
}
.form-info.success {
  background-color: #329847;
}
.form-info.error {
  background-color: #d90027;
}
.form-info-text {
  position: absolute;
  bottom: -20px;
  display: none;
  font-size: 12px;
}
.form-info-text.success, .form-info-text.error {
  display: block;
}
.form-info-text.success {
  color: #329847;
}
.form-info-text.error {
  color: #d90027;
}

/* ## Placeholder */
::placeholder {
  font-size: 14px;
  color: #000;
  text-overflow: ellipsis;
  opacity: 0.5;
  transition: opacity ease 0.3s;
}

input:focus::placeholder,
textarea:focus::placeholder {
  opacity: 0;
}

/* ## Progress bar */
.upload-progress {
  position: relative;
  display: none;
  margin-top: 10px;
  width: 100%;
  height: 30px;
  background-color: rgb(212.1, 219.9, 231.6);
  border-radius: 5px;
}
.upload-progress .progress-bar {
  height: 100%;
  width: 0;
  background-color: #4caf50;
  border-radius: 5px;
}
.upload-progress .progress-text {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 100%;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
}

/*--------------------------------------------------------------
# Overlay
--------------------------------------------------------------*/
.menu-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 99;
  background: #0b0c0e;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.35s ease-in;
}
.menu-overlay.active {
  visibility: visible;
  opacity: 0.8;
}

/*--------------------------------------------------------------
# Popup forms
--------------------------------------------------------------*/
.popup-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -99;
  width: 100%;
  height: 100%;
  visibility: hidden;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.3s, visibility 0s 0.3s;
}
.popup-wrap.active {
  z-index: 999;
  visibility: visible;
  opacity: 1;
}
.popup-wrap.bg-modal .popup-inner {
  display: flex;
  align-items: stretch;
  flex-direction: column;
  padding: 24px;
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 0 0 13px 0 rgba(100, 120, 164, 0.25);
}
.popup-wrap.bg-modal .popup-inner .top {
  padding-bottom: 20px;
  border-bottom: 1px solid #e3e3e3;
}
.popup-wrap.bg-modal .popup-inner .h5 {
  font-size: 20px;
  font-weight: 600;
}
.popup-wrap.bg-modal .popup-inner .text {
  margin-bottom: 20px;
  font-size: 17px;
}
.popup-wrap .cross {
  width: 30px;
  height: 30px;
  cursor: pointer;
}
.popup-wrap .cross:before, .popup-wrap .cross:after {
  content: "";
  position: absolute;
  width: 1px;
  height: 20px;
  background-color: #c4160f;
}
.popup-wrap .popup-inner {
  position: relative;
  z-index: 999;
}
.popup-wrap .popup-inner .top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.popup-wrap .popup-form {
  position: relative;
  display: flex;
  align-items: stretch;
  flex-direction: column;
}

.no-scroll {
  overflow: hidden;
}

/* ## Popup city */
#city-modal .popup-inner {
  width: 500px;
  max-width: 100%;
}
#city-modal .city-search-wrap {
  position: relative;
}
#city-modal .city-search-wrap svg {
  position: absolute;
  top: 14px;
  right: 20px;
  stroke: #4b80c4;
}
#city-modal .city-search-wrap .loader {
  --size: 3px;
  --width: 24px;
  top: 20px;
  right: 80px;
  left: unset;
}
#city-modal .popup-loader {
  top: 0;
  left: 0;
  z-index: 99;
  width: 100%;
  height: 100%;
  background-color: rgba(240, 245, 249, 0.5);
  border-radius: 20px;
}
#city-modal .popup-loader:after {
  content: "";
  position: absolute;
  top: calc(50% - 32px);
  left: calc(50% - 32px);
  display: block;
  width: 64px;
  height: 64px;
  margin: 8px;
}

/* ## Popup cart */
#cart-modal .popup-form {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 15px;
}
#cart-modal .popup-form .button {
  flex-grow: 1;
}

/*--------------------------------------------------------------
# Animations
--------------------------------------------------------------*/
/* ### Ripple button */
[animation=ripple] {
  position: relative;
  overflow: hidden;
  outline: none;
}
[animation=ripple]:before {
  content: "";
  position: absolute;
  display: block;
  background: var(--ripple-background, white);
  border-radius: 50%;
  pointer-events: none;
  top: calc(var(--y) * 1px);
  left: calc(var(--x) * 1px);
  width: calc(var(--d) * 1px);
  height: calc(var(--d) * 1px);
  opacity: calc(var(--o, 1) * var(--ripple-opacity, 0.4));
  transition: calc(var(--t, 0) * var(--ripple-duration, 600ms)) var(--ripple-easing, linear);
  transform: translate(-50%, -50%) scale(var(--s, 1));
  transform-origin: center;
}
[animation=ripple]:hover {
  opacity: 1;
}

/*--------------------------------------------------------------
# Accordion
--------------------------------------------------------------*/
.faq-wrap.accordion-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
@media screen and (max-width: 1024px) {
  .faq-wrap.accordion-wrap {
    flex-direction: column;
  }
}
.faq-wrap.accordion-wrap .column {
  width: calc(50% - 10px);
}
@media screen and (max-width: 1024px) {
  .faq-wrap.accordion-wrap .column {
    width: 100%;
  }
}

.accordion-item {
  position: relative;
  border: 1px solid #4b80c4;
  border-radius: 10px;
}
.accordion-item:not(:last-child) {
  margin-bottom: 20px;
}
.accordion-item:not(.active) {
  cursor: pointer;
}
.accordion-item:hover .accordion-item-title {
  color: #4b80c4;
}
.accordion-item.active .accordion-item-title {
  color: #4b80c4;
}
.accordion-item.active .accordion-item-title svg {
  transform: rotate(180deg);
}
.accordion-item-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 18px 30px;
  transition: 0.3s;
}
.accordion-item-title svg {
  content: "";
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  fill: #4b80c4;
  transition: 0.3s;
}
@media screen and (max-width: 420px) {
  .accordion-item-title {
    font-size: 16px;
  }
}
.accordion-item-content {
  font-size: 16px;
  line-height: 1.56;
  display: none;
  padding: 0 30px 18px;
}

/*--------------------------------------------------------------
# Loader
--------------------------------------------------------------*/
.loader {
  --size: 6px;
  --width: 64px;
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 99;
}
.loader-bg {
  --margin: 0px;
  --radius: 0;
  margin: var(--margin);
  width: calc(100% - var(--margin) * 2);
  height: calc(100% - var(--margin) * 2);
  background-color: rgba(240, 245, 249, 0.5);
  border-radius: var(--radius);
}
.loader:after {
  content: "";
  position: absolute;
  top: calc(50% - var(--width) / 2);
  left: calc(50% - var(--width) / 2);
  display: block;
  width: var(--width);
  height: var(--width);
  margin: 8px;
  border-radius: 50%;
  border: var(--size) solid #4b80c4;
  border-color: #4b80c4 transparent #4b80c4 transparent;
  animation: lds-dual-ring 1.2s linear infinite;
}

@keyframes lds-dual-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*--------------------------------------------------------------
# Grid and Container
--------------------------------------------------------------*/
.site-container-wrap {
  position: relative;
  overflow: hidden;
}

.site-container {
  position: relative;
  margin: auto;
  max-width: 1300px;
  width: 100%;
}
@media screen and (max-width: 1350px) {
  .site-container {
    padding: 0 50px;
  }
}
@media screen and (max-width: 980px) {
  .site-container {
    overflow: hidden;
  }
}
@media screen and (max-width: 728px) {
  .site-container {
    padding: 0 30px;
  }
}
@media screen and (max-width: 420px) {
  .site-container {
    padding: 0 15px;
  }
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.site-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(20px, 2vw, 40px);
  padding: 30px 0;
}
@media screen and (max-width: 480px) {
  .site-header {
    padding: 15px 0;
  }
}

/* ## Logo */
.logo {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 15px;
  flex-shrink: 0;
  color: #000;
}
.logo picture {
  flex-shrink: 0;
  margin-top: -10px;
}
.logo picture img {
  width: clamp(40px, 2vw, 54px);
  height: auto;
}
.logo .h1 {
  display: flex;
  justify-content: center;
  flex-direction: column;
  font-size: clamp(16px, 2vw, 22px);
  font-weight: 700;
  line-height: 1;
}
.logo .h1 span {
  font-weight: 300;
}

@media screen and (max-width: 480px) {
  .site-header .logo .h1 {
    display: none;
  }
}
/* ## Contacts */
.contacts-wrap {
  display: flex;
  align-items: center;
  flex-direction: column;
}
.contacts-wrap .tel {
  font-size: clamp(14px, 2vw, 20px);
  font-weight: 700;
  color: #000;
  line-height: 1;
  white-space: nowrap;
}
.contacts-wrap .tel .code {
  font-weight: 300;
}
.contacts-wrap .working-time {
  font-size: clamp(9px, 2vw, 11px);
  line-height: 1.43;
  text-align: center;
  opacity: 0.7;
}

/* ## Cart */
.shopcart-wrap {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-left: auto;
}
.shopcart-wrap .cart-icon {
  position: relative;
  display: flex;
}
.shopcart-wrap .cart-icon svg {
  stroke: #4b80c4;
}
.shopcart-wrap .cart-counter {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -3px;
  right: -6px;
  width: 20px;
  height: 20px;
  font-size: 11px;
  font-weight: 500;
  color: #fff;
  border-radius: 50%;
}
.shopcart-wrap .cart-counter:not(:empty) {
  background-color: #fa4b18;
}
.shopcart-wrap .text {
  font-size: 12px;
  font-weight: 700;
  color: #000;
  line-height: 1.3;
  display: flex;
  flex-direction: column;
  transition: color 0.3s;
}
@media screen and (max-width: 1440px) {
  .shopcart-wrap .text {
    display: none;
  }
}
.shopcart-wrap .text span {
  font-weight: 300;
}

/* ## Shapes */
.header-bg-shapes {
  position: absolute;
  top: 0;
  left: calc(-50vw + 50%);
  z-index: -1;
  display: flex;
  justify-content: center;
  width: 100vw;
}
@media screen and (max-width: 1024px) {
  .header-bg-shapes {
    display: none;
  }
}
.header-bg-shapes picture {
  width: 1551px;
  max-width: 100%;
  overflow: hidden;
}

/*--------------------------------------------------------------
# Menu
--------------------------------------------------------------*/
.menu {
  position: relative;
  display: flex;
  margin: 0;
  padding: 0;
  line-height: 1;
  list-style: none;
}

@media screen and (min-width: 1025px) {
  .header-menu {
    margin-right: auto;
  }
  .primary-menu-wrap {
    display: flex;
    align-items: center;
    gap: 40px;
  }
  .primary-menu-wrap .cross {
    display: none;
  }
  .catalog-menu {
    position: relative;
  }
  .catalog-menu > .menu-item {
    font-size: 17px;
    font-weight: 600;
    color: #fff;
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 40px;
    padding: 15px 20px;
    white-space: nowrap;
    background-color: #4b80c4;
    border-radius: 10px;
    cursor: pointer;
  }
  .catalog-menu:hover > .menu-item {
    border-radius: 10px 10px 0 0;
  }
  .catalog-menu > .toggle {
    display: none;
  }
  .catalog-menu .burger {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .catalog-menu .burger span {
    position: relative;
    width: 20px;
    background-color: #fff;
  }
  .catalog-menu .burger span:before, .catalog-menu .burger span:after {
    content: "";
    position: absolute;
    width: 20px;
    height: 3px;
    background-color: #fff;
    border-radius: 2px;
    transition: 0.3s;
  }
  .catalog-menu .burger span:before {
    top: -4px;
  }
  .catalog-menu .burger span:after {
    top: 3px;
  }
  .catalog-menu:hover > .sub-menu {
    display: flex;
    justify-content: center;
    flex-direction: column;
  }
  .catalog-menu .sub-menu {
    position: absolute;
    top: 47px;
    left: 0;
    z-index: 999;
    display: none;
    margin: 0;
    padding: 10px 20px;
    min-width: 170px;
    width: 100%;
    height: auto;
    list-style: none;
    background-color: #4b80c4;
    border-radius: 0 0 10px 10px;
  }
  .catalog-menu .sub-menu li {
    position: relative;
    width: 100%;
  }
  .catalog-menu .sub-menu li:hover > a {
    background-color: rgb(60.209623431, 114.2962343096, 183.690376569);
  }
  .catalog-menu .sub-menu li:hover > a:not(:only-child) {
    border-radius: 7px 0 0 7px;
  }
  .catalog-menu .sub-menu li:hover > .sub-menu {
    display: flex;
  }
  .catalog-menu .sub-menu li.has-reverse-submenu:hover a:not(:only-child) {
    border-radius: 0 7px 7px 0;
  }
  .catalog-menu .sub-menu li a,
  .catalog-menu .sub-menu li span {
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    line-height: 1;
    display: block;
    padding: 11px;
    border-radius: 7px;
  }
  .catalog-menu .sub-menu li span {
    background-color: rgb(60.209623431, 114.2962343096, 183.690376569);
  }
  .catalog-menu .sub-menu li ul {
    top: 0;
    left: 100%;
    border-radius: 0 10px 10px 10px;
    transform: translateX(0);
  }
  .catalog-menu .sub-menu li ul.reverse {
    left: auto;
    right: 100%;
    border-radius: 10px 0 10px 10px;
  }
  .primary-menu .menu {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 30px;
  }
  .primary-menu .menu > li {
    position: relative;
    display: flex;
  }
  .primary-menu .menu > li > a,
  .primary-menu .menu > li > span {
    font-size: 14px;
    font-weight: 600;
    color: #000;
    line-height: 1.4;
    position: relative;
    padding-top: 10px;
    padding-bottom: 10px;
    white-space: nowrap;
  }
  .primary-menu .menu > li > a:after,
  .primary-menu .menu > li > span:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background-color: transparent;
    border-radius: 2px;
    transition: 0.3s;
  }
  .primary-menu .menu > li:hover > a {
    color: #4b80c4;
  }
  .primary-menu .menu > li:hover > a:after {
    background-color: #4b80c4;
  }
  .primary-menu .menu > li > span {
    color: #4b80c4;
  }
  .primary-menu .menu > li > span:after {
    background-color: #4b80c4;
  }
  .primary-menu li:hover > .sub-menu {
    display: flex;
    justify-content: center;
    flex-direction: column;
  }
  .primary-menu .sub-menu {
    position: absolute;
    top: 36px;
    left: 0;
    z-index: 999;
    display: none;
    margin: 0;
    padding: 10px 20px;
    min-width: 200px;
    width: 100%;
    height: auto;
    list-style: none;
    background-color: #4b80c4;
    border-radius: 0 10px 10px 10px;
  }
  .primary-menu .sub-menu li {
    position: relative;
    width: 100%;
  }
  .primary-menu .sub-menu li:hover > a {
    background-color: rgb(60.209623431, 114.2962343096, 183.690376569);
  }
  .primary-menu .sub-menu li:hover > a:not(:only-child) {
    border-radius: 7px 0 0 7px;
  }
  .primary-menu .sub-menu li:hover > .sub-menu {
    display: flex;
  }
  .primary-menu .sub-menu li.has-reverse-submenu:hover a:not(:only-child) {
    border-radius: 0 7px 7px 0;
  }
  .primary-menu .sub-menu li a,
  .primary-menu .sub-menu li span {
    font-size: 14px;
    font-weight: 500;
    color: #fff;
    line-height: 1;
    display: block;
    padding: 11px;
    border-radius: 7px;
  }
  .primary-menu .sub-menu li span {
    background-color: rgb(60.209623431, 114.2962343096, 183.690376569);
  }
  .primary-menu .sub-menu li ul {
    top: 0;
    left: 100%;
    border-radius: 0 10px 10px 10px;
    transform: translateX(0);
  }
  .primary-menu .sub-menu li ul.reverse {
    left: auto;
    right: 100%;
    border-radius: 10px 0 10px 10px;
  }
}
/* ## Mobile menu */
.mobile-menu-button,
#mobile-menu-toggle,
.primary-menu-top-mobile {
  display: none;
}

@media screen and (max-width: 1024px) {
  .header-menu {
    order: 5;
  }
  .primary-menu-top-mobile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 0;
  }
  .primary-menu-top-mobile .shopcart-wrap {
    margin-left: unset;
  }
  .primary-menu-top-mobile .shopcart-wrap .text {
    display: block;
    color: #42516f;
  }
  .cross-icon {
    stroke: #4b80c4;
    cursor: pointer;
  }
  .mobile-menu-button {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    width: 30px;
    height: 30px;
    cursor: pointer;
  }
  .mobile-menu-button span {
    display: block;
    width: 100%;
    height: 3px;
    background-color: #4b80c4;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  #mobile-menu-toggle:checked + .mobile-menu-button span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  #mobile-menu-toggle:checked + .mobile-menu-button span:nth-child(2) {
    opacity: 0;
  }
  #mobile-menu-toggle:checked + .mobile-menu-button span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
  .primary-menu-wrap {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 999;
    display: flex;
    flex-direction: column;
    padding: 0 30px;
    width: 320px;
    font-size: 15px;
    color: #42516f;
    background-color: #fff;
    box-shadow: 0px 0px 29px 0px rgba(104, 136, 209, 0.16);
    transition: -webkit-transform 0.35s ease-out;
    transition: transform 0.35s ease-out;
    transition: transform 0.35s ease-out, -webkit-transform 0.35s ease-out;
    transform: translate3d(-480px, 0, 0);
    overflow-y: scroll;
    /* ### Toggle */
  }
}
@media screen and (max-width: 1024px) and (max-width: 480px) {
  .primary-menu-wrap {
    padding-bottom: 20px;
    width: 100%;
  }
}
@media screen and (max-width: 1024px) {
  .primary-menu-wrap.menu-open {
    transform: translate3d(0, 0, 0);
  }
  .primary-menu-wrap .bottom {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: auto;
    padding: 20px 0 5px;
  }
  .primary-menu-wrap .bottom .contacts-wrap {
    align-items: flex-start;
  }
  .primary-menu-wrap .bottom .contacts-wrap .tel {
    font-size: 22px;
    color: #42516f;
  }
  .primary-menu-wrap .bottom .contacts-wrap .working-time {
    color: #42516f;
    font-size: 12px;
  }
  .primary-menu-wrap .bottom .address {
    color: #42516f;
    line-height: 1.43;
  }
  .primary-menu-wrap ul {
    display: block;
    line-height: 1;
  }
  .primary-menu-wrap ul li {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }
  .primary-menu-wrap ul li a,
  .primary-menu-wrap ul li span {
    display: flex;
    padding: 15px 0;
    color: #42516f;
    font-weight: 400;
    text-transform: uppercase;
  }
  .primary-menu-wrap ul li a:hover {
    color: #000;
  }
  .primary-menu-wrap ul li span {
    opacity: 0.8;
  }
  .primary-menu-wrap .catalog-menu {
    position: relative;
  }
  .primary-menu-wrap .catalog-menu > .menu-item {
    display: flex;
    padding: 14px 0;
    color: #42516f;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
    opacity: 0.7;
  }
  .primary-menu-wrap .sub-menu {
    display: none;
    padding: 0 0 0 20px;
    width: 100%;
    list-style: none;
  }
  .primary-menu-wrap .sub-menu li {
    text-transform: none;
  }
  .primary-menu-wrap .sub-menu li a {
    align-items: center;
    text-transform: none;
  }
  .primary-menu-wrap .sub-menu li a:before {
    content: "";
    flex-shrink: 0;
    margin-right: 10px;
    width: 8px;
    height: 7px;
    background-image: url(../images/polygon.svg);
    background-position: center;
    background-repeat: no-repeat;
  }
  .primary-menu-wrap .toggle {
    position: absolute;
    right: -8px;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    width: 50px;
    height: 43px;
    cursor: pointer;
  }
  .primary-menu-wrap .toggle svg {
    display: none;
  }
  .primary-menu-wrap .toggle:hover:before {
    opacity: 0.8;
  }
  .primary-menu-wrap .toggle.active:before {
    transform: rotate(180deg);
  }
  .primary-menu-wrap .toggle:before {
    content: "";
    width: 100%;
    height: 100%;
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDAiIGhlaWdodD0iODAwIiB2aWV3Qm94PSItOC41IDAgMzIgMzIiPjxwYXRoIGZpbGw9IiM0MjUxNmYiIGQ9Ik03LjI4IDIwLjA0Yy0uMjQgMC0uNDQtLjA4LS42LS4yNEwuMjQgMTMuMzZjLS4zMi0uMzItLjMyLS44NCAwLTEuMi4zMi0uMzIuODQtLjMyIDEuMiAwTDcuMjggMThsNS44NC01Ljg0Yy4zMi0uMzIuODQtLjMyIDEuMiAwIC4zMi4zMi4zMi44NCAwIDEuMkw3Ljg4IDE5LjhjLS4xNi4xNi0uNC4yNC0uNi4yNHoiLz48L3N2Zz4=);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 30px;
    transition: transform 0.3s ease-in;
  }
  .primary-menu-wrap .parent-menu-item:not(.has-children) .toggle {
    display: none;
  }
  #mobile-menu-toggle:checked ~ .primary-menu-wrap {
    transform: translate3d(0, 0, 0);
    transition: transform 0.3s ease-in-out;
  }
  body.mobile-menu-active {
    overflow: hidden;
  }
}
/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.site-footer {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px 50px;
  margin-top: 70px;
  padding-top: 40px;
  padding-bottom: 40px;
}
@media screen and (max-width: 1024px) {
  .site-footer {
    flex-wrap: wrap;
  }
}
.site-footer:before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(-50vw + 50%);
  z-index: -1;
  display: block;
  height: 100%;
  width: 100vw;
  background-color: #f4f6f9;
}
.site-footer .copyright {
  margin-bottom: 20px;
  font-size: 13px;
  line-height: 1.54;
  opacity: 0.5;
}
.site-footer .address {
  margin-bottom: 3px;
  font-size: 13px;
  line-height: 1.43;
}
.site-footer .email {
  font-size: 13px;
  color: #4b80c4;
}
.site-footer .email:hover {
  text-decoration: underline;
}
.site-footer .accept-payment {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 15px 20px;
}

.footer-block:not(:first-child) {
  display: flex;
  flex-direction: column;
}
.footer-block:last-child {
  gap: 25px;
  max-width: 215px;
}
@media screen and (max-width: 1024px) and (min-width: 641px) {
  .footer-block:last-child {
    flex-direction: row;
    align-items: center;
    width: 100%;
    max-width: unset;
  }
}
@media screen and (max-width: 640px) {
  .footer-block:last-child {
    width: 100%;
    max-width: unset;
  }
}

/* ## Info menu */
.footer-info {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin-top: 15px;
}
.footer-info .sub-menu {
  display: none;
}
.footer-info li {
  display: flex;
}
.footer-info li a,
.footer-info li span {
  padding-top: 5px;
  padding-bottom: 5px;
  font-size: 13px;
}
.footer-info li a:hover,
.footer-info li span:hover {
  text-decoration: underline;
}

/* ## Main menu */
.footer-main {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-main .sub-menu {
  display: none;
}
.footer-main li {
  position: relative;
  display: flex;
  padding-left: 30px;
}
.footer-main li:before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  width: 8px;
  height: 7px;
  background-image: url(../images/polygon.svg);
  background-position: center;
  background-repeat: no-repeat;
}
.footer-main li a,
.footer-main li span {
  font-size: 14px;
  font-weight: 600;
  color: #000;
  line-height: 1.4;
}
.footer-main li a:hover,
.footer-main li span:hover {
  color: #4b80c4;
}
.footer-main li span {
  color: #4b80c4;
}

/*--------------------------------------------------------------
# Content list
--------------------------------------------------------------*/
.item {
  position: relative;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  height: 100%;
}
.item-image {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
}
.item-image img {
  max-width: unset;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

a.item {
  color: #000;
}

.image-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
}
.image-wrap img {
  max-width: unset;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ## Product list */
.product-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: clamp(15px, 2vw, 40px);
}
.product-list > .item {
  gap: 20px;
  padding: 30px;
  border: 1px solid #dee6f2;
  border-radius: 30px;
  transition: 0.3s;
}
.product-list > .item:hover {
  border-color: #4b80c4;
  box-shadow: inset 0 0 0 1px #4b80c4;
}
.product-list > .item-image {
  margin: -20px 0 10px -20px;
  width: calc(100% + 40px);
  height: 275px;
  border-radius: 30px;
}
.product-list > .item .h6 {
  color: #000;
}
.product-list > .item .button-arrow {
  margin-top: auto;
}
.product-list > .item .item-edition {
  position: relative;
  align-self: stretch;
  border: 1px solid #dee6f2;
  border-radius: 7px;
}
.product-list > .item .item-edition small {
  position: absolute;
  top: -10px;
  left: 5px;
  z-index: 2;
  padding: 0 10px;
  font-size: 12px;
  color: rgba(0, 0, 0, 0.5);
  background-color: #fff;
}
.product-list > .item .item-edition .ts-wrapper *:focus {
  border: 0;
}
.product-list > .item .item-edition .ts-wrapper .ts-control {
  height: 40px;
  font-size: 12px;
  line-height: 1;
  background-position: right 15px center;
}
.product-list > .item .item-edition .ts-wrapper .ts-control .item {
  padding-right: 40px;
}
.product-list > .item .item-edition .ts-wrapper .ts-dropdown {
  border-radius: 7px;
}
.product-list > .item .item-edition .ts-wrapper .ts-dropdown .option {
  font-size: 12px;
}
.product-list > .item .item-edition .ts-wrapper .cost {
  color: rgba(0, 0, 0, 0.5);
}
.product-list > .item .item-edition .ts-wrapper .cost:after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.product-list > .item .item-delivery {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
}
.product-list > .item .item-delivery svg {
  margin-right: 5px;
  fill: #fa4b18;
}

/* ## Rating list */
.reviews-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(305px, 1fr));
  gap: 30px;
}
@media screen and (max-width: 640px) {
  .reviews-list {
    grid-template-columns: 1fr;
  }
}
.reviews-list .item {
  gap: 20px;
  padding: 20px 30px;
  border: 1px solid #e3e3e3;
  border-radius: 20px;
}
.reviews-list .item .top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  width: 100%;
}
.reviews-list .item-rating {
  display: flex;
  align-items: center;
  gap: 1px;
}
.reviews-list .item-rating .star svg {
  fill: #d7dee2;
}
.reviews-list .item-rating .star.star-active svg {
  fill: #f5d03b;
}
.reviews-list .item-text {
  font-size: 14px;
  line-height: 1.43;
}
.reviews-list .item-date {
  margin-top: auto;
  font-size: 12px;
  line-height: 1.43;
  opacity: 0.5;
}

/* ## Processes */
.portfolio-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 20px;
}
.portfolio-list .item:hover {
  opacity: 0.8;
}
.portfolio-list .item-image {
  margin-bottom: 20px;
  width: 100%;
  border-radius: 30px;
}
.portfolio-list .item:nth-child(even) .item-image {
  height: 260px;
}
.portfolio-list .item:nth-child(odd) .item-image {
  height: 330px;
}
.portfolio-list .item .h7 {
  padding: 0 20px;
  font-size: 16px;
  line-height: 1.56;
}

/*--------------------------------------------------------------
# Reviews
--------------------------------------------------------------*/
.reviews-block {
  display: grid;
  grid-template-columns: minmax(300px, 320px) minmax(250px, 1fr);
  gap: 40px 60px;
  align-items: center;
}
@media screen and (max-width: 1024px) {
  .reviews-block {
    grid-template-columns: minmax(250px, 1fr);
  }
}
.reviews-block .rating-wrap {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.reviews-block .rating-list {
  padding: 50px;
  background-color: #f4f6f9;
  border-radius: 30px;
}
.reviews-block .rating-list .item {
  background-color: #fff;
  border-color: transparent;
}
.reviews-block .button-arrow {
  align-self: flex-start;
  margin-left: -20px;
}

/* ### Rating info */
.rating-info {
  display: flex;
  gap: 15px;
}
.rating-info .num {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 40px;
}
.rating-info .num:before {
  content: "";
  flex-shrink: 0;
  width: 47px;
  height: 45px;
  background-image: url(../images/big-star.png);
  background-position: center;
  background-repeat: no-repeat;
}
.rating-info .text {
  font-size: 12px;
  line-height: 1.5;
  opacity: 0.7;
}

/* ### Rating rows */
.rating-rows {
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding-left: 65px;
}
.rating-rows .item {
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 5px;
  font-size: 12px;
}
.rating-rows .item svg {
  margin-top: -3px;
  fill: #f5d03b;
}
.rating-rows .item .line {
  flex-shrink: 0;
  margin-right: 10px;
  width: 80px;
  height: 7px;
  background-color: #f5d03b;
  border-radius: 3px;
}

/*--------------------------------------------------------------
# Cart
--------------------------------------------------------------*/
.cart-wrap {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(250px, 570px);
  gap: 50px 65px;
}
@media screen and (max-width: 1140px) {
  .cart-wrap {
    gap: 50px;
  }
}
@media screen and (max-width: 1040px) {
  .cart-wrap {
    grid-template-columns: minmax(250px, 1fr);
  }
}
.cart-wrap .right {
  position: relative;
}

/* ## Product order */
.product-order-table {
  position: relative;
}
.product-order-table .loader-bg {
  --margin: -25px;
  --radius: 30px;
}

.product-order-header {
  display: grid;
  grid-template-columns: 1fr 150px;
  gap: 10px;
  padding-bottom: 15px;
  font-size: 14px;
  color: rgba(0, 0, 0, 0.5);
  line-height: 1.4;
}
.product-order-header div:last-child {
  text-align: center;
}

.product-order-body {
  margin-bottom: 45px;
  border-bottom: 1px solid #f1f4f7;
}

.order-table-row {
  display: grid;
  grid-template-columns: 1fr 1fr 150px;
  gap: 20px;
  align-items: center;
  padding-top: 30px;
  padding-bottom: 30px;
  border-top: 1px solid #f1f4f7;
}
.order-table-row .product-name {
  display: flex;
  align-items: center;
  gap: 30px;
  color: #000;
  transition: color 0.3s;
}
@media screen and (max-width: 640px) {
  .order-table-row .product-name {
    grid-column: span 2;
  }
}
.order-table-row .product-name:hover {
  color: #4b80c4;
}
.order-table-row .product-name .item-image {
  width: 100px;
  height: 70px;
  border-radius: 15px;
}
@media screen and (max-width: 640px) {
  .order-table-row .product-name .item-image {
    width: 70px;
  }
}
.order-table-row .product-name .h6 {
  font-size: 16px;
  font-weight: 500;
}
.order-table-row .product-upload {
  margin: auto;
  max-width: 210px;
}
@media screen and (max-width: 640px) {
  .order-table-row .product-upload {
    grid-column: span 3;
    order: 3;
    width: 100%;
    max-width: 100%;
  }
}
.order-table-row .product-order-price {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
}
.order-table-row .product-order-price .price-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
.order-table-row .product-order-price .price {
  font-size: 24px;
  white-space: nowrap;
}
.order-table-row .product-order-price .price:after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.order-table-row .product-order-price .no-discount-price {
  font-size: 18px;
  color: rgba(0, 0, 0, 0.5);
  text-decoration: line-through;
}
.order-table-row .product-order-price .no-discount-price:not(:empty):after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.order-table-row .product-order-price .delete {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.3);
  cursor: pointer;
}
.order-table-row .product-order-price .delete:hover {
  text-decoration: underline;
}
.order-table-row .product-order-info {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 20px;
  grid-column: span 3;
  font-size: 13px;
  line-height: 1.43;
}
.order-table-row .product-order-info span {
  color: #a9a9a9;
}

/* ## Full price */
.product-order-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-top: 40px;
  padding-bottom: 40px;
}
@media screen and (max-width: 640px) {
  .product-order-bottom {
    flex-direction: column;
    align-items: stretch;
  }
}
.product-order-bottom .left {
  display: flex;
  align-items: center;
  gap: 15px;
}
@media screen and (max-width: 640px) {
  .product-order-bottom .left {
    flex-wrap: wrap;
  }
}
.product-order-bottom .left .full-price-text {
  font-size: 24px;
}
.product-order-bottom .left .full-price-wrap {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.product-order-bottom .left .full-price-wrap .full-price {
  font-size: 32px;
  white-space: nowrap;
}
.product-order-bottom .left .full-price-wrap .full-price:after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.product-order-bottom .left .full-price-wrap .discount {
  font-size: 13px;
  color: rgba(0, 0, 0, 0.5);
}
.product-order-bottom .left .full-price-wrap .discount:empty {
  display: none;
}
.product-order-bottom .left .full-price-wrap .discount:not(:empty):before {
  content: "Скидка: ";
}
.product-order-bottom .left .full-price-wrap .discount:not(:empty):after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.product-order-bottom .left .full-price-wrap .delivery-price {
  font-size: 13px;
  color: rgba(0, 0, 0, 0.5);
}
.product-order-bottom .left .full-price-wrap .delivery-price:empty {
  display: none;
}
.product-order-bottom .left .full-price-wrap .delivery-price:not(:empty):before {
  content: "Стоимость доставки: ";
}
.product-order-bottom .left .full-price-wrap .delivery-price:not(:empty):after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}

/* ### Promocode */
.promocode-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.promocode-wrap .input-text {
  position: relative;
  display: flex;
  align-items: center;
}
.promocode-wrap .input-text input::placeholder {
  font-size: 14px;
}
.promocode-wrap .input-text button {
  position: absolute;
  right: 0;
  padding: 0;
  height: 100%;
  width: 50px;
  background-color: transparent;
}
.promocode-wrap .input-text button:not(.active) {
  display: none;
}
.promocode-wrap .input-text button.promocode-add svg {
  stroke: #4b80c4;
}
.promocode-wrap .input-text button.promocode-remove svg {
  stroke: #fa4b18;
}
.promocode-wrap .input-text .loader {
  --size: 2px;
  --width: 20px;
  position: absolute;
  top: 17px;
  right: 60px;
  left: unset;
}

/* ## Form */
.order-form {
  display: flex;
  flex-direction: column;
  padding: 40px;
  overflow: hidden;
}
@media screen and (max-width: 640px) {
  .order-form {
    margin-left: -40px;
    margin-right: -40px;
  }
}
.order-form-block {
  display: flex;
  flex-direction: column;
  gap: 25px;
}
.order-form-block:not(:last-child) {
  padding-bottom: 30px;
  margin-bottom: 30px;
  border-bottom: 1px solid rgb(212.1, 219.9, 231.6);
}
.order-form-block button {
  margin-top: 25px;
  width: 100%;
  height: 50px;
}
.order-form .h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0;
}
.order-form .h3 .form-count {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  line-height: 1;
  width: 30px;
  height: 30px;
  background-color: #4b80c4;
  border-radius: 50%;
}
.order-form .h3 a {
  display: none;
  margin-left: auto;
  font-size: 14px;
  font-weight: 300;
}
.order-form .h3 a:hover {
  text-decoration: underline;
}
.order-form-text {
  position: relative;
  display: none;
  padding-right: 70px;
  font-size: 15px;
  color: rgba(0, 0, 0, 0.7);
  line-height: 1.43;
}
.order-form-text div:empty {
  display: none;
}
.order-form-text span {
  margin-right: 10px;
}
.order-form-text .cost {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 18px;
  font-weight: 300;
}
.order-form-text .cost:after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.order-form .form-block-inner {
  display: none;
}
.order-form .shipping-info .form-block-inner {
  display: block;
}
.order-form fieldset {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0;
  border: 0;
}
.order-form .form-tab-content {
  display: none;
}
.order-form .form-tab-content.active {
  display: flex;
}
.order-form-button {
  margin-top: 40px;
}
.order-form .input-radio {
  grid-template-columns: 20px auto 50px;
}
.order-form .input-radio input[type=radio] {
  width: 20px;
  height: 20px;
}
.order-form .input-radio input[type=radio]:before {
  width: 12px;
  height: 12px;
}
.order-form .input-radio .h6 {
  font-size: 16px;
  font-weight: 300;
}
.order-form .input-radio .text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.order-form .input-radio small {
  font-size: 13px;
  color: rgba(0, 0, 0, 0.7);
  line-height: 1.43;
}
.order-form .input-radio .cost {
  font-size: 24px;
  text-align: right;
  white-space: nowrap;
}
.order-form .input-radio .cost:not(:empty):after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}

/* ### Tabs */
.form-tabs {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.form-tabs .form-tab-labels {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
  white-space: nowrap;
}
.form-tabs .form-tab-labels label {
  font-size: 16px;
  font-weight: 600;
  color: #000;
  line-height: 1;
  padding: 10px 20px;
  border-radius: 10px;
  background-color: #fff;
  transition: 0.3s;
  cursor: pointer;
}
.form-tabs .form-tab-labels label:hover {
  color: #fff;
  background-color: #4b80c4;
}
@media screen and (max-width: 640px) {
  .form-tabs .form-tab-labels label {
    padding: 10px 15px;
    font-size: 13px;
  }
}
.form-tabs .form-tab-labels input[type=radio] {
  display: none;
}
.form-tabs .form-tab-labels input[type=radio]:checked + label {
  color: #fff;
  background-color: #4b80c4;
}

/* ## Shipping */
.shipping-method {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* ### Pickup */
.pickup-fields {
  display: none;
  padding-top: 30px;
  margin-top: 10px;
  border-top: 1px solid rgb(212.1, 219.9, 231.6);
}
.pickup-fields .h6 {
  display: block;
  margin-bottom: 20px;
  line-height: 1;
}
.pickup-fields .contacts {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 20px;
  font-size: 15px;
  color: rgba(0, 0, 0, 0.7);
  line-height: 1.43;
}
.pickup-fields .image-wrap {
  border-radius: 20px;
}
.pickup-fields .image-wrap:hover {
  opacity: 0.8;
}

/* ### Boxberry */
.city-search-wrap {
  position: relative;
}

.city-search-inner {
  position: relative;
}
.city-search-inner .loader {
  --size: 3px;
  --width: 24px;
  top: 20px;
  right: 80px;
  left: unset;
}

#city {
  padding-right: 100px;
}

#city-icon {
  position: absolute;
  top: 14px;
  right: 20px;
  stroke: #4b80c4;
}

#city-change {
  position: absolute;
  top: 14px;
  right: 20px;
  display: none;
  font-size: 14px;
  color: #4b80c4;
  cursor: pointer;
}
#city-change:hover {
  text-decoration: underline;
}

#city-results {
  scrollbar-color: #4b80c4 rgb(228.05, 232.95, 240.3);
  scrollbar-width: thin;
  position: absolute;
  top: 60px;
  left: 0;
  display: none;
  width: 100%;
  max-height: 150px;
  font-size: 16px;
  font-weight: 300;
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  border-radius: 10px;
  overflow-y: scroll;
}
#city-results::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
#city-results::-webkit-scrollbar-button {
  display: none;
}
#city-results::-webkit-scrollbar-corner {
  background: transparent;
}
#city-results::-webkit-scrollbar-track {
  background-color: rgb(228.05, 232.95, 240.3);
}
#city-results::-webkit-scrollbar-thumb {
  background-color: #4b80c4;
  transition: background-color 0.3s ease;
}
#city-results::-webkit-scrollbar-thumb:hover {
  background-color: rgb(60.209623431, 114.2962343096, 183.690376569);
}
#city-results::-webkit-resizer {
  display: none;
}
#city-results div {
  padding: 7px 20px;
  transition: 0.3s;
  cursor: pointer;
}
#city-results div:hover {
  background-color: rgb(237.62, 240.78, 245.52);
}

.boxberry-wrap {
  display: none;
  margin-top: 20px;
  padding: 20px;
  background-color: #fff;
  border-radius: 10px;
}
.boxberry-wrap .top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 15px;
}
.boxberry-wrap .top .boxberry-price {
  margin-left: auto;
  font-size: 24px;
}
.boxberry-wrap .top .boxberry-price:after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.boxberry-wrap .bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.boxberry-wrap .bottom .button {
  height: 40px;
  font-size: 14px;
}
.boxberry-wrap .bottom .boxberry-adress {
  font-size: 14px;
  color: rgba(0, 0, 0, 0.7);
  line-height: 1.43;
}

.boxberry_overlay {
  background-color: #0b0c0e !important;
  opacity: 0.8 !important;
}

.boxberry_container {
  box-shadow: 0 0 13px 0 rgba(100, 120, 164, 0.25) !important;
  border-radius: 20px !important;
}

.boxberry_content {
  padding: 20px 15px !important;
}

.form-text-error {
  color: red;
  font-weight: 500;
}

/* ## Order payment page */
.page-template-order .product-order-body .order-table-row {
  grid-template-columns: 1fr 150px;
}

.order-info.post {
  display: flex;
  flex-direction: column;
  gap: 30px;
  position: relative;
  margin-bottom: 50px;
  padding: 40px;
  background-color: #f4f6f9;
  border-radius: 30px;
}
.order-info.post ul {
  margin: 0;
}
.order-info.post ul div {
  font-size: 15px;
}
.order-info.post ul div span {
  margin-right: 5px;
  font-weight: 500;
}

/*--------------------------------------------------------------
# Main
--------------------------------------------------------------*/
.content-post-wrap {
  margin: auto;
  max-width: 920px;
}

.main-block {
  position: relative;
}
.main-block:not(:last-child) {
  margin-bottom: 70px;
}
.main-block h2 {
  margin-top: 0;
  margin-bottom: 40px;
  font-size: 32px;
  line-height: 1.3;
}
.main-block h2 span {
  color: #4b80c4;
}

/* ## Other */
.mix-blend-mode {
  mix-blend-mode: multiply;
}

/* ## Lists */
.post ul,
.post ol {
  margin: 30px 0;
  padding: 0;
  list-style: none;
}
.post ul li,
.post ol li {
  position: relative;
  padding-left: 40px;
  margin-bottom: 10px;
}
.post ul li:last-child,
.post ol li:last-child {
  margin-bottom: 0;
}
.post ul ul,
.post ul ol,
.post ol ul,
.post ol ol {
  margin: 10px 0;
}

.post ul li:before {
  content: "";
  position: absolute;
  top: 9px;
  left: 10px;
  width: 10px;
  height: 10px;
  border: 2px solid #4b80c4;
  border-radius: 50%;
}

.post ol {
  counter-reset: listCounter;
}
.post ol[start] {
  counter-reset: listCounter calc(var(--start) - 1);
}
.post ol > li {
  counter-increment: listCounter;
}
.post ol > li:before {
  display: flex;
  align-items: center;
  justify-content: center;
  content: counter(listCounter);
  position: absolute;
  top: 4px;
  left: 0;
  width: 23px;
  height: 23px;
  font-size: 13px;
  color: #fff;
  line-height: 1;
  background-color: #4b80c4;
  border-radius: 50%;
}

/* ## Table */
.post-table {
  margin: 40px 0;
  max-width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.post-table table {
  width: 100%;
  font-size: 14px;
  line-height: 1.3;
  border: unset;
  border-collapse: collapse;
  border-spacing: 0;
}
.post-table table tbody tr:nth-child(odd) {
  background-color: #f4f6f9;
}
.post-table table thead tr,
.post-table table thead + tbody tr:first-child {
  background-color: #e9eef6;
}
.post-table table thead + tbody tr:nth-child(even) {
  background-color: #fff;
}
.post-table table thead + tbody tr:nth-child(odd) {
  background-color: #f2f5f8;
}
.post-table table td,
.post-table table th {
  padding: 10px 20px;
  text-align: center;
  border: unset;
}
.post-table table td:first-of-type,
.post-table table th:first-of-type {
  text-align: left;
}
.post-table table tr:first-child td:first-child,
.post-table table tr:first-child th:first-child {
  border-top-left-radius: 10px;
}
.post-table table tr:first-child td:last-child,
.post-table table tr:first-child th:last-child {
  border-top-right-radius: 10px;
}
.post-table table tr:last-child td:first-child,
.post-table table tr:last-child th:first-child {
  border-bottom-left-radius: 10px;
}
.post-table table tr:last-child td:last-child,
.post-table table tr:last-child th:last-child {
  border-bottom-right-radius: 10px;
}
.post-table table thead tr:last-child td:first-child,
.post-table table thead tr:last-child th:first-child {
  border-bottom-left-radius: 0;
}
.post-table table thead tr:last-child td:last-child,
.post-table table thead tr:last-child th:last-child {
  border-bottom-right-radius: 0;
}
.post-table table thead + tbody tr:first-child td:first-child,
.post-table table thead + tbody tr:first-child th:first-child {
  border-top-left-radius: 0;
}
.post-table table thead + tbody tr:first-child td:last-child,
.post-table table thead + tbody tr:first-child th:last-child {
  border-top-right-radius: 0;
}

/* ## Video */
.post-video iframe {
  margin-top: 30px;
  margin-bottom: 30px;
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
}

@supports not (aspect-ratio: 1) {
  .post-video {
    position: relative;
    padding: 56.25% 0 0;
    height: 0;
    overflow: hidden;
  }
  .post-video iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
  }
}
/* ## Images */
.post img {
  content-visibility: auto;
}

.aligncenter,
.alignleft,
.alignright {
  display: block;
  padding: 0;
}

.alignnone,
.aligncenter {
  margin: 30px auto;
}

.alignright {
  float: right;
  margin: 0 0 30px 30px;
}

.alignleft {
  float: left;
  margin: 0 30px 30px 0;
}

.wp-caption {
  max-width: 100%;
}
.wp-caption img {
  display: block;
  border-radius: 20px 20px 0 0;
}

.wp-caption-text {
  padding: 10px;
  font-size: 15px;
  color: rgba(0, 0, 0, 0.6);
  line-height: 1.43;
  text-align: center;
  background-color: #f4f6f9;
  border-radius: 0 0 20px 20px;
}

@media screen and (max-width: 728px) {
  .alignright:not(.wp-caption),
  .alignleft:not(.wp-caption) {
    display: table;
  }
  .alignright,
  .alignleft {
    float: none;
    margin: 0 auto 30px;
  }
}
/* ## Standard gallery */
.gallery {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 30px 0;
}

.gallery-item {
  display: flex;
  flex-direction: column;
  margin: 0;
  margin-bottom: 5px;
  text-align: center;
}
.gallery-item a {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
}
.gallery-item a:hover {
  opacity: 0.8;
}

.gallery-icon.landscape {
  height: 100%;
}
.gallery-icon img {
  max-width: unset;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  margin: 0 auto;
  display: block;
}
.gallery-icon:not(:only-child) a {
  border-radius: 20px 20px 0 0;
}

@media screen and (min-width: 640px) {
  .gallery-columns-1 .gallery-item {
    flex-basis: calc(100% - 5px);
  }
  .gallery-columns-2 .gallery-item {
    flex-basis: calc(50% - 5px);
  }
  .gallery-columns-3 .gallery-item {
    flex-basis: calc(33.3333% - 5px);
  }
  .gallery-columns-4 .gallery-item {
    flex-basis: calc(25% - 5px);
  }
  .gallery-columns-5 .gallery-item {
    flex-basis: calc(20% - 5px);
  }
  .gallery-columns-6 .gallery-item {
    flex-basis: calc(16.6667% - 5px);
  }
  .gallery-columns-7 .gallery-item {
    flex-basis: calc(14.2857% - 5px);
  }
  .gallery-columns-8 .gallery-item {
    flex-basis: calc(12.5% - 5px);
  }
  .gallery-columns-9 .gallery-item {
    flex-basis: calc(11.1111% - 5px);
  }
}
@media screen and (max-width: 640px) {
  .gallery-item {
    flex-basis: calc(50% - 5px);
  }
}
@media screen and (max-width: 400px) {
  .gallery-item {
    flex-basis: calc(100% - 5px);
  }
}
/* ## Blockquote, blocks */
blockquote p:last-of-type {
  margin-bottom: 0;
}

blockquote.custom {
  position: relative;
  margin: 60px 0 50px;
  padding: 40px 50px;
  width: 100%;
  font-size: 26px;
  text-align: center;
  border-top: 1px solid #d4dde7;
  border-bottom: 1px solid #d4dde7;
}
blockquote.custom svg {
  position: absolute;
  top: -16px;
  left: calc(50% - 40px);
  width: 80px;
  height: 34px;
  background-color: #fff;
  fill: #4b80c4;
}
@media screen and (max-width: 640px) {
  blockquote.custom {
    padding: 20px;
    font-size: 20px;
  }
}

.info-box {
  position: relative;
  margin: 40px 0;
  padding: 30px 40px;
  background-color: #fff;
  border: 1px solid #4b80c4;
  border-radius: 20px;
}
.info-box:not(:last-child) {
  margin-bottom: 40px;
}
.info-box:not(:first-child) {
  margin-top: 40px;
}
@media screen and (max-width: 640px) {
  .info-box {
    padding: 20px;
  }
}

/*--------------------------------------------------------------
# Product
--------------------------------------------------------------*/
.product-card {
  display: grid;
  grid-template-columns: minmax(250px, 700px) minmax(400px, 1fr);
  gap: 30px clamp(30px, 2vw, 70px);
  align-items: start;
  margin-left: -60px;
  margin-right: -60px;
  padding: 50px 60px 40px;
  background-color: #f4f6f9;
  border-radius: 40px;
}
@media screen and (max-width: 1024px) {
  .product-card {
    grid-template-columns: minmax(250px, 1fr);
  }
}
.product-card .breadcrumbs {
  grid-column: span 2;
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .product-card .breadcrumbs {
    grid-column: unset;
  }
}
.product-card h1 {
  margin-bottom: 0;
  width: 100%;
}

/* ## Configuration */
.product-configuration {
  display: flex;
  flex-wrap: wrap;
  gap: 35px 20px;
}
.product-configuration .pdf-rules {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 14px;
  color: #000;
  line-height: 1;
}
.product-configuration .pdf-rules:hover {
  text-decoration: underline;
}
.product-configuration .pdf-rules svg {
  fill: #ff402f;
}

.configuration, .configuration-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
.configuration--upload {
  padding-top: 33px;
  font-size: 14px;
  line-height: 1.43;
  opacity: 0.7;
}
.configuration--custom-sizes {
  display: none;
}
.configuration.column, .column.configuration-wrap {
  width: calc(50% - 10px);
}
@media screen and (max-width: 640px) {
  .configuration.column, .column.configuration-wrap {
    width: 100%;
  }
}
.configuration .cost:not(:empty):after, .configuration-wrap .cost:not(:empty):after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.configuration .input-select .cost, .configuration-wrap .input-select .cost {
  opacity: 0.5;
}

.configuration-wrap .text {
  font-size: 12px;
  line-height: 1.3;
  opacity: 0.7;
}

.configuration-inner {
  display: flex;
  align-items: center;
  gap: 15px;
}
.configuration-inner .column {
  flex-grow: 1;
}

.configuration-block {
  display: flex;
  justify-content: space-between;
  gap: 25px 50px;
  padding: 25px 20px;
  background-color: #fff;
  border-radius: 10px;
}
@media screen and (max-width: 640px) {
  .configuration-block {
    flex-direction: column;
  }
}
.configuration-block > div {
  width: 50%;
}
@media screen and (max-width: 640px) {
  .configuration-block > div {
    width: 100%;
  }
}
.configuration-block .left {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.configuration-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.configuration-item .dots {
  flex-grow: 1;
  margin-left: 3px;
  margin-right: 3px;
  min-width: 20px;
  border-bottom: 1px solid #f4f6f9;
}
.configuration-item .cost {
  flex-shrink: 0;
  margin-left: auto;
  font-size: 14px;
}
.configuration-item.disabled {
  cursor: not-allowed;
}
.configuration-item.disabled .input-radio,
.configuration-item.disabled .input-checkbox {
  color: rgba(0, 0, 0, 0.3);
  cursor: not-allowed;
}

.configuration-cliches {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
}
.configuration-cliches .column {
  width: calc(50% - 10px);
}
.configuration-cliches .full {
  width: 100%;
}
.configuration-cliches input {
  border-color: transparent;
}

/* ### Drilling */
.configuration-drilling {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.configuration-drilling .drilling-options {
  display: none;
  padding-left: 30px;
}
.configuration-drilling .drilling-holes {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.configuration-drilling .drilling-diameter {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}
.configuration-drilling .drilling-diameter label {
  font-size: 14px;
  line-height: 1;
}
.configuration-drilling .drilling-diameter .input-number {
  width: 150px;
}

/* ### Radio images */
.radio-images {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: 10px;
}
.radio-images .configuration-item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 15px;
  padding: 20px 10px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  background-color: #fff;
  border-radius: 20px;
  transition: 0.3s;
  cursor: pointer;
}
.radio-images .configuration-item:hover, .radio-images .configuration-item.active {
  box-shadow: inset 0 0 0 2px #4b80c4;
}
.radio-images .configuration-item input[type=radio] {
  display: none;
}
.radio-images .configuration-item .item-image {
  flex-grow: 1;
}
.radio-images .configuration-item .item-image img {
  object-fit: contain;
}
.radio-images .configuration-item span {
  margin-top: 3px;
  font-size: 11px;
  font-weight: 300;
  opacity: 0.5;
}

.configurations-list--seal .configuration-item {
  gap: 0;
  padding: 10px;
}
.configurations-list--seal .configuration-item .item-image {
  height: 55px;
}

.page-template-brochures .radio-images {
  grid-template-columns: repeat(auto-fill, minmax(clamp(100px, 2vw, 120px), 1fr));
}
/* ### Order block */
.product-card-right {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: -40px;
}
.product-card-right picture {
  align-self: center;
}
@media screen and (max-width: 1024px) {
  .product-card-right picture {
    display: none;
  }
}
.product-card-right .delivery-info {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 14px;
  color: rgba(0, 0, 0, 0.5);
  line-height: 1.5;
}
.product-card-right .delivery-info picture {
  flex-shrink: 0;
  width: 100px;
  height: auto;
}
.product-card-right .link-examples {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  font-size: 14px;
}
.product-card-right .link-examples:hover {
  text-decoration: underline;
}
.product-card-right .link-examples svg {
  fill: #4b80c4;
}

.page-template-flyers .product-card-right picture {
  margin-top: -30px;
  margin-bottom: -30px;
}

.product-order-block {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.product-order-block .top {
  display: flex;
  align-items: center;
  gap: 35px;
}
.product-order-block .product-price {
  font-size: 36px;
}
.product-order-block .product-price:after {
  content: " ₽";
  font-family: "Raleway", sans-serif;
}
.product-order-block .delivery-date {
  position: relative;
  padding-left: 25px;
  font-size: 14px;
  line-height: 1;
}
.product-order-block .delivery-date span {
  display: block;
  margin-top: 5px;
}
.product-order-block .delivery-date svg {
  position: absolute;
  top: 0;
  left: 0;
  fill: #fa4b18;
}
.product-order-block .button-order {
  font-size: 16px;
}

/* ## About */
.about-block .bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
}
@media screen and (max-width: 1024px) {
  .about-block .bottom {
    flex-direction: column;
  }
}
.about-block .bottom picture {
  flex-shrink: 0;
}

/*--------------------------------------------------------------
# Breadcrumbs
--------------------------------------------------------------*/
.breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin: 35px 0;
  padding: 0;
  font-size: 15px;
  list-style: none;
}
@media screen and (max-width: 980px) {
  .breadcrumbs {
    grid-column: unset;
  }
}
@media screen and (max-width: 800px) {
  .breadcrumbs {
    display: none;
  }
}
.breadcrumbs li {
  margin-right: 15px;
}
.breadcrumbs li a {
  transition: 0.3s linear;
}
.breadcrumbs li a:hover {
  text-decoration: underline;
}
.breadcrumbs li .last-crumb {
  opacity: 0.7;
}
.breadcrumbs li svg {
  flex-shrink: 0;
  fill: #4b80c4;
}
.breadcrumbs li:first-child svg {
  margin-right: 15px;
}
.breadcrumbs li:not(:first-child) svg {
  flex-shrink: 0;
  margin-right: 15px;
}

/*--------------------------------------------------------------
# Sidebar
--------------------------------------------------------------*/
.sidebar-primary {
  position: relative;
}
@media screen and (max-width: 980px) {
  .sidebar-primary {
    display: none;
  }
}
.sidebar-primary .widget {
  margin-bottom: 60px;
}
.sidebar-primary .widgettitle {
  margin-top: 0;
  margin-bottom: 30px;
  font-size: 26px;
  font-weight: 700;
}

.sidebar-sticky {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
}

/*--------------------------------------------------------------
# Archive
--------------------------------------------------------------*/
.archive-description {
  margin-bottom: 50px;
}

/*--------------------------------------------------------------
# Pagination
--------------------------------------------------------------*/
.pagination {
  margin-top: 50px;
}
.pagination .nav-links {
  display: flex;
  gap: 10px;
}
@media screen and (max-width: 800px) {
  .pagination .nav-links {
    justify-content: center;
  }
}
.pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  line-height: 1;
  width: 55px;
  height: 55px;
  border: 1px solid #e0eaec;
  border-radius: 10px;
}
.pagination .page-numbers.current, .pagination .page-numbers:hover {
  color: #fff;
  background-color: #4b80c4;
  border-color: #4b80c4;
}
.pagination .page-numbers svg {
  fill: #4b80c4;
}
.pagination .page-numbers.next, .pagination .page-numbers.prev {
  width: auto;
  height: auto;
  border: 0;
}
.pagination .page-numbers.next:hover, .pagination .page-numbers.prev:hover {
  background-color: unset;
}
.pagination .page-numbers.next span, .pagination .page-numbers.prev span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 55px;
  height: 55px;
  color: #4b80c4;
  border: 1px solid #4b80c4;
  border-radius: 50%;
  transition: 0.3s;
}
.pagination .page-numbers.next span:hover, .pagination .page-numbers.prev span:hover {
  color: #fff;
  background-color: #4b80c4;
}
.pagination .page-numbers.next {
  margin-left: 30px;
}
.pagination .page-numbers.prev {
  margin-right: 30px;
}
.pagination .page-numbers.prev svg {
  transform: scaleX(-1);
}

/*--------------------------------------------------------------
# 404
--------------------------------------------------------------*/
.error404 h1 {
  display: flex;
  flex-direction: column;
  font-weight: 300;
}
.error404 h1 span {
  font-weight: 700;
}
.error404 small {
  margin-bottom: 40px;
  width: 100%;
  font-size: 14px;
  line-height: 1;
  opacity: 0.5;
}
.error404 .description404 {
  display: flex;
  align-items: center;
}
.error404 .description404 .num {
  font-size: 320px;
  font-weight: 700;
  color: #f4f6f9;
  line-height: 1.2;
  margin-right: 40px;
}
@media screen and (max-width: 980px) {
  .error404 .description404 .num {
    font-size: 28vw;
  }
}
@media screen and (max-width: 768px) {
  .error404 .description404 .num {
    margin-right: 20px;
  }
}
@media screen and (max-width: 420px) {
  .error404 .description404 .num {
    margin-right: 0;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UvX3Jlc2V0LnNjc3MiLCJiYXNlL190eXBvZ3JhcGh5LnNjc3MiLCJiYXNlL19taXhpbnMuc2NzcyIsImJhc2UvX3ZhcmlhYmxlcy5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsImNvbXBvbmVudHMvX21vZGFscy5zY3NzIiwiY29tcG9uZW50cy9fYW5pbWF0aW9ucy5zY3NzIiwiY29tcG9uZW50cy9fY29tcG9uZW50cy5zY3NzIiwibGF5b3V0L19ncmlkLnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19mb290ZXIuc2NzcyIsImxheW91dC9fY29udGVudC1saXN0LnNjc3MiLCJsYXlvdXQvX3Jldmlld3Muc2NzcyIsImxheW91dC9fY2FydC5zY3NzIiwicGFnZXMvX2lubmVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0FBQUE7QUFBQTtJQUdJO0lBQ0E7SUFDQTtJQUNBOzs7QUNwSFI7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLEtBQ0k7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLEtBQ0k7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLEtBQ0k7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLEtBQ0k7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLEtBQ0k7O0FBS1I7QUFBQTtBQUFBO0FBR0E7RUN0Q0ksV0R1Q2M7RUNwQ1YsYURvQ2dCO0VDaENoQixPQzFCSztFRDZCVCxhRDZCc0M7RUFDdEM7RUFDQSxrQkUvRGU7OztBRmtFbkI7QUFBQTtBQUFBO0FBR0E7RUMvQ0ksV0RnRGM7RUM3Q1YsYUQ2Q2tDO0VDdEN0QyxhRHNDaUQ7RUFDakQ7RUFDQTs7O0FBR0o7QUFBQTtFQ3JESSxXRHVEYztFQ3BEVixhRG9Ea0M7RUM3Q3RDLGFENkNpRDs7O0FBR3JEO0FBQUE7RUMxREksV0Q0RGM7RUN6RFYsYUR5RGtDO0VDbER0QyxhRGtEaUQ7OztBQUdyRDtBQUFBO0VDL0RJLFdEaUVjO0VDOURWLGFEOERrQztFQ3ZEdEMsYUR1RGlEOzs7QUFHckQ7QUFBQTtFQ3BFSSxXRHNFYztFQ25FVixhRG1Fa0M7RUM1RHRDLGFENERpRDs7O0FBR3JEO0FBQUE7RUN6RUksV0QyRWM7RUN4RVYsYUR3RWdCO0VDakVwQixhRGlFK0I7OztBQUduQztFQzlFSSxXRCtFYztFQzVFVixhRDRFZ0I7RUNyRXBCLGFEcUUrQjs7O0FBR25DO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTs7QUFFQTtFQUVJOzs7QUFJUjtBQUFBO0FBQUE7QUFJQTtFQUNJLE9FcEhXO0VGcUhYO0VBQ0E7OztBQUdKO0VBQ0k7OztBR2pJSjtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VGREk7RUFDQTtFQUNBO0VBbUJBLFdFZGM7RUZpQlYsYUVqQmdCO0VGcUJoQixPRXJCcUI7RUZ3QnpCLGFFeEIrQjtFQUMvQjtFQUNBO0VBQ0Esa0JETFc7RUNNWDtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0k7RUFDQSxrQkR6QmE7O0FDMkJiO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTtFQUNBLGtCRGhDRztFQ2lDSDs7O0FBS1o7QUFFQTtFRnhCSSxXRXlCYztFRnRCVixhRXNCZ0I7RUZsQmhCLE9DdkJPO0VEMEJYLGFFZXdDO0VBQ3hDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSSxNRGpETzs7QUNvRFg7RUFFSTtFQUNBLGtCRHZETzs7QUN5RFA7RUFDSTs7O0FBS1o7QUFFQTtFRnRFSTtFQUNBO0VBQ0E7RUFtQkEsV0VtRGM7RUZoRFYsYUVnRGdCO0VGNUNoQixPRTRDcUI7RUZ6Q3pCLGFBWG1EO0VFcURuRDtFQUNBO0VBQ0Esa0JEbkVpQjtFQ29FakI7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQSxrQkQ3RU87OztBQ2lGZjtBQUVBO0VGeEZJO0VBQ0E7RUFDQTtFRXdGQTtFQUNBOztBQUVBO0VBRUk7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7OztBQUlSO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOzs7QUNuSlI7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0Esa0JGR2lCO0VFRmpCOztBQUVBO0VBTko7SUFPUTtJQUNBO0lBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBRUE7RUFISjtJQUlROzs7QUFJUjtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBVEo7SUFVUTtJQUNBOzs7O0FBS0o7RUFDSTs7O0FBSVI7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFSG5DSSxXRzBDYztFSHZDVixhR3VDZ0I7RUhuQ2hCLE9HbUNxQjtFSGhDekIsYUdnQytCO0VBQy9CO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0k7RUFDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJOztBQUdKO0VBL0JKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBZ0NROzs7O0FBSVI7QUFBQTtFQUVJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7O0FBR0o7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7O0FBSVI7RUFDSTs7QUFHSTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFSHpGSjtFQUNBOztBQWhDQTtFQUNJLE9BSGtEO0VBSWxELFFBSmtEOztBQU90RDtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSSxrQkcyR3NDOztBSHhHMUM7RUFDSSxrQkN4RU87RUR5RVA7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOztBR2lHQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLWjtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOzs7QUFJUjtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQUlSO0VBQ0k7O0FBRUE7RUFFSTtFQUNBO0VBQ0E7OztBQUlSO0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtBQUVBO0VBQ0k7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STs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0EsTVo3MUJHOztBWWcyQlA7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQUtaO0FBQUE7QUFBQTtBQUlBO0VBQ0k7O0FBRUE7RUFISjtJQUlROzs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOztBQUVBO0VBSko7SUFLUTs7O0FBSVI7RWJ0NkJBO0VBQ0E7RUFDQTtFQW1CQSxXYW01QmtCO0ViaDVCZCxhYWc1Qm9CO0ViNTRCcEIsT2E0NEJ5QjtFYno0QjdCLGFBWG1EO0VhcTVCL0M7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTtFQUNBLGtCWjU2Qkc7RVk2NkJILGNaNzZCRzs7QVlnN0JQO0VBQ0ksTVpqN0JHOztBWW83QlA7RUFFSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFYm44QlI7RUFDQTtFQUNBO0VhbThCWTtFQUNBO0VBQ0EsT1psOEJEO0VZbThCQztFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBLGtCWno4Qkw7O0FZODhCUDtFQUNJOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTs7O0FBTWhCO0FBQUE7QUFBQTtBQUtJO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFYnYrQkosV2F3K0JzQjtFYnIrQmxCLGFhcStCeUI7RWJqK0J6QixPQ3BCYTtFRHVCakIsYWE4OUJ1RDtFQUMvQzs7QUFFQTtFQUpKO0lBS1E7OztBQUdKO0VBUko7SUFTUTs7O0FBR0o7RUFaSjtJQWFRIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBSZXNldFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8g0KPQv9GA0L7RidCw0LXRgiDQvNCw0YHRiNGC0LDQsdC40YDQvtCy0LDQvdC40LUg0YLQtdC60YHRgtCwINC90LAg0LzQvtCx0LjQu9GM0L3Ri9GFINGD0YHRgtGA0L7QudGB0YLQstCw0YVcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgLy8g0J/Qu9Cw0LLQvdGL0Lkg0YHQutGA0L7Qu9C70LjQvdCzINC00LvRjyDRj9C60L7RgNC90YvRhSDRgdGB0YvQu9C+0Lpcbn1cblxuYm9keSB7XG4gICAgbWFyZ2luOiAwOyAvLyDQo9Cx0LjRgNCw0LXQvCDRgdGC0LDQvdC00LDRgNGC0L3Ri9C1INC+0YLRgdGC0YPQv9GLXG59XG5cbmhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZGZlNmU5OyAvLyDQptCy0LXRgiDQstC10YDRhdC90LXQuSDQs9GA0LDQvdC40YbRi1xufVxuXG5hIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8g0KPQsdC40YDQsNC10Lwg0YTQvtC90L7QstGL0Lkg0YbQstC10YIg0YMg0YHRgdGL0LvQvtC6XG59XG5cbmE6Zm9jdXMge1xuICAgIG91dGxpbmU6IHVuc2V0OyAvLyDQo9Cx0LjRgNCw0LXQvCDQvtCx0LLQvtC00LrRgyDQv9GA0Lgg0YTQvtC60YPRgdC1XG59XG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IC8vINCW0LjRgNC90YvQuSDRgtC10LrRgdGCXG59XG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuODc1ZW07IC8vINCj0LzQtdC90YzRiNC10L3QvdGL0Lkg0YLQtdC60YHRglxufVxuXG5pbWcge1xuICAgIGhlaWdodDogYXV0bzsgLy8g0JDQstGC0L4g0LLRi9GB0L7RgtCwINC40LfQvtCx0YDQsNC20LXQvdC40Llcbn1cblxubWFpbiBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTsgLy8g0J7Qs9GA0LDQvdC40YfQuNCy0LDQtdC8INGI0LjRgNC40L3RgyDQuNC30L7QsdGA0LDQttC10L3QuNC5INCyINC+0YHQvdC+0LLQvdC+0Lwg0LrQvtC90YLQtdC90YLQtVxuICAgIGJvcmRlci1zdHlsZTogbm9uZTsgLy8g0KPQsdC40YDQsNC10Lwg0YHRgtC40LvQuCDQs9GA0LDQvdC40YZcbn1cblxucGljdHVyZSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyAvLyDQo9Cx0LjRgNCw0LXQvCDQv9GA0L7QsdC10LvRiyDQv9C+0LQg0LjQt9C+0LHRgNCw0LbQtdC90LjRj9C80Lhcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyDQo9C90LDRgdC70LXQtNGD0LXQvCDRiNGA0LjRhNGCXG4gICAgZm9udC1zaXplOiAxMDAlOyAvLyDQoNCw0LfQvNC10YAg0YjRgNC40YTRgtCwINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOXG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vINCS0YvRgdC+0YLQsCDRgdGC0YDQvtC60LhcbiAgICBtYXJnaW46IDA7IC8vINCj0LHQuNGA0LDQtdC8INC+0YLRgdGC0YPQv9GLXG59XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0L/QvtCy0LXQtNC10L3QuNC1INC/0LXRgNC10L/QvtC70L3QtdC90LjRj1xufVxuXG5idXR0b24ge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyAvLyDQo9Cx0LjRgNCw0LXQvCDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQvtC1INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LUg0YLQtdC60YHRgtCwXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vINCf0LDRgNCw0LzQtdGC0YDRiyDQstC90LXRiNC90LXQs9C+INCy0LjQtNCwINC00LvRjyDQutC90L7Qv9C+0Lpcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7IC8vINCj0LHQuNGA0LDQtdC8INCz0YDQsNC90LjRhtGLINGDINC60L3QvtC/0L7QuiDQsiBGaXJlZm94XG4gICAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkICNmZmY7IC8vINCh0YLQuNC70Ywg0YTQvtC60YPRgdCwINCyIEZpcmVmb3hcbn1cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyDQn9Cw0YDQsNC80LXRgtGA0Ysg0LLQvdC10YjQvdC10LPQviDQstC40LTQsCDQtNC70Y8g0L/QvtC70Y8g0L/QvtC40YHQutCwXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8vINCe0YLRgdGC0YPQvyDQtNC70Y8g0LLRi9C00LXQu9C10L3QuNGPXG59XG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vINCj0LHQuNGA0LDQtdC8INC00LXQutC+0YDQsNGG0LjRjiDQtNC70Y8g0L/QvtC40YHQutCwXG59XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQsXG4uc2NyZWVuLXJlYWRlci10ZXh0IHNwYW4sXG4uc2NyZWVuLXJlYWRlci1zaG9ydGN1dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8vINCU0LvRjyDRgdC60YDRi9GC0LjRjyDRgtC10LrRgdGC0LAg0L7RgiDRjdC60YDQsNC90L3Ri9GFINGH0LjRgtCw0LvQvtC6XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsgLy8g0J7QsdGA0LXQt9Cw0LXQvCDRgtC10LrRgdGCXG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IDFweDtcbiAgICBib3JkZXI6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8g0KHQutGA0YvQstCw0LXQvCDQv9C10YDQtdC/0L7Qu9C90LXQvdC40LVcbiAgICBjb2xvcjogIzMzMzsgLy8g0KbQstC10YIg0YLQtdC60YHRgtCwXG4gICAgYmFja2dyb3VuZDogI2ZmZjsgLy8g0KTQvtC9INC00LvRjyDRh9C40YLQsNC10LzQvtGB0YLQuFxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICosXG4gICAgKjo6YmVmb3JlLFxuICAgICo6OmFmdGVyIHtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDsgLy8g0KPQsdC40YDQsNC10Lwg0LDQvdC40LzQsNGG0LjQuFxuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50OyAvLyDQo9Cx0LjRgNCw0LXQvCDQv9C10YDQtdGF0L7QtNGLXG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0byAhaW1wb3J0YW50OyAvLyDQo9Cx0LjRgNCw0LXQvCDQv9C70LDQstC90YvQuSDRgdC60YDQvtC70LvQuNC90LNcbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHNyYzpcbiAgICAgICAgbG9jYWwoXCJcIiksXG4gICAgICAgIHVybChcIi4uL2ZvbnRzL1JhbGV3YXktUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgdXJsKFwiLi4vZm9udHMvUmFsZXdheS1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBcIk9uZXN0XCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgc3JjOlxuICAgICAgICBsb2NhbChcIlwiKSxcbiAgICAgICAgdXJsKFwiLi4vZm9udHMvb25lc3QtdjYtY3lyaWxsaWNfbGF0aW4tMzAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICB1cmwoXCIuLi9mb250cy9vbmVzdC12Ni1jeXJpbGxpY19sYXRpbi0zMDAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgZm9udC1mYW1pbHk6IFwiT25lc3RcIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBzcmM6XG4gICAgICAgIGxvY2FsKFwiXCIpLFxuICAgICAgICB1cmwoXCIuLi9mb250cy9vbmVzdC12Ni1jeXJpbGxpY19sYXRpbi01MDAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgICAgIHVybChcIi4uL2ZvbnRzL29uZXN0LXY2LWN5cmlsbGljX2xhdGluLTUwMC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBmb250LWZhbWlseTogXCJPbmVzdFwiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHNyYzpcbiAgICAgICAgbG9jYWwoXCJcIiksXG4gICAgICAgIHVybChcIi4uL2ZvbnRzL29uZXN0LXY2LWN5cmlsbGljX2xhdGluLTYwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgdXJsKFwiLi4vZm9udHMvb25lc3QtdjYtY3lyaWxsaWNfbGF0aW4tNjAwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBcIk9uZXN0XCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgc3JjOlxuICAgICAgICBsb2NhbChcIlwiKSxcbiAgICAgICAgdXJsKFwiLi4vZm9udHMvb25lc3QtdjYtY3lyaWxsaWNfbGF0aW4tNzAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICB1cmwoXCIuLi9mb250cy9vbmVzdC12Ni1jeXJpbGxpY19sYXRpbi03MDAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEJvZHlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmJvZHkge1xuICAgIEBpbmNsdWRlIGZvbnQoMTdweCwgMzAwLCAkbWFpbl9jb2xvciwgMS43Nik7XG4gICAgZm9udC1mYW1pbHk6IFwiT25lc3RcIiwgc2Fucy1zZXJpZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZF9jb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBIZWFkaW5nc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaDEge1xuICAgIEBpbmNsdWRlIGZvbnQoY2xhbXAoMjZweCwgMnZ3LCAzMnB4KSwgNzAwLCBudWxsLCAxLjUpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbn1cblxuaDIsXG4uaDIge1xuICAgIEBpbmNsdWRlIGZvbnQoY2xhbXAoMjRweCwgMnZ3LCAyNnB4KSwgNzAwLCBudWxsLCAxLjUpO1xufVxuXG5oMyxcbi5oMyB7XG4gICAgQGluY2x1ZGUgZm9udChjbGFtcCgyMnB4LCAydncsIDI0cHgpLCA3MDAsIG51bGwsIDEuNSk7XG59XG5cbmg0LFxuLmg0IHtcbiAgICBAaW5jbHVkZSBmb250KGNsYW1wKDIwcHgsIDJ2dywgMjJweCksIDYwMCwgbnVsbCwgMS40KTtcbn1cblxuaDUsXG4uaDUge1xuICAgIEBpbmNsdWRlIGZvbnQoY2xhbXAoMThweCwgMnZ3LCAyMHB4KSwgNjAwLCBudWxsLCAxLjQpO1xufVxuXG5oNixcbi5oNiB7XG4gICAgQGluY2x1ZGUgZm9udCgxOHB4LCA2MDAsIG51bGwsIDEuNCk7XG59XG5cbi5oNyB7XG4gICAgQGluY2x1ZGUgZm9udCgxNHB4LCA2MDAsIG51bGwsIDEuNCk7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUGFyYWdyYXBoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xucCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgJi5lbXB0eSxcbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmEge1xuICAgIGNvbG9yOiAkYWNjZW50X2NvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4ucG9zdCBhOm5vdChbY2xhc3NdKTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzY2NjY2Njtcbn1cbiIsIi8vIGNlbnRlcmVkXG5AbWl4aW4gZmxleC1jZW50ZXJlZCgkZGlyZWN0aW9uOiByb3cpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBjb2x1bW4ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLy8gR3JpZFxuQG1peGluIGdyaWQoJGNvbHVtbnMsICRnYXA6IG51bGwpIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogJGNvbHVtbnM7XG5cbiAgICBAaWYgJGdhcCB7XG4gICAgICAgIGdhcDogJGdhcDtcbiAgICB9XG59XG5cbi8vINCo0YDQuNGE0YLRi1xuQG1peGluIGZvbnQoJHNpemUsICR3ZWlnaHQ6IG51bGwsICRjb2xvcjogbnVsbCwgJGxpbmU6IDEpIHtcbiAgICBmb250LXNpemU6ICRzaXplO1xuXG4gICAgQGlmICR3ZWlnaHQge1xuICAgICAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICB9XG5cbiAgICBAaWYgJGNvbG9yIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICBsaW5lLWhlaWdodDogJGxpbmU7XG59XG5cbi8vIGltYWdlc1xuQG1peGluIGltYWdlLXJlc3BvbnNpdmUge1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xufVxuXG4vLyBmdWxsIHdpZHRoIGJnXG5AbWl4aW4gZnVsbC13aWR0aC1iYWNrZ3JvdW5kKCRjb2xvcjogJHNlY29uZGFyeV9iZ19jb2xvcikge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGNhbGMoLTUwdncgKyA1MCUpO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbn1cblxuLy8gc2Nyb2xsYmFyXG5AbWl4aW4gc2Nyb2xsYmFyKCRjb2xvciwgJGJhY2tncm91bmQ6IHRyYW5zcGFyZW50LCAkc2l6ZTogNXB4KSB7XG4gICAgLy8g0JTQu9GPIENocm9tZSwgU2FmYXJpINC4INC00YDRg9Cz0LjRhSDQsdGA0LDRg9C30LXRgNC+0LIg0L3QsCDQvtGB0L3QvtCy0LUgV2ViS2l0XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLnNjYWxlKCRjb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXJlc2l6ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vINCU0LvRjyBGaXJlZm94XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkY29sb3IgJGJhY2tncm91bmQ7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xufVxuIiwiLy8gQmFja2dyb3VuZCBjb2xvclxuJGJhY2tncm91bmRfY29sb3I6ICNmZmY7IC8vINCe0YHQvdC+0LLQvdC+0Lkg0YTQvtC90L7QstGL0Lkg0YbQstC10YJcblxuLy8gTWFpbiBjb2xvclxuJG1haW5fY29sb3I6ICMwMDA7IC8vINCe0YHQvdC+0LLQvdC+0Lkg0YLQtdC60YHRgiDQuNC70Lgg0Y3Qu9C10LzQtdC90YLRi1xuXG4vLyBBY2NlbnQgY29sb3JcbiRhY2NlbnRfY29sb3I6ICM0YjgwYzQ7IC8vINCQ0LrRhtC10L3RgtC90YvQtSDRjdC70LXQvNC10L3RgtGLLCDQvdCw0L/RgNC40LzQtdGALCDQutC90L7Qv9C60LhcblxuLy8gU2Vjb25kYXJ5IGJhY2tncm91bmQgXG4kc2Vjb25kYXJ5X2JnX2NvbG9yOiAjZjRmNmY5OyAvLyDQpNC+0L3QvtCy0YvQuSDRhtCy0LXRgiDQtNC70Y8g0L3QtdC60L7RgtC+0YDRi9GFINCx0LvQvtC60L7QslxuXG4vLyBGb3JtIGJvcmRlciBjb2xvclxuJGJvcmRlcl9jb2xvcjogI2UzZTNlMztcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJ1dHRvbixcbmJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcmVkO1xuICAgIEBpbmNsdWRlIGZvbnQoMTVweCwgNjAwLCAjZmZmLCAxLjIpO1xuICAgIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAjYTRhZWI5O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlOGVjO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuXG4gICAgJi5ncmF5IHtcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeV9iZ19jb2xvcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIFdpdGggYXJyb3cgKi9cblxuLmJ1dHRvbi1hcnJvdyB7XG4gICAgQGluY2x1ZGUgZm9udCgxNHB4LCA2MDAsICRhY2NlbnRfY29sb3IsIDEpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxN3B4O1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICRhY2NlbnRfY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmLmJnIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIExvYWQgbW9yZSAqL1xuXG4ubG9hZC1tb3JlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcmVkO1xuICAgIEBpbmNsdWRlIGZvbnQoMTVweCwgNTAwLCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnlfYmdfY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICB9XG59XG5cbi8qICMjIENyb3NzICovXG5cbi5jcm9zcyB7XG4gICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFNjcm9sbCBidXR0b25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnNjcm9sbC1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMjVweDtcbiAgICBib3R0b206IDQwcHg7XG4gICAgei1pbmRleDogMTA5OTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJi11cCxcbiAgICAmLWRvd24ge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLW1pZGRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgRm9ybXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZvcm0tYmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnlfYmdfY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNDBweDtcbiAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1zaWxlbmNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5mb3JtLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcblxuICAgICY6b25seS1jaGlsZCA+ICoge1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cbn1cblxuLnJvdy1jb2x1bW5zIHtcbiAgICA+ICoge1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cbn1cblxuLyogIyMgTWFpbiAqL1xuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9udCgxNXB4LCAzMDAsICMwMDAsIDEuMyk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXJfY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci5zY2FsZSgkYm9yZGVyX2NvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMTY0LCAxNzQsIDE4NSwgMSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VmZjI7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgJi5lcnJvciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ViMzE1NDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5ODBweCkge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxufVxuXG4uZm9ybS1iZyBpbnB1dCxcbi5mb3JtLWJnIHRleHRhcmVhIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJpbWFnZVwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8qICMjIFNlbGVjdCAqL1xuXG5zZWxlY3Qge1xuICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG4gICAgY29sb3I6ICM4MDgwODA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TlNBM0lqNEtJQ0E4Y0dGMGFDQm1hV3hzUFNJak5FSTRNRU0wSWlCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazB4TkM0eU9URWdNUzQwTURjZ09DNHhORFlnTlM0M09UWnNMUzQwTXpjdU5qRXhMUzR5TURrdExqRTFMUzR5TURrdU1UVXRMalF6TnkwdU5qRXhUQzQzTURrZ01TNDBNRGRzTGpVNE1pMHVPREUwVERjdU5TQTFMakF5T0NBeE15NDNNRGt1TlRremJDNDFPREl1T0RFMFdpSXZQZ284TDNOMlp6NEspO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTVweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAyMHB4IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOjotbXMtZXhwYW5kIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5pbnB1dC1zZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIC50cy13cmFwcGVyIHtcbiAgICAgICAgKjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci5zY2FsZSgkYm9yZGVyX2NvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudHMtY29udHJvbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDVweCA1MHB4IDVweCAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudHMtd3JhcHBlcjpub3QoLmZvcm0tY29udHJvbCwgLmZvcm0tc2VsZWN0KS5zaW5nbGUgLnRzLWNvbnRyb2wge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhOU0EzSWo0S0lDQThjR0YwYUNCbWFXeHNQU0lqTkVJNE1FTTBJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpSUdROUlrMHhOQzR5T1RFZ01TNDBNRGNnT0M0eE5EWWdOUzQzT1Rac0xTNDBNemN1TmpFeExTNHlNRGt0TGpFMUxTNHlNRGt1TVRVdExqUXpOeTB1TmpFeFRDNDNNRGtnTVM0ME1EZHNMalU0TWkwdU9ERTBURGN1TlNBMUxqQXlPQ0F4TXk0M01Ea3VOVGt6YkM0MU9ESXVPREUwV2lJdlBnbzhMM04yWno0Syk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTVweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMjBweCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLnRzLWRyb3Bkb3duIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC50cy1kcm9wZG93bi1jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNjcm9sbGJhcigkYWNjZW50X2NvbG9yLCBjb2xvci5zY2FsZSgkc2Vjb25kYXJ5X2JnX2NvbG9yLCAkbGlnaHRuZXNzOiAtNSUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iuc2NhbGUoJHNlY29uZGFyeV9iZ19jb2xvciwgJGxpZ2h0bmVzczogLTIlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcHRncm91cCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm9wdGdyb3VwLWhlYWRlciB7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIElucHV0IHJhZGlvYnV0dG9uICovXG5cbi5pbnB1dC1yYWRpbyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDE1cHggYXV0bztcbiAgICBnYXA6IDE1cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGZlM2VhO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMDc1ZW0pO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgIGhlaWdodDogN3B4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGFkMDI0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIHRyYW5zaXRpb246IDIwMG1zIHRyYW5zZm9ybSBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG5cbi5mb3JtLWJnIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAwcHggM3B4IDdweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLyogIyMgSW5wdXQgY2hlY2tib3ggKi9cblxuLmlucHV0LWNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTVweCBhdXRvO1xuICAgIGdhcDogMTVweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZmUzZWE7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4wNzVlbSk7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLWluLW91dDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogOXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhNU0F4TUNJK0NpQWdQSEJoZEdnZ1ptbHNiRDBpSXpoQlJEQXlOQ0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWlCa1BTSnROQzR6T0NBNExqTXlOUzB1TnpZdExqWTFJRFl0TnlBdU56WXVOalV0TmlBM1dtMHRMamN6TkNBeExqQXlPUzB6TFRNZ0xqY3dPQzB1TnpBNElETWdNeTB1TnpBNExqY3dPRm9pTHo0S1BDOXpkbWMrQ2c9PSk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG4gICAgICAgIHRyYW5zaXRpb246IDEyMG1zIHRyYW5zZm9ybSBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4YWQwMjQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBtYXgoMnB4LCAwLjE1ZW0pIHNvbGlkICRhY2NlbnRfY29sb3I7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiBtYXgoMnB4LCAwLjE1ZW0pO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4vKiAjIyBJbnB1dCBudW1iZXIgKi9cblxuLmlucHV0LW51bWJlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGZlM2VhO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcblxuICAgICYtLWJpZyB7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgICYtZmllbGQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogM3B4IDE1cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpc2FibGVkIH4gLmlucHV0LW51bWJlci1idXR0b24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAmLmRlY3JlbWVudCB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pbmNyZW1lbnQge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjYzQxNzEwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYmlnICYtYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgICYuZGlzYWJsZS1lZGl0aW5nIGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi8qICMjIFJhdGluZyAqL1xuXG4uZm9ybS1yYXRpbmctd3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcblxuICAgIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxufVxuXG4ucmF0aW5nLXBhcmFtZXRlcnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMXB4O1xuXG4gICAgbGFiZWwge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGZpbGw6ICNkN2RlZTI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3RlZCBzdmcge1xuICAgICAgICAgICAgZmlsbDogI2Y1ZDAzYjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG4vKiAjIyBEcmFnICYgZHJvcCAqL1xuXG4uZHJhZy1kcm9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5X2JnX2NvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgIH1cbn1cblxuLyogIyMjIEZvcm0gaW5mbyAqL1xuXG4uZm9ybS1pbmZvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuXG4gICAgJi5zdWNjZXNzLFxuICAgICYuZXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIH1cblxuICAgICYuc3VjY2VzcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjk4NDc7XG4gICAgfVxuXG4gICAgJi5lcnJvciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTAwMjc7XG4gICAgfVxuXG4gICAgJi10ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0yMHB4O1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICAgICAgJi5zdWNjZXNzLFxuICAgICAgICAmLmVycm9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zdWNjZXNzIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMzI5ODQ3O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5lcnJvciB7XG4gICAgICAgICAgICBjb2xvcjogI2Q5MDAyNztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMgUGxhY2Vob2xkZXIgKi9cblxuOjpwbGFjZWhvbGRlciB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2UgMC4zcztcbn1cblxuaW5wdXQ6Zm9jdXM6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4vKiAjIyBQcm9ncmVzcyBiYXIgKi9cblxuLnVwbG9hZC1wcm9ncmVzcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iuc2NhbGUoJHNlY29uZGFyeV9iZ19jb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gICAgLnByb2dyZXNzLWJhciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0Y2FmNTA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICAucHJvZ3Jlc3MtdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY2VudGVyZWQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgT3ZlcmxheVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubWVudS1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDk5O1xuICAgIGJhY2tncm91bmQ6ICMwYjBjMGU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjM1cyBlYXNlLWluO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIFBvcHVwIGZvcm1zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5wb3B1cC13cmFwIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcmVkO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAtOTk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSAwLjNzLFxuICAgICAgICB2aXNpYmlsaXR5IDBzIDAuM3M7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmLmJnLW1vZGFsIC5wb3B1cC1pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMTNweCAwIHJnYmEoMTAwLCAxMjAsIDE2NCwgMC4yNSk7XG5cbiAgICAgICAgLnRvcCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTNlM2UzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmg1IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cblxuICAgICAgICAudGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNyb3NzIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M0MTYwZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3B1cC1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogOTk5O1xuXG4gICAgICAgIC50b3Age1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBvcHVwLWZvcm0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLm5vLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogIyMgUG9wdXAgY2l0eSAqL1xuXG4jY2l0eS1tb2RhbCB7XG4gICAgLnBvcHVwLWlubmVyIHtcbiAgICAgICAgd2lkdGg6IDUwMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNpdHktc2VhcmNoLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgc3Ryb2tlOiAkYWNjZW50X2NvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxvYWRlciB7XG4gICAgICAgICAgICAtLXNpemU6IDNweDtcbiAgICAgICAgICAgIC0td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgICAgICByaWdodDogODBweDtcbiAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBvcHVwLWxvYWRlciB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQwLCAyNDUsIDI0OSwgMC41KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMzJweCk7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDMycHgpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogNjRweDtcbiAgICAgICAgICAgIGhlaWdodDogNjRweDtcbiAgICAgICAgICAgIG1hcmdpbjogOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLyogIyMgUG9wdXAgY2FydCAqL1xuXG4jY2FydC1tb2RhbCAucG9wdXAtZm9ybSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNXB4O1xuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEFuaW1hdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogIyMjIFJpcHBsZSBidXR0b24gKi9cblxuW2FuaW1hdGlvbj1cInJpcHBsZVwiXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcmlwcGxlLWJhY2tncm91bmQsIHdoaXRlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdG9wOiBjYWxjKHZhcigtLXkpICogMXB4KTtcbiAgICAgICAgbGVmdDogY2FsYyh2YXIoLS14KSAqIDFweCk7XG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWQpICogMXB4KTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWQpICogMXB4KTtcbiAgICAgICAgb3BhY2l0eTogY2FsYyh2YXIoLS1vLCAxKSAqIHZhcigtLXJpcHBsZS1vcGFjaXR5LCAwLjQpKTtcbiAgICAgICAgdHJhbnNpdGlvbjogY2FsYyh2YXIoLS10LCAwKSAqIHZhcigtLXJpcHBsZS1kdXJhdGlvbiwgNjAwbXMpKSB2YXIoLS1yaXBwbGUtZWFzaW5nLCBsaW5lYXIpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSh2YXIoLS1zLCAxKSk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEFjY29yZGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZmFxLXdyYXAuYWNjb3JkaW9uLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMjBweDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5jb2x1bW4ge1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYWNjb3JkaW9uLWl0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50X2NvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgICY6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICY6aG92ZXIgLmFjY29yZGlvbi1pdGVtLXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUgLmFjY29yZGlvbi1pdGVtLXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnRfY29sb3I7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgZm9udCgxOHB4LCA2MDAsIG51bGwsIDEuNCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAxNXB4O1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDMwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgZmlsbDogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgZm9udCgxNnB4LCBudWxsLCBudWxsLCAxLjU2KTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMCAzMHB4IDE4cHg7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubG9hZGVyIHtcbiAgICAtLXNpemU6IDZweDtcbiAgICAtLXdpZHRoOiA2NHB4O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDk5O1xuXG4gICAgJi1iZyB7XG4gICAgICAgIC0tbWFyZ2luOiAwcHg7XG4gICAgICAgIC0tcmFkaXVzOiAwO1xuICAgICAgICBtYXJnaW46IHZhcigtLW1hcmdpbik7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tYXJnaW4pICogMik7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tbWFyZ2luKSAqIDIpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMjQ1LCAyNDksIDAuNSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXdpZHRoKSAvIDIpO1xuICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIHZhcigtLXdpZHRoKSAvIDIpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IHZhcigtLXdpZHRoKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS13aWR0aCk7XG4gICAgICAgIG1hcmdpbjogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tc2l6ZSkgc29saWQgJGFjY2VudF9jb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50X2NvbG9yIHRyYW5zcGFyZW50ICRhY2NlbnRfY29sb3IgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGFuaW1hdGlvbjogbGRzLWR1YWwtcmluZyAxLjJzIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbGRzLWR1YWwtcmluZyB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIEdyaWQgYW5kIENvbnRhaW5lclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uc2l0ZS1jb250YWluZXItd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zaXRlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEzMDBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNTBweCkge1xuICAgICAgICBwYWRkaW5nOiAwIDUwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MjhweCkge1xuICAgICAgICBwYWRkaW5nOiAwIDMwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5zaXRlLWhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiBjbGFtcCgyMHB4LCAydncsIDQwcHgpO1xuICAgIHBhZGRpbmc6IDMwcHggMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICB9XG59XG5cbi8qICMjIExvZ28gKi9cblxuLmxvZ28ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTVweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogIzAwMDtcblxuICAgIHBpY3R1cmUge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiBjbGFtcCg0MHB4LCAydncsIDU0cHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmgxIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMTZweCwgMnZ3LCAyMnB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5zaXRlLWhlYWRlciAubG9nbyAuaDEge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyogIyMgQ29udGFjdHMgKi9cblxuLmNvbnRhY3RzLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLy8gIyMjIFRlbFxuXG4gICAgLnRlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQoY2xhbXAoMTRweCwgMnZ3LCAyMHB4KSwgNzAwLCAjMDAwKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAuY29kZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gIyMjIFRpbWVcblxuICAgIC53b3JraW5nLXRpbWUge1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDlweCwgMnZ3LCAxMXB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDM7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbn1cblxuLyogIyMgQ2FydCAqL1xuXG4uc2hvcGNhcnQtd3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTVweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgIC5jYXJ0LWljb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHN0cm9rZTogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWNvdW50ZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcmVkO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTNweDtcbiAgICAgICAgcmlnaHQ6IC02cHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYTRiMTg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQoMTJweCwgNzAwLCAjMDAwLCAxLjMpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0NDBweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMgU2hhcGVzICovXG5cbi5oZWFkZXItYmctc2hhcGVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IGNhbGMoLTUwdncgKyA1MCUpO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMHZ3O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgcGljdHVyZSB7XG4gICAgICAgIHdpZHRoOiAxNTUxcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgTWVudVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubWVudSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLmhlYWRlci1tZW51IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC5wcmltYXJ5LW1lbnUtd3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNDBweDtcblxuICAgICAgICAuY3Jvc3Mge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICMjIENhdGFsb2cgbWVudVxuXG4gICAgLmNhdGFsb2ctbWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmID4gLm1lbnUtaXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250KDE3cHgsIDYwMCwgI2ZmZik7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogNDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50X2NvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgPiAubWVudS1pdGVtIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMTBweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IC50b2dnbGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICMjIyBCdXJnZXJcblxuICAgICAgICAuYnVyZ2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtY2VudGVyZWQ7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IC00cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vICMjIyBTdWJtZW51XG5cbiAgICAgICAgJjpob3ZlciA+IC5zdWItbWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNDdweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNzBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMTBweCAxMHB4O1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci5zY2FsZSgkYWNjZW50X2NvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA3cHggMCAwIDdweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgID4gLnN1Yi1tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmhhcy1yZXZlcnNlLXN1Ym1lbnU6aG92ZXIgYTpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA3cHggN3B4IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYSxcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udCgxNHB4LCA2MDAsICNmZmYpO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTFweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci5zY2FsZSgkYWNjZW50X2NvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMTBweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuXG4gICAgICAgICAgICAgICAgICAgICYucmV2ZXJzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDAgMTBweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gIyMgUHJpbWFyeSBtZW51XG5cbiAgICAucHJpbWFyeS1tZW51IHtcbiAgICAgICAgLm1lbnUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAgMzBweDtcblxuICAgICAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICA+IGEsXG4gICAgICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udCgxNHB4LCA2MDAsICMwMDAsIDEuNCk7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+IGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudF9jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudF9jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaTpob3ZlciA+IC5zdWItbWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMzZweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAxMHB4O1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci5zY2FsZSgkYWNjZW50X2NvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA3cHggMCAwIDdweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgID4gLnN1Yi1tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmhhcy1yZXZlcnNlLXN1Ym1lbnU6aG92ZXIgYTpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA3cHggN3B4IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYSxcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udCgxNHB4LCA1MDAsICNmZmYpO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTFweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci5zY2FsZSgkYWNjZW50X2NvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMTBweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuXG4gICAgICAgICAgICAgICAgICAgICYucmV2ZXJzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDAgMTBweCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiAjIyBNb2JpbGUgbWVudSAqL1xuXG4ubW9iaWxlLW1lbnUtYnV0dG9uLFxuI21vYmlsZS1tZW51LXRvZ2dsZSxcbi5wcmltYXJ5LW1lbnUtdG9wLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLmhlYWRlci1tZW51IHtcbiAgICAgICAgb3JkZXI6IDU7XG4gICAgfVxuXG4gICAgLnByaW1hcnktbWVudS10b3AtbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG5cbiAgICAgICAgLnNob3BjYXJ0LXdyYXAge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xuXG4gICAgICAgICAgICAudGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0MjUxNmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3Jvc3MtaWNvbiB7XG4gICAgICAgIHN0cm9rZTogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5tb2JpbGUtbWVudS1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjNzIGVhc2UsXG4gICAgICAgICAgICAgICAgb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbW9iaWxlLW1lbnUtdG9nZ2xlOmNoZWNrZWQge1xuICAgICAgICArIC5tb2JpbGUtbWVudS1idXR0b24gc3BhbjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICsgLm1vYmlsZS1tZW51LWJ1dHRvbiBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgKyAubW9iaWxlLW1lbnUtYnV0dG9uIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW1lbnUtd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgY29sb3I6ICM0MjUxNmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjlweCAwcHggcmdiYSgxMDQsIDEzNiwgMjA5LCAwLjE2KTtcbiAgICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zNXMgZWFzZS1vdXQ7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLW91dDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHRyYW5zZm9ybSAwLjM1cyBlYXNlLW91dCxcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtIDAuMzVzIGVhc2Utb3V0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00ODBweCwgMCwgMCk7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWVudS1vcGVuIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAuYm90dG9tIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAxNXB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMCA1cHg7XG5cbiAgICAgICAgICAgIC5jb250YWN0cy13cmFwIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICAgICAgICAgIC50ZWwge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNDI1MTZmO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC53b3JraW5nLXRpbWUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzQyNTE2ZjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFkZHJlc3Mge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNDI1MTZmO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAgICAgYSxcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzQyNTE2ZjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2F0YWxvZy1tZW51IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgPiAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzQyNTE2ZjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogN3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9wb2x5Z29uLnN2Zyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogIyMjIFRvZ2dsZSAqL1xuXG4gICAgICAgIC50b2dnbGUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IC04cHg7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgIGhlaWdodDogNDNweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJNE1EQWlJR2hsYVdkb2REMGlPREF3SWlCMmFXVjNRbTk0UFNJdE9DNDFJREFnTXpJZ016SWlQanh3WVhSb0lHWnBiR3c5SWlNME1qVXhObVlpSUdROUlrMDNMakk0SURJd0xqQTBZeTB1TWpRZ01DMHVORFF0TGpBNExTNDJMUzR5TkV3dU1qUWdNVE11TXpaakxTNHpNaTB1TXpJdExqTXlMUzQ0TkNBd0xURXVNaTR6TWkwdU16SXVPRFF0TGpNeUlERXVNaUF3VERjdU1qZ2dNVGhzTlM0NE5DMDFMamcwWXk0ek1pMHVNekl1T0RRdExqTXlJREV1TWlBd0lDNHpNaTR6TWk0ek1pNDROQ0F3SURFdU1rdzNMamc0SURFNUxqaGpMUzR4Tmk0eE5pMHVOQzR5TkMwdU5pNHlOSG9pTHo0OEwzTjJaejQ9KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHg7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXJlbnQtbWVudS1pdGVtOm5vdCguaGFzLWNoaWxkcmVuKSAudG9nZ2xlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbW9iaWxlLW1lbnUtdG9nZ2xlOmNoZWNrZWQgfiAucHJpbWFyeS1tZW51LXdyYXAge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICBib2R5Lm1vYmlsZS1tZW51LWFjdGl2ZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBGb290ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnNpdGUtZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDMwcHggNTBweDtcbiAgICBtYXJnaW4tdG9wOiA3MHB4O1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiBjYWxjKC01MHZ3ICsgNTAlKTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeV9iZ19jb2xvcjtcbiAgICB9XG5cbiAgICAuY29weXJpZ2h0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41NDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgIC5hZGRyZXNzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgIH1cblxuICAgIC5lbWFpbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICRhY2NlbnRfY29sb3I7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBheW1lbnRzXG5cbiAgICAuYWNjZXB0LXBheW1lbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDE1cHggMjBweDtcbiAgICB9XG59XG5cbi5mb290ZXItYmxvY2sge1xuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGdhcDogMjVweDtcbiAgICAgICAgbWF4LXdpZHRoOiAyMTVweDtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiAjIyBJbmZvIG1lbnUgKi9cblxuLmZvb3Rlci1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEwcHggMjBweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLnN1Yi1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgYSxcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIE1haW4gbWVudSAqL1xuXG4uZm9vdGVyLW1haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG5cbiAgICAuc3ViLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvcG9seWdvbi5zdmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udCgxNHB4LCA2MDAsICMwMDAsIDEuNCk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50X2NvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQ29udGVudCBsaXN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICYtaW1hZ2Uge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcmVkO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpbWFnZS1yZXNwb25zaXZlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hLml0ZW0ge1xuICAgIGNvbG9yOiAjMDAwO1xufVxuXG4uaW1hZ2Utd3JhcCB7XG4gICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGltZyB7XG4gICAgICAgIEBpbmNsdWRlIGltYWdlLXJlc3BvbnNpdmU7XG4gICAgfVxufVxuXG4vKiAjIyBQcm9kdWN0IGxpc3QgKi9cblxuLnByb2R1Y3QtbGlzdCB7XG4gICAgQGluY2x1ZGUgZ3JpZChyZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpLCBjbGFtcCgxNXB4LCAydncsIDQwcHgpKTtcblxuICAgID4gLml0ZW0ge1xuICAgICAgICBnYXA6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZWU2ZjI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggJGFjY2VudF9jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2Uge1xuICAgICAgICAgICAgbWFyZ2luOiAtMjBweCAwIDEwcHggLTIwcHg7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgNDBweCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDI3NXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oNiB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24tYXJyb3cge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5pdGVtLWVkaXRpb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZWU2ZjI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG5cbiAgICAgICAgICAgIHNtYWxsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtMTBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRzLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICo6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnRzLWNvbnRyb2wge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDE1cHggY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudHMtZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgLm9wdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY29zdCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIiDigr1cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pdGVtLWRlbGl2ZXJ5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiA1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgZmlsbDogI2ZhNGIxODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMgUmF0aW5nIGxpc3QgKi9cblxuLnJldmlld3MtbGlzdCB7XG4gICAgQGluY2x1ZGUgZ3JpZChyZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzA1cHgsIDFmcikpLCAzMHB4KTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cblxuICAgIC5pdGVtIHtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXJfY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cbiAgICAgICAgLnRvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGdhcDogMTVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1yYXRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDFweDtcblxuICAgICAgICAgICAgLnN0YXIge1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICNkN2RlZTI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5zdGFyLWFjdGl2ZSBzdmcge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAjZjVkMDNiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40MztcbiAgICAgICAgfVxuXG4gICAgICAgICYtZGF0ZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDM7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIFByb2Nlc3NlcyAqL1xuXG4ucG9ydGZvbGlvLWxpc3Qge1xuICAgIEBpbmNsdWRlIGdyaWQocmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIzMHB4LCAxZnIpKSwgMjBweCk7XG5cbiAgICAuaXRlbSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pbWFnZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikgLml0ZW0taW1hZ2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAyNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKG9kZCkgLml0ZW0taW1hZ2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oNyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41NjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgUmV2aWV3c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ucmV2aWV3cy1ibG9jayB7XG4gICAgQGluY2x1ZGUgZ3JpZChtaW5tYXgoMzAwcHgsIDMyMHB4KSBtaW5tYXgoMjUwcHgsIDFmciksIDQwcHggNjBweCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgyNTBweCwgMWZyKTtcbiAgICB9XG5cbiAgICAucmF0aW5nLXdyYXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDQwcHg7XG4gICAgfVxuXG4gICAgLnJhdGluZy1saXN0IHtcbiAgICAgICAgcGFkZGluZzogNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeV9iZ19jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcblxuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24tYXJyb3cge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgfVxufVxuXG4vKiAjIyMgUmF0aW5nIGluZm8gKi9cblxuLnJhdGluZy1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTVweDtcblxuICAgIC5udW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB3aWR0aDogNDdweDtcbiAgICAgICAgICAgIGhlaWdodDogNDVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYmlnLXN0YXIucG5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbn1cblxuLyogIyMjIFJhdGluZyByb3dzICovXG5cbi5yYXRpbmctcm93cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDY1cHg7XG5cbiAgICAuaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgICAgICBmaWxsOiAjZjVkMDNiO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmUge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgIGhlaWdodDogN3B4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZDAzYjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQ2FydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uY2FydC13cmFwIHtcbiAgICBAaW5jbHVkZSBncmlkKG1pbm1heCgzMDBweCwgMWZyKSBtaW5tYXgoMjUwcHgsIDU3MHB4KSwgNTBweCA2NXB4KTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNDBweCkge1xuICAgICAgICBnYXA6IDUwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDI1MHB4LCAxZnIpO1xuICAgIH1cblxuICAgIC5yaWdodCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG59XG5cbi8qICMjIFByb2R1Y3Qgb3JkZXIgKi9cblxuLnByb2R1Y3Qtb3JkZXItdGFibGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5sb2FkZXItYmcge1xuICAgICAgICAtLW1hcmdpbjogLTI1cHg7XG4gICAgICAgIC0tcmFkaXVzOiAzMHB4O1xuICAgIH1cbn1cblxuLnByb2R1Y3Qtb3JkZXItaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBncmlkKDFmciAxNTBweCwgMTBweCk7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgIGRpdjpsYXN0LWNoaWxkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuLnByb2R1Y3Qtb3JkZXItYm9keSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDVweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjRmNztcbn1cblxuLm9yZGVyLXRhYmxlLXJvdyB7XG4gICAgQGluY2x1ZGUgZ3JpZCgxZnIgMWZyIDE1MHB4LCAyMHB4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjFmNGY3O1xuXG4gICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMzBweDtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50X2NvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0taW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oNiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtdXBsb2FkIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDIxMHB4O1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAzO1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0LW9yZGVyLXByaWNlIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuXG4gICAgICAgIC5wcmljZS13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIOKCvVwiO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5uby1kaXNjb3VudC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG5cbiAgICAgICAgICAgICY6bm90KDplbXB0eSk6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIOKCvVwiO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kZWxldGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1vcmRlci1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDVweCAyMHB4O1xuICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAzO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICNhOWE5YTk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIEZ1bGwgcHJpY2UgKi9cblxuLnByb2R1Y3Qtb3JkZXItYm90dG9tIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMzBweDtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgLmxlZnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE1cHg7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mdWxsLXByaWNlLXRleHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZ1bGwtcHJpY2Utd3JhcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogN3B4O1xuXG4gICAgICAgICAgICAuZnVsbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCIg4oK9XCI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kaXNjb3VudCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cbiAgICAgICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6ZW1wdHkpOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwi0KHQutC40LTQutCwOiBcIjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6ZW1wdHkpOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCIg4oK9XCI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kZWxpdmVyeS1wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cbiAgICAgICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6ZW1wdHkpOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwi0KHRgtC+0LjQvNC+0YHRgtGMINC00L7RgdGC0LDQstC60Lg6IFwiO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bm90KDplbXB0eSk6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIiDigr1cIjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMjIFByb21vY29kZSAqL1xuXG4ucHJvbW9jb2RlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuXG4gICAgLmlucHV0LXRleHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAmOm5vdCguYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wcm9tb2NvZGUtYWRkIHN2ZyB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkYWNjZW50X2NvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByb21vY29kZS1yZW1vdmUgc3ZnIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICNmYTRiMTg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubG9hZGVyIHtcbiAgICAgICAgICAgIC0tc2l6ZTogMnB4O1xuICAgICAgICAgICAgLS13aWR0aDogMjBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTdweDtcbiAgICAgICAgICAgIHJpZ2h0OiA2MHB4O1xuICAgICAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIEZvcm0gKi9cblxuLm9yZGVyLWZvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiA0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTQwcHg7XG4gICAgfVxuXG4gICAgJi1ibG9jayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjVweDtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yLnNjYWxlKCRzZWNvbmRhcnlfYmdfY29sb3IsICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oMyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLmZvcm0tY291bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoMTVweCwgNTAwLCAjZmZmKTtcbiAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRleHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDM7XG5cbiAgICAgICAgZGl2OmVtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb3N0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIg4oK9XCI7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tYmxvY2staW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5zaGlwcGluZy1pbmZvIHtcbiAgICAgICAgLmZvcm0tYmxvY2staW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaWVsZHNldCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIC5mb3JtLXRhYi1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIH1cblxuICAgIC5pbnB1dC1yYWRpbyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCBhdXRvIDUwcHg7XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmg2IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIH1cblxuICAgICAgICAudGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvc3Qge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAmOm5vdCg6ZW1wdHkpOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiDigr1cIjtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIyBUYWJzICovXG5cbi5mb3JtLXRhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDIwcHg7XG5cbiAgICAuZm9ybS10YWItbGFiZWxzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250KDE2cHgsIDYwMCwgIzAwMCk7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMgU2hpcHBpbmcgKi9cblxuLnNoaXBwaW5nLW1ldGhvZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjBweDtcbn1cblxuLmRlbGl2ZXJ5LWZpZWxkcyB7XG4gICAgLy8gZGlzcGxheTogbm9uZTtcblxuICAgIC8vIC5pbnB1dC10ZXh0IHtcbiAgICAvLyAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vIH1cblxuICAgIC8vICNjaXR5IHtcbiAgICAvLyAgICAgcGFkZGluZy1yaWdodDogMTEwcHg7XG4gICAgLy8gfVxuXG4gICAgLy8gI2NpdHktY2hhbmdlIHtcbiAgICAvLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgICB0b3A6IDE4cHg7XG4gICAgLy8gICAgIHJpZ2h0OiAzMHB4O1xuICAgIC8vICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLy8gICAgIGNvbG9yOiAkYWNjZW50X2NvbG9yO1xuICAgIC8vICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyAgICAgJjpob3ZlciB7XG4gICAgLy8gICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbn1cblxuLyogIyMjIFBpY2t1cCAqL1xuXG4ucGlja3VwLWZpZWxkcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvci5zY2FsZSgkc2Vjb25kYXJ5X2JnX2NvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKTtcblxuICAgIC5oNiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAuY29udGFjdHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDdweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40MztcbiAgICB9XG5cbiAgICAuaW1hZ2Utd3JhcCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIyBCb3hiZXJyeSAqL1xuXG4uY2l0eS1zZWFyY2gtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2l0eS1zZWFyY2gtaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5sb2FkZXIge1xuICAgICAgICAtLXNpemU6IDNweDtcbiAgICAgICAgLS13aWR0aDogMjRweDtcbiAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICByaWdodDogODBweDtcbiAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgfVxufVxuXG4jY2l0eSB7XG4gICAgcGFkZGluZy1yaWdodDogMTAwcHg7XG59XG5cbiNjaXR5LWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE0cHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgc3Ryb2tlOiAkYWNjZW50X2NvbG9yO1xufVxuXG4jY2l0eS1jaGFuZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE0cHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cblxuI2NpdHktcmVzdWx0cyB7XG4gICAgQGluY2x1ZGUgc2Nyb2xsYmFyKCRhY2NlbnRfY29sb3IsIGNvbG9yLnNjYWxlKCRzZWNvbmRhcnlfYmdfY29sb3IsICRsaWdodG5lc3M6IC01JSkpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDYwcHg7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gICAgZGl2IHtcbiAgICAgICAgcGFkZGluZzogN3B4IDIwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLnNjYWxlKCRzZWNvbmRhcnlfYmdfY29sb3IsICRsaWdodG5lc3M6IC0yJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ib3hiZXJyeS13cmFwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAudG9wIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbiAgICAgICAgLmJveGJlcnJ5LXByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiDigr1cIjtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJSYWxld2F5XCIsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm90dG9tIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuYm94YmVycnktYWRyZXNzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40MztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJveGJlcnJ5X292ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwYjBjMGUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwLjggIWltcG9ydGFudDtcbn1cblxuLmJveGJlcnJ5X2NvbnRhaW5lciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDEzcHggMCByZ2JhKDEwMCwgMTIwLCAxNjQsIDAuMjUpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uYm94YmVycnlfY29udGVudCB7XG4gICAgcGFkZGluZzogMjBweCAxNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtLXRleHQtZXJyb3Ige1xuICAgIGNvbG9yOiByZWQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLyogIyMgT3JkZXIgcGF5bWVudCBwYWdlICovXG5cbi5wYWdlLXRlbXBsYXRlLW9yZGVyIC5wcm9kdWN0LW9yZGVyLWJvZHkgLm9yZGVyLXRhYmxlLXJvdyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMTUwcHg7XG59XG5cbi5vcmRlci1pbmZvLnBvc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5X2JnX2NvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBNYWluXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jb250ZW50LXBvc3Qtd3JhcCB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1heC13aWR0aDogOTIwcHg7XG59XG5cbi5tYWluLWJsb2NrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNzBweDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50X2NvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiAjIyBPdGhlciAqL1xuXG4ubWl4LWJsZW5kLW1vZGUge1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbn1cblxuLyogIyMgTGlzdHMgKi9cblxuLnBvc3QgdWwsXG4ucG9zdCBvbCB7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsLFxuICAgIG9sIHtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgfVxufVxuXG4ucG9zdCB1bCB7XG4gICAgbGk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDlweDtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGFjY2VudF9jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbn1cblxuLnBvc3Qgb2wge1xuICAgIGNvdW50ZXItcmVzZXQ6IGxpc3RDb3VudGVyO1xuXG4gICAgJltzdGFydF0ge1xuICAgICAgICBjb3VudGVyLXJlc2V0OiBsaXN0Q291bnRlciBjYWxjKHZhcigtLXN0YXJ0KSAtIDEpO1xuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogbGlzdENvdW50ZXI7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIobGlzdENvdW50ZXIpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIzcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMgVGFibGUgKi9cblxuLnBvc3QtdGFibGUge1xuICAgIG1hcmdpbjogNDBweCAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuXG4gICAgICAgIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY2Zjk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB0cixcbiAgICAgICAgdGhlYWQgKyB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllZWY2O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgKyB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkICsgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjVmODtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgICAgICB0aDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGQ6bGFzdC1jaGlsZCxcbiAgICAgICAgICAgIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgKyB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qICMjIFZpZGVvICovXG5cbi5wb3N0LXZpZGVvIHtcbiAgICBpZnJhbWUge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICB9XG59XG5cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMSkge1xuICAgIC5wb3N0LXZpZGVvIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiA1Ni4yNSUgMCAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMgSW1hZ2VzICovXG5cbi5wb3N0IGltZyB7XG4gICAgY29udGVudC12aXNpYmlsaXR5OiBhdXRvO1xufVxuXG4uYWxpZ25jZW50ZXIsXG4uYWxpZ25sZWZ0LFxuLmFsaWducmlnaHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG59XG4uYWxpZ25ub25lLFxuLmFsaWduY2VudGVyIHtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbn1cblxuLmFsaWducmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDAgMCAzMHB4IDMwcHg7XG59XG5cbi5hbGlnbmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAzMHB4IDMwcHggMDtcbn1cblxuLndwLWNhcHRpb24ge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4IDIwcHggMCAwO1xuICAgIH1cbn1cblxuLndwLWNhcHRpb24tdGV4dCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBsaW5lLWhlaWdodDogMS40MztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeV9iZ19jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMjBweCAyMHB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MjhweCkge1xuICAgIC5hbGlnbnJpZ2h0Om5vdCgud3AtY2FwdGlvbiksXG4gICAgLmFsaWdubGVmdDpub3QoLndwLWNhcHRpb24pIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgLmFsaWducmlnaHQsXG4gICAgLmFsaWdubGVmdCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW46IDAgYXV0byAzMHB4O1xuICAgIH1cbn1cblxuLyogIyMgU3RhbmRhcmQgZ2FsbGVyeSAqL1xuXG4uZ2FsbGVyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogMzBweCAwO1xufVxuXG4uZ2FsbGVyeS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZ2FsbGVyeS1pY29uIHtcbiAgICAmLmxhbmRzY2FwZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBAaW5jbHVkZSBpbWFnZS1yZXNwb25zaXZlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJjpub3QoOm9ubHktY2hpbGQpIGEge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4IDIwcHggMCAwO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMTAwJSAtIDVweCk7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDVweCk7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzMzMlIC0gNXB4KTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjUlIC0gNXB4KTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTUgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMjAlIC0gNXB4KTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMTYuNjY2NyUgLSA1cHgpO1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygxNC4yODU3JSAtIDVweCk7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY29sdW1ucy04IC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDEyLjUlIC0gNXB4KTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNhbGMoMTEuMTExMSUgLSA1cHgpO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSA1cHgpO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgICAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYygxMDAlIC0gNXB4KTtcbiAgICB9XG59XG5cbi8qICMjIEJsb2NrcXVvdGUsIGJsb2NrcyAqL1xuXG5ibG9ja3F1b3RlIHA6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5ibG9ja3F1b3RlLmN1c3RvbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogNjBweCAwIDUwcHg7XG4gICAgcGFkZGluZzogNDBweCA1MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNGRkZTc7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNGRkZTc7XG5cbiAgICBzdmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTE2cHg7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gNDBweCk7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICRhY2NlbnRfY29sb3I7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgIH1cbn1cblxuLmluZm8tYm94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgcGFkZGluZzogMzBweCA0MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudF9jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQcm9kdWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5wcm9kdWN0LWNhcmQge1xuICAgIEBpbmNsdWRlIGdyaWQobWlubWF4KDI1MHB4LCA3MDBweCkgbWlubWF4KDQwMHB4LCAxZnIpLCAzMHB4IGNsYW1wKDMwcHgsIDJ2dywgNzBweCkpO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBtYXJnaW4tbGVmdDogLTYwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNjBweDtcbiAgICBwYWRkaW5nOiA1MHB4IDYwcHggNDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5X2JnX2NvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMjUwcHgsIDFmcik7XG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8qICMjIENvbmZpZ3VyYXRpb24gKi9cblxuLnByb2R1Y3QtY29uZmlndXJhdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAzNXB4IDIwcHg7XG5cbiAgICAucGRmLXJ1bGVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNXB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICNmZjQwMmY7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb25maWd1cmF0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi0tdXBsb2FkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDMzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDM7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG5cbiAgICAmLS1jdXN0b20tc2l6ZXMgIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEwcHgpO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb3N0IHtcbiAgICAgICAgJjpub3QoOmVtcHR5KTphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiDigr1cIjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbnB1dC1zZWxlY3Qge1xuICAgICAgICAuY29zdCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb25maWd1cmF0aW9uLXdyYXAge1xuICAgIEBleHRlbmQgLmNvbmZpZ3VyYXRpb247XG5cbiAgICAudGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbn1cblxuLmNvbmZpZ3VyYXRpb24taW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE1cHg7XG5cbiAgICAuY29sdW1uIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cbn1cblxuLmNvbmZpZ3VyYXRpb24tYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMjVweCA1MHB4O1xuICAgIHBhZGRpbmc6IDI1cHggMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGVmdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjVweDtcbiAgICB9XG59XG5cbi5jb25maWd1cmF0aW9uLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEwcHg7XG5cbiAgICAuZG90cyB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmNGY2Zjk7XG4gICAgfVxuXG4gICAgLmNvc3Qge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAuaW5wdXQtcmFkaW8sXG4gICAgICAgIC5pbnB1dC1jaGVja2JveCB7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbmZpZ3VyYXRpb24tY2xpY2hlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4IDIwcHg7XG5cbiAgICAuY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgfVxuXG4gICAgLmZ1bGwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4vKiAjIyMgRHJpbGxpbmcgKi9cblxuLmNvbmZpZ3VyYXRpb24tZHJpbGxpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDIwcHg7XG5cbiAgICAuZHJpbGxpbmctb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICAuZHJpbGxpbmctaG9sZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgLmRyaWxsaW5nLWRpYW1ldGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoMTRweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5wdXQtbnVtYmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogIyMjIFJhZGlvIGltYWdlcyAqL1xuXG4ucmFkaW8taW1hZ2VzIHtcbiAgICBAaW5jbHVkZSBncmlkKHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDkwcHgsIDFmcikpLCAxMHB4KTtcblxuICAgIC5jb25maWd1cmF0aW9uLWl0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcmVkKGNvbHVtbik7XG4gICAgICAgIGdhcDogMTVweDtcbiAgICAgICAgcGFkZGluZzogMjBweCAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJGFjY2VudF9jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0taW1hZ2Uge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb25maWd1cmF0aW9ucy1saXN0LS1zZWFsIC5jb25maWd1cmF0aW9uLWl0ZW0ge1xuICAgIGdhcDogMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgLml0ZW0taW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgfVxufVxuXG4ucGFnZS10ZW1wbGF0ZS1icm9jaHVyZXMgLnJhZGlvLWltYWdlcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoY2xhbXAoMTAwcHgsIDJ2dywgMTIwcHgpLCAxZnIpKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIH1cbn1cblxuLyogIyMjIE9yZGVyIGJsb2NrICovXG5cbi5wcm9kdWN0LWNhcmQtcmlnaHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDQwcHg7XG4gICAgbWFyZ2luLXRvcDogLTQwcHg7XG5cbiAgICBwaWN0dXJlIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kZWxpdmVyeS1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICAgICAgcGljdHVyZSB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5saW5rLWV4YW1wbGVzIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkYWNjZW50X2NvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucGFnZS10ZW1wbGF0ZS1mbHllcnMgLnByb2R1Y3QtY2FyZC1yaWdodCB7XG4gICAgcGljdHVyZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgICB9XG59XG5cbi5wcm9kdWN0LW9yZGVyLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAzMHB4O1xuXG4gICAgLnRvcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMzVweDtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIOKCvVwiO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiUmFsZXdheVwiLCBzYW5zLXNlcmlmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRlbGl2ZXJ5LWRhdGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBmaWxsOiAjZmE0YjE4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1vcmRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB9XG59XG5cbi8qICMjIEFib3V0ICovXG5cbi5hYm91dC1ibG9jayB7XG4gICAgLmJvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiA1MHB4O1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBpY3R1cmUge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQnJlYWRjcnVtYnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmJyZWFkY3J1bWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogMzVweCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5ODBweCkge1xuICAgICAgICBncmlkLWNvbHVtbjogdW5zZXQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3MgbGluZWFyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sYXN0LWNydW1iIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGZpbGw6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHN2ZyB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBTaWRlYmFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5zaWRlYmFyLXByaW1hcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLndpZGdldCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxuXG4gICAgLndpZGdldHRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbn1cblxuLnNpZGViYXItc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMgQXJjaGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYXJjaGl2ZS1kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyBQYWdpbmF0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5wYWdpbmF0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuXG4gICAgLm5hdi1saW5rcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMTBweDtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnZS1udW1iZXJzIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgQGluY2x1ZGUgZm9udCgxNnB4LCA1MDAsICMwMDApO1xuICAgICAgICB3aWR0aDogNTVweDtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlYWVjO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICAgICYuY3VycmVudCxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubmV4dCxcbiAgICAgICAgJi5wcmV2IHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXJlZDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnRfY29sb3I7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudF9jb2xvcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4zcztcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudF9jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm5leHQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLnByZXYge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyA0MDRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmVycm9yNDA0IHtcbiAgICBoMSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbjQwNCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm51bSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250KDMyMHB4LCA3MDAsICRzZWNvbmRhcnlfYmdfY29sb3IsIDEuMik7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyOHZ3O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= */
