/****************
 * Fonts
 ****************/
/****************
 * Paints
 ****************/
/****************
 * Effects
 ****************/
/****************
 * Grid Settings
 ****************/
.block-program-cards {
  position: relative;
}
@media (min-width: 62rem) {
  .block-program-cards {
    margin-top: 6.4375rem;
  }
}
.block-program-cards__logos-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.block-program-cards__logos-wrapper::before {
  content: "";
  width: 5.875rem;
  height: 7.125rem;
  position: absolute;
  top: 50.5%;
  right: -0.9375rem;
  background-image: url("../../../images/program-cards/logo.png");
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.2;
  z-index: 1;
}
@media (min-width: 62rem) {
  .block-program-cards__logos-wrapper::before {
    width: 10.75rem;
    height: 13rem;
    top: 48%;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__logos-wrapper::after {
    content: "";
    width: 6.8125rem;
    height: 13.0625rem;
    position: absolute;
    bottom: 0;
    right: 0;
    background-image: url("../../../images/program-cards/logo_01.png");
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0.7;
  }
}
.block-program-cards__side-heading-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.block-program-cards__side-heading {
  display: none;
}
@media (min-width: 62rem) {
  .block-program-cards__side-heading {
    display: block;
    font-size: 3.75rem;
    line-height: 3rem;
    font-family: "baskerville-urw", serif;
    color: #377e96;
    text-transform: uppercase;
    margin-bottom: 0;
    position: sticky;
    top: calc(var(--header-height) + 3.5rem);
    left: -0.375rem;
    z-index: -1;
    margin-left: -0.375rem !important;
    writing-mode: vertical-rl;
  }
}
@media (min-width: 48rem) {
  .block-program-cards .container {
    padding: 0 0.9375rem;
  }
}
@media (min-width: 62rem) {
  .block-program-cards .container {
    padding: 0 3.75rem;
  }
}
.block-program-cards__row-wrapper {
  padding: 0;
  background-color: #f0f0f0;
}
@media (min-width: 62rem) {
  .block-program-cards__row-wrapper {
    padding: 4rem 0;
    position: relative;
  }
  .block-program-cards__row-wrapper:before {
    content: " ";
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 6.2%;
    background-color: #ffffff;
  }
  .block-program-cards__row-wrapper:nth-of-type(even):before {
    right: 0;
    left: unset;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__row-wrapper:not(:last-child) {
    margin-bottom: 7.1875rem;
  }
}
.block-program-cards__row-wrapper:nth-of-type(even) {
  background-color: #ffffff;
}
@media (min-width: 62rem) {
  .block-program-cards__row-wrapper:nth-of-type(even) {
    background-color: #f0f0f0;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__row-wrapper:nth-of-type(even) .block-program-cards__text-wrapper {
    padding-left: 3rem;
  }
}
.block-program-cards__row-wrapper:nth-of-type(odd) .block-program-cards__text-col,
.block-program-cards__row-wrapper:nth-of-type(odd) .block-program-cards__image-link-col {
  background-color: #f0f0f0;
}
@media (min-width: 62rem) {
  .block-program-cards__row-wrapper:nth-of-type(odd) .block-program-cards__text-col,
  .block-program-cards__row-wrapper:nth-of-type(odd) .block-program-cards__image-link-col {
    background-color: unset;
  }
}
.block-program-cards__text-col {
  padding-top: 3rem;
  padding-bottom: 0.5rem;
}
@media (min-width: 48rem) {
  .block-program-cards__text-col {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__text-col {
    padding: 0 0.9375rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__text-wrapper {
    padding-left: 1.125rem;
    padding-right: 1.125rem;
    margin-top: 1.125rem;
  }
}
.block-program-cards__location-pre-heading {
  display: inline-flex;
  align-items: center;
  padding: 0.3125rem 0.9375rem 0.3125rem 0.5rem;
  margin-bottom: 0.4375rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5rem;
  border-radius: 1rem;
  background-color: rgba(158, 197, 255, 0.3);
}
@media (min-width: 48rem) {
  .block-program-cards__location-pre-heading {
    padding: 0.1875rem 0.875rem 0.1875rem 0.6875rem;
  }
}
@media (min-width: 88.125rem) {
  .block-program-cards__location-pre-heading {
    padding: 0.1875rem 0.875rem 0.1875rem 0.5rem;
  }
}
.block-program-cards__location-pre-heading::before {
  content: "\ea1d";
  font-family: "iconfont-cheleyCamps";
  font-size: 24px;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin-right: 0.875rem;
  font-size: 1.25rem;
}
.block-program-cards__heading {
  margin-top: clamp(0.25rem, -0.2692307692rem + 1.4423076923vw, 0.8125rem);
  margin-bottom: clamp(1.25rem, 0.7307692308rem + 1.4423076923vw, 1.8125rem);
}
@media (min-width: 62rem) {
  .block-program-cards__description {
    max-width: 21.875rem;
  }
}
.block-program-cards__description p {
  font-size: clamp(0.875rem, 0.7596153846rem + 0.3205128205vw, 1rem);
  line-height: clamp(1.5rem, 1.2692307692rem + 0.641025641vw, 1.75rem);
  margin-bottom: 1rem;
}
.block-program-cards__image-link-col:last-child {
  padding-top: 1rem;
  padding-bottom: 2.9375rem;
}
@media (min-width: 48rem) {
  .block-program-cards__image-link-col:last-child {
    padding-top: 0;
    padding-right: 2.5rem;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__image-link-col:last-child {
    padding-bottom: 0;
    padding-right: 0.9375rem;
  }
}
@media (min-width: 48rem) {
  .block-program-cards__image-link-col:not(:last-child) {
    padding-left: 2.5rem;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__image-link-col:not(:last-child) {
    padding-left: 0.9375rem;
  }
}
@media (min-width: 62rem) {
  .block-program-cards__image-link-wrapper {
    width: 100%;
    height: 100%;
  }
}
.block-program-cards__image-link-wrapper:hover .block-program-cards__image-link-text {
  color: #b3b3b3;
}
.block-program-cards__image-link-wrapper:hover .block-program-cards__image-link-text i:before {
  color: #b3b3b3;
}
.block-program-cards__link-image {
  width: 100%;
  aspect-ratio: 35/16;
  position: relative;
  overflow: hidden;
}
@media (min-width: 62rem) {
  .block-program-cards__link-image {
    aspect-ratio: unset;
    height: 100%;
    max-height: 30rem;
  }
}
.block-program-cards__link-image:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 6.875rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%);
}
.block-program-cards__link-image img {
  min-width: 100%;
  object-fit: cover;
}
@media (min-width: 62rem) {
  .block-program-cards__link-image img {
    height: 100%;
  }
}
.block-program-cards__image-link-text {
  position: absolute !important;
  left: 0.875rem;
  bottom: 1rem;
  transition: color 0.2s linear;
}
@media (min-width: 88.125rem) {
  .block-program-cards__image-link-text {
    left: 1.25rem;
  }
}
.block-program-cards__image-link-text:after {
  display: none;
}
.block-program-cards__image-link-text i {
  margin-left: 0.3125rem !important;
}
.block-program-cards__image-link-text i:before {
  transition: color 0.2s linear;
}
@media (min-width: 62rem) {
  .block-program-cards + .block-program-single-card {
    margin-top: 9.4375rem;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9zcmMvX19zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiYWNmLWJsb2Nrcy9wcm9ncmFtLWNhcmRzL3NyYy9zdHlsZS5zY3NzIiwiY3NzL3NyYy92ZW5kb3IvYm9vdHN0cmFwL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsImNzcy9zcmMvX19zdHlsZXMvX21peGlucy5zY3NzIiwiY3NzL3NyYy9saWIvaWNvbmZvbnQvX2ljb25mb250LXZhcmlhYmxlcy5zY3NzIiwiY3NzL3NyYy9fX3N0eWxlcy9fZm9udC1zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUE4QkE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FDN0NBO0VBQ0M7O0FDeURHO0VEMURKO0lBSUU7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FDOEJDO0VENUNGO0lBaUJFO0lBQ0E7SUFDQTs7O0FDeUJBO0VEckJGO0lBRUU7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBQ0E7OztBQUtIO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUFDQzs7QUNORTtFREtIO0lBR0U7SUFDQTtJQUNBO0lBQ0EsYURuRWdCO0lDb0VoQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQ3BCQztFRHdCSDtJQUVFOzs7QUMxQkM7RUR3Qkg7SUFLRTs7O0FBSUY7RUFDQztFQUNBOztBQ25DRTtFRGlDSDtJQUtFO0lBRUE7O0VBRUE7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFJQTtJQUNDO0lBQ0E7OztBQ3ZERDtFRDRERjtJQUVFOzs7QUFJRjtFQUNDOztBQ25FQztFRGtFRjtJQUlFOzs7QUN0RUE7RUR5RUQ7SUFFRTs7O0FBTUY7QUFBQTtFQUVDOztBQ25GQTtFRGlGRDtBQUFBO0lBS0U7OztBQU1KO0VBQ0M7RUFDQTs7QUM5RkU7RUQ0Rkg7SUFLRTtJQUNBOzs7QUNsR0M7RUQ0Rkg7SUFVRTtJQUNBO0lBQ0E7SUFDQTs7O0FDekdDO0VENkdIO0lBRUU7SUFDQTtJQUNBOzs7QUFJRjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUM5SEU7RURxSEg7SUFZRTs7O0FDaklDO0VEcUhIO0lBZ0JFOzs7QUFHRDtFRWhLRCxTQ0xlO0VETWYsYUNyQ2U7RURzQ2YsV0FIMkM7RUFJM0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUZ5SkU7RUFDQTs7QUFJRjtFQUNDO0VBQ0E7O0FDakpFO0VEb0pIO0lBRUU7OztBQUVEO0VJcElFO0VBQ0E7RUFHSTs7QUpzSU47RUFDQztFQUNBOztBQ2hLQztFRDhKRjtJQUtFO0lBQ0E7OztBQ3BLQTtFRDhKRjtJQVVFO0lBQ0E7OztBQ3pLQTtFRDZLRjtJQUVFOzs7QUMvS0E7RUQ2S0Y7SUFNRTs7O0FDbkxBO0VEd0xIO0lBRUU7SUFDQTs7O0FBSUE7RUFDQzs7QUFFQTtFQUNDOztBQU1KO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FDN01FO0VEeU1IO0lBT0U7SUFDQTtJQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7RUFDQTs7QUNqT0M7RUQrTkY7SUFLRTs7O0FBS0g7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUM3T0U7RUR5T0g7SUFPRTs7O0FBR0Q7RUFDQzs7QUFHRDtFQUNDOztBQUVBO0VBQ0M7O0FDM1BBO0VEZ1FIO0lBRUUiLCJmaWxlIjoiYWNmLWJsb2Nrcy9wcm9ncmFtLWNhcmRzL2Rpc3Qvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKipcbiAqIEZvbnRzXG4gKioqKioqKioqKioqKioqKi9cbiRmb250LWJhc2U6IFwiYnJvdGhlci0xODE2LXByaW50ZWRcIiwgc2Fucy1zZXJpZjtcbiRmb250LWJhc2tlcnZpbGxlOiBcImJhc2tlcnZpbGxlLXVyd1wiLCBzZXJpZjtcbiRmb250LWF1c3Rpbi1wZW46IFwiYXVzdGluLXBlblwiLCBzZXJpZjtcbiRmb250LW9wZW46IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG5cbi8qKioqKioqKioqKioqKioqXG4gKiBQYWludHNcbiAqKioqKioqKioqKioqKioqL1xuJHBhaW50czogKFxuXHRhY2NlbnQ6ICMzNzdlOTYsXG5cdGFjY2VudC12YXJpYW50OiAjMDA0OTY1LFxuXHRhY2NlbnQtdmFyaWFudC0yOiAjNDc2Nzk2LFxuXHRhY2NlbnQtdmFyaWFudC0zOiAjY2M0YTI3LFxuXHRiZy1kYXJrOiAjMDAwMDAwLFxuXHRiZy1saWdodDogI2ZmZmZmZixcblx0YmctbGlnaHQtMjogI2RkZTVmMixcblx0dGV4dC1kYXJrOiAjMDIxYjI3LFxuXHR0ZXh0LWxpZ2h0OiAjZmZmZmZmLFxuXHRuZXV0cmFsLTMwOiAjNGQ0ZDRkLFxuXHRuZXV0cmFsLTQ1OiAjNzM3MzczLFxuXHRuZXV0cmFsLTcwOiAjYjNiM2IzLFxuXHRuZXV0cmFsLTg4OiAjZTFlMWUxLFxuXHRuZXV0cmFsLTk0OiAjZjBmMGYwLFxuXHRuZXV0cmFsLTk3OiAjZjdmN2Y3LFxuXHRlcnJvcjogI2IwMDAyMCxcblx0d2FybmluZzogI2Y5YTUxMyxcblx0c3VjY2VzczogIzAwODczNyxcblx0aW5mb3JtYXRpb246ICMwMDZiYjIsXG5cdGF1dG9maWxsOiAjZTZmMGY3LFxuXHRmb3Jlc3RncmVlbjogIzE1M2UwZSxcblx0YmctZm9yZXN0Z3JlZW46ICMwMTQ5MDAsXG5cdGxpZ2h0LWJsdWU6ICM5ZWM1ZmYsXG5cdGRhcmstYmx1ZTogIzAwNGE2NCxcbik7XG5cbi8qKioqKioqKioqKioqKioqXG4gKiBFZmZlY3RzXG4gKioqKioqKioqKioqKioqKi9cbiRlZmZlY3RzOiAoXG5cdGRyb3BzaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgLjEpLFxuXHRjdGE6IDAgLTRweCA0cHggcmdiYSgwLCAwLCAwLCAuMDUpLFxuXHR0ZXh0LXNoYWRvdzogMCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgLjI1KSxcbik7XG5cbi8qKioqKioqKioqKioqKioqXG4gKiBHcmlkIFNldHRpbmdzXG4gKioqKioqKioqKioqKioqKi9cblxuJGdyaWQtYnJlYWtwb2ludHM6IChcblx0eHM6IDAsXG5cdHNtOiByZW0oNTc2KSxcblx0bWQ6IHJlbSg3NjgpLFxuXHRsZzogcmVtKDk5MiksXG5cdHhsOiByZW0oMTIwMCksXG5cdHhtbDogcmVtKDEzNTApLFxuXHR4eGw6IHJlbSgxNDEwKSxcbik7XG4kY3VzdG9tLWJyZWFrcG9pbnRzOiAoXG5cdG1vYmlsZU1lbnU6IHJlbSgxMjAwKSxcbik7XG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcblx0eHM6IHJlbSg1NzYpLFxuXHRzbTogcmVtKDc2OCksXG5cdG1kOiByZW0oOTkyKSxcblx0bGc6IHJlbSgxMjAwKSxcblx0eGw6IHJlbSgxNDEwKSxcbik7XG4kY29udGFpbmVyLXNtLXNwYWNpbmc6IHJlbSgyMCk7XG4kY29udGFpbmVyLW1kLXNwYWNpbmc6IHJlbSg0MCk7XG4kY29udGFpbmVyLWxnLXNwYWNpbmc6IHJlbSg2MCk7XG4kZ3JpZC1ndXR0ZXItd2lkdGg6IHJlbSgzMCk7XG5cbi8vIFRyYW5zaXRpb25zXG4kdHJhbnNpdGlvbi1zdGFuZGFyZDogYWxsIC4ycyBsaW5lYXI7XG4kdHJhbnNpdGlvbi1kZWZhdWx0OiAuMnMgbGluZWFyO1xuXG4vLyBCbG9jayB0aXRsZVxuJGJsb2NrLXRpdGxlLW1iLXNtOiByZW0oNDApO1xuJGJsb2NrLXRpdGxlLW1iLW1kOiByZW0oNjQpO1xuJG1lZGlhLW1hcmdpbjogMzBweDtcbiRtZWRpYS1tYXJnaW4tbW9iaWxlOiAyMHB4O1xuXG4vLyBPdXRsaW5lXG4kb3V0bGluZTogcmVtKDIpIHNvbGlkICM3YWFjZmU7XG4iLCJAaW1wb3J0IFwiLi4vLi4vLi4vY3NzL3NyYy9saWIvYmFzZS1pbmNsdWRlc1wiO1xuXG4uYmxvY2stcHJvZ3JhbS1jYXJkcyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0bWFyZ2luLXRvcDogcmVtKDEwMyk7XG5cdH1cblxuXHQmX19sb2dvcy13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0aW5zZXQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblxuXHRcdFx0d2lkdGg6IHJlbSg5NCk7XG5cdFx0XHRoZWlnaHQ6IHJlbSgxMTQpO1xuXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwLjUlO1xuXHRcdFx0cmlnaHQ6IHJlbSgtMTUpO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi9pbWFnZXMvcHJvZ3JhbS1jYXJkcy9sb2dvLnBuZ1wiKTtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0XHRvcGFjaXR5OiAwLjI7XG5cdFx0XHR6LWluZGV4OiAxO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRcdHdpZHRoOiByZW0oMTcyKTtcblx0XHRcdFx0aGVpZ2h0OiByZW0oMjA4KTtcblx0XHRcdFx0dG9wOiA0OCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXG5cdFx0XHRcdHdpZHRoOiByZW0oMTA5KTtcblx0XHRcdFx0aGVpZ2h0OiByZW0oMjA5KTtcblxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vLi4vaW1hZ2VzL3Byb2dyYW0tY2FyZHMvbG9nb18wMS5wbmdcIik7XG5cdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHRcdFx0b3BhY2l0eTogMC43O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZfX3NpZGUtaGVhZGluZy13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0aW5zZXQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0Jl9fc2lkZS1oZWFkaW5nIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiByZW0oNjApO1xuXHRcdFx0bGluZS1oZWlnaHQ6IHJlbSg0OCk7XG5cdFx0XHRmb250LWZhbWlseTogJGZvbnQtYmFza2VydmlsbGU7XG5cdFx0XHRjb2xvcjogcGFpbnQoYWNjZW50KTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0cG9zaXRpb246IHN0aWNreTtcblx0XHRcdHRvcDogY2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHJlbSg1NikpO1xuXHRcdFx0bGVmdDogcmVtKC02KTtcblx0XHRcdHotaW5kZXg6IC0xO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHJlbSgtNikgIWltcG9ydGFudDtcblx0XHRcdHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XG5cdFx0fVxuXHR9XG5cblx0LmNvbnRhaW5lciB7XG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0cGFkZGluZzogMCByZW0oMTUpO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRwYWRkaW5nOiAwIHJlbSg2MCk7XG5cdFx0fVxuXHR9XG5cblx0Jl9fcm93LXdyYXBwZXIge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcGFpbnQobmV1dHJhbC05NCk7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRwYWRkaW5nOiByZW0oNjQpIDA7XG5cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0d2lkdGg6IDYuMiU7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHBhaW50KGJnLWxpZ2h0KTtcblx0XHRcdH1cblxuXHRcdFx0JjpudGgtb2YtdHlwZShldmVuKSB7XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0XHRsZWZ0OiB1bnNldDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMTUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bnRoLW9mLXR5cGUoZXZlbikge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcGFpbnQoYmctbGlnaHQpO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHBhaW50KG5ldXRyYWwtOTQpO1xuXHRcdFx0fVxuXG5cdFx0XHQuYmxvY2stcHJvZ3JhbS1jYXJkc19fdGV4dC13cmFwcGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtKDQ4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bnRoLW9mLXR5cGUob2RkKSB7XG5cdFx0XHQuYmxvY2stcHJvZ3JhbS1jYXJkc19fdGV4dC1jb2wsXG5cdFx0XHQuYmxvY2stcHJvZ3JhbS1jYXJkc19faW1hZ2UtbGluay1jb2wge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludChuZXV0cmFsLTk0KTtcblxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmX190ZXh0LWNvbCB7XG5cdFx0cGFkZGluZy10b3A6IHJlbSg0OCk7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbSg4KTtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdHBhZGRpbmctbGVmdDogcmVtKDQwKTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbSg0MCk7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0cGFkZGluZzogMCByZW0oMTUpO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXHR9XG5cblx0Jl9fdGV4dC13cmFwcGVyIHtcblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbSgxOCk7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiByZW0oMTgpO1xuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDE4KTtcblx0XHR9XG5cdH1cblxuXHQmX19sb2NhdGlvbi1wcmUtaGVhZGluZyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRwYWRkaW5nOiByZW0oNSkgcmVtKDE1KSByZW0oNSkgcmVtKDgpO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSg3KTtcblx0XHRmb250LXNpemU6IHJlbSgxNCk7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRsaW5lLWhlaWdodDogcmVtKDI0KTtcblx0XHRib3JkZXItcmFkaXVzOiByZW0oMTYpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEocGFpbnQobGlnaHQtYmx1ZSksIDAuMyk7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRwYWRkaW5nOiByZW0oMykgcmVtKDE0KSByZW0oMykgcmVtKDExKTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuXHRcdFx0cGFkZGluZzogcmVtKDMpIHJlbSgxNCkgcmVtKDMpIHJlbSg4KTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgaWNvbi1mb250KCRpY29uLWxvY2F0aW9uKTtcblx0XHRcdG1hcmdpbi1yaWdodDogcmVtKDE0KTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtKDIwKTtcblx0XHR9XG5cdH1cblxuXHQmX19oZWFkaW5nIHtcblx0XHRtYXJnaW4tdG9wOiByZXNwb25zaXZlLXZhbHVlcyg0LCAxMyk7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVzcG9uc2l2ZS12YWx1ZXMoMjAsIDI5KTtcblx0fVxuXG5cdCZfX2Rlc2NyaXB0aW9uIHtcblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRtYXgtd2lkdGg6IHJlbSgzNTApO1xuXHRcdH1cblx0XHRwIHtcblx0XHRcdEBpbmNsdWRlIGJvZHktMjtcblx0XHR9XG5cdH1cblxuXHQmX19pbWFnZS1saW5rLWNvbCB7XG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0oMTYpO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IHJlbSg0Nyk7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbSg0MCk7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHJlbSgxNSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiByZW0oNDApO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtKDE1KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmX19pbWFnZS1saW5rLXdyYXBwZXIge1xuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0LmJsb2NrLXByb2dyYW0tY2FyZHNfX2ltYWdlLWxpbmstdGV4dCB7XG5cdFx0XHRcdGNvbG9yOiBwYWludChuZXV0cmFsLTcwKTtcblxuXHRcdFx0XHRpOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29sb3I6IHBhaW50KG5ldXRyYWwtNzApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Jl9fbGluay1pbWFnZSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0YXNwZWN0LXJhdGlvOiAzNS8xNjtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdGFzcGVjdC1yYXRpbzogdW5zZXQ7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRtYXgtaGVpZ2h0OiByZW0oNDgwKTtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiByZW0oMTEwKTtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEocGFpbnQoYmctZGFyayksIDApIDAlLCByZ2JhKHBhaW50KGJnLWRhcmspLCAwLjgpIDEwMCUpO1xuXHRcdH1cblxuXHRcdGltZyB7XG5cdFx0XHRtaW4td2lkdGg6IDEwMCU7XG5cdFx0XHRvYmplY3QtZml0OiBjb3ZlcjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Jl9faW1hZ2UtbGluay10ZXh0IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0XHRsZWZ0OiByZW0oMTQpO1xuXHRcdGJvdHRvbTogcmVtKDE2KTtcblx0XHR0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbi1kZWZhdWx0O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4eGwpIHtcblx0XHRcdGxlZnQ6IHJlbSgyMCk7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdGkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHJlbSg1KSAhaW1wb3J0YW50O1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLWRlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0KyAuYmxvY2stcHJvZ3JhbS1zaW5nbGUtY2FyZCB7XG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDE1MSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vVGhpcyBmaWxlIGlzIG9ubHkgZm9yIG1peGlucy4gRG9uJ3QgaW5jbHVkZSBhbnkgc3R5bGVzIGluIHRoaXMgZmlsZSBvciBlbHNlIHRoZXkgd2lsbCByZXBlYXRlZCBpbiBldmVyeSBibG9jay5cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gY2Yge1xuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcblx0QHJldHVybiBtYXRoLmRpdigkcywgJHcpICogMTAwICsgdnc7XG59XG5cbkBtaXhpbiBoZWFkaW5ncyggJHN0YXJ0OiAxLCAkZW5kOiA2ICkge1xuXHQkaGVhZGluZ3M6ICcnO1xuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG5cdFx0QGlmICRpICE9ICRzdGFydCB7XG5cdFx0XHQkaGVhZGluZ3M6ICcjeyAkaGVhZGluZ3MgfSxoI3sgJGkgfSwuaCN7ICRpIH0nO1xuXHRcdH0gQGVsc2Uge1xuXHRcdFx0JGhlYWRpbmdzOiAnaCN7ICRpIH0sLmgjeyAkaSB9Jztcblx0XHR9XG5cdH1cblxuXHQjeyAkaGVhZGluZ3MgfSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGljb24tZm9udCggJGNvbnRlbnQ6ICcnLCAkZm9udC1zaXplOiAyNHB4ICkge1xuXHRjb250ZW50OiAkY29udGVudDtcblx0Zm9udC1mYW1pbHk6ICRmb250LWljb25mb250O1xuXHRmb250LXNpemU6ICRmb250LXNpemU7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbkBtaXhpbiBybS1iZWZvcmUoKSB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG5AbWl4aW4gcm0tYWZ0ZXIoKSB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbkBtaXhpbiByZXNwb25zaXZlLWdyaWQoJHNtOiAxMiwgJG1kOiAxMiwgJGxnOiAxMiwgJHhsOiAxMiwgJHh4bDogMTIpIHtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5XaWR0aCkgKiAjeyRzbX0gLSA0MHB4KTtcbiAgICBtYXgtd2lkdGg6IGNhbGModmFyKC0tY29sdW1uTWF4V2lkdGgpICogI3skc219IC0gNDBweCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbldpZHRoKSAqICN7JG1kfSAtIDMwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGModmFyKC0tY29sdW1uTWF4V2lkdGgpICogI3skbWR9IC0gMzBweCk7XG4gICAgfSBcblxuICAgIEBpZiAoJGxnICE9ICRtZCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5NYXhXaWR0aCkgKiAjeyRsZ30gLSAzMHB4KTtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5NYXhXaWR0aCkgKiAjeyRsZ30gLSAzMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHhsICE9ICRsZykge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5XaWR0aCkgKiAjeyR4bH0gLSAzMHB4KTtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5NYXhXaWR0aCkgKiAjeyR4bH0gLSAzMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHh4bCAhPSAkeGwpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4eGwpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbldpZHRoKSAqICN7JHh4bH0gLSAzMHB4KTtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5NYXhXaWR0aCkgKiAjeyR4eGx9IC0gMzBweCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcbiAgICBAcmV0dXJuIG1hdGguZGl2KCRzaXplLCAkcmVsKTtcbn1cblxuQG1peGluIGZvbnQoJGZvbnRTaXplOiAkZm9udC1zaXplLWJhc2UsXG4gICAgJGxpbmVIZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlLFxuICAgICRmb250V2VpZ2h0OiBmYWxzZSxcbiAgICAkbGV0dGVyU3BhY2luZzogZmFsc2UsXG4gICAgJGZvbnRTdHlsZTogZmFsc2UsXG4gICAgJGZvbnRGYW1pbHk6IGZhbHNlKSB7XG4gICAgZm9udC1zaXplOiByZW0oJGZvbnRTaXplKTtcbiAgICBsaW5lLWhlaWdodDogcmVsKCRsaW5lSGVpZ2h0LCAkZm9udFNpemUpO1xuXG4gICAgQGlmICRmb250RmFtaWx5IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250RmFtaWx5O1xuICAgIH1cblxuICAgIEBpZiAkbGV0dGVyU3BhY2luZyB7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlclNwYWNpbmcpO1xuICAgIH1cblxuICAgIEBpZiAkZm9udFdlaWdodCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udFdlaWdodDtcbiAgICB9XG5cbiAgICBAaWYgJGZvbnRTdHlsZSB7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRmb250U3R5bGU7XG4gICAgfVxufVxuXG5AbWl4aW4gZmxleCgkd2lkdGgpIHtcbiAgICBmbGV4OiAwIDAgJHdpZHRoO1xuXG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbn1cbiIsIiRmb250LWljb25mb250Olx0XCJpY29uZm9udC1jaGVsZXlDYW1wc1wiO1xuJGljb25mb250LXNpemU6XHQxLjVyZW0gIWRlZmF1bHQ7XG5cbiRpY29uLWFycm93LWRvd253YXJkOiBcIlxcRUEwMVwiO1xuJGljb24tYXJyb3ctZm9yd2FyZDogXCJcXEVBMDJcIjtcbiRpY29uLWFycm93LWxlZnQ6IFwiXFxFQTAzXCI7XG4kaWNvbi1hcnJvdy1yaWdodDogXCJcXEVBMDRcIjtcbiRpY29uLWFycm93LXVwd2FyZDogXCJcXEVBMDVcIjtcbiRpY29uLWNhbGVuZGFyOiBcIlxcRUEwNlwiO1xuJGljb24tY2FuY2VsOiBcIlxcRUEwN1wiO1xuJGljb24tY2FydDogXCJcXEVBMDhcIjtcbiRpY29uLWNoZWNrLWJveC1jaGVja2VkOiBcIlxcRUEwOVwiO1xuJGljb24tY2hlY2stYm94LXVuY2hlY2tlZDogXCJcXEVBMEFcIjtcbiRpY29uLWNoZWNrLWNpcmNsZTogXCJcXEVBMEJcIjtcbiRpY29uLWNoZWNrOiBcIlxcRUEwQ1wiO1xuJGljb24tY2hldi1jb2xsYXBzZTogXCJcXEVBMERcIjtcbiRpY29uLWNoZXYtZXhwYW5kOiBcIlxcRUEwRVwiO1xuJGljb24tY2hldi1sZWZ0OiBcIlxcRUEwRlwiO1xuJGljb24tY2hldi1yaWdodDogXCJcXEVBMTBcIjtcbiRpY29uLWNoZXZyb24tcmlnaHQ6IFwiXFxFQTExXCI7XG4kaWNvbi1jbGVhcjogXCJcXEVBMTJcIjtcbiRpY29uLWNsb3NlOiBcIlxcRUExM1wiO1xuJGljb24tY3Vyc29yOiBcIlxcRUExNFwiO1xuJGljb24tZHJvcC1kb3duOiBcIlxcRUExNVwiO1xuJGljb24tZHJvcC11cDogXCJcXEVBMTZcIjtcbiRpY29uLWVtYWlsOiBcIlxcRUExN1wiO1xuJGljb24tZXJyb3I6IFwiXFxFQTE4XCI7XG4kaWNvbi1maWx0ZXItbGlzdDogXCJcXEVBMTlcIjtcbiRpY29uLWltYWdlOiBcIlxcRUExQVwiO1xuJGljb24tbGF1bmNoLWV4dGVybmFsOiBcIlxcRUExQlwiO1xuJGljb24tbGluazogXCJcXEVBMUNcIjtcbiRpY29uLWxvY2F0aW9uOiBcIlxcRUExRFwiO1xuJGljb24tbWVudTogXCJcXEVBMUVcIjtcbiRpY29uLXBkZjogXCJcXEVBMUZcIjtcbiRpY29uLXBob25lOiBcIlxcRUEyMFwiO1xuJGljb24tcGxheTogXCJcXEVBMjFcIjtcbiRpY29uLXF1b3RlOiBcIlxcRUEyMlwiO1xuJGljb24tcmFkaW8tYnV0dG9uLWNoZWNrZWQ6IFwiXFxFQTIzXCI7XG4kaWNvbi1yYWRpby1idXR0b24tdW5jaGVja2VkOiBcIlxcRUEyNFwiO1xuJGljb24tc2VhcmNoOiBcIlxcRUEyNVwiO1xuJGljb24tc29jaWFsLWZhY2Vib29rOiBcIlxcRUEyNlwiO1xuJGljb24tc29jaWFsLWluc3RhZ3JhbTogXCJcXEVBMjdcIjtcbiRpY29uLXNvY2lhbC1saW5rZWRpbjogXCJcXEVBMjhcIjtcbiRpY29uLXNvY2lhbC10d2l0dGVyOiBcIlxcRUEyOVwiO1xuJGljb24tc29jaWFsLXZpbWVvOiBcIlxcRUEyQVwiO1xuJGljb24tc29jaWFsLXlvdXR1YmU6IFwiXFxFQTJCXCI7XG4kaWNvbi11cGxvYWQ6IFwiXFxFQTJDXCI7IiwiLy9UaGlzIGZpbGUgaXMgb25seSBmb3IgbWl4aW5zLiBEb24ndCBpbmNsdWRlIGFueSBzdHlsZXMgaW4gdGhpcyBmaWxlIG9yIGVsc2UgdGhleSB3aWxsIHJlcGVhdGVkIGluIGV2ZXJ5IGJsb2NrLlxuXG5AbWl4aW4gaDEoICRtYXJnaW5zOiB0cnVlICkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1iYXNrZXJ2aWxsZTtcbiAgICBmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKDM0LCA2MCk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogcmVzcG9uc2l2ZS12YWx1ZXMoNDAsIDY0KTtcblxuICAgIEBpZiAoICRtYXJnaW5zICkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZXNwb25zaXZlLXZhbHVlcygxNiwgMzIpO1xuICAgIH1cbn1cblxuQG1peGluIGgyKCAkbWFyZ2luczogdHJ1ZSApIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtYmFza2VydmlsbGU7XG4gICAgZm9udC1zaXplOiByZXNwb25zaXZlLXZhbHVlcygyNCwgNDQpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IHJlc3BvbnNpdmUtdmFsdWVzKDMyLCA0OCk7XG5cbiAgICBAaWYgKCAkbWFyZ2lucyApIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVzcG9uc2l2ZS12YWx1ZXMoNDMsIDcyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVzcG9uc2l2ZS12YWx1ZXMoMjEsIDQwKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoMyggJG1hcmdpbnM6IHRydWUgKSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWJhc2tlcnZpbGxlO1xuICAgIGZvbnQtc2l6ZTogcmVzcG9uc2l2ZS12YWx1ZXMoMTgsIDI4KTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcygyNCwgMzIpO1xuXG4gICAgQGlmICggJG1hcmdpbnMgKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlc3BvbnNpdmUtdmFsdWVzKDI4LCA0Myk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlc3BvbnNpdmUtdmFsdWVzKDEyLCAyMSk7XG4gICAgfVxufVxuXG5AbWl4aW4gaDQoICRtYXJnaW5zOiB0cnVlICkge1xuICAgIGZvbnQtc2l6ZTogcmVzcG9uc2l2ZS12YWx1ZXMoMTYsIDIwKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oIDI0ICk7XG5cbiAgICBAaWYgKCAkbWFyZ2lucyApIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVzcG9uc2l2ZS12YWx1ZXMoMjQsIDQ4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVzcG9uc2l2ZS12YWx1ZXMoOCwgMTYpO1xuICAgIH1cbn1cblxuQG1peGluIGg1KCAkbWFyZ2luczogdHJ1ZSApIHtcbiAgICBmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKDE0LCAxOCk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogcmVzcG9uc2l2ZS12YWx1ZXMoMTYsIDI0KTtcblxuICAgIEBpZiAoICRtYXJnaW5zICkge1xuICAgICAgICBtYXJnaW4tdG9wOiByZXNwb25zaXZlLXZhbHVlcygyNCwgMzIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oIDcgKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoNiggJG1hcmdpbnM6IHRydWUgKSB7XG4gICAgZm9udC1zaXplOiByZXNwb25zaXZlLXZhbHVlcygxMiwgMTQpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSggMTYgKTtcblxuICAgIEBpZiAoICRtYXJnaW5zICkge1xuICAgICAgICBtYXJnaW4tdG9wOiByZXNwb25zaXZlLXZhbHVlcygyNSwgMzIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oIDggKTtcbiAgICB9XG59XG5cbkBtaXhpbiBib2R5LTEoICRtYXJnaW5zOiB0cnVlICkge1xuICAgIGZvbnQtc2l6ZTogcmVzcG9uc2l2ZS12YWx1ZXMoMTUsIDE4KTtcbiAgICBsaW5lLWhlaWdodDogcmVzcG9uc2l2ZS12YWx1ZXMoMjQsIDMyKTtcblxuICAgIEBpZiAoICRtYXJnaW5zICkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZXNwb25zaXZlLXZhbHVlcygxNiwgMzIpO1xuICAgIH1cbn1cblxuQG1peGluIGJvZHktMiggJG1hcmdpbnM6IHRydWUgKSB7XG4gICAgZm9udC1zaXplOiByZXNwb25zaXZlLXZhbHVlcygxNCwgMTYpO1xuICAgIGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcygyNCwgMjgpO1xuXG4gICAgQGlmICggJG1hcmdpbnMgKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNik7XG4gICAgfVxufVxuXG5AbWl4aW4gbGlzdCggJG1hcmdpbnM6IHRydWUgKSB7XG4gICAgQGluY2x1ZGUgYm9keS0xKCAkbWFyZ2lucyApO1xufVxuXG5AbWl4aW4gbGVhZCggJG1hcmdpbnM6IHRydWUgLCAkbGFyZ2VfZmlyc3RfbGV0dGVyOiB0cnVlICkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1iYXNrZXJ2aWxsZTtcbiAgICBmb250LXNpemU6IHJlc3BvbnNpdmUtdmFsdWVzKCAyMCAsIDI0ICk7XG4gICAgbGluZS1oZWlnaHQ6IHJlc3BvbnNpdmUtdmFsdWVzKCAyNCAsIDQwICk7XG5cbiAgICBAaWYgKCAkbWFyZ2lucyApIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVzcG9uc2l2ZS12YWx1ZXMoIDQ2ICwgNzcgKTtcbiAgICB9XG5cbiAgICBAaWYgKCAkbGFyZ2VfZmlyc3RfbGV0dGVyICkge1xuICAgICAgICAmOjpmaXJzdC1sZXR0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKCA4ICk7XG5cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSggMTQ5ICk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSggMTIwICk7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIHF1b3RlKCAkbWFyZ2luczogdHJ1ZSApIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiByZXNwb25zaXZlLXZhbHVlcygyMCwgMjgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZXNwb25zaXZlLXZhbHVlcygyNCwgNDApO1xuXG4gICAgQGlmICggJG1hcmdpbnMgKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlc3BvbnNpdmUtdmFsdWVzKDI0LCAzMik7XG4gICAgfVxufVxuXG5AbWl4aW4gc3VidGl0bGUtMSggJG1hcmdpbnM6IHRydWUgKSB7XG4gICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xuXG4gICAgQGlmICggJG1hcmdpbnMgKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSggMjQgKTtcbiAgICB9XG59XG5cbkBtaXhpbiBzdWJ0aXRsZS0yKCAkbWFyZ2luczogdHJ1ZSApIHtcbiAgICBmb250LXNpemU6IHJlbSggMTQgKTtcbiAgICBsaW5lLWhlaWdodDogcmVtKCAyNCApO1xuXG4gICAgQGlmICggJG1hcmdpbnMgKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSggMjQgKTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tMSggJG1hcmdpbnM6IHRydWUgKSB7XG4gICAgZm9udC1zaXplOiByZW0oIDE2ICk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogcmVtKCAzMiApO1xufVxuXG5AbWl4aW4gYnV0dG9uLTIoICRtYXJnaW5zOiB0cnVlICkge1xuICAgIGZvbnQtc2l6ZTogcmVtKCAxNCApO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSggMTYgKTtcbn1cblxuQG1peGluIGNhcHRpb24oICRtYXJnaW5zOiB0cnVlICkge1xuICAgIGZvbnQtc2l6ZTogcmVtKCAxMiApO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oIDE2ICk7XG5cbiAgICBAaWYgKCAkbWFyZ2lucyApIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKCA4ICk7XG4gICAgfVxufVxuXG5AbWl4aW4gb3ZlcmxpbmUoICRtYXJnaW5zOiB0cnVlLCAkcmVtb3ZlX2hlYWRlcl9tYXJnaW5zOiB0cnVlICkge1xuICAgIGZvbnQtc2l6ZTogcmVtKCAxNCApO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSggMTYgKTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKCAxICk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBpZiAoICRtYXJnaW5zICkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oIDggKTtcbiAgICB9XG5cbiAgICBAaWYgKCAkcmVtb3ZlX2hlYWRlcl9tYXJnaW5zICkge1xuICAgICAgICArIGgxLFxuICAgICAgICArIC5oMSxcbiAgICAgICAgKyBoMixcbiAgICAgICAgKyAuaDIsXG4gICAgICAgICsgaDMsXG4gICAgICAgICsgLmgzLFxuICAgICAgICArIGg0LFxuICAgICAgICArIC5oNCxcbiAgICAgICAgKyBoNSxcbiAgICAgICAgKyAuaDUsXG4gICAgICAgICsgaDYsXG4gICAgICAgICsgLmg2IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG5AbWl4aW4gdGFnKCAkbWFyZ2luczogdHJ1ZSApIHtcbiAgICBmb250LXNpemU6IHJlbSggMTQgKTtcbiAgICBsaW5lLWhlaWdodDogcmVtKCAxNiApO1xuICAgIGNvbG9yOiBwYWludChuZXV0cmFsLTQ1KTtcbn1cblxuQG1peGluIHBhZ2luYXRpb24tbnVtYmVyIHtcbiAgICBmb250LXNpemU6IHJlbSggMTYgKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oIDE2ICk7XG59XG4iXX0= */
