:root {
  --font-family-primary: Rubik, sans-serif;
  --font-family-secondary: sans-serif;
}

/*
Replacement for bootstraps media query include
Usage in file:
    @use "assets/sass/abstracts/custom-breakpoints" as bp;

    @include bp.media-breakpoint-up(lg) {
        // Your styles here
    }
 */
.review-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.1875rem;
  padding: 2.3125rem 1.8125rem 2.5rem 1.75rem;
  border-radius: 1.5rem;
  background-color: rgba(255, 255, 255, 0.4);
  -webkit-box-shadow: 0 6px 32px 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 6px 32px 0 rgba(0, 0, 0, 0.1);
  min-height: 11.3125rem;
}
.review-card-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.25rem;
}
.review-card .author-thumbnail {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 500;
  background-color: var(--color-green-pale);
  color: var(--color-green-darker);
}
.review-card .author-thumbnail.alt-1 {
  background-color: var(--color-purple-pale);
  color: var(--color-purple);
}
.review-card .author-thumbnail.alt-2 {
  background-color: var(--color-yellow-pale);
  color: var(--color-yellow-sand);
}
.review-card .review-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.25rem;
}
.review-card .review-info .author-name {
  color: var(--color-purple-light);
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 500;
}
.review-card .review-info .rating {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.1875rem;
}
.review-card .review-info .rating svg {
  width: 1.25rem;
  height: 1.25rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  color: var(--color-yellow-darker);
}
.review-card-content {
  color: var(--color-grey);
  font-size: 1rem;
  line-height: 1.375rem;
  font-weight: 400;
}

