/**
 * Do not @use files with actual scss code in this file, as it will compile css code twice.
 * As this file going to be an standalone css file.
 */
/*
 * CONVERT TO CLAMP
 *
 * @link https://websemantics.uk/tools/responsive-font-calculator/
 *
 * Call with 2, or 4 parameters. Only first 2 parameters are required. Viewport widths also can be with 'px' units (for supporting breakpoint values).
 *
 * Examples:
 *
 * 1) font-size: clamp-rem(32, 48);
 * 2) font-size: clamp-rem(32, 48, 640, 1600);
 */
/**
 * Mixins for Media Queries
 * Example Usage: @include min($lg) || @include min(1440)
 */
/**
 * Do not @use files with actual scss code in this file, as it will compile css code twice.
 * As this file going to be an standalone css file.
 */
/**
 * Do not @use files with actual scss code in this file, as it will compile css code twice.
 * As this file going to be an standalone css file.
 */
.text-xl {
  font-size: var(--it-size-x-large);
}

.text-lg {
  font-size: var(--it-size-large);
}

.text-md {
  font-size: var(--it-size-medium);
}

.text-sm {
  font-size: var(--it-size-small);
}

.text-xs {
  font-size: var(--it-size-x-small);
}

.text-xxs {
  font-size: var(--it-size-xx-small);
}

.it-cta {
  background-color: var(--it-block-bg-color);
}
.it-cta.has-dark-bg .it-title,
.it-cta.has-dark-bg .it-subtitle,
.it-cta.has-dark-bg .it-description,
.it-cta.has-dark-bg .editor {
  color: var(--it-color-white);
}
.it-cta.has-dark-bg.it-cta--container-size--narrow .it-cta__content {
  color: var(--it-color-border-light);
}
.it-cta__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.625rem;
  position: relative;
  z-index: 1;
}
@media (min-width: 1024px) {
  .it-cta__container {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
  }
}
.it-cta.it-cta--border:not(.has-dark-bg) .it-title,
.it-cta.it-cta--border:not(.has-dark-bg) .it-subtitle,
.it-cta.it-cta--border:not(.has-dark-bg) .it-description,
.it-cta.it-cta--border:not(.has-dark-bg) .editor {
  color: var(--it-color-text);
}
.it-cta.it-cta--border:not(.has-dark-bg).it-cta--container-size--narrow .it-cta__content {
  color: var(--it-color-text);
}
.it-cta.it-cta--container-size--narrow:not(.it-cta--border) .it-cta__container {
  background-color: var(--it-color-brand);
  border-radius: 0.25rem;
  padding: 1.25rem 1.5rem;
}
@media (min-width: 1024px) {
  .it-cta.it-cta--container-size--narrow:not(.it-cta--border) .it-cta__container {
    border-radius: 0.375rem;
    padding: 2.5rem 3.75rem;
  }
}
.it-cta.it-cta--container-size--narrow:not(.it-cta--border) .it-cta__content {
  margin-top: clamp(0.5rem, calc(0.5rem + (1vw - 6.4px) * 0.83), 1rem);
}
.it-cta.it-cta--container-size--narrow:not(.it-cta--border) .it-cta__inner {
  max-width: 56.875rem;
}
.it-cta--border .it-cta__container {
  border: 0;
  border-bottom: 1px solid #4C7FA2;
  border-radius: 0;
  padding-bottom: 1.5rem;
  gap: 1.25rem;
}
@media (min-width: 1024px) {
  .it-cta--border .it-cta__container {
    gap: 1.875rem;
  }
}
@media (min-width: 1366px) {
  .it-cta--border .it-cta__container {
    gap: 11.9375rem;
  }
}
.it-cta--border.it-block-bg--white .it-cta__container, .it-cta--border.it-block-bg--grey .it-cta__container {
  border-bottom-color: var(--it-color-border-dark);
}
.it-cta .it-cta__container .it-cta__buttons {
  margin-top: 0.3125rem;
  width: 100%;
}
@media screen and (max-width: 1023px) and (min-width: 0px) {
  .it-cta .it-cta__container .it-cta__buttons {
    display: flex;
    justify-content: center;
  }
}
@media (min-width: 1024px) {
  .it-cta .it-cta__container .it-cta__buttons {
    flex: 0 0 auto;
    width: auto;
    margin-left: auto;
    margin-top: 0;
  }
}
.it-cta__inner, .it-cta__buttons {
  position: relative;
  z-index: 1;
}
.it-cta__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.it-cta:not(.it-cta--container-size--narrow) .it-cta__container {
  text-align: center;
}
@media (min-width: 1024px) {
  .it-cta:not(.it-cta--container-size--narrow) .it-cta__container {
    text-align: left;
  }
}
.it-cta__content {
  flex: 1 1 auto;
}
@media (min-width: 783px) {
  .layout-row .it-cta__content {
    max-width: 100%;
  }
}

.it-number-cards {
  --it-number-cards-bg: var(--it-color-background);
  --it-number-cards-heading-color: var(--it-color-intro-scrim);
  --it-number-cards-intro-color: var(--it-color-text);
  --it-number-cards-card-bg: var(--it-color-cta-bg-grey);
  --it-number-cards-bg-image: url("../../img/number-cards-bg.svg");
  position: relative;
  background-color: var(--it-number-cards-bg);
  overflow: hidden;
  padding-top: 2rem;
}
@media (min-width: 1024px) {
  .it-number-cards {
    padding-top: 7.5rem;
  }
}
.it-number-cards {
  padding-bottom: 2rem;
}
@media (min-width: 1024px) {
  .it-number-cards {
    padding-bottom: 7.5rem;
  }
}
.it-number-cards--background-color-dark-blue {
  --it-number-cards-bg: var(--it-color-top-bar-bg);
  --it-number-cards-heading-color: var(--it-color-white);
  --it-number-cards-intro-color: var(--it-color-white);
  --it-number-cards-card-bg: var(--it-color-cta-bg-grey);
}
.it-number-cards--background-color-grey {
  --it-number-cards-bg: var(--it-color-background);
  --it-number-cards-heading-color: var(--it-color-intro-scrim);
  --it-number-cards-intro-color: var(--it-color-text);
  --it-number-cards-card-bg: var(--it-color-cta-bg-grey);
}
.it-number-cards__background {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
  background-image: var(--it-number-cards-bg-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
@media (min-width: 2160px) {
  .it-number-cards__background {
    background-size: 100% auto;
  }
}
.it-number-cards .it-global-padding {
  position: relative;
  z-index: 1;
}
.it-number-cards .it-title {
  color: var(--it-number-cards-heading-color);
}
.it-number-cards__intro {
  max-width: var(--it-narrow-size);
  margin-top: clamp(0.75rem, calc(0.75rem + (1vw - 6.4px) * 1.25), 1.5rem);
  color: var(--it-number-cards-intro-color);
  font-size: clamp(1rem, calc(1rem + (1vw - 6.4px) * 0.21), 1.125rem);
  font-weight: 400;
  line-height: 1.5;
}
.it-number-cards__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(0.5rem, calc(0.5rem + (1vw - 6.4px) * 2.5), 2rem);
  margin-top: clamp(1.25rem, calc(1.25rem + (1vw - 6.4px) * 2.08), 2.5rem);
}
@media (min-width: 1024px) {
  .it-number-cards--grid-2 .it-number-cards__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .it-number-cards--grid-3 .it-number-cards__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.it-number-cards__card {
  display: flex;
  flex-direction: column;
  padding: clamp(0.75rem, calc(0.75rem + (1vw - 6.4px) * 1.25), 1.5rem);
  padding-bottom: clamp(1.5rem, calc(1.5rem + (1vw - 6.4px) * 2.5), 3rem);
  border-radius: var(--it-border-radius-small);
  background-color: var(--it-number-cards-card-bg);
}
.it-number-cards__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.75rem;
  height: 3.75rem;
  border-radius: var(--it-border-radius-small);
  background-color: var(--it-color-top-bar-bg);
}
.it-number-cards__number-value {
  color: var(--it-color-white);
  font-size: clamp(1.75rem, calc(1.75rem + (1vw - 6.4px) * 1.25), 2.5rem);
  font-weight: 600;
  line-height: 1.2;
}
.it-number-cards__icon {
  display: flex;
}
.it-number-cards__icon--has-background {
  width: 3.75rem;
  height: 3.75rem;
  align-items: center;
  justify-content: center;
  border-radius: var(--it-border-radius-small);
  background-color: var(--it-color-top-bar-bg);
}
.it-number-cards__icon--has-background svg, .it-number-cards__icon--has-background img {
  width: 2.5rem;
  height: 2.5rem;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
}
.it-number-cards__icon-img {
  width: 2rem;
  height: 2rem;
  -o-object-fit: contain;
     object-fit: contain;
}
.it-number-cards .it-number-cards__card .it-number-cards__header-label {
  margin-bottom: clamp(0.625rem, calc(0.625rem + (1vw - 6.4px) * 0.63), 1rem);
  color: var(--it-color-intro-scrim);
}
.it-number-cards__title {
  margin: 0;
  color: var(--it-color-intro-scrim);
  font-size: clamp(1.125rem, calc(1.125rem + (1vw - 6.4px) * 0.63), 1.5rem);
  font-weight: 600;
  line-height: 1.2;
}
.it-number-cards__text {
  color: var(--it-color-text);
  font-size: clamp(1rem, calc(1rem + (1vw - 6.4px) * 0.21), 1.125rem);
  font-weight: 400;
  line-height: 1.5;
}
.it-number-cards__text p {
  margin: 0;
}
.it-number-cards__card > *:not(:last-child) {
  margin-bottom: clamp(1.5rem, calc(1.5rem + (1vw - 6.4px) * 1.67), 2.5rem);
}
.it-number-cards__cta.it-cta {
  background-color: transparent;
}
.it-number-cards__cta {
  margin-top: clamp(1.25rem, calc(1.25rem + (1vw - 6.4px) * 2.08), 2.5rem);
}
.it-number-cards__cta.it-cta--container-size--narrow:not(.it-cta--border) .it-cta__container {
  padding: 1.25rem 1.5rem;
}
@media (min-width: 1024px) {
  .it-number-cards__cta.it-cta--container-size--narrow:not(.it-cta--border) .it-cta__container {
    padding: 2.5rem 3.75rem;
  }
}
.it-number-cards__cta .it-cta__inner {
  gap: 1rem;
}
.it-number-cards__cta .it-cta__buttons {
  flex-direction: column;
  gap: 1rem;
}
@media (min-width: 1024px) {
  .it-number-cards__cta .it-cta__buttons {
    flex-direction: row;
  }
}
.it-number-cards__cta .it-cta__buttons .it-button {
  width: 100%;
}
@media (min-width: 1024px) {
  .it-number-cards__cta .it-cta__buttons .it-button {
    width: auto;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjZi1sYXlvdXRzL251bWJlcl9jYXJkcy9zdHlsZS5zY3NzIiwiYXNzZXRzL3Njc3MvZ2xvYmFsLzAtc2V0dGluZ3MvX3JlbS1jYWxjLnNjc3MiLCJhc3NldHMvc2Nzcy9nbG9iYWwvMC1zZXR0aW5ncy9fbWl4aW5zLW1lZGlhLXF1ZXJ5LnNjc3MiLCJhY2YtbGF5b3V0cy9jdGEvc3R5bGUuc2NzcyIsImFzc2V0cy9zY3NzL2dsb2JhbC8xLWdlbmVyaWMvMS0yLXR5cG9ncmFwaHkvX3RleHQuc2NzcyIsImFjZi1sYXlvdXRzL251bWJlcl9jYXJkcy9zdHlsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUFBO0FDK0ZBOzs7Ozs7Ozs7OztFQUFBO0FDL0ZBOzs7RUFBQTtBRkFBOzs7RUFBQTtBR0FBOzs7RUFBQTtBQ0FBO0VBQ0MsaUNBQUE7QUM2QkQ7O0FEMUJBO0VBQ0MsK0JBQUE7QUM2QkQ7O0FEMUJBO0VBQ0MsZ0NBQUE7QUM2QkQ7O0FEMUJBO0VBQ0MsK0JBQUE7QUM2QkQ7O0FEMUJBO0VBQ0MsaUNBQUE7QUM2QkQ7O0FEMUJBO0VBQ0Msa0NBQUE7QUM2QkQ7O0FGM0NBO0VBRUUsMENBQUE7QUU2Q0Y7QUZ6Q0k7Ozs7RUFJRSw0QkFBQTtBRTJDTjtBRnhDSTtFQUNFLG1DQUFBO0FFMENOO0FGdENFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0FFd0NKO0FINURDO0VDY0M7SUFTSSxtQkFBQTtJQUNBLG1CQUFBO0lBQ0EsOEJBQUE7SUFDQSxZQUFBO0VFeUNKO0FBQ0Y7QUZwQ0k7Ozs7RUFJRSwyQkFBQTtBRXNDTjtBRm5DSTtFQUNFLDJCQUFBO0FFcUNOO0FGL0JJO0VBQ0UsdUNBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0FFaUNOO0FIbEZDO0VDOENHO0lBTUksdUJBQUE7SUFDQSx1QkFBQTtFRWtDTjtBQUNGO0FGL0JJO0VBQ0Usb0VBQUE7QUVpQ047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RUFDQSxtRUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUsySkY7QUx6SkU7RUFDQyxTQUFBO0FLMkpIO0FMdkpDO0VBQ0MseUVBQUE7QUt5SkY7QUxwSkU7RUFDQyw2QkFBQTtBS3NKSDtBTHpKQztFQUtDLHdFQUFBO0FLdUpGO0FMckpFO0VBQ0MsdUJBQUE7QUt1Skg7QUgvVEM7RUZ1S0M7SUFJRSx1QkFBQTtFS3dKRjtBQUNGO0FMckpFO0VBQ0MsU0FBQTtBS3VKSDtBTHBKRTtFQUNDLHNCQUFBO0VBQ0EsU0FBQTtBS3NKSDtBSDNVQztFRm1MQztJQUtFLG1CQUFBO0VLdUpGO0FBQ0Y7QUxwSkU7RUFDQyxXQUFBO0FLc0pIO0FIblZDO0VGNExDO0lBSUUsV0FBQTtFS3VKRjtBQUNGIiwiZmlsZSI6ImFjZi1sYXlvdXRzL251bWJlcl9jYXJkcy9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERvIG5vdCBAdXNlIGZpbGVzIHdpdGggYWN0dWFsIHNjc3MgY29kZSBpbiB0aGlzIGZpbGUsIGFzIGl0IHdpbGwgY29tcGlsZSBjc3MgY29kZSB0d2ljZS5cbiAqIEFzIHRoaXMgZmlsZSBnb2luZyB0byBiZSBhbiBzdGFuZGFsb25lIGNzcyBmaWxlLlxuICovXG5AdXNlIFwiLi4vLi4vYXNzZXRzL3Njc3MvZ2xvYmFsLzAtc2V0dGluZ3Mvc2V0dGluZ3NcIiBhcyAqO1xuQHVzZSBcIi4uL2N0YS9zdHlsZVwiIGFzICo7XG5cbi5pdC1udW1iZXItY2FyZHMge1xuXHQtLWl0LW51bWJlci1jYXJkcy1iZzogdmFyKC0taXQtY29sb3ItYmFja2dyb3VuZCk7XG5cdC0taXQtbnVtYmVyLWNhcmRzLWhlYWRpbmctY29sb3I6IHZhcigtLWl0LWNvbG9yLWludHJvLXNjcmltKTtcblx0LS1pdC1udW1iZXItY2FyZHMtaW50cm8tY29sb3I6IHZhcigtLWl0LWNvbG9yLXRleHQpO1xuXHQtLWl0LW51bWJlci1jYXJkcy1jYXJkLWJnOiB2YXIoLS1pdC1jb2xvci1jdGEtYmctZ3JleSk7XG5cdC0taXQtbnVtYmVyLWNhcmRzLWJnLWltYWdlOiB1cmwoXCIuLi8uLi9pbWcvbnVtYmVyLWNhcmRzLWJnLnN2Z1wiKTtcblxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0LW51bWJlci1jYXJkcy1iZyk7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0QGluY2x1ZGUgcmVzcG9uc2l2ZShwYWRkaW5nLXRvcCwgMzIsIG51bGwsIDEyMCk7XG5cdEBpbmNsdWRlIHJlc3BvbnNpdmUocGFkZGluZy1ib3R0b20sIDMyLCBudWxsLCAxMjApO1xuXG5cdCYtLWJhY2tncm91bmQtY29sb3ItZGFyay1ibHVlIHtcblx0XHQtLWl0LW51bWJlci1jYXJkcy1iZzogdmFyKC0taXQtY29sb3ItdG9wLWJhci1iZyk7XG5cdFx0LS1pdC1udW1iZXItY2FyZHMtaGVhZGluZy1jb2xvcjogdmFyKC0taXQtY29sb3Itd2hpdGUpO1xuXHRcdC0taXQtbnVtYmVyLWNhcmRzLWludHJvLWNvbG9yOiB2YXIoLS1pdC1jb2xvci13aGl0ZSk7XG5cdFx0LS1pdC1udW1iZXItY2FyZHMtY2FyZC1iZzogdmFyKC0taXQtY29sb3ItY3RhLWJnLWdyZXkpO1xuXHR9XG5cblx0Ji0tYmFja2dyb3VuZC1jb2xvci1ncmV5IHtcblx0XHQtLWl0LW51bWJlci1jYXJkcy1iZzogdmFyKC0taXQtY29sb3ItYmFja2dyb3VuZCk7XG5cdFx0LS1pdC1udW1iZXItY2FyZHMtaGVhZGluZy1jb2xvcjogdmFyKC0taXQtY29sb3ItaW50cm8tc2NyaW0pO1xuXHRcdC0taXQtbnVtYmVyLWNhcmRzLWludHJvLWNvbG9yOiB2YXIoLS1pdC1jb2xvci10ZXh0KTtcblx0XHQtLWl0LW51bWJlci1jYXJkcy1jYXJkLWJnOiB2YXIoLS1pdC1jb2xvci1jdGEtYmctZ3JleSk7XG5cdH1cblxuXHQmX19iYWNrZ3JvdW5kIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWl0LW51bWJlci1jYXJkcy1iZy1pbWFnZSk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuXHRcdEBpbmNsdWRlIG1pbigyMTYwKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcblx0XHR9XG5cdH1cblxuXHQuaXQtZ2xvYmFsLXBhZGRpbmcge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxO1xuXHR9XG5cblx0Lml0LXRpdGxlIHtcblx0XHRjb2xvcjogdmFyKC0taXQtbnVtYmVyLWNhcmRzLWhlYWRpbmctY29sb3IpO1xuXHR9XG5cblx0Jl9faW50cm8ge1xuXHRcdG1heC13aWR0aDogdmFyKC0taXQtbmFycm93LXNpemUpO1xuXHRcdG1hcmdpbi10b3A6IGNsYW1wLXJlbSgxMiwgMjQpO1xuXHRcdGNvbG9yOiB2YXIoLS1pdC1udW1iZXItY2FyZHMtaW50cm8tY29sb3IpO1xuXHRcdGZvbnQtc2l6ZTogY2xhbXAtcmVtKDE2LCAxOCk7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHR9XG5cblx0Jl9fZ3JpZCB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuXHRcdGdhcDogY2xhbXAtcmVtKDgsIDMyKTtcblx0XHRtYXJnaW4tdG9wOiBjbGFtcC1yZW0oMjAsIDQwKTtcblx0fVxuXG5cdCYtLWdyaWQtMiAmX19ncmlkIHtcblxuXHRcdEBpbmNsdWRlIG1pbigkbWQpIHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcblx0XHR9XG5cdH1cblxuXHQmLS1ncmlkLTMgJl9fZ3JpZCB7XG5cblx0XHRAaW5jbHVkZSBtaW4oJG1kKSB7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG5cdFx0fVxuXHR9XG5cblx0Jl9fY2FyZCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdHBhZGRpbmc6IGNsYW1wLXJlbSgxMiwgMjQpO1xuXHRcdHBhZGRpbmctYm90dG9tOiBjbGFtcC1yZW0oMjQsIDQ4KTtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1pdC1ib3JkZXItcmFkaXVzLXNtYWxsKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pdC1udW1iZXItY2FyZHMtY2FyZC1iZyk7XG5cdH1cblxuXHQmX19udW1iZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR3aWR0aDogcmVtKDYwKTtcblx0XHRoZWlnaHQ6IHJlbSg2MCk7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0taXQtYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXQtY29sb3ItdG9wLWJhci1iZyk7XG5cdH1cblxuXHQmX19udW1iZXItdmFsdWUge1xuXHRcdGNvbG9yOiB2YXIoLS1pdC1jb2xvci13aGl0ZSk7XG5cdFx0Zm9udC1zaXplOiBjbGFtcC1yZW0oMjgsIDQwKTtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdH1cblxuXHQmX19pY29uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0Ji0taGFzLWJhY2tncm91bmQge1xuXHRcdFx0d2lkdGg6IHJlbSg2MCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSg2MCk7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1pdC1ib3JkZXItcmFkaXVzLXNtYWxsKTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0LWNvbG9yLXRvcC1iYXItYmcpO1xuXG5cdFx0XHRzdmcsIGltZyB7XG5cdFx0XHRcdHdpZHRoOiByZW0oNDApO1xuXHRcdFx0XHRoZWlnaHQ6IHJlbSg0MCk7XG5cdFx0XHRcdG9iamVjdC1maXQ6IGNvbnRhaW47XG5cdFx0XHRcdG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZfX2ljb24taW1nIHtcblx0XHR3aWR0aDogcmVtKDMyKTtcblx0XHRoZWlnaHQ6IHJlbSgzMik7XG5cdFx0b2JqZWN0LWZpdDogY29udGFpbjtcblx0fVxuXG5cdC5pdC1udW1iZXItY2FyZHNfX2NhcmQgLml0LW51bWJlci1jYXJkc19faGVhZGVyLWxhYmVsIHtcblx0XHRtYXJnaW4tYm90dG9tOiBjbGFtcC1yZW0oMTAsIDE2KTtcblx0XHRjb2xvcjogdmFyKC0taXQtY29sb3ItaW50cm8tc2NyaW0pO1xuXHR9XG5cblx0Jl9fdGl0bGUge1xuXHRcdG1hcmdpbjogMDtcblx0XHRjb2xvcjogdmFyKC0taXQtY29sb3ItaW50cm8tc2NyaW0pO1xuXHRcdGZvbnQtc2l6ZTogY2xhbXAtcmVtKDE4LCAyNCk7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHR9XG5cblx0Jl9fdGV4dCB7XG5cdFx0Y29sb3I6IHZhcigtLWl0LWNvbG9yLXRleHQpO1xuXHRcdGZvbnQtc2l6ZTogY2xhbXAtcmVtKDE2LCAxOCk7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0Jl9fY2FyZCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogY2xhbXAtcmVtKDI0LCA0MCk7XG5cdH1cblxuXHQmX19jdGEge1xuXG5cdFx0Ji5pdC1jdGEge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXHRcdG1hcmdpbi10b3A6IGNsYW1wLXJlbSgyMCwgNDApO1xuXG5cdFx0Ji5pdC1jdGEtLWNvbnRhaW5lci1zaXplLS1uYXJyb3c6bm90KC5pdC1jdGEtLWJvcmRlcikgLml0LWN0YV9fY29udGFpbmVyIHtcblx0XHRcdHBhZGRpbmc6IHJlbSgyMCkgcmVtKDI0KTtcblxuXHRcdFx0QGluY2x1ZGUgbWluKCRtZCkge1xuXHRcdFx0XHRwYWRkaW5nOiByZW0oNDApIHJlbSg2MCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lml0LWN0YV9faW5uZXIge1xuXHRcdFx0Z2FwOiByZW0oMTYpO1xuXHRcdH1cblxuXHRcdC5pdC1jdGFfX2J1dHRvbnMge1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGdhcDogcmVtKDE2KTtcblxuXHRcdFx0QGluY2x1ZGUgbWluKCRtZCkge1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5pdC1jdGFfX2J1dHRvbnMgLml0LWJ1dHRvbiB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0QGluY2x1ZGUgbWluKCRtZCkge1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJzYXNzOm1ldGFcIjtcblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuXG5cdEByZXR1cm4gbWF0aC5kaXYoJG51bSwgJG51bSAqIDAgKyAxKTtcbn1cblxuQGZ1bmN0aW9uIGdldFVuaXQoJHZhbHVlKSB7XG5cblx0QHJldHVybiBzdHItc2xpY2UoJHZhbHVlICogMCArIFwiXCIsIDIsIC0xKTtcbn1cblxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6IDE2cHgpIHtcblx0JHZhbHVlOiBtYXRoLmRpdihyb3VuZChtYXRoLmRpdihzdHJpcC11bml0KCR2YWx1ZSksIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpKSAqIDEwMDAwKSwgMTAwMDApICogMXJlbTtcblxuXHRAaWYgKCR2YWx1ZSA9PSAwKSB7ICR2YWx1ZTogMDsgfSAvKiBUdXJuIDByZW0gaW50byAwICovXG5cblx0QHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiByZW0oJHZhbHVlcywgJGJhc2UtdmFsdWU6IDE2cHgpIHtcblx0JG1heDogbGlzdC5sZW5ndGgoJHZhbHVlcyk7XG5cblx0QGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obGlzdC5udGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxuXG5cdCRyZW1WYWx1ZXM6ICgpO1xuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuXHRcdCRyZW1WYWx1ZXM6IGxpc3QuYXBwZW5kKCRyZW1WYWx1ZXMsIGNvbnZlcnQtdG8tcmVtKGxpc3QubnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcblx0fVxuXHRAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cbkBmdW5jdGlvbiBfcmVtLXZhbHVlKCR2YWx1ZSkge1xuXG5cdEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSBcImxpc3RcIiB7XG5cdFx0JG91dDogKCk7XG5cblx0XHRAZWFjaCAkcGFydCBpbiAkdmFsdWUge1xuXHRcdFx0JG91dDogbGlzdC5hcHBlbmQoJG91dCwgX3JlbS12YWx1ZSgkcGFydCkpO1xuXHRcdH1cblxuXHRcdEByZXR1cm4gJG91dDtcblx0fVxuXG5cdEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIHtcblx0XHRAaWYgbWF0aC5pcy11bml0bGVzcygkdmFsdWUpIG9yIG1hdGgudW5pdCgkdmFsdWUpID09IFwicHhcIiB7XG5cdFx0XHRAcmV0dXJuIHJlbSgkdmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdEByZXR1cm4gJHZhbHVlO1xufVxuXG5AbWl4aW4gcmVtKCRwcm9wLCAkdmFsdWUpIHtcblxuXHQjeyRwcm9wfTogX3JlbS12YWx1ZSgkdmFsdWUpO1xufVxuXG5AZnVuY3Rpb24gcmVtLWZyb20tcHgoJHZhbHVlcywgJGJhc2UtdmFsdWU6IDE2cHgpIHtcblx0JG1heDogbGlzdC5sZW5ndGgoJHZhbHVlcyk7XG5cblx0QGlmICRtYXggPT0gMSB7XG5cbiBAcmV0dXJuIGNvbnZlcnQtdG8tcmVtKGxpc3QubnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuXHQkcmVtVmFsdWVzOiAoKTtcblxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuXHRcdCRyZW1WYWx1ZXM6IGxpc3QuYXBwZW5kKCRyZW1WYWx1ZXMsIGNvbnZlcnQtdG8tcmVtKGxpc3QubnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcblx0fVxuXG5cdEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuQGZ1bmN0aW9uIGVtKCR2YWx1ZXMpIHtcblx0JHJlbVZhbHVlczogcmVtLWZyb20tcHgoJHZhbHVlcyk7XG5cblx0JG1heDogbGlzdC5sZW5ndGgoJHJlbVZhbHVlcyk7XG5cblx0QGlmICRtYXggPT0gMSB7XG5cblx0XHRAcmV0dXJuIG1hdGguZGl2KHJvdW5kKHN0cmlwLXVuaXQobGlzdC5udGgoJHJlbVZhbHVlcywgMSkpICogMTAwMDApLCAxMDAwMCApICogMWVtO1xuXHR9XG5cblx0JGVtVmFsdWVzOiAoKTtcblxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuXHRcdCRlbVZhbHVlczogbGlzdC5hcHBlbmQoJGVtVmFsdWVzLCBtYXRoLmRpdihyb3VuZChzdHJpcC11bml0KGxpc3QubnRoKCRyZW1WYWx1ZXMsIDEpKSAqIDEwMDAwKSwgMTAwMDAgKSAqIDFlbSk7XG5cdH1cblxuXHRAcmV0dXJuICRlbVZhbHVlcztcbn1cblxuLypcbiAqIENPTlZFUlQgVE8gQ0xBTVBcbiAqXG4gKiBAbGluayBodHRwczovL3dlYnNlbWFudGljcy51ay90b29scy9yZXNwb25zaXZlLWZvbnQtY2FsY3VsYXRvci9cbiAqXG4gKiBDYWxsIHdpdGggMiwgb3IgNCBwYXJhbWV0ZXJzLiBPbmx5IGZpcnN0IDIgcGFyYW1ldGVycyBhcmUgcmVxdWlyZWQuIFZpZXdwb3J0IHdpZHRocyBhbHNvIGNhbiBiZSB3aXRoICdweCcgdW5pdHMgKGZvciBzdXBwb3J0aW5nIGJyZWFrcG9pbnQgdmFsdWVzKS5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAxKSBmb250LXNpemU6IGNsYW1wLXJlbSgzMiwgNDgpO1xuICogMikgZm9udC1zaXplOiBjbGFtcC1yZW0oMzIsIDQ4LCA2NDAsIDE2MDApO1xuICovXG5AZnVuY3Rpb24gY2xhbXAtcmVtKCRmb250LXNpemUtbWluLCAkZm9udC1zaXplLW1heCwgJHZpZXdwb3J0LW1pbjogNjQwLCAkdmlld3BvcnQtbWF4OiAxNjAwKSB7XG5cblx0QGlmIG1hdGguaXMtdW5pdGxlc3MoJHZpZXdwb3J0LW1pbikge1xuXHRcdCR2aWV3cG9ydC1taW46ICR2aWV3cG9ydC1taW4gKiAxcHg7XG5cdH1cblx0JGZvbnQtc2l6ZS1taW4tcmVtOiBjb252ZXJ0LXRvLXJlbSgkZm9udC1zaXplLW1pbik7XG5cdCRmb250LXNpemUtbWF4LXJlbTogY29udmVydC10by1yZW0oJGZvbnQtc2l6ZS1tYXgpO1xuXG5cdC8vIENhbGN1bGF0ZSBmbHVpZCB2YXJpYWJsZS5cblx0JHZhcjE6IGNhbGMoMXZ3IC0gbWF0aC5yb3VuZChtYXRoLmRpdigkdmlld3BvcnQtbWluLCAxMDApICogMTAwMDApIC8gMTAwMDApO1xuXHQkdmFyMjogY2FsYygxMDAgKiBtYXRoLnJvdW5kKG1hdGguZGl2KChzdHJpcC11bml0KCRmb250LXNpemUtbWF4KSAtIHN0cmlwLXVuaXQoJGZvbnQtc2l6ZS1taW4pKSwgKHN0cmlwLXVuaXQoJHZpZXdwb3J0LW1heCkgLSBzdHJpcC11bml0KCR2aWV3cG9ydC1taW4pKSkgKiAxMDAwMCkgLyAxMDAwMCk7XG5cdCRmbHVpZDogY2FsYyggJGZvbnQtc2l6ZS1taW4tcmVtICsgKCR2YXIxICogJHZhcjIpICk7XG5cblx0Ly8gUHJlcGFyZSByZXR1cm5pbmcgdmFyaWFibGUuXG5cdCRjbGFtcDogY2xhbXAoICN7JGZvbnQtc2l6ZS1taW4tcmVtfSwgI3skZmx1aWR9LCAjeyRmb250LXNpemUtbWF4LXJlbX0gKTtcblxuXHRAcmV0dXJuICRjbGFtcDtcbn1cbiIsIi8qKlxuICogTWl4aW5zIGZvciBNZWRpYSBRdWVyaWVzXG4gKiBFeGFtcGxlIFVzYWdlOiBAaW5jbHVkZSBtaW4oJGxnKSB8fCBAaW5jbHVkZSBtaW4oMTQ0MClcbiAqL1xuXG5AdXNlIFwidmFyc1wiIGFzICo7XG5AdXNlIFwicmVtLWNhbGNcIiBhcyAqO1xuXG4vLyAtLS0gbWluLXdpZHRoXG5AbWl4aW4gbWluKCRicCkge1xuXG5cdEBtZWRpYSAobWluLXdpZHRoOiAjeyRicCArICdweCd9KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLy8gLS0tIG1pbi1oZWlnaHRcbkBtaXhpbiBtaW5oKCRicCkge1xuXG5cdEBtZWRpYSAobWluLWhlaWdodDogI3skYnAgKyAncHgnfSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIC0tLSBtYXgtd2lkdGhcbkBtaXhpbiBtYXgoJGJwKSB7XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6ICN7KCRicCAtIDEpICsgJ3B4J30pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG4vLyAtLS0gbWF4LWhlaWdodFxuQG1peGluIG1heGgoJGJwKSB7XG5cblx0QG1lZGlhIChtYXgtaGVpZ2h0OiAjeygkYnAgLSAxKSArICdweCd9KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLy8gLS0tIG1pbi13aWR0aCAtIG1heC13aWR0aFxuQG1peGluIG1pbi1tYXgoJGJwLW1pbiwgJGJwLW1heCkge1xuXG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7KCRicC1tYXggLSAxKSArICdweCd9KSBhbmQgKG1pbi13aWR0aDogI3skYnAtbWluICsgJ3B4J30pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8vLyBSZXNwb25zaXZlIG1peGluIChtb2JpbGUtZmlyc3QpIHdpdGggaW5saW5lIHRvZ2dsZVxuLy8vIEBwYXJhbSAkcHJvcCAgICAgVGhlIENTUyBwcm9wZXJ0eSBuYW1lLlxuLy8vIEBwYXJhbSAkbW9iaWxlICAgcHggb3IgcHgtbGlzdCBmb3IgbW9iaWxlIChiYXNlLCA8IG1kKS5cbi8vLyBAcGFyYW0gJHRhYmxldCAgIHB4IG9yIHB4LWxpc3QgZm9yIHRhYmxldCAobWTigJNsZ+KIkjEpLlxuLy8vIEBwYXJhbSAkZGVza3RvcCAgcHggb3IgcHgtbGlzdCBmb3IgZGVza3RvcCAobGcrKS5cbi8vLyBAcGFyYW0gJHJlbWlmeSAgIFdoZXRoZXIgdG8gZW1pdCBweCBhcyByZW0gdmlhIEBtaXhpbiByZW0gKGRlZmF1bHQ6IHRydWUpLlxuQG1peGluIHJlc3BvbnNpdmUoXG5cdCRwcm9wLFxuXHQkbW9iaWxlLFxuXHQkdGFibGV0OiBudWxsLFxuXHQkZGVza3RvcDogbnVsbCxcblx0JHJlbWlmeTogdHJ1ZVxuKSB7XG5cblx0QGlmICRtb2JpbGUgIT0gbnVsbCB7XG5cblx0XHRAaWYgJHJlbWlmeSB7XG5cblx0XHRcdEBpbmNsdWRlIHJlbSgkcHJvcCwgJG1vYmlsZSk7XG5cdFx0fVxuXG4gQGVsc2Uge1xuXHRcdFx0I3skcHJvcH06ICRtb2JpbGU7XG5cdFx0fVxuXG5cdFx0QGlmICR0YWJsZXQgIT0gbnVsbCB7XG5cblx0XHRcdEBpbmNsdWRlIG1pbigkbWQpIHtcblxuXHRcdFx0XHRAaWYgJHJlbWlmeSB7XG5cblx0XHRcdFx0XHRAaW5jbHVkZSByZW0oJHByb3AsICR0YWJsZXQpO1xuXHRcdFx0XHR9XG5cbiBAZWxzZSB7XG5cdFx0XHRcdFx0I3skcHJvcH06ICR0YWJsZXQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QGlmICRkZXNrdG9wICE9IG51bGwge1xuXG5cdFx0XHRcdEBpbmNsdWRlIG1pbigkbGcpIHtcblxuXHRcdFx0XHRcdEBpZiAkcmVtaWZ5IHtcblxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgcmVtKCRwcm9wLCAkZGVza3RvcCk7XG5cdFx0XHRcdFx0fVxuXG4gQGVsc2Uge1xuXHRcdFx0XHRcdFx0I3skcHJvcH06ICRkZXNrdG9wO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuIEBlbHNlIGlmICRkZXNrdG9wICE9IG51bGwge1xuXG5cdFx0XHRAaW5jbHVkZSBtaW4oJG1kKSB7XG5cblx0XHRcdFx0QGlmICRyZW1pZnkge1xuXG5cdFx0XHRcdFx0QGluY2x1ZGUgcmVtKCRwcm9wLCAkZGVza3RvcCk7XG5cdFx0XHRcdH1cblxuIEBlbHNlIHtcblx0XHRcdFx0XHQjeyRwcm9wfTogJGRlc2t0b3A7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuIEBlbHNlIGlmICR0YWJsZXQgIT0gbnVsbCB7XG5cblx0XHRAaWYgJHJlbWlmeSB7XG5cblx0XHRcdEBpbmNsdWRlIHJlbSgkcHJvcCwgJHRhYmxldCk7XG5cdFx0fVxuXG4gQGVsc2Uge1xuXHRcdFx0I3skcHJvcH06ICR0YWJsZXQ7XG5cdFx0fVxuXG5cdFx0QGlmICRkZXNrdG9wICE9IG51bGwge1xuXG5cdFx0XHRAaW5jbHVkZSBtaW4oJGxnKSB7XG5cblx0XHRcdFx0QGlmICRyZW1pZnkge1xuXG5cdFx0XHRcdFx0QGluY2x1ZGUgcmVtKCRwcm9wLCAkZGVza3RvcCk7XG5cdFx0XHRcdH1cblxuIEBlbHNlIHtcblx0XHRcdFx0XHQjeyRwcm9wfTogJGRlc2t0b3A7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuIEBlbHNlIGlmICRkZXNrdG9wICE9IG51bGwge1xuXG5cdFx0QGlmICRyZW1pZnkge1xuXG5cdFx0XHRAaW5jbHVkZSByZW0oJHByb3AsICRkZXNrdG9wKTtcblx0XHR9XG5cbiBAZWxzZSB7XG5cdFx0XHQjeyRwcm9wfTogJGRlc2t0b3A7XG5cdFx0fVxuXHR9XG59XG4iLCIvKipcbiAqIERvIG5vdCBAdXNlIGZpbGVzIHdpdGggYWN0dWFsIHNjc3MgY29kZSBpbiB0aGlzIGZpbGUsIGFzIGl0IHdpbGwgY29tcGlsZSBjc3MgY29kZSB0d2ljZS5cbiAqIEFzIHRoaXMgZmlsZSBnb2luZyB0byBiZSBhbiBzdGFuZGFsb25lIGNzcyBmaWxlLlxuICovXG5AdXNlIFwiLi4vLi4vYXNzZXRzL3Njc3MvZ2xvYmFsLzAtc2V0dGluZ3Mvc2V0dGluZ3NcIiBhcyAqO1xuQHVzZSBcIi4uLy4uL2Fzc2V0cy9zY3NzL2dsb2JhbC8xLWdlbmVyaWMvMS0yLXR5cG9ncmFwaHkvdGV4dFwiIGFzICo7XG5cbi5pdC1jdGEge1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0LWJsb2NrLWJnLWNvbG9yKTtcblxuICAmLmhhcy1kYXJrLWJnIHtcblxuICAgIC5pdC10aXRsZSxcbiAgICAuaXQtc3VidGl0bGUsXG4gICAgLml0LWRlc2NyaXB0aW9uLFxuICAgIC5lZGl0b3Ige1xuICAgICAgY29sb3I6IHZhcigtLWl0LWNvbG9yLXdoaXRlKTtcbiAgICB9XG5cbiAgICAmLml0LWN0YS0tY29udGFpbmVyLXNpemUtLW5hcnJvdyAuaXQtY3RhX19jb250ZW50IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pdC1jb2xvci1ib3JkZXItbGlnaHQpO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiByZW0oMTApO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgQGluY2x1ZGUgbWluKCRtZCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBnYXA6IHJlbSgyMCk7XG4gICAgfVxuICB9XG5cbiAgJi5pdC1jdGEtLWJvcmRlcjpub3QoLmhhcy1kYXJrLWJnKSB7XG5cbiAgICAuaXQtdGl0bGUsXG4gICAgLml0LXN1YnRpdGxlLFxuICAgIC5pdC1kZXNjcmlwdGlvbixcbiAgICAuZWRpdG9yIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pdC1jb2xvci10ZXh0KTtcbiAgICB9XG5cbiAgICAmLml0LWN0YS0tY29udGFpbmVyLXNpemUtLW5hcnJvdyAuaXQtY3RhX19jb250ZW50IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pdC1jb2xvci10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAmLml0LWN0YS0tY29udGFpbmVyLXNpemUtLW5hcnJvdzpub3QoLml0LWN0YS0tYm9yZGVyKSB7XG5cbiAgICAuaXQtY3RhX19jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXQtY29sb3ItYnJhbmQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDQpO1xuICAgICAgcGFkZGluZzogcmVtKDIwKSByZW0oMjQpO1xuXG4gICAgICBAaW5jbHVkZSBtaW4oJG1kKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg2KTtcbiAgICAgICAgcGFkZGluZzogcmVtKDQwKSByZW0oNjApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pdC1jdGFfX2NvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogY2xhbXAtcmVtKDgsIDE2KTtcblxuICAgIH1cblxuICAgIC5pdC1jdGFfX2lubmVyIHtcbiAgICAgIG1heC13aWR0aDogcmVtKDkxMCk7XG4gICAgfVxuICB9XG5cbiAgJi0tYm9yZGVyIHtcblxuICAgIC5pdC1jdGFfX2NvbnRhaW5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzRDN0ZBMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDI0KTtcblxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZShnYXAsIDIwLCAzMCwgMTkxKTtcbiAgICB9XG4gIH1cblxuICAmLS1ib3JkZXIuaXQtYmxvY2stYmctLXdoaXRlLFxuICAmLS1ib3JkZXIuaXQtYmxvY2stYmctLWdyZXkge1xuXG4gICAgLml0LWN0YV9fY29udGFpbmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWl0LWNvbG9yLWJvcmRlci1kYXJrKTtcbiAgICB9XG4gIH1cblxuICAuaXQtY3RhX19jb250YWluZXIgLml0LWN0YV9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDUpO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWluLW1heCgwLCAkbWQpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtaW4oJG1kKSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2lubmVyLCAmX19idXR0b25zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gICZfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAmOm5vdCguaXQtY3RhLS1jb250YWluZXItc2l6ZS0tbmFycm93KSB7XG5cbiAgICAuaXQtY3RhX19jb250YWluZXIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBAaW5jbHVkZSBtaW4oJG1kKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZmxleDogMSAxIGF1dG87XG5cbiAgICAubGF5b3V0LXJvdyAmIHtcblxuICAgICAgQGluY2x1ZGUgbWluKCRzbSkge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIudGV4dC14bCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0taXQtc2l6ZS14LWxhcmdlKTtcbn1cblxuLnRleHQtbGcge1xuXHRmb250LXNpemU6IHZhcigtLWl0LXNpemUtbGFyZ2UpO1xufVxuXG4udGV4dC1tZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0taXQtc2l6ZS1tZWRpdW0pO1xufVxuXG4udGV4dC1zbSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0taXQtc2l6ZS1zbWFsbCk7XG59XG5cbi50ZXh0LXhzIHtcblx0Zm9udC1zaXplOiB2YXIoLS1pdC1zaXplLXgtc21hbGwpO1xufVxuXG4udGV4dC14eHMge1xuXHRmb250LXNpemU6IHZhcigtLWl0LXNpemUteHgtc21hbGwpO1xufVxuIiwiLyoqXG4gKiBEbyBub3QgQHVzZSBmaWxlcyB3aXRoIGFjdHVhbCBzY3NzIGNvZGUgaW4gdGhpcyBmaWxlLCBhcyBpdCB3aWxsIGNvbXBpbGUgY3NzIGNvZGUgdHdpY2UuXG4gKiBBcyB0aGlzIGZpbGUgZ29pbmcgdG8gYmUgYW4gc3RhbmRhbG9uZSBjc3MgZmlsZS5cbiAqL1xuLypcbiAqIENPTlZFUlQgVE8gQ0xBTVBcbiAqXG4gKiBAbGluayBodHRwczovL3dlYnNlbWFudGljcy51ay90b29scy9yZXNwb25zaXZlLWZvbnQtY2FsY3VsYXRvci9cbiAqXG4gKiBDYWxsIHdpdGggMiwgb3IgNCBwYXJhbWV0ZXJzLiBPbmx5IGZpcnN0IDIgcGFyYW1ldGVycyBhcmUgcmVxdWlyZWQuIFZpZXdwb3J0IHdpZHRocyBhbHNvIGNhbiBiZSB3aXRoICdweCcgdW5pdHMgKGZvciBzdXBwb3J0aW5nIGJyZWFrcG9pbnQgdmFsdWVzKS5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAxKSBmb250LXNpemU6IGNsYW1wLXJlbSgzMiwgNDgpO1xuICogMikgZm9udC1zaXplOiBjbGFtcC1yZW0oMzIsIDQ4LCA2NDAsIDE2MDApO1xuICovXG4vKipcbiAqIE1peGlucyBmb3IgTWVkaWEgUXVlcmllc1xuICogRXhhbXBsZSBVc2FnZTogQGluY2x1ZGUgbWluKCRsZykgfHwgQGluY2x1ZGUgbWluKDE0NDApXG4gKi9cbi8qKlxuICogRG8gbm90IEB1c2UgZmlsZXMgd2l0aCBhY3R1YWwgc2NzcyBjb2RlIGluIHRoaXMgZmlsZSwgYXMgaXQgd2lsbCBjb21waWxlIGNzcyBjb2RlIHR3aWNlLlxuICogQXMgdGhpcyBmaWxlIGdvaW5nIHRvIGJlIGFuIHN0YW5kYWxvbmUgY3NzIGZpbGUuXG4gKi9cbi8qKlxuICogRG8gbm90IEB1c2UgZmlsZXMgd2l0aCBhY3R1YWwgc2NzcyBjb2RlIGluIHRoaXMgZmlsZSwgYXMgaXQgd2lsbCBjb21waWxlIGNzcyBjb2RlIHR3aWNlLlxuICogQXMgdGhpcyBmaWxlIGdvaW5nIHRvIGJlIGFuIHN0YW5kYWxvbmUgY3NzIGZpbGUuXG4gKi9cbi50ZXh0LXhsIHtcbiAgZm9udC1zaXplOiB2YXIoLS1pdC1zaXplLXgtbGFyZ2UpO1xufVxuXG4udGV4dC1sZyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0taXQtc2l6ZS1sYXJnZSk7XG59XG5cbi50ZXh0LW1kIHtcbiAgZm9udC1zaXplOiB2YXIoLS1pdC1zaXplLW1lZGl1bSk7XG59XG5cbi50ZXh0LXNtIHtcbiAgZm9udC1zaXplOiB2YXIoLS1pdC1zaXplLXNtYWxsKTtcbn1cblxuLnRleHQteHMge1xuICBmb250LXNpemU6IHZhcigtLWl0LXNpemUteC1zbWFsbCk7XG59XG5cbi50ZXh0LXh4cyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0taXQtc2l6ZS14eC1zbWFsbCk7XG59XG5cbi5pdC1jdGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pdC1ibG9jay1iZy1jb2xvcik7XG59XG4uaXQtY3RhLmhhcy1kYXJrLWJnIC5pdC10aXRsZSxcbi5pdC1jdGEuaGFzLWRhcmstYmcgLml0LXN1YnRpdGxlLFxuLml0LWN0YS5oYXMtZGFyay1iZyAuaXQtZGVzY3JpcHRpb24sXG4uaXQtY3RhLmhhcy1kYXJrLWJnIC5lZGl0b3Ige1xuICBjb2xvcjogdmFyKC0taXQtY29sb3Itd2hpdGUpO1xufVxuLml0LWN0YS5oYXMtZGFyay1iZy5pdC1jdGEtLWNvbnRhaW5lci1zaXplLS1uYXJyb3cgLml0LWN0YV9fY29udGVudCB7XG4gIGNvbG9yOiB2YXIoLS1pdC1jb2xvci1ib3JkZXItbGlnaHQpO1xufVxuLml0LWN0YV9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjYyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXQtY3RhX19jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxLjI1cmVtO1xuICB9XG59XG4uaXQtY3RhLml0LWN0YS0tYm9yZGVyOm5vdCguaGFzLWRhcmstYmcpIC5pdC10aXRsZSxcbi5pdC1jdGEuaXQtY3RhLS1ib3JkZXI6bm90KC5oYXMtZGFyay1iZykgLml0LXN1YnRpdGxlLFxuLml0LWN0YS5pdC1jdGEtLWJvcmRlcjpub3QoLmhhcy1kYXJrLWJnKSAuaXQtZGVzY3JpcHRpb24sXG4uaXQtY3RhLml0LWN0YS0tYm9yZGVyOm5vdCguaGFzLWRhcmstYmcpIC5lZGl0b3Ige1xuICBjb2xvcjogdmFyKC0taXQtY29sb3ItdGV4dCk7XG59XG4uaXQtY3RhLml0LWN0YS0tYm9yZGVyOm5vdCguaGFzLWRhcmstYmcpLml0LWN0YS0tY29udGFpbmVyLXNpemUtLW5hcnJvdyAuaXQtY3RhX19jb250ZW50IHtcbiAgY29sb3I6IHZhcigtLWl0LWNvbG9yLXRleHQpO1xufVxuLml0LWN0YS5pdC1jdGEtLWNvbnRhaW5lci1zaXplLS1uYXJyb3c6bm90KC5pdC1jdGEtLWJvcmRlcikgLml0LWN0YV9fY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXQtY29sb3ItYnJhbmQpO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLml0LWN0YS5pdC1jdGEtLWNvbnRhaW5lci1zaXplLS1uYXJyb3c6bm90KC5pdC1jdGEtLWJvcmRlcikgLml0LWN0YV9fY29udGFpbmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMy43NXJlbTtcbiAgfVxufVxuLml0LWN0YS5pdC1jdGEtLWNvbnRhaW5lci1zaXplLS1uYXJyb3c6bm90KC5pdC1jdGEtLWJvcmRlcikgLml0LWN0YV9fY29udGVudCB7XG4gIG1hcmdpbi10b3A6IGNsYW1wKDAuNXJlbSwgY2FsYygwLjVyZW0gKyAoMXZ3IC0gNi40cHgpICogMC44MyksIDFyZW0pO1xufVxuLml0LWN0YS5pdC1jdGEtLWNvbnRhaW5lci1zaXplLS1uYXJyb3c6bm90KC5pdC1jdGEtLWJvcmRlcikgLml0LWN0YV9faW5uZXIge1xuICBtYXgtd2lkdGg6IDU2Ljg3NXJlbTtcbn1cbi5pdC1jdGEtLWJvcmRlciAuaXQtY3RhX19jb250YWluZXIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNEM3RkEyO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICBnYXA6IDEuMjVyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5pdC1jdGEtLWJvcmRlciAuaXQtY3RhX19jb250YWluZXIge1xuICAgIGdhcDogMS44NzVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLml0LWN0YS0tYm9yZGVyIC5pdC1jdGFfX2NvbnRhaW5lciB7XG4gICAgZ2FwOiAxMS45Mzc1cmVtO1xuICB9XG59XG4uaXQtY3RhLS1ib3JkZXIuaXQtYmxvY2stYmctLXdoaXRlIC5pdC1jdGFfX2NvbnRhaW5lciwgLml0LWN0YS0tYm9yZGVyLml0LWJsb2NrLWJnLS1ncmV5IC5pdC1jdGFfX2NvbnRhaW5lciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWl0LWNvbG9yLWJvcmRlci1kYXJrKTtcbn1cbi5pdC1jdGEgLml0LWN0YV9fY29udGFpbmVyIC5pdC1jdGFfX2J1dHRvbnMge1xuICBtYXJnaW4tdG9wOiAwLjMxMjVyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSBhbmQgKG1pbi13aWR0aDogMHB4KSB7XG4gIC5pdC1jdGEgLml0LWN0YV9fY29udGFpbmVyIC5pdC1jdGFfX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLml0LWN0YSAuaXQtY3RhX19jb250YWluZXIgLml0LWN0YV9fYnV0dG9ucyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuLml0LWN0YV9faW5uZXIsIC5pdC1jdGFfX2J1dHRvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uaXQtY3RhX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLml0LWN0YTpub3QoLml0LWN0YS0tY29udGFpbmVyLXNpemUtLW5hcnJvdykgLml0LWN0YV9fY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXQtY3RhOm5vdCguaXQtY3RhLS1jb250YWluZXItc2l6ZS0tbmFycm93KSAuaXQtY3RhX19jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbi5pdC1jdGFfX2NvbnRlbnQge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3ODNweCkge1xuICAubGF5b3V0LXJvdyAuaXQtY3RhX19jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLml0LW51bWJlci1jYXJkcyB7XG4gIC0taXQtbnVtYmVyLWNhcmRzLWJnOiB2YXIoLS1pdC1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgLS1pdC1udW1iZXItY2FyZHMtaGVhZGluZy1jb2xvcjogdmFyKC0taXQtY29sb3ItaW50cm8tc2NyaW0pO1xuICAtLWl0LW51bWJlci1jYXJkcy1pbnRyby1jb2xvcjogdmFyKC0taXQtY29sb3ItdGV4dCk7XG4gIC0taXQtbnVtYmVyLWNhcmRzLWNhcmQtYmc6IHZhcigtLWl0LWNvbG9yLWN0YS1iZy1ncmV5KTtcbiAgLS1pdC1udW1iZXItY2FyZHMtYmctaW1hZ2U6IHVybChcIi4uLy4uL2ltZy9udW1iZXItY2FyZHMtYmcuc3ZnXCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0LW51bWJlci1jYXJkcy1iZyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiAycmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXQtbnVtYmVyLWNhcmRzIHtcbiAgICBwYWRkaW5nLXRvcDogNy41cmVtO1xuICB9XG59XG4uaXQtbnVtYmVyLWNhcmRzIHtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5pdC1udW1iZXItY2FyZHMge1xuICAgIHBhZGRpbmctYm90dG9tOiA3LjVyZW07XG4gIH1cbn1cbi5pdC1udW1iZXItY2FyZHMtLWJhY2tncm91bmQtY29sb3ItZGFyay1ibHVlIHtcbiAgLS1pdC1udW1iZXItY2FyZHMtYmc6IHZhcigtLWl0LWNvbG9yLXRvcC1iYXItYmcpO1xuICAtLWl0LW51bWJlci1jYXJkcy1oZWFkaW5nLWNvbG9yOiB2YXIoLS1pdC1jb2xvci13aGl0ZSk7XG4gIC0taXQtbnVtYmVyLWNhcmRzLWludHJvLWNvbG9yOiB2YXIoLS1pdC1jb2xvci13aGl0ZSk7XG4gIC0taXQtbnVtYmVyLWNhcmRzLWNhcmQtYmc6IHZhcigtLWl0LWNvbG9yLWN0YS1iZy1ncmV5KTtcbn1cbi5pdC1udW1iZXItY2FyZHMtLWJhY2tncm91bmQtY29sb3ItZ3JleSB7XG4gIC0taXQtbnVtYmVyLWNhcmRzLWJnOiB2YXIoLS1pdC1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgLS1pdC1udW1iZXItY2FyZHMtaGVhZGluZy1jb2xvcjogdmFyKC0taXQtY29sb3ItaW50cm8tc2NyaW0pO1xuICAtLWl0LW51bWJlci1jYXJkcy1pbnRyby1jb2xvcjogdmFyKC0taXQtY29sb3ItdGV4dCk7XG4gIC0taXQtbnVtYmVyLWNhcmRzLWNhcmQtYmc6IHZhcigtLWl0LWNvbG9yLWN0YS1iZy1ncmV5KTtcbn1cbi5pdC1udW1iZXItY2FyZHNfX2JhY2tncm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWl0LW51bWJlci1jYXJkcy1iZy1pbWFnZSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMTYwcHgpIHtcbiAgLml0LW51bWJlci1jYXJkc19fYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gIH1cbn1cbi5pdC1udW1iZXItY2FyZHMgLml0LWdsb2JhbC1wYWRkaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLml0LW51bWJlci1jYXJkcyAuaXQtdGl0bGUge1xuICBjb2xvcjogdmFyKC0taXQtbnVtYmVyLWNhcmRzLWhlYWRpbmctY29sb3IpO1xufVxuLml0LW51bWJlci1jYXJkc19faW50cm8ge1xuICBtYXgtd2lkdGg6IHZhcigtLWl0LW5hcnJvdy1zaXplKTtcbiAgbWFyZ2luLXRvcDogY2xhbXAoMC43NXJlbSwgY2FsYygwLjc1cmVtICsgKDF2dyAtIDYuNHB4KSAqIDEuMjUpLCAxLjVyZW0pO1xuICBjb2xvcjogdmFyKC0taXQtbnVtYmVyLWNhcmRzLWludHJvLWNvbG9yKTtcbiAgZm9udC1zaXplOiBjbGFtcCgxcmVtLCBjYWxjKDFyZW0gKyAoMXZ3IC0gNi40cHgpICogMC4yMSksIDEuMTI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5pdC1udW1iZXItY2FyZHNfX2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICBnYXA6IGNsYW1wKDAuNXJlbSwgY2FsYygwLjVyZW0gKyAoMXZ3IC0gNi40cHgpICogMi41KSwgMnJlbSk7XG4gIG1hcmdpbi10b3A6IGNsYW1wKDEuMjVyZW0sIGNhbGMoMS4yNXJlbSArICgxdncgLSA2LjRweCkgKiAyLjA4KSwgMi41cmVtKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLml0LW51bWJlci1jYXJkcy0tZ3JpZC0yIC5pdC1udW1iZXItY2FyZHNfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXQtbnVtYmVyLWNhcmRzLS1ncmlkLTMgLml0LW51bWJlci1jYXJkc19fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG4uaXQtbnVtYmVyLWNhcmRzX19jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogY2xhbXAoMC43NXJlbSwgY2FsYygwLjc1cmVtICsgKDF2dyAtIDYuNHB4KSAqIDEuMjUpLCAxLjVyZW0pO1xuICBwYWRkaW5nLWJvdHRvbTogY2xhbXAoMS41cmVtLCBjYWxjKDEuNXJlbSArICgxdncgLSA2LjRweCkgKiAyLjUpLCAzcmVtKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taXQtYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0LW51bWJlci1jYXJkcy1jYXJkLWJnKTtcbn1cbi5pdC1udW1iZXItY2FyZHNfX251bWJlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMy43NXJlbTtcbiAgaGVpZ2h0OiAzLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pdC1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXQtY29sb3ItdG9wLWJhci1iZyk7XG59XG4uaXQtbnVtYmVyLWNhcmRzX19udW1iZXItdmFsdWUge1xuICBjb2xvcjogdmFyKC0taXQtY29sb3Itd2hpdGUpO1xuICBmb250LXNpemU6IGNsYW1wKDEuNzVyZW0sIGNhbGMoMS43NXJlbSArICgxdncgLSA2LjRweCkgKiAxLjI1KSwgMi41cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5pdC1udW1iZXItY2FyZHNfX2ljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLml0LW51bWJlci1jYXJkc19faWNvbi0taGFzLWJhY2tncm91bmQge1xuICB3aWR0aDogMy43NXJlbTtcbiAgaGVpZ2h0OiAzLjc1cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taXQtYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWl0LWNvbG9yLXRvcC1iYXItYmcpO1xufVxuLml0LW51bWJlci1jYXJkc19faWNvbi0taGFzLWJhY2tncm91bmQgc3ZnLCAuaXQtbnVtYmVyLWNhcmRzX19pY29uLS1oYXMtYmFja2dyb3VuZCBpbWcge1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XG59XG4uaXQtbnVtYmVyLWNhcmRzX19pY29uLWltZyB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uaXQtbnVtYmVyLWNhcmRzIC5pdC1udW1iZXItY2FyZHNfX2NhcmQgLml0LW51bWJlci1jYXJkc19faGVhZGVyLWxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogY2xhbXAoMC42MjVyZW0sIGNhbGMoMC42MjVyZW0gKyAoMXZ3IC0gNi40cHgpICogMC42MyksIDFyZW0pO1xuICBjb2xvcjogdmFyKC0taXQtY29sb3ItaW50cm8tc2NyaW0pO1xufVxuLml0LW51bWJlci1jYXJkc19fdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1pdC1jb2xvci1pbnRyby1zY3JpbSk7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS4xMjVyZW0sIGNhbGMoMS4xMjVyZW0gKyAoMXZ3IC0gNi40cHgpICogMC42MyksIDEuNXJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4uaXQtbnVtYmVyLWNhcmRzX190ZXh0IHtcbiAgY29sb3I6IHZhcigtLWl0LWNvbG9yLXRleHQpO1xuICBmb250LXNpemU6IGNsYW1wKDFyZW0sIGNhbGMoMXJlbSArICgxdncgLSA2LjRweCkgKiAwLjIxKSwgMS4xMjVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLml0LW51bWJlci1jYXJkc19fdGV4dCBwIHtcbiAgbWFyZ2luOiAwO1xufVxuLml0LW51bWJlci1jYXJkc19fY2FyZCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IGNsYW1wKDEuNXJlbSwgY2FsYygxLjVyZW0gKyAoMXZ3IC0gNi40cHgpICogMS42NyksIDIuNXJlbSk7XG59XG4uaXQtbnVtYmVyLWNhcmRzX19jdGEuaXQtY3RhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uaXQtbnVtYmVyLWNhcmRzX19jdGEge1xuICBtYXJnaW4tdG9wOiBjbGFtcCgxLjI1cmVtLCBjYWxjKDEuMjVyZW0gKyAoMXZ3IC0gNi40cHgpICogMi4wOCksIDIuNXJlbSk7XG59XG4uaXQtbnVtYmVyLWNhcmRzX19jdGEuaXQtY3RhLS1jb250YWluZXItc2l6ZS0tbmFycm93Om5vdCguaXQtY3RhLS1ib3JkZXIpIC5pdC1jdGFfX2NvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXQtbnVtYmVyLWNhcmRzX19jdGEuaXQtY3RhLS1jb250YWluZXItc2l6ZS0tbmFycm93Om5vdCguaXQtY3RhLS1ib3JkZXIpIC5pdC1jdGFfX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMi41cmVtIDMuNzVyZW07XG4gIH1cbn1cbi5pdC1udW1iZXItY2FyZHNfX2N0YSAuaXQtY3RhX19pbm5lciB7XG4gIGdhcDogMXJlbTtcbn1cbi5pdC1udW1iZXItY2FyZHNfX2N0YSAuaXQtY3RhX19idXR0b25zIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXQtbnVtYmVyLWNhcmRzX19jdGEgLml0LWN0YV9fYnV0dG9ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxufVxuLml0LW51bWJlci1jYXJkc19fY3RhIC5pdC1jdGFfX2J1dHRvbnMgLml0LWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXQtbnVtYmVyLWNhcmRzX19jdGEgLml0LWN0YV9fYnV0dG9ucyAuaXQtYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufSJdfQ== */