.reviews {
  padding: 7.5rem 0.75rem;
  overflow: hidden;
  background-color: var(--color-light-alt);
}
.reviews .review-card {
  min-height: -webkit-fill-available;
}
.reviews .title-row {
  margin-bottom: 3.75rem;
}
.reviews .title-row .col-12 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5rem;
}
.reviews .title-row h2 {
  font-size: 3.125rem;
  line-height: 3.4375rem;
  font-weight: 500;
  letter-spacing: -0.0625rem;
}
.reviews .title-row .button-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
}
.reviews .title-row .button-wrapper .button-secondary:hover, .reviews .title-row .button-wrapper .button-secondary:focus, .reviews .title-row .button-wrapper .button-secondary:focus-visible {
  -webkit-box-shadow: 0 4px 28px 0 rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 28px 0 rgba(0, 0, 0, 0.1);
  outline: none;
  border: 1px solid var(--color-white);
}
.reviews .swiper {
  overflow: visible;
}
.reviews .swiper-navigation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.6875rem;
  margin: 2.9375rem 0 0;
}
.reviews .swiper-navigation button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: unset;
  width: 3.5625rem;
  height: 3.5625rem;
  border-radius: 1rem;
  border: none;
  background-color: transparent;
  color: var(--color-black);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.reviews .swiper-navigation button:hover {
  background-color: var(--color-yellow);
  -webkit-transform: translateX(4px);
          transform: translateX(4px);
}
.reviews .swiper-navigation button:after {
  display: none;
}
.reviews .swiper-navigation button svg {
  width: 0.6875rem;
  height: 1.375rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.reviews .swiper-navigation .swiper-button-prev svg {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.reviews .swiper-navigation .swiper-button-prev:hover {
  -webkit-transform: translateX(-4px);
          transform: translateX(-4px);
}
@media (min-width: 62rem) {
  .reviews .title-row {
    margin-bottom: 4.375rem;
  }
  .reviews .title-row .col-12 {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .reviews .title-row .button-wrapper {
    gap: 0.8125rem;
  }
  .reviews .swiper {
    overflow: visible;
  }
  .reviews .swiper-navigation {
    margin: 3.3125rem 0 0;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2Jsb2Nrcy9yZXZpZXdzLmNzcyIsIm1hcHBpbmdzIjoiQUFHQTtFQUNJO0VBQ0E7QUNGSjs7QUNDQTs7Ozs7Ozs7RUFBQTtBQ0ZBO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFBQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO1VBQUE7RUFDQTtBRmFKO0FFWEk7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtBRmFSO0FFVkk7RUFDSTtFQUFBO0VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtNQUFBO1VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FGWVI7QUVWUTtFQUNJO0VBQ0E7QUZZWjtBRVRRO0VBQ0k7RUFDQTtBRldaO0FFUEk7RUFDSTtFQUFBO0VBQUE7RUFDQTtFQUFBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FGU1I7QUVQUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FGU1o7QUVOUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FGUVo7QUVOWTtFQUNJO0VBQ0E7RUFDQTtNQUFBO0VBQ0E7QUZRaEI7QUVISTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FGS1I7O0FBMUVBO0VBQ0k7RUFDQTtFQUNBO0FBNkVKO0FBM0VJO0VBQ0k7QUE2RVI7QUExRUk7RUFDSTtBQTRFUjtBQTFFUTtFQUNJO0VBQUE7RUFBQTtFQUNBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7QUE0RVo7QUF6RVE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTJFWjtBQXhFUTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0FBMEVaO0FBckVnQjtFQUdJO1VBQUE7RUFDQTtFQUNBO0FBcUVwQjtBQS9ESTtFQUNJO0FBaUVSO0FBL0RRO0VBQ0k7RUFBQTtFQUFBO0VBQ0E7RUFDQTtBQWlFWjtBQS9EWTtFQUNJO0VBQUE7RUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO01BQUE7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFBQTtBQWlFaEI7QUEvRGdCO0VBQ0k7RUFDQTtVQUFBO0FBaUVwQjtBQTlEZ0I7RUFDSTtBQWdFcEI7QUE3RGdCO0VBQ0k7RUFDQTtFQUNBO01BQUE7RUFDQTtFQUFBO0FBK0RwQjtBQXpEZ0I7RUFDSTtVQUFBO0FBMkRwQjtBQXhEZ0I7RUFDSTtVQUFBO0FBMERwQjtBQ3BJUTtFRGtGQTtJQUNJO0VBcURWO0VBbkRVO0lBQ0k7SUFBQTtRQUFBO1lBQUE7SUFDQTtRQUFBO1lBQUE7SUFDQTtRQUFBO1lBQUE7RUFxRGQ7RUFsRFU7SUFDSTtFQW9EZDtFQWhETTtJQUNJO0VBa0RWO0VBaERVO0lBQ0k7RUFrRGQ7QUFDRixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ibG9ja3MvcmV2aWV3cy9yZXZpZXdzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL19jdXN0b20tYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy90ZW1wbGF0ZS1wYXJ0cy9jYXJkcy9fcmV2aWV3LWNhcmQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIkZm9udC1mYW1pbHktcHJpbWFyeTogXCJSdWJpa1wiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlY29uZGFyeTogc2Fucy1zZXJpZjtcblxuOnJvb3Qge1xuICAgIC0tZm9udC1mYW1pbHktcHJpbWFyeTogI3skZm9udC1mYW1pbHktcHJpbWFyeX07XG4gICAgLS1mb250LWZhbWlseS1zZWNvbmRhcnk6ICN7JGZvbnQtZmFtaWx5LXNlY29uZGFyeX07XG59XG5cbi8vIFJGU1xuLy8gJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXM6IHRydWU7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDA7XG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDJyZW07IC8vIDMycHhcbiRyZnMtYnJlYWtwb2ludDogODUuMzc1cmVtOyAvLyAxMzY2cHhcbiRyZnMtdHdvLWRpbWVuc2lvbmFsOiBmYWxzZTtcblxuLy8gR3JpZFxuJGdyaWQtYnJlYWtwb2ludHM6IChcbiAgICB4czogMCxcbiAgICBzbTogMzZyZW0sIC8vIDU3NnB4XG4gICAgbWQ6IDQ4cmVtLCAvLyA3NjhweFxuICAgIGxnOiA2MnJlbSwgLy8gOTkycHhcbiAgICB4bDogNzVyZW0sIC8vIDEyMDBweFxuICAgIHh4bDogOTByZW0gLy8gMTQ0MHB4XG4pO1xuXG4vLyBDb250YWluZXJcbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuICAgIHNtOiAzNi4yNXJlbSwgLy8gNTgwcHhcbiAgICBtZDogMzguNzVyZW0sIC8vIDYyMHB4XG4gICAgbGc6IDYwcmVtLCAvLyA5NjBweFxuICAgIHhsOiA2NnJlbSAvLyAxMDU2cHhcbik7XG4iLCJAdXNlIFwiQHNhc3MvYWJzdHJhY3RzL2N1c3RvbS1icmVha3BvaW50c1wiIGFzIGJwO1xuQHVzZSBcIkBzYXNzL2Fic3RyYWN0cy9mdW5jdGlvbnNcIiBhcyAqO1xuQHVzZSBcIkBzYXNzL3RlbXBsYXRlLXBhcnRzL2NhcmRzL3Jldmlldy1jYXJkXCIgYXMgKjtcblxuLnJldmlld3Mge1xuICAgIHBhZGRpbmc6IHB4LXRvLXJlbSgxMjApIHB4LXRvLXJlbSgxMik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1saWdodC1hbHQpO1xuXG4gICAgLnJldmlldy1jYXJkIHtcbiAgICAgICAgbWluLWhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbiAgICB9XG5cbiAgICAudGl0bGUtcm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcHgtdG8tcmVtKDYwKTtcblxuICAgICAgICAuY29sLTEyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiBweC10by1yZW0oMjQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiBweC10by1yZW0oNTApO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHB4LXRvLXJlbSg1NSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHB4LXRvLXJlbSgtMSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IHB4LXRvLXJlbSgxMCk7XG5cblxuICAgICAgICAgICAgLmJ1dHRvbi1zZWNvbmRhcnkge1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDI4cHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dpcGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgJi1uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHB4LXRvLXJlbSgxMSk7XG4gICAgICAgICAgICBtYXJnaW46IHB4LXRvLXJlbSg0NykgMCAwO1xuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHB4LXRvLXJlbSg1Nyk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBweC10by1yZW0oNTcpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHB4LXRvLXJlbSgxNik7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3IteWVsbG93KTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHB4LXRvLXJlbSgxMSk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcHgtdG8tcmVtKDIyKTtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN3aXBlci1idXR0b24tcHJldiB7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTRweCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAubWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXG4gICAgICAgIC50aXRsZS1yb3cge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcHgtdG8tcmVtKDcwKTtcblxuICAgICAgICAgICAgLmNvbC0xMiB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBnYXA6IHB4LXRvLXJlbSgxMyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3dpcGVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgICAgICAmLW5hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogcHgtdG8tcmVtKDUzKSAwIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIiBhcyB2YXJzO1xuXG4vKlxuUmVwbGFjZW1lbnQgZm9yIGJvb3RzdHJhcHMgbWVkaWEgcXVlcnkgaW5jbHVkZVxuVXNhZ2UgaW4gZmlsZTpcbiAgICBAdXNlIFwiYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL2N1c3RvbS1icmVha3BvaW50c1wiIGFzIGJwO1xuXG4gICAgQGluY2x1ZGUgYnAubWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICAgICAgICAvLyBZb3VyIHN0eWxlcyBoZXJlXG4gICAgfVxuICovXG4vLyBMb2NhbCBicmVha3BvaW50cyB3aXRoIGRlZmF1bHQgZmFsbGJhY2tcbiRjdXN0b20tYnJlYWtwb2ludHM6IHZhcnMuJGdyaWQtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vIE1pbi13aWR0aCBicmVha3BvaW50XG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgIEBpZiBtYXAuaGFzLWtleSgkY3VzdG9tLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCgkY3VzdG9tLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBlcnJvciBcIlVua25vd24gYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH0uIEF2YWlsYWJsZSBicmVha3BvaW50czogI3ttYXAua2V5cygkY3VzdG9tLWJyZWFrcG9pbnRzKX1cIjtcbiAgICB9XG59XG5cbi8vIE1heC13aWR0aCBicmVha3BvaW50XG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicmVha3BvaW50KSB7XG4gICAgQGlmIG1hcC5oYXMta2V5KCRjdXN0b20tYnJlYWtwb2ludHMsICRicmVha3BvaW50KSB7XG4gICAgICAgICRuZXh0LWJyZWFrcG9pbnQ6IF9nZXQtbmV4dC1icmVha3BvaW50KCRjdXN0b20tYnJlYWtwb2ludHMsICRicmVha3BvaW50KTtcbiAgICAgICAgQGlmICRuZXh0LWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICgkbmV4dC1icmVha3BvaW50IC0gMC4wMnB4KSkge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBjb250ZW50OyAvLyBObyB1cHBlciBsaW1pdCBmb3IgbGFyZ2VzdCBicmVha3BvaW50XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVycm9yIFwiVW5rbm93biBicmVha3BvaW50OiAjeyRicmVha3BvaW50fS4gQXZhaWxhYmxlIGJyZWFrcG9pbnRzOiAje21hcC5rZXlzKCRjdXN0b20tYnJlYWtwb2ludHMpfVwiO1xuICAgIH1cbn1cblxuLy8gQmV0d2VlbiB0d28gYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIpIHtcbiAgICBAaWYgbWFwLmhhcy1rZXkoJGN1c3RvbS1icmVha3BvaW50cywgJGxvd2VyKSBhbmQgbWFwLmhhcy1rZXkoJGN1c3RvbS1icmVha3BvaW50cywgJHVwcGVyKSB7XG4gICAgICAgICRtaW46IG1hcC5nZXQoJGN1c3RvbS1icmVha3BvaW50cywgJGxvd2VyKTtcbiAgICAgICAgJG1heDogbWFwLmdldCgkY3VzdG9tLWJyZWFrcG9pbnRzLCAkdXBwZXIpO1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICgkbWF4IC0gMC4wMnB4KSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVycm9yIFwiSW52YWxpZCBicmVha3BvaW50IHJhbmdlLiBBdmFpbGFibGUgYnJlYWtwb2ludHM6ICN7bWFwLmtleXMoJGN1c3RvbS1icmVha3BvaW50cyl9XCI7XG4gICAgfVxufVxuXG4vLyBQcml2YXRlIGhlbHBlciBmdW5jdGlvblxuQGZ1bmN0aW9uIF9nZXQtbmV4dC1icmVha3BvaW50KCRtYXAsICRrZXkpIHtcbiAgICAka2V5czogbWFwLmtleXMoJG1hcCk7XG4gICAgJGk6IGxpc3QuaW5kZXgoJGtleXMsICRrZXkpO1xuICAgIEByZXR1cm4gaWYoJGkgYW5kICRpIDwgbGlzdC5sZW5ndGgoJGtleXMpLCBtYXAuZ2V0KCRtYXAsIGxpc3QubnRoKCRrZXlzLCAkaSArIDEpKSwgbnVsbCk7XG59XG4iLCJAdXNlIFwiQHNhc3MvYWJzdHJhY3RzL2Z1bmN0aW9uc1wiIGFzICo7XG5cbi5yZXZpZXctY2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogcHgtdG8tcmVtKDE5KTtcbiAgICBwYWRkaW5nOiBweC10by1yZW0oMzcpIHB4LXRvLXJlbSgyOSkgcHgtdG8tcmVtKDQwKSBweC10by1yZW0oMjgpO1xuICAgIGJvcmRlci1yYWRpdXM6IHB4LXRvLXJlbSgyNCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQwKTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAzMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICBtaW4taGVpZ2h0OiBweC10by1yZW0oMTgxKTtcblxuICAgICYtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiBweC10by1yZW0oMjApO1xuICAgIH1cblxuICAgIC5hdXRob3ItdGh1bWJuYWlsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBweC10by1yZW0oNDgpO1xuICAgICAgICBoZWlnaHQ6IHB4LXRvLXJlbSg0OCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZm9udC1zaXplOiBweC10by1yZW0oMjApO1xuICAgICAgICBsaW5lLWhlaWdodDogcHgtdG8tcmVtKDI4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JlZW4tcGFsZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmVlbi1kYXJrZXIpO1xuXG4gICAgICAgICYuYWx0LTEge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHVycGxlLXBhbGUpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXB1cnBsZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFsdC0yIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXllbGxvdy1wYWxlKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci15ZWxsb3ctc2FuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmV2aWV3LWluZm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiBweC10by1yZW0oNCk7XG5cbiAgICAgICAgLmF1dGhvci1uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wdXJwbGUtbGlnaHQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiBweC10by1yZW0oMTYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHB4LXRvLXJlbSgyOCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJhdGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogcHgtdG8tcmVtKDMpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBweC10by1yZW0oMjApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcHgtdG8tcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3IteWVsbG93LWRhcmtlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNvbnRlbnQge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JleSk7XG4gICAgICAgIGZvbnQtc2l6ZTogcHgtdG8tcmVtKDE2KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHB4LXRvLXJlbSgyMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/