.new-applicaiton-wrap .bg-symbol-wrap .bg-symbol {
  top: 260px;
}

@media screen and (min-width: 768px) {
  .new-applicaiton-wrap .bg-symbol-wrap .bg-symbol {
    top: 110px;
  }
}

.new-applicaiton-wrap .title-wrap {
  margin-bottom: 0;
  padding-bottom: 0;
}

@media screen and (min-width: 768px) {
  .new-applicaiton-wrap .title-wrap {
    margin-bottom: 30px;
    padding-bottom: 26px;
  }
}

.new-applicaiton-wrap .title-wrap:after {
  display: none;
}

@media screen and (min-width: 768px) {
  .new-applicaiton-wrap .title-wrap:after {
    display: block;
  }
}

.new-applicaiton-wrap .business-data-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  min-height: 50px;
}

.new-applicaiton-wrap .btn-business {
  width: 100px;
  height: 49px;
  font-size: 13px;
}

.new-applicaiton-wrap .card-num-wrap .form-body {
  display: flex;
  flex-wrap: nowrap;
}

.new-applicaiton-wrap .card-num-wrap .form-body input {
  max-width: 98px;
  margin-right: 1%;
}

#card-confirm-modal .modal-dialog {
  max-width: 604px;
}

#card-confirm-modal .modal-header {
  position: relative;
  height: 84px;
  padding: 32px 15px 23px;
  border-bottom: 0;
  font-size: 15px;
  color: #000;
}

@media screen and (min-width: 768px) {
  #card-confirm-modal .modal-header {
    height: 113px;
    padding: 52px 40px 23px;
  }
}

#card-confirm-modal .modal-title {
  font-size: 20px;
  font-weight: 400;
}

#card-confirm-modal .modal-body {
  text-align: left;
  font-size: 15px;
  line-height: 1.66;
  padding: 0 25px 30px;
}

@media screen and (min-width: 768px) {
  #card-confirm-modal .modal-body {
    padding-left: 62px !important;
    padding-right: 39px !important;
  }
}

#card-confirm-modal .modal-body .title {
  position: relative;
  color: #000;
}

@media screen and (min-width: 768px) {
  #card-confirm-modal .modal-body .title:before {
    content: "";
    position: absolute;
    top: 10px;
    left: -16px;
    display: inline-block;
    width: 5px;
    height: 5px;
    background-color: #1b458e;
    border-radius: 50%;
  }
}

#card-confirm-modal .modal-body .desc {
  color: #555;
}

#card-confirm-modal .modal-body .desc:not(:last-child) {
  margin-bottom: 24px;
}

@media screen and (min-width: 768px) {
  #card-confirm-modal .modal-body .desc:not(:last-child) {
    margin-bottom: 28px;
  }
}

#card-confirm-modal .dim-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

#card-confirm-modal .modal-footer {
  padding-top: 5px;
  padding-bottom: 40px;
}

@media screen and (min-width: 768px) {
  #card-confirm-modal .modal-footer {
    padding-bottom: 60px;
  }
}

.top-info-wrap {
  display: none;
}

@media screen and (min-width: 768px) {
  .top-info-wrap {
    display: block;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0L3BhZ2UvZ3VpZGUvbmV3X2FwcGxpY2F0aW9uLmNzcyIsInNvdXJjZXMiOlsibGF5b3V0L3BhZ2UvZ3VpZGUvbmV3X2FwcGxpY2F0aW9uLnNjc3MiLCJyZXMvc2Nzcy9fX3ZhcmlhYmxlcy5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLCJyZXMvc2Nzcy92YXJpYWJsZXNfY29tcG9uZW50cy9fY2FyZHMuc2NzcyIsInJlcy9zY3NzL3ZhcmlhYmxlc19jb21wb25lbnRzL190YWJsZS5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX3RhYi5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsInJlcy9zY3NzL19fbWl4aW5zLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX21lZGlhLXF1ZXJ5LnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX21hcC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19jbGVhci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19mbG9hdC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19ob3Zlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19zY3JlZW5yZWFkZXIuc2NzcyIsInJlcy9zY3NzL21peGlucy9fcmVzZXQtdGV4dC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19wcmVmaXhlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2FyZWEuc2NzcyIsInJlcy9zY3NzL21peGlucy9fZ3JpZC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL190cmlhbmdsZS5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19idXR0b25zLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2NhcmRzLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3BhZ2luYXRpb24uc2NzcyIsInJlcy9zY3NzL21peGlucy9fZm9ybXMuc2NzcyIsInJlcy9zY3NzL21peGlucy9fdGFibGVzLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3RhYi5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgXCJyZXMvc2Nzcy9fX3ZhcmlhYmxlcy5zY3NzXCI7XG5AaW1wb3J0IFwicmVzL3Njc3MvX19taXhpbnMuc2Nzc1wiO1xuXG4ubmV3LWFwcGxpY2FpdG9uLXdyYXB7XG4gIC5iZy1zeW1ib2wtd3JhcHtcbiAgICAuYmctc3ltYm9se1xuICAgICAgdG9wOjI2MHB4O1xuICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKG1kKXtcbiAgICAgICAgdG9wOjExMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfSBcbiAgLnRpdGxlLXdyYXB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTowO1xuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNnB4O1xuICAgIH1cbiAgICAmOmFmdGVye1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCl7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuYnVzaW5lc3MtZGF0YS13cmFwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIH1cbiAgLmJ0bi1idXNpbmVzc3sgLy/spJHrs7XtmZXsnbgg67KE7Yq8XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogNDlweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cbiAgLmNhcmQtbnVtLXdyYXAge1xuICAgIC5mb3JtLWJvZHkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgaW5wdXQge1xuICAgICAgICBtYXgtd2lkdGg6OThweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OjElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuI2NhcmQtY29uZmlybS1tb2RhbCB7XG4gIC5tb2RhbC1kaWFsb2d7XG4gICAgbWF4LXdpZHRoOiA2MDRweDtcbiAgfVxuICAubW9kYWwtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA4NHB4O1xuICAgIHBhZGRpbmc6IDMycHggMTVweCAyM3B4O1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCl7XG4gICAgICBoZWlnaHQ6IDExM3B4O1xuICAgICAgcGFkZGluZzogNTJweCA0MHB4IDIzcHg7XG4gICAgfVxuICB9XG4gIC5tb2RhbC10aXRsZXtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuICAubW9kYWwtYm9keXtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMS42NjtcbiAgICBwYWRkaW5nOiAwIDI1cHggMzBweDtcbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4obWQpe1xuICAgICAgcGFkZGluZy1sZWZ0OiA2MnB4ICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzOXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC50aXRsZXtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKG1kKXtcbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgY29udGVudDpcIlwiO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgbGVmdDogLTE2cHg7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdfcG9pbnQtdGhlbWUtY29sb3IyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuZGVzY3tcbiAgICAgIGNvbG9yOiAjNTU1O1xuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKG1kKXtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5kaW0tYmd7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDowO1xuICAgIGxlZnQ6MDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xuICB9XG4gIC5tb2RhbC1mb290ZXJ7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4obWQpe1xuICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7XG4gICAgfVxuICB9XG59XG4udG9wLWluZm8td3JhcHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKG1kKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuIiwiLy8vLy9kZWZhdWx0Ly8vLy9cbi8vY29sb3JcbiRnX3doaXRlOiAjZmZmICFkZWZhdWx0O1xuJGdfYmxhY2s6ICMwMDAgIWRlZmF1bHQ7XG4kZ19yZWQ6ICNjZDIwMDA7XG5cbiRnX3BvaW50LWZvbnQtY29sb3I6ICMwMGFlZWY7XG4kZ19wb2ludC1mb250LWNvbG9yMjogIzFiNDU4ZTtcbiRnX3BvaW50LXRoZW1lLWNvbG9yOiAjMDBhZWVmO1xuJGdfcG9pbnQtdGhlbWUtY29sb3IyOiAjMWI0NThlO1xuJGdfYm9yZGVyLWNvbG9yIDogI2RkZDtcblxuLy9mb250XG4vLy1mb250LWZhbWlseVxuJGdfZm9udC1mYW1pbHk6IChcbiAgc3lzdGVtOiAnIFwi66eR7J2AIOqzoOuUlVwiLCBcIk1hbGd1biBHb3RoaWNcIiwgXCLslaDtlIwgU0Qg7IKw64+M6rOg65SVIE5lb1wiLCBcIkFwcGxlIFNEIEdvdGhpYyBOZW9cIiwgc2Fucy1zZXJpZiAnLFxuICBub3RvOiAnXCJOb3RvIFNhbnMgS1JcIiwgc2Fucy1zZXJpZicsXG4gIGxhdG8gOiAnXCJMYXRvXCIsIHNhbnMtc2VyaWYnLFxuICBkb3R1bTogJ1wiRG90dW1cIiwgc2Fucy1zZXJpZicsXG4pO1xuXG4kZm9udC1zeXN0ZW06ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgc3lzdGVtKX07XG4kZm9udC1ub3RvOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIG5vdG8pfTtcbiRmb250LWxhdG86ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgbGF0byl9OyAvLzEwMChUKSwzMDAoTCksNDAwKFIpLDcwMChCKSw5MDAoQilcbiRmb250LWRvdHVtOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIGRvdHVtKX07XG5cbi8vLWRlZmF1bHQgZm9udCDshKTsoJVcbiRmb250LTMwMCA6ICRmb250LW5vdG87XG4kZm9udC00MDAgOiAkZm9udC1ub3RvO1xuJGZvbnQtNTAwIDogJGZvbnQtbm90bztcbiRmb250LTcwMCA6ICRmb250LW5vdG87XG4kZm9udC04MDAgOiAkZm9udC1ub3RvO1xuXG4vLy1mb250LXNpemVcbiRnX2ZvbnQtc2l6ZTooXG4gIHhzOiAxMHB4LFxuICBzbTogMTJweCxcbiAgbWQ6IDE1cHgsXG4gIGxnOiAxOHB4LFxuICB4bDogMjRweCxcbik7XG5cbi8vLWZvbnQtd2VpZ2h0XG4kZ19mb250LXdlaWdodHM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCA2MDAsIDcwMCwgODAwLCA5MDA7XG5cbi8vLWxldHRlci1zcGFjaW5nXG5cbi8vLy8vbWVkaWEvLy8vL1xuJGdfbWVkaWEtYnJlYWtwb2ludHM6IChcbiAgeHM6IDAsXG4gIHNtOiA1NDRweCxcbiAgbWQ6IDc2OHB4LFxuICBsZzogOTkycHgsXG4gIHhsOiAxMjAwcHhcbik7XG5cbi8vLy8vbGF5b3V0Ly8vLy9cbi8vYXJlYVxuJGdfbWF4LXdpZHRoOiAxMTQwcHg7XG4kZ19hcmVhLWd1dHRlci13aWR0aDogMjBweDtcblxuLy9ncmlkXG4kZ19ncmlkLWNvbHVtbnM6IDEyO1xuJGdfZ3JpZC1ndXR0ZXItd2lkdGg6IDElO1xuXG4kZ19kZWZhdWx0LWFyZWE6IChcbiAgbWF4LXdpZHRoOiAkZ19tYXgtd2lkdGgsXG4gIGd1dHRlci13aWR0aDogJGdfYXJlYS1ndXR0ZXItd2lkdGgsXG4gIHdpZHRoOiAxMDAlXG4pO1xuJGdfZnVsbC1hcmVhOiAoXG4gIG1heC13aWR0aDogMTc1MHB4LFxuICBndXR0ZXItd2lkdGg6ICRnX2FyZWEtZ3V0dGVyLXdpZHRoLFxuICB3aWR0aDogMTAwJVxuKTtcbiRnX25vZ3V0dGVyLWFyZWE6IChcbiAgbWF4LXdpZHRoOiAkZ19tYXgtd2lkdGhcbik7XG5cbi8vZ3JpZFxuJGdfZ3JpZC1jb2wtaW5mbzogKFxuICBncmlkLWNvbC1jbnQ6IDEyLFxuICBncmlkLWNvbC1uYW1lOiBudWxsXG4pO1xuJGdyaWQtY29sNS1pbmZvOiAoXG4gIGdyaWQtY29sLWNudDogNSxcbiAgZ3JpZC1jb2wtbmFtZTogZml2ZS1cbik7XG5cbi8vLy8vVVRJTElUSUVTLy8vLy9cbi8vY2xlYXJcblxuLy9zcGFjaW5nXG4kc3BhY2VyczooXG4gIDA6IDAsXG4gIDU6IDVweCxcbiAgMTA6IDEwcHgsXG4gIDE1OiAxNXB4LFxuICAyMDogMjBweCxcbiAgMjU6IDI1cHgsXG4gIDMwOiAzMHB4LFxuICA0MDogNDBweCxcbiAgNTA6IDUwcHgsXG4gIDYwOiA2MHB4LFxuICA3MDogNzBweCxcbiAgODA6IDgwcHgsXG4gIDkwOiA5MHB4LFxuICAxMDA6IDEwMHB4LFxuICAxMjA6IDEyMHB4LFxuKTtcblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly9cblxuLy8vLy9DT01QT05FTlRTLy8vLy9cbkBpbXBvcnQgXCJ2YXJpYWJsZXNfY29tcG9uZW50cy9fYnV0dG9uXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzX2NvbXBvbmVudHMvX2Zvcm1zXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzX2NvbXBvbmVudHMvX2NhcmRzXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzX2NvbXBvbmVudHMvX3RhYmxlXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzX2NvbXBvbmVudHMvX3RhYlwiO1xuQGltcG9ydCBcInZhcmlhYmxlc19jb21wb25lbnRzL19wYWdpbmF0aW9uXCI7XG4vLyBAaW1wb3J0IFwidmFyaWFibGVzX2NvbXBvbmVudHMvX3Rvb2x0aXBcIjsgLy8g7IKs7Jqp7ZWY7KeAIOyViuuKlCDrtoDrtoTsnYAg7KO87ISdICggYmFzZS5zY3NzIOyXkOuPhCDso7zshJ0gKVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vL1xuIiwiLy8gX2J1dHRvblxuJGdfYnRuLXNpemU6ICh4czogKCAvLyDrsLDshqHsobDtmows7ZuE6riw7J6R7ISxXG4gICAgd2lkdGg6IDUwcHgsXG4gICAgaGVpZ2h0OiAzN3B4LFxuICAgIGxpbmUtaGVpZ2h0OiAzN3B4LFxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1kb3R1bSxcbiAgICBmb250LXNpemU6IDEycHgsXG4gICksXG4gIHNtOiAoIC8vIO2ajOybkOqwgOyehSwg66eI7J207Y6Y7J207KeALCDqsozsi5ztjJAsIHBvcHVwIGJ0biDqtIDroKgg67KE7Yq8XG4gICAgd2lkdGg6IDkwcHgsXG4gICAgaGVpZ2h0OiAzN3B4LFxuICAgIGxpbmUtaGVpZ2h0OiAzN3B4LFxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1kb3R1bSxcbiAgICBmb250LXNpemU6IDEycHgsXG4gICksXG4gIG1kOiAoIC8v7J2867CYIO2OmOydtOyngFxuICAgIHdpZHRoOiAyMTBweCxcbiAgICBoZWlnaHQ6IDU1cHgsXG4gICAgbGluZS1oZWlnaHQ6IDU1cHgsXG4gICAgZm9udC1zaXplOiAxNXB4LFxuICApLFxuICBsZzogKCAvL+yepeuwlOq1rOuLiFxuICAgIHdpZHRoOjI2NXB4LFxuICAgIGhlaWdodDogNDBweCxcbiAgICBsaW5lLWhlaWdodDogNDBweCxcbiAgICBmb250LXNpemU6IDE1cHgsXG4gICAgZm9udC13ZWlnaHQ6NTAwLFxuICApLFxuICB4bDogKCAvL+uhnOq3uOyduCwg7ZqM7JuQ6rCA7J6FLCDslYTsnbTrlJQm67mE67CA67KI7Zi4IOywvuq4sCDtlIzroZzsmrBcbiAgICBoZWlnaHQ6IDUwcHgsXG4gICAgbGluZS1oZWlnaHQ6IDUwcHgsXG4gICAgZm9udC1zaXplOiAxNXB4LFxuICAgIGZvbnQtd2VpZ2h0OjUwMCxcbiAgICBtZWRpYTogKG1kOiAoaGVpZ2h0OiA1NXB4LFxuICAgICAgICBsaW5lLWhlaWdodDogNTVweCxcbiAgICAgICkpKSxcbiAgZnVsbC1zbSA6ICggLy8g6rKM7Iuc7YyQ7JeQ7IScIOyCrOyaqVxuICAgIHdpZHRoOjEwMCUsXG4gICAgaGVpZ2h0OiA0MnB4LFxuICAgIGxpbmUtaGVpZ2h0OiA0MnB4LFxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1kb3R1bSxcbiAgICBmb250LXNpemU6IDEycHgsXG4gICAgbWVkaWEgOiAobWQgOiAod2lkdGg6IDkwcHgsXG4gICAgICAgIGhlaWdodDogMzdweCxcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM3cHgsXG4gICAgICApLFxuICAgICkpLFxuICBmdWxsLW1kOiAoIC8v7J2867CYIO2OmOydtOyngFxuICAgIHdpZHRoOiAxMDAlLFxuICAgIG1heC13aWR0aDogMjEwcHgsXG4gICAgaGVpZ2h0OiA1NXB4LFxuICAgIGxpbmUtaGVpZ2h0OiA1NXB4LFxuICAgIGZvbnQtc2l6ZTogMTVweCxcbiAgKSxcbiAgcG9wdXA6ICggLy9wb3B1cCDrsoTtirxcbiAgICBtYXgtd2lkdGg6MjEwcHgsXG4gICAgbGluZS1oZWlnaHQ6IDU1cHgsXG4gICAgaGVpZ2h0OiA1NXB4LFxuICApLFxuICBmdWxsOih3aWR0aDogMTAwJSxcbiAgKSxcbik7XG5cbiRnX2J0bi1ncm91cCA6ICggLy8g67KE7Yq8IOyKpO2DgOydvCDshKTsoJXtlZjquLBcbiAgcG9pbnQgOiAoIC8vIGRlZmF1bHRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ19wb2ludC10aGVtZS1jb2xvcjIsXG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudCxcbiAgICBob3ZlciA6IChiYWNrZ3JvdW5kLWNvbG9yOiMwYjJkNjcsXG4gICAgKSksXG4gIHN1Yi1wb2ludCA6KGJhY2tncm91bmQtY29sb3I6JGdfcG9pbnQtdGhlbWUtY29sb3IsXG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudCxcbiAgICBob3ZlciA6IChiYWNrZ3JvdW5kLWNvbG9yOiMwNzkwZDAsXG4gICAgKSksXG4gIHN0eWxlMiA6ICggLy8g7ZqM7JuQ6rCA7J6FLCDslYTsnbTrlJQm67mE67CA67KI7Zi4IOywvuq4sFxuICAgIGJvcmRlcjoxcHggc29saWQgI2NjYyxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwLFxuICAgIGNvbG9yOiAjNTU1LFxuICApLFxuICBzdHlsZTMgOiAoIC8vIOyjvOusuOy3qOyGjCwg7KO866y466as7Iqk7Yq46rKA7IOJXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU1NSxcbiAgICBjb2xvcjogI2ZmZixcbiAgKSxcbiAgb3V0bGluZS1zdHlsZTEgOiAoIC8vIOuhnOq3uOyduCwg7KO866y47IOB7IS467O06riwLCBjdXN0b20yXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZCxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmYsXG4gICAgY29sb3I6IzU1NSAhaW1wb3J0YW50LFxuICAgIGhvdmVyIDogKGJhY2tncm91bmQtY29sb3I6I2YyZjJmMixcbiAgICApKSxcbiAgb3V0bGluZS1zdHlsZTIgOiAoIC8vIOq4gOyTsOq4sFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyMjIsXG4gICAgYmFja2dyb3VuZC1jb2xvcjojZmZmLFxuICAgIGNvbG9yOiMyMjIsXG4gICksXG4gIG91dGxpbmUtc3R5bGUzOiAoYm9yZGVyOiAxcHggc29saWQgI2ZmZixcbiAgICBjb2xvciA6I2ZmZixcbiAgICBob3ZlcjogKGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50LFxuICAgICkpLFxuKTsiLCIvLyBfZm9ybVxuJGdfZm9ybS13cmFwOiAodGFibGUgOiAoIC8vLmZvcm0td3JhcC10YWJsZSAo7ZqM7JuQ6rCA7J6FJuygleuztCwg7KO866y46rKw7KCcJuuCtOyXrSlcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxuICAgIGZvcm0td3JhcDogKCAvLy5mb3JtLXdyYXAtZmxleCAuZm9ybS13cmFwXG4gICAgICBkaXNwbGF5OiBmbGV4LFxuICAgICksXG4gICAgZm9ybS10aXRsZTogKCAvLy5mb3JtLXdyYXAtZmxleCAuZm9ybS10aXRsZVxuICAgICAgZGlzcGxheTogZmxleCxcbiAgICAgIGZsZXgtZ3JvdzogMCxcbiAgICAgIGZsZXgtc2hyaW5rOiAxLFxuICAgICAgZmxleC1iYXNpczogOTBweCxcbiAgICAgIG1pbi13aWR0aDogOTBweCxcbiAgICAgIGxpbmUtaGVpZ2h0OjEuNSxcbiAgICAgIHBhZGRpbmc6IDE5cHggMTBweCxcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1kb3R1bSxcbiAgICAgIGZvbnQtc2l6ZTogMTJweCxcbiAgICAgIG1lZGlhOiAoc206IChmbGV4LWJhc2lzOiAxMDAlLFxuICAgICAgICAgIG1heC13aWR0aDoxNTBweCxcbiAgICAgICAgICBwYWRkaW5nOiAyMHB4IDIwcHgsXG4gICAgICAgICksXG4gICAgICAgIG1kOiAobWF4LXdpZHRoOjIwM3B4LFxuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweCxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgICBmb3JtLWJvZHk6ICggLy8uZm9ybS13cmFwLWZsZXggLmZvcm0tYm9keVxuICAgICAgZmxleC1ncm93OiAwLFxuICAgICAgZmxleC1zaHJpbms6IDEsXG4gICAgICBmbGV4LWJhc2lzOiA0MDNweCxcbiAgICAgIGxpbmUtaGVpZ2h0OjEuNSxcbiAgICAgIHBhZGRpbmc6IFwiMTBweFwiLFxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWRvdHVtLFxuICAgICAgZm9udC1zaXplOiAxMnB4LFxuICAgICksXG4gICksXG4gIHN0eWxlMSA6ICggLy8uZm9ybS13cmFwLXN0eWxlMSAo7IKs7JeF7ISk66qF7ZqMIO2MneyXhSDsgqzsmqkgLyBwcmVzZW50YXRpb25faW5zZXJ0LnBocClcbiAgICBtYXJnaW4tYm90dG9tOiAtMjRweCxcbiAgICBmb3JtLXdyYXA6ICggLy8uZm9ybS13cmFwLWZsZXggLmZvcm0td3JhcFxuICAgICAgbWFyZ2luLWJvdHRvbTogMjRweCxcbiAgICApLFxuICAgIGZvcm0tdGl0bGU6ICggLy8uZm9ybS13cmFwLWZsZXggLmZvcm0tdGl0bGVcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweCxcbiAgICAgIGZvbnQtc2l6ZTogMTVweCxcbiAgICAgIGNvbG9yOiAjNTU1LFxuICAgICksXG4gICAgZm9ybS1ib2R5OiAoIC8vLmZvcm0td3JhcC1mbGV4IC5mb3JtLWJvZHlcbiAgICAgIGZvbnQtc2l6ZTogMTVweCxcbiAgICApLFxuICApLFxuKTtcbi8vX2lucHV0XG4kZ19maWVsZC1zdHlsZTogKCAvLyggZm9ybeyXkOyEnCDqsJnsnbQgJ2lucHV0LHNlbGVjdCx0ZXh0YXJlYScgc3R5bGXsnbQg7ZWo6ruYIOyCrOyaqeyLnCApXG4gIHN0eWxlMTogKCAvL+q0gOumrOyekFxuICAgIGlucHV0X2RlZmF1bHQgOiAoIC8vLmZpZWxkLXN0eWxlMSBpbnB1dCAuLlxuICAgICAgaGVpZ2h0OmF1dG8sXG4gICAgICBwYWRkaW5nOiAwIDAgNXB4IDAsXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50LFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNWQ2ZDgsXG4gICAgICBmb2N1cy1zdHlsZSA6IChib3JkZXI6MXB4IHNvbGlkICRnX3BvaW50LXRoZW1lLWNvbG9yLFxuICAgICAgKSxcbiAgICAgIHBsYWNlaG9sZGVyLXN0eWxlIDogKGNvbG9yOiAjY2NjZmQ2LFxuICAgICAgKSxcbiAgICApLFxuICAgIHNlbGVjdCA6ICggLy8uZmllbGQtc3R5bGUxIHNlbGVjdCAuLlxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTAwcHggYm90dG9tIDUwJSxcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL2J0bl9zZWxlY3RfYXJyb3dfc3QwMS5zdmcpLFxuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDdweCxcbiAgICApLFxuICAgIHRleHRhcmVhIDogKCAvLy5maWVsZC1zdHlsZTEgdGV4dGFyZWEgLi5cbiAgICAgIGhlaWdodDoxNTBweCxcbiAgICAgIHBhZGRpbmcgOiA1cHgsXG4gICAgICBib3JkZXI6MXB4IHNvbGlkICNkZGQsXG4gICAgKSxcbiAgKSxcbiAgc3R5bGUyOiAoIC8v7ZqM7JuQ6rCA7J6FLCDtmozsm5DsoJXrs7QsIOyjvOusuOqysOygnCwg7KO866y47ZmV7J24IO2PvFxuICAgIGlucHV0X2RlZmF1bHQgOiAoZmxleC1ncm93OiAxLFxuICAgICAgZmxleC1zaHJpbms6IDAsXG4gICAgICBmbGV4LWJhc2lzOiAxMDAlLFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdfYm9yZGVyLWNvbG9yLFxuICAgICAgaGVpZ2h0OiAzN3B4LFxuICAgICAgcGFkZGluZzogMCAxMHB4LFxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWRvdHVtLFxuICAgICAgZm9udC1zaXplOiAxMnB4LFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbSxcbiAgICAgIHBsYWNlaG9sZGVyLXN0eWxlIDogKGNvbG9yOiAjYWFhLFxuICAgICAgKSxcbiAgICApLFxuICAgIHNlbGVjdCA6ICggLy8gKO2ajOybkOqwgOyehSztmozsm5DsoJXrs7QpIOyXsOudveyymFxuICAgICAgcGFkZGluZzogMCAyMHB4IDAgMTBweCxcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDVweCBib3R0b20gNTAlLFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC92aWV3cy9yZXMvaW1ncy9jb21tb24vYnRuX3NlbGVjdF9hcnJvd19zdDAyLnN2ZyksXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggN3B4LFxuICAgICAgbWVkaWE6KG1kOihwYWRkaW5nOiAwIDM1cHggMCAxMHB4LFxuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwcHggYm90dG9tIDUwJSxcbiAgICAgICAgKSkpLFxuICAgIHRleHRhcmVhIDogKG1heC13aWR0aDppbml0aWFsLFxuICAgICAgaGVpZ2h0OjEwMHB4LFxuICAgICAgcGFkZGluZyA6IDEwcHgsXG4gICAgKSksXG4gIHN0eWxlMzogKCAvL+uhnOq3uOyduCwg7ZqM7JuQ6rCA7J6FIO2UjOuhnOyasCAvL+yImOygleyZhOujjFxuICAgIGlucHV0X2RlZmF1bHQgOiAoYm9yZGVyOiAxcHggc29saWQgI2RkZCxcbiAgICAgIGhlaWdodDogNTBweCxcbiAgICAgIHBhZGRpbmc6IDAgMTBweCxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50LFxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWRvdHVtLFxuICAgICAgZm9udC1zaXplOiAxMnB4LFxuICAgICAgcGxhY2Vob2xkZXItc3R5bGUgOiAoY29sb3I6ICNhYWEsXG4gICAgICApLFxuICAgICAgbWVkaWE6IChtZDogKGhlaWdodDo1NXB4LFxuICAgICAgICApKSksXG4gICAgc2VsZWN0IDogKG92ZXJmbG93OiBoaWRkZW4sXG4gICAgKSksXG4gIHN0eWxlNDogKCAvLyjsgqzsl4XshKTrqoXtmowg7Yyd7JeFIOyCrOyaqSAvIHByZXNlbnRhdGlvbl9pbnNlcnQucGhwKVxuICAgIGlucHV0X2RlZmF1bHQgOiAoYm9yZGVyOiAxcHggc29saWQgJGdfYm9yZGVyLWNvbG9yLFxuICAgICAgaGVpZ2h0OiA1MHB4LFxuICAgICAgcGFkZGluZzoxNXB4IDEwcHgsXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCxcbiAgICAgIGZvbnQtc2l6ZTogMTRweCxcbiAgICAgIHBsYWNlaG9sZGVyLXN0eWxlIDogKGNvbG9yOiAjYWFhLFxuICAgICAgICBmb250LXdlaWdodDozMDAsXG4gICAgICApLFxuICAgICAgbWVkaWE6IChtZDogKGZvbnQtc2l6ZTogMTVweCxcbiAgICAgICAgICBwYWRkaW5nOjE1cHgsXG4gICAgICAgICkpKSxcbiAgICBzZWxlY3QgOiAocGFkZGluZy1yaWdodDogMzBweCxcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDIwcHggY2VudGVyLFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC92aWV3cy9yZXMvaW1ncy9jb21tb24vY29tbW9uX2Fycm93X2ljb25fZG93bi5zdmcpLFxuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDdweCxcbiAgICApLFxuICApKTtcblxuLy9fdGV4dGFyZWFcbiRnX3RleHQtYXJlYS1zdHlsZTogKCAvLygg7Y6Y7J207KeA7JeQ7IScIOyCrOyaqeyLnCApXG4gIHN0eWxlMTogKCAvLy50ZXh0YXJlYS1zdHlsZTEgdGV4dGFyZWEge31cbiAgICAvLyDsgqzsmqnsi5wgY3NzIOy2lOqwgFxuICApLFxuKTtcblxuLy9fc2VsZWN0XG4kZ19zZWxlY3Qtc3R5bGU6ICggLy8uc2VsZWN0LXN0eWxlMSBzZWxlY3Qge30gKCDtjpjsnbTsp4Dsl5DshJwg7IKs7Jqp7IucIClcbiAgc3R5bGUxOiAoIC8vIOyDge2SiCDrpqzsiqTtirgsIOyDgeyEuCwg66eI7J207Y6Y7J207KeAIFxuICAgIHdpZHRoOiAxMDAlLFxuICAgIGhlaWdodDogNTBweCxcbiAgICBsaW5lLWhlaWdodDogNDdweCxcbiAgICBwYWRkaW5nOiAwIDEwcHgsXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdfYm9yZGVyLWNvbG9yLFxuICAgIGZvbnQtc2l6ZTogMTVweCxcbiAgICBjb2xvcjogIzU1NSxcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5MiUgNTAlLFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL2NvbW1vbl9hcnJvd19pY29uX2Rvd24uc3ZnKSxcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGluaXRpYWwsXG4gICAgYmFja2dyb3VuZC1jb2xvcjojZmZmLFxuICAgIG1lZGlhOiAoc206IChwYWRkaW5nOiAwIDE1cHgsXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDkwJSA1MCUsXG4gICAgICApKSksXG4gIHN0eWxlMjogKCAvLyDqsozsi5ztjJAg6riA7JOw6riwICjqsozsi5zrrLwg7YOA7J6FKVxuICAgIHdpZHRoOiAxMjBweCxcbiAgICBoZWlnaHQ6IDM3cHgsXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdfYm9yZGVyLWNvbG9yLFxuICAgIHBhZGRpbmc6IDAgMTBweCxcbiAgICBmb250LXNpemU6IDEycHgsXG4gICAgY29sb3I6ICMyMjIsXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTAlIDUwJSxcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9jb21tb25fYXJyb3dfaWNvbl9kb3duLnN2ZyksXG4gICAgYmFja2dyb3VuZC1zaXplOiBpbml0aWFsLFxuICApLFxuKTtcblxuLy9fY2hlY2stYm94XG4kZ19jaGVjay1ib3gtaW1nOiAoaW1nLTEgOiAoZGlzcGxheTpmbGV4LFxuICAgIGFsaWduLWl0ZW1zIDogZmxleC1zdGFydCxcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHgsXG4gICAgY29sb3I6IzY2NixcbiAgICBjaGVja2JveC1zdHlsZSA6IChkaXNwbGF5OiBpbmxpbmUtYmxvY2ssXG4gICAgICB3aWR0aDogMjJweCxcbiAgICAgIG1pbi13aWR0aDogMjJweCxcbiAgICAgIGhlaWdodDogMjJweCxcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKC92aWV3cy9yZXMvaW1ncy9wYWdlL2ltZ19jaGVja2JveDAyX29mZi5zdmcpLFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSxcbiAgICApLFxuICAgIGNoZWNrZWQtc3R5bGUgOiAoYmFja2dyb3VuZC1pbWFnZTogdXJsKC92aWV3cy9yZXMvaW1ncy9wYWdlL2ltZ19jaGVja2JveDAyX29uLnN2ZyksXG4gICAgKSxcbiAgICB0ZXh0LXN0eWxlIDogKGRpc3BsYXk6IGZsZXgsXG4gICAgICBmbGV4LXdyYXA6IHdyYXAsXG4gICAgICBsaW5lLWhlaWdodDoxLjUsXG4gICAgICBwYWRkaW5nLWxlZnQ6N3B4LFxuICAgICAgZm9udC1zaXplOiAxNHB4LFxuICAgICAgY2hlY2sgOiAoY29sb3I6I2ZmOGUyYSxcbiAgICAgICksXG4gICAgKSxcbiAgKSxcbiAgaW1nLTIgOiAoZGlzcGxheTppbmxpbmUtYmxvY2ssXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4LFxuICAgIGNoZWNrYm94LXN0eWxlIDogKGRpc3BsYXk6IGlubGluZS1ibG9jayxcbiAgICAgIHdpZHRoOiAzMnB4LFxuICAgICAgaGVpZ2h0OiAzMnB4LFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDFfb2ZmLnBuZyksXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlLFxuICAgICksXG4gICAgY2hlY2tlZC1zdHlsZSA6IChiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDFfb24ucG5nKSxcbiAgICApLFxuICAgIHRleHQtc3R5bGUgOiAoZGlzcGxheTogaW5saW5lLWJsb2NrLFxuICAgICAgcGFkZGluZy1sZWZ0OjRweCxcbiAgICAgIGZvbnQtc2l6ZTogMTRweCxcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUsXG4gICAgKSxcbiAgKSxcbik7XG4kZ19jaGVjay1ib3gtdGFnOiAodGFnLTEgOiAoIC8vIOyVhOydtOuUlOyggOyepSAvLyDslb3qtIDrj5nsnZggLy8g6rKw7KCc7IiY64uoIC8v67Cw7Iah7KeAIOyEoO2DnSAvLyDrsLDshqHsp4Dsl60g7ISg7YOdXG4gICAgcG9zaXRpb246IHJlbGF0aXZlLFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayxcbiAgICBtYXJnaW4tcmlnaHQ6MzBweCwgLy9zZWxmXG4gICAgY2hlY2tib3gtc3R5bGUgOiAoIC8vICY6YmVmb3JlXG4gICAgICB0b3A6OXB4LFxuICAgICAgd2lkdGg6IDIycHgsXG4gICAgICBoZWlnaHQ6IDIycHgsXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjLFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcbiAgICApLFxuICAgIGNoZWNrZWQtc3R5bGUgOiAoIC8vLmN1c3RvbS1jaGVja2VkXG4gICAgICBsZWZ0OjAsXG4gICAgICB0b3A6OXB4LFxuICAgICAgd2lkdGg6IDIycHgsXG4gICAgICBoZWlnaHQ6IDIycHgsXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ19wb2ludC10aGVtZS1jb2xvcjIsXG4gICAgKSxcbiAgICB0ZXh0LXN0eWxlIDogKCAvLy50ZXh0XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmUsXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2ssXG4gICAgICBsaW5lLWhlaWdodDogMSxcbiAgICAgIHBhZGRpbmctbGVmdDogMzFweCwgLy8g67CV7Iqk7YGs6riwICsg67CV7Iqk7JmAIO2FjeyKpO2KuCDsgqzsnbTsnZgg6rCE6rKpXG4gICAgICBmb250LXNpemU6IDE1cHgsXG4gICAgICBjb2xvcjogIzAwMCxcbiAgICApLFxuICApLFxuICB0YWctMiA6IChwb3NpdGlvbjogcmVsYXRpdmUsXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrLFxuICAgIG1hcmdpbi1yaWdodDoxNXB4LCAvL3NlbGZcbiAgICBjaGVja2JveC1zdHlsZSA6ICggLy8gJjpiZWZvcmVcbiAgICAgIHdpZHRoOiAxN3B4LFxuICAgICAgaGVpZ2h0OiAxN3B4LFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZCxcbiAgICApLFxuICAgIGNoZWNrZWQtc3R5bGUgOiAoIC8vLmN1c3RvbS1jaGVja2VkXG4gICAgICAvLyB3aWR0aDo5cHgsXG4gICAgICAvLyBoZWlnaHQ6IDlweCxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTUsXG4gICAgKSxcbiAgICB0ZXh0LXN0eWxlIDogKCAvLy50ZXh0XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHgsIC8vIOuwleyKpO2BrOq4sCArIOuwleyKpOyZgCDthY3siqTtirgg7IKs7J207J2YIOqwhOqyqVxuICAgICAgZm9udC1zaXplOiAxNHB4LFxuICAgICksXG4gICkpOyIsIi8vIF9jYXJkXG4kZ19jYXJkLXdyYXA6IChcbiAgZGVmYXVsdDogKFxuICAgIHdyYXA6IChcbiAgICAgIHBhZGRpbmc6IDAgMzBweCxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgICBtYXJnaW4tYm90dG9tOiAzMHB4LFxuICAgICAgYm9yZGVyLXN0eWxlOiAoIGJvcmRlcjogXCIxcHggc29saWQgI2U3ZTllZVwiICksXG4gICAgICBib3JkZXItcmFkaXVzOiA1cHhcbiAgICApLFxuICAgIGhlYWRlcjogKFxuICAgICAgcGFkZGluZzogMjVweCAwLFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcbiAgICAgIGJvcmRlci1zdHlsZTogKCBib3JkZXItYm90dG9tOiBcIjFweCBzb2xpZCAjZTdlOWVlXCIgKSxcbiAgICAgIGZvbnQtc2l6ZTogMTZweFxuICAgICksXG4gICAgYm9keTogKFxuICAgICAgcGFkZGluZzogMzBweCAwLFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZlxuICAgICksXG4gICAgZm9vdGVyOiAoXG4gICAgICBwYWRkaW5nOiAyNXB4IDAsXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxuICAgICAgYm9yZGVyLXN0eWxlOiAoIGJvcmRlci10b3A6IFwiMXB4IHNvbGlkICNlN2U5ZWVcIiApXG4gICAgKVxuICApXG4pO1xuIiwiLy8gX3RhYmxlXG4kZ19ycC10YWJsZTogKFxuICBzdHlsZTE6IChcbiAgICBmb250LWZhbWlseTokZm9udC1kb3R1bSxcbiAgICBjb2xvcjojMjIyLFxuICAgIHJwLXRhYmxlOiAoXG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzIyMlxuICAgICksXG4gICAgcnAtdGhlYWQ6IChcbiAgICAgIGRpc3BsYXk6IG5vbmUsXG4gICAgICBtZWRpYTogKFxuICAgICAgICBtZDogKFxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLFxuICAgICAgICAgIHdpZHRoOiAxMDAlLFxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkLFxuICAgICAgICAgIHBhZGRpbmc6IDAgMjBweCxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICApLFxuICAgIHJwLXRoOiAoXG4gICAgICBtZWRpYTogKFxuICAgICAgICBtZDogKFxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwsXG4gICAgICAgICAgcGFkZGluZzogMThweCA1cHgsXG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4LFxuICAgICAgICAgIGNvbG9yOiAjODg4LFxuICAgICAgICApLFxuICAgICAgKVxuICAgICksXG4gICAgcnAtdHI6IChcbiAgICAgIGRpc3BsYXk6IGJsb2NrLFxuICAgICAgcGFkZGluZzogOXB4IDVweCxcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkLFxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNXMsXG4gICAgICAvLyBcIiZcIiA6IChcbiAgICAgIC8vICAgXCI6aG92ZXJcIiA6IChcbiAgICAgIC8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhLFxuICAgICAgICAvLyApLFxuICAgICAgICAvLyBcIi5ub25lLWhvdmVyOmhvdmVyXCIgOiAoXG4gICAgICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcbiAgICAgICAgLy8gKSxcbiAgICAgIC8vICksXG4gICAgICBtZWRpYTogKFxuICAgICAgICBtZDogKFxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLFxuICAgICAgICAgIHdpZHRoOiAxMDAlLFxuICAgICAgICAgIHBhZGRpbmc6IDAgMjBweCxcbiAgICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICksXG4gICAgcnAtdGQ6IChcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayxcbiAgICAgIHBhZGRpbmc6IDVweCxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50LFxuICAgICAgZm9udC1zaXplOiAxMXB4LFxuICAgICAgXCImXCIgOiAoXG4gICAgICAgIFwiLnRkLWJsb2NrXCIgOiAoXG4gICAgICAgICAgZGlzcGxheSA6IGJsb2NrXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBtZWRpYTogKFxuICAgICAgICBtZDogKFxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwsXG4gICAgICAgICAgd2lkdGg6IDEwMCUsXG4gICAgICAgICAgcGFkZGluZzogMTZweCA1cHgsXG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4LFxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUsXG4gICAgICAgICAgXCImXCIgOiAoXG4gICAgICAgICAgICBcIi50ZC1ibG9ja1wiIDogKFxuICAgICAgICAgICAgICBkaXNwbGF5IDogdGFibGUtY2VsbFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICApLFxuICApXG4pO1xuIiwiLy8gX3RhYlxuJGdfdGFiLWdyb3VwIDogKCAvLyAudGFiLXdyYXAgPiAudGFiLWxpc3RcbiAgdGFiLXdyYXAtZGVmYXVsdCA6ICggXG4gICAgZGlzcGxheTogYmxvY2ssXG4gICAgbWFyZ2luLWJvdHRvbTo2MHB4LFxuICAgIGZvbnQtc2l6ZTogMCxcbiAgICBjb2xvcjogIzAwMCxcbiAgICB0ZXh0LWFsaWduOmNlbnRlcixcbiAgKSxcbiAgYm94LXN0eWxlIDogKCBcbiAgICB0YWItbGlzdCA6ICggXG4gICAgICBkaXNwbGF5OmlubGluZS1ibG9jayxcbiAgICAgIHdpZHRoOjE0MHB4LFxuICAgICAgcGFkZGluZzoxM3B4IDEwcHgsXG4gICAgICBib3JkZXI6MXB4IHNvbGlkICNiYmIsXG4gICAgICBib3JkZXItcmlnaHQ6IDAsXG4gICAgICBmb250LXNpemU6IDE1cHgsXG4gICAgICBjb2xvcjogIzc3Nzc3NyxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgICBjdXJzb3I6cG9pbnRlcixcbiAgICAgIGFjdGl2ZSA6ICggLy8udGFiLWxpc3QuYWN0aXZlXG4gICAgICAgIGJvcmRlci1jb2xvcjokZ19wb2ludC1mb250LWNvbG9yMixcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdfcG9pbnQtdGhlbWUtY29sb3IyLFxuICAgICAgICBjb2xvcjogJGdfd2hpdGUsXG4gICAgICApLFxuICAgICAgXCImXCIgOiAoXG4gICAgICAgIFwiOmxhc3QtY2hpbGRcIiA6IChcbiAgICAgICAgICBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNiYmIsXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICApLFxuKTtcbiIsIlxuLy8gX3BhZ2luYXRpb24gXG4kZ19wYWdlLWl0ZW0tZ3JvdXAgOiAoIC8vICjrqoXsua0gOiBhIO2DnOq3uCBwYWdlLWxpbmsg66GcKOyKpO2DgOydvCkgIC8gcGFnZS1pdGVtIOydtCDqsIHsnpDsnZggd3JhcCAo6rCE6rKp7KGw7KCVKS8g7KCE7LK066W8IC5wYWdpbmF0aW9u7J20IOqwkOyLuOqzoCDsnojsnYwpXG4gIC8vIGRlZmF1bHRcbiAgLy8gd2lkdGg6MjBweCxcbiAgaGVpZ2h0OjIwcHgsXG5cbiAgLy9wYWRkaW5nOjIwcHgsXG4gIC8vIG1hcmdpbjowIC0xcHgsXG4gIC8vIHRoZW1lLWNvbG9yOiAjZmZmLFxuICAvLyBib3JkZXIgOiAxcHggc29saWQgIzIyMixcbiAgLy9ib3JkZXItcmFkaXVzOiAzcHgsXG4gIC8vYm9yZGVyLXJhZGl1cy1mLWw6IDNweCwgLy8g7LKr67KI7Ke4IOuniOyngOuniSDrsoTtirwg7L2U64SIIHJhZGl1c1xuICAvL2JvcmRlci1yaWdodCA6IG5vbmUsIC8vIOuyhO2KvOydtCDrtpnslrTsnojripQg6rK97JqwXG4gIC8vYm9yZGVyLXN0eWxlOiAoIC8vIGxhc3QtY2hpbGTsl5Ag7KCB7Jqp65CoXG4gIC8vXHRib3JkZXItcmlnaHQgOiBcIjFweCBzb2xpZCAjZTFlMWUxXCIsXG4gIC8vKSxcblxuICBmb250LXNpemU6MTNweCxcbiAgZm9udC13ZWlnaHQ6NDAwLFxuICAvLyBsZXR0ZXItc3BhY2luZzotMC4wNWVtLFxuICBmb250LWNvbG9yOiNhYWEsXG4gIGZvbnQtZmFtaWx5OiRmb250LWxhdG8sXG4gIC8vIGhvdmVyXG4gIGhvdmVyLXRoZW1lLWNvbG9yOiNmZmYsXG4gIC8vIGhvdmVyLWJvcmRlci1jb2xvciA6ICNkZGQsXG4gIGhvdmVyLWNvbG9yOiMwMDAsXG5cbiAgLy8gYWN0aXZlXG4gIC8vIGFjdGl2ZS10aGVtZTojZjJmMmYyLFxuICBhY3RpdmUtY29sb3I6IzAwMCxcbiAgYWN0aXZlLXN0eWxlOiAoIC8vIOy7pOyKpO2FgOyaqVxuICAgIC8qIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ19wb2ludC10aGVtZS1jb2xvciwgKi9cbiAgICBmb250LXdlaWdodDpib2xkLFxuICApLFxuXG4gIC8vIGRpc2FibGVkXG4gIGRpbS1vcGFjaXR5IDogLjUsXG4gIC8vZGlzYWJsZWQtc3R5bGU6ICggLy8g7Luk7Iqk7YWA7JqpXG4gIC8vXHQvL+uyhO2KvOyXkOyEnOuKlCBtYXAtaGFzLWtleeqwkuydhCDsnbTsmqntlbTshJwg7YKk6rCS7J20IOyeh+ycvOuptCDrp7XsnZgg7YKk6rCS6rO8IOuyqOulmOuhnCDstpzroKVcbiAgLy9cdC8v7Y6Y7J207KeA64Sk7J207IWY7JeQ7ISc64qUIO2CpOqwkuydtCDsnojsnLzrqbQg7JWI7JeQIOuCtOyaqSDqt7jrjIDroZwg7Lac66ClLi5cbiAgLy9cdC8v6rKw6rO8IOqwkuydgCDqsJnsnLzrgpggbWl4aW7rsKnrspXsnbQg64uk66W064ukIO2YhOyerFxuICAvL1x0YmFja2dyb3VuZC1jb2xvcjojMTExLFxuICAvL1x0Y29sb3I6ICMxMTEsXG4gIC8vXHRib3JkZXItYm90dG9tOlwiMnB4IHNvbGlkICMwMjM4OGJcIixcbiAgLy8pLFxuICBhcnJvdy1ncm91cCA6IChcbiAgICBzdGFydCA6ICggLy/su6TsiqTthYBcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlIDp1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9jb21tb25fYXJyb3dfaWNvbl9zdGFydC5zdmcpLFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIsXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQsXG4gICAgKSxcbiAgICBwcmV2IDogKFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIGJhY2tncm91bmQtaW1hZ2UgOnVybCgvdmlld3MvcmVzL2ltZ3MvYm9hcmQvcGFnaW5hdGlvbl9wcmV2X2ljb24ucG5nKSxcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyLFxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0LFxuICAgICksXG4gICAgbmV4dCA6IChcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlIDp1cmwoL3ZpZXdzL3Jlcy9pbWdzL2JvYXJkL3BhZ2luYXRpb25fbmV4dF9pY29uLnBuZyksXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcixcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCxcbiAgICApLFxuICAgIGVuZCA6IChcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlIDp1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9jb21tb25fYXJyb3dfaWNvbl9lbmQuc3ZnKSxcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyLFxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0LFxuICAgICksXG4gICksXG4pO1xuIiwiLy8gVG9nZ2xlc1xuLy9cbi8vIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBnbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBjZXJ0YWluIHRoZW1lIGZlYXR1cmVzLlxuXG5AaW1wb3J0IFwibWl4aW5zL19tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcIm1peGlucy9fbWFwXCI7XG5cbi8vIFV0aWxpdGllc1xuLy9AaW1wb3J0IFwibWl4aW5zL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwibWl4aW5zL19jbGVhclwiO1xuQGltcG9ydCBcIm1peGlucy9fZmxvYXRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2hvdmVyXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvaW1hZ2VcIjtcbi8vQGltcG9ydCBcIm1peGlucy9iYWRnZVwiO1xuLy9AaW1wb3J0IFwibWl4aW5zL3Jlc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy9fc2NyZWVucmVhZGVyXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy9fcmVzZXQtdGV4dFwiO1xuQGltcG9ydCBcIm1peGlucy9fcHJlZml4ZXJcIjtcbi8vQGltcG9ydCBcIm1peGlucy90ZXh0LWVtcGhhc2lzXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvdGV4dC1oaWRlXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvdGV4dC10cnVuY2F0ZVwiO1xuLy9AaW1wb3J0IFwibWl4aW5zL3RyYW5zZm9ybXNcIjtcbi8vQGltcG9ydCBcIm1peGlucy92aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwibWl4aW5zL19ib3JkZXItcmFkaXVzXCI7XG5cbi8vIC8vIExheW91dFxuLy8gQGltcG9ydCBcIm1peGlucy9uYXZiYXItYWxpZ25cIjtcbi8vQGltcG9ydCBcIm1peGlucy9ncmlkLWZyYW1ld29ya1wiO1xuQGltcG9ydCBcIm1peGlucy9fYXJlYVwiO1xuQGltcG9ydCBcIm1peGlucy9fZ3JpZFwiO1xuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vLy9cblxuXG4vLyAvLyBDb21wb25lbnRzXG4vL0BpbXBvcnQgXCJtaXhpbnMvYWxlcnRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwibWl4aW5zL19idXR0b25zXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NhcmRzXCI7XG5AaW1wb3J0IFwibWl4aW5zL19wYWdpbmF0aW9uXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvbGlzdHNcIjtcbi8vQGltcG9ydCBcIm1peGlucy9saXN0LWdyb3VwXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvbmF2LWRpdmlkZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2Zvcm1zXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RhYmxlc1wiO1xuLy9AaW1wb3J0IFwibWl4aW5zL3RhYmxlLXJvd1wiO1xuQGltcG9ydCBcIm1peGlucy9fdGFiXCI7XG5cbiIsIi8vIG1lZGlhLXF1ZXJ5LW1pbiDrr7nsiqTsnbhcbi8vIFvrp6TqsJzrs4DsiJhdXG4vLyAkYnJlYWtwb2ludCDquLDrs7jqsJI6IOyXhuydjFxuLy8gJGJyZWFrcG9pbnQg7JeQIOqwgOyaqeqwgOuKpe2VnCDqsJJcbi8vICgxKSAkbWVkaWEtYnJlYWtwb2ludHMg7J2YIO2CpCDqsJIgKHhzLCBzbSwgbWQsIGxnLCB4bCAp7KSRIO2VmOuCmFxuLy8gKDIpIOqzoOyglSBweOqwklxuLy8gJGJyZWFrcG9pbnQg7KCE64us65CcIOqwkuyXkCDrlLDrnbzshJwgQG1lZGlhKG1pbi13aWR0aDogXCLrp6TqsJzrs4DsiJjsl5Ag7ZW064u57ZWY64qUIOqwklwiKSDshYvtjIXtlbTspI3ri4jri6QuXG4vLyAkYnJlYWtwb2ludCDqsJLsnYQg7ZS97IWA66GcIOuEo+uKlOuLpOuptCDtlbTri7kg7ZS97IWA6rCS7J2YIOuvuOuUlOyWtOy/vOumrOulvCDrp4zrk6TslrQg7KSN64uI64ukLlxuLy8gZXgpIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihsZykgeyBAY29udGVudCB9XG4vLyBleCkgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKDUwMHB4KSB7IEBjb250ZW50IH1cbkBtaXhpbiBtZWRpYS1xdWVyeS1taW4oICRicmVha3BvaW50ICkge1xuICBAaWYgbWFwX2hhc19rZXkoICRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCApe1xuICAgIEBpZiAgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcbiAgICAgIEBjb250ZW50XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcF9nZXQoJGdfbWVkaWEtYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkge1xuICAgICAgICBAY29udGVudFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiB1bml0KCRicmVha3BvaW50KSA9PSBcInB4XCIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50KXsgIEBjb250ZW50ICB9XG4gIH1cbn1cbkBtaXhpbiBtZWRpYS1xdWVyeS1tYXgoICRicmVha3BvaW50ICkge1xuICBAaWYgbWFwX2hhc19rZXkoICRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCApe1xuICAgIEBpZiAgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcbiAgICAgIEBjb250ZW50XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IG1hcF9nZXQoJGdfbWVkaWEtYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkge1xuICAgICAgICBAY29udGVudFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiB1bml0KCRicmVha3BvaW50KSA9PSBcInB4XCIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50KXsgIEBjb250ZW50ICB9XG4gIH1cbn1cblxuXG4vLyBtZWRpYS1xdWVyeS1taW4tdmFsIO2VqOyImFxuLy8g7KCE7Jet67OA7IiYICRtZWRpYS1icmVha3BvaW50cyBtYXDsnZggdmFsdWXrpbwg67CY7ZmY7ZW0IOykjeuLiOuLpC5cbi8vIOyjvOuhnCBlYWNoIOusuOqzvCDqsJnsnYAgbG9vcCDrrLjsl5DshJwg7Zmc7Jqp65Cp64uI64ukLlxuLy8gZXgpXG4vLyBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXBfa2V5cygkbWVkaWEtYnJlYWtwb2ludHMpIHtcbi8vICAgJHBvaW50OiBtZWRpYS1xdWVyeS1taW4tdmFsKCRicmVha3BvaW50KTtcbi8vICAgQG1lZGlhICggbWluLXdpZHRoOiAjeyRwb2ludH0gKXtcbi8vICAgICAuI3skYnJlYWtwb2ludH0tZi1sIHsgQGluY2x1ZGUgZmxvYXQtbGVmdCB9XG4vLyAgICAgLiN7JGJyZWFrcG9pbnR9LWYtciB7IEBpbmNsdWRlIGZsb2F0LXJpZ2h0IH1cbi8vICAgICAuI3skYnJlYWtwb2ludH0tZi1uIHsgQGluY2x1ZGUgZmxvYXQtbm9uZSB9XG4vLyAgIH1cbi8vIH1cbkBmdW5jdGlvbiBtZWRpYS1xdWVyeS1taW4tdmFsKCAkYnJlYWtwb2ludCApe1xuICBAcmV0dXJuIG1hcF9nZXQoJGdfbWVkaWEtYnJlYWtwb2ludHMsICRicmVha3BvaW50KTtcbn1cblxuXG5cblxuXG5cbiIsIkBmdW5jdGlvbiBtYXAtc2V0KCRtYXAsICRrZXksICR2YWx1ZSkge1xuICAkbmV3OiAoJGtleTogJHZhbHVlKTtcbiAgQHJldHVybiBtYXAtbWVyZ2UoJG1hcCwgJG5ldyk7XG59XG5cblxuLy9wcmVmaXgg7KCc6rGwXG4vL+2DnOq3uOydtOumhCwg7IaN7ISxLCDslYTsnbTrlJQg65OxICDshYDroInthLAg6rCA64ql64+E66GdXG5AZnVuY3Rpb24gbWFrZU1hcFRvQ29kZXMoJG1hcCwgJHByZWZpeDogXCJcIiwgJHNlbGY6IGZhbHNlKSB7XG4gICRjb2RlcyA6ICgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xuICAgIEBpZiAoIHR5cGUtb2YoJHZhbCkgPT0gbWFwICkge1xuXG4gICAgICBAaWYgKCRrZXkgPT0gXCImXCIpIHtcbiAgICAgICAgJG1ha2U6IG1ha2VNYXBUb0NvZGVzKCR2YWwsIFwiXCIsIHRydWUpO1xuICAgICAgICAkY29kZXM6IG1hcC1tZXJnZSgkY29kZXMsICRtYWtlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc2VsZWN0b3I6IFwiLiN7JHByZWZpeH0jeyRrZXl9XCI7XG5cbiAgICAgICAgQGlmICgkc2VsZikge1xuICAgICAgICAgICRzZWxlY3RvciA6IFwiJiN7JHByZWZpeH0jeyRrZXl9XCI7XG4gICAgICAgIH1cbiAgICAgICAgJG1ha2U6IG1ha2VNYXBUb0NvZGVzKCR2YWwsICRwcmVmaXgpO1xuICAgICAgICAkY29kZXM6IG1hcC1zZXQoJGNvZGVzLCAkc2VsZWN0b3IsICRtYWtlKTtcbiAgICAgIH1cbiAgICAgIFxuICAgIH0gQGVsc2Uge1xuICAgICAgJGNvZGVzOiBtYXAtc2V0KCRjb2RlcywgJGtleSwgJHZhbCk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGNvZGVzO1xufTtcblxuXG5AbWl4aW4gcHJpbnRDb2RlcygkbWFwKSB7XG5cbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkbWFwIHtcbiAgIFxuICAgIEBpZiAoIHR5cGUtb2YoJHZhbCkgPT0gbWFwICkge1xuICAgICAgI3ska2V5fSB7XG4gICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJHZhbCk7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAjeyRrZXl9IDogI3skdmFsfTtcbiAgICB9XG4gICAgXG4gIH1cbn1cblxuLy8gaXNNYXAg7ZWo7IiYXG4vLyAje2tleX0gOiAje3ZhbHVlfeydmCDtmJXtg5zrpbwg66as7YS07ZW07KO864qUIO2VqOyImFxuLy8gaXNNYXAoJHZhbCwgJGtleSk7XG4vLyBpc01hcCDtlajsiJjsl5DshJwg7J247J6Q66GcIOuEmOyWtOyYqCAnJHZhbCfsl5Ag7ZWg64u565CcIOqwkuydtCBtYXDsnbTrnbzrqbQgaXNtYXDtlajsiJjrpbwg7J6s6reA7Zi47LacIO2VnOuLpC5cbi8vIOyYiOyZuOyggeycvOuhnCDtgqTqsJLsnbQgXCJfXCIg652866m0IGlzUHNldWRv66W8IO2YuOy2nO2VnOuLpC5cbi8vIOy1nOyiheyggeycvOuhnCAje2tleX0gOiAje3ZhbHVlfeydmCDqsJLsnYQg66as7YS07ZWY64+E66GdIOunjOuToOuLpC5cblxuLy9pc1BzZXVkbyDtlajsiJhcbi8v6rCA7IOBIOyEoO2DneyekOulvCDrp4zrk6TslrQg66as7YS07ZW07KO864qUIO2VqOyImFxuLy9cblxuXG4vL0BmdW5jdGlvbiBpc01hcCAoJHZhbCwgJGtleSkge1xuLy8gICRyZXN1bHQgOiAoKTtcbi8vXG4vLyAgQGlmICh0eXBlLW9mKCR2YWwpID09IG1hcCkge1xuLy8gICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuLy8gICAgICBAaWYgKHR5cGUtb2YoJHZhbDIpID09IG1hcCBhbmQgJGtleSA9PSBudWxsKSB7XG4vLyAgICAgICAgJG1hcCA6IGlzTWFwKCR2YWwyLCAka2V5Mik7XG4vLyAgICAgICAgJG1hcGtleSA6IG1hcC1rZXlzKCRtYXApO1xuLy8gICAgICAgICRyZXN1bHQ6IG1hcC1zZXQoJHJlc3VsdCwgJG1hcGtleSwgbWFwLWdldCgkbWFwLCAjeyRtYXBrZXl9KSk7XG4vLyAgICAgIH0gQGVsc2UgaWYgKHR5cGUtb2YoJHZhbDIpID09IG1hcCBhbmQgJGtleSA9PSBcIl9cIil7XG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAka2V5MiwgaXNNYXAoJHZhbDIsICRrZXkyKSk7XG4vLyAgICAgIH0gQGVsc2Uge1xuLy8gICAgICAgICRyZXN1bHQ6IG1hcC1zZXQoJHJlc3VsdCwgJGtleTIsICR2YWwyKTtcbi8vICAgICAgfVxuLy8gICAgfVxuLy8gIH0gQGVsc2Uge1xuLy8gICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAkdmFsLCAka2V5KTtcbi8vICB9XG4vL1xuLy8gIEByZXR1cm4gJHJlc3VsdDtcbi8vfTtcblxuXG4vL0BmdW5jdGlvbiBpc1BzZXVkbyAoJGtleSwgJHZhbCkge1xuLy8gICRyZXN1bHQ6IG51bGw7XG4vLyAgQGlmICgka2V5ID09IFwiX1wiKSB7XG4vLyAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XG4vLyAgICAgICRyZXN1bHQ6IGlzTWFwKCRrZXkyLCAkdmFsMik7XG4vLyAgICAgIEByZXR1cm4gaXNNYXAoJGtleTIsICR2YWwyKTtcbi8vICAgIH1cbi8vICB9IEBlbHNlICB7XG4vLyAgICAkcmVzdWx0OiBpc01hcCgka2V5LCAkdmFsKTtcbi8vICAgIEByZXR1cm4gJHJlc3VsdDtcbi8vICB9XG4vL307XG5cblxuIiwiQG1peGluIGNsZWFyKCkge1xuICAmOjphZnRlciB7XG4gICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICBjbGVhcjogYm90aDtcbiAgIH1cbn1cblxuXG5cbiIsIkBtaXhpbiBmbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cbkBtaXhpbiBmbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuQG1peGluIGZsb2F0LW5vbmUge1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiQG1peGluIGhvdmVyLW9ue1xuICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSwgJi5vbnsgQGNvbnRlbnQ7IH1cbn1cblxuQG1peGluIGhvdmVye1xuICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7IEBjb250ZW50OyB9XG59XG4iLCIvLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cbi8vIFNlZTogaHR0cDovL2ExMXlwcm9qZWN0LmNvbS9wb3N0cy9ob3ctdG8taGlkZS1jb250ZW50L1xuLy8gU2VlOiBodHRwczovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBzci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7XG59XG5AbWl4aW4gdGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGEgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuIiwiQG1peGluIHJlc2V0LXRleHQge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gIC8vIFdlIGRlbGliZXJhdGVseSBkbyBOT1QgcmVzZXQgZm9udC1zaXplIG9yIHdvcmQtd3JhcC5cbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBGYWxsYmFjayBmb3Igd2hlcmUgYHN0YXJ0YCBpcyBub3Qgc3VwcG9ydGVkXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbn1cbiIsIi8vIC8qIHByZWZpeCAqL1xuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXM6KCkpe1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlc3tcbiAgICAjeyctJyskcHJlZml4KyctJyskcHJvcGVydHl9OiR2YWx1ZTtcbiAgfVxuICAjeyRwcm9wZXJ0eX0gOiAkdmFsdWU7XG59XG5cbiAgLy8gQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCByb3RhdGUoNDVkZWcpLCB3ZWJraXQgbXMpOyBvciAoXCJ3ZWJraXRcIiwgXCJtb3pcIilcblxuIC8vY3NzXG4gIC8vIC5zZWxlY3RvciB7XG4gIC8vICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC8vICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLy8gICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC8vIH1cblxuIiwiLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG4iLCIvLyBtYWtlLWFyZWEg66+57Iqk7J24XG4vLyDquLDrs7jqsJLsnbQgbnVsbOuhnCDshYvtjIXrkJjslrQg7J6I64qUIOyalOyGjOuKlCDsnbjsnpDqsIAg7KCE64us65CY7KeAIOyViuydhCDsi5wg7Lu07YyM7J28IOuQmOyngCDslYrsirXri4jri6QuXG4vLyBb66ek6rCc67OA7IiYXVxuLy8gJG1heC13aWR0aCDquLDrs7jqsJI6IG51bGxcbi8vICRndXR0ZXItd2lkdGgg6riw67O46rCSOiBudWxsXG4vLyAkd2lkdGgg6riw67O46rCSOiAxMDAlXG4vLyBleCkgQGluY2x1ZGUgbWFrZS1hcmVhKCAkbWF4LXdpZHRoOiAkbWF4LXdpZHRoLCAkZ3V0dGVyLXdpZHRoOiAkYXJlYS1ndXR0ZXItd2lkdGggKTtcbi8vIGV4KSBAaW5jbHVkZSBtYWtlLWFyZWEoICR3aWR0aDogMTYwMHB4ICk7XG4vL0BtaXhpbiBtYWtlLWFyZWEoICRtYXgtd2lkdGg6IG51bGwsICRndXR0ZXItd2lkdGg6IG51bGwsICR3aWR0aDogMTAwJSApIHtcbi8vICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgd2lkdGg6ICR3aWR0aDtcbi8vICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4vLyAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXItd2lkdGg7XG4vLyAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyLXdpZHRoO1xuLy99XG5cbkBtaXhpbiBtYWtlLWFyZWEoICRhcmVhLWluZm86ICRnX2RlZmF1bHQtYXJlYSApIHtcbiAgJHdpZHRoOiAxMDAlO1xuICBAaWYgIG1hcC1oYXMta2V5KCRhcmVhLWluZm8sIHdpZHRoKSB7XG4gICAgJHdpZHRoIDogbWFwLWdldCgkYXJlYS1pbmZvLCB3aWR0aClcbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoIDogMTAwJVxuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgbWF4LXdpZHRoOiBtYXAtZ2V0KCRhcmVhLWluZm8sIG1heC13aWR0aCk7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJGFyZWEtaW5mbywgZ3V0dGVyLXdpZHRoKTtcbiAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRhcmVhLWluZm8sIGd1dHRlci13aWR0aCk7XG59XG5cbiIsIi8vIG1ha2Utcm93IOuvueyKpOyduFxuLy8gW+unpOqwnOuzgOyImF1cbi8vICRncmlkLWd1dHRlciDquLDrs7jqsJI6ICRncmlkLWd1dHRlci13aWR0aFxuLy8gJGdyaWQtZ3V0dGVyIOyghOuLrOuQnCDqsJLsl5Ag65Sw65287IScIG1hcmdpbi1yaWdodCwgbWFyZ2luLWxlZnQg6rCS7J2EIOyFi+2Mhe2VtCDspI3ri4jri6QuXG4vLyBleCkgQGluY2x1ZGUgbWFrZS1yb3coICRncmlkLWd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKTtcbkBtaXhpbiBtYWtlLXJvdyggJGdyaWQtZ3V0dGVyIDogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IC0kZ3JpZC1ndXR0ZXI7XG4gIG1hcmdpbi1sZWZ0OiAtJGdyaWQtZ3V0dGVyO1xuICBAaW5jbHVkZSBjbGVhcigpO1xufVxuXG4vLyBtYWtlLWNvbC1zZXQg66+57Iqk7J24XG4vLyBb66ek6rCc67OA7IiYXVxuLy8gJGdyaWQtY29sLWNudCDquLDrs7jqsJI6ICRncmlkLWNvbHVtbnNcbi8vICRncmlkLWNvbC1jbnQg7KCE64us65CcIOqwkuydmCDqsJzsiJjrp4ztgoHsnZggY29sLHB1bGwscHVzaCxvZmZzZXQg65Ox7J2EIOunjOuTpOyWtOykjeuLiOuLpC5cbi8vIGV4KSBAaW5jbHVkZSBtYWtlLWNvbC1zZXQoKTtcbi8vIGV4KSBAaW5jbHVkZSBtYWtlLWNvbC1zZXQoJGdyaWQtY29sLWNudDogNSk7XG5AbWl4aW4gbWFrZS1jb2wtc2V0KCAkZ3JpZC1jb2wtaW5mbzogJGdfZ3JpZC1jb2wtaW5mbyApIHtcbiAgJGdyaWQtY29sLW5hbWU6IG51bGw7XG4gIEBpZiAgbWFwLWhhcy1rZXkoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLW5hbWUpIHtcbiAgICAkZ3JpZC1jb2wtbmFtZSA6IG1hcC1nZXQoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLW5hbWUpXG4gIH0gQGVsc2Uge1xuICAgICRncmlkLWNvbC1uYW1lIDogbnVsbFxuICB9XG4gICAgQGluY2x1ZGUgbWFrZS1jb2woIG1hcC1nZXQoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLWNudCksICRncmlkLWNvbC1uYW1lICk7XG4gIEBpbmNsdWRlIG1ha2UtcHVsbCggbWFwLWdldCgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtY250KSwgJGdyaWQtY29sLW5hbWUgKTtcbiAgQGluY2x1ZGUgbWFrZS1wdXNoKCBtYXAtZ2V0KCRncmlkLWNvbC1pbmZvLCBncmlkLWNvbC1jbnQpLCAkZ3JpZC1jb2wtbmFtZSApO1xuICBAaW5jbHVkZSBtYWtlLW9mZnNldCggbWFwLWdldCgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtY250KSwgJGdyaWQtY29sLW5hbWUgKTtcbn1cblxuXG5AbWl4aW4gbWFrZS1jb2woICRncmlkLWNvbC1jbnQ6ICRncmlkLWNvbC1jbnQsICRjb2wtbmFtZTogJGNvbC1uYW1lICkge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xuICAgICAgLiN7JGNvbC1uYW1lfWNvbCB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIC4jeyRjb2wtbmFtZX1jb2wtYXV0byB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfTtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XG4gICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtI3skaX0ge1xuICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtI3skYnJlYWtwb2ludH0tYXV0byB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH07XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XG4gICAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRicmVha3BvaW50fS0jeyRpfSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1wdWxsKCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XG4gICAgQGlmICRicmVha3BvaW50ID09IHhzIHtcbiAgICAgIC4jeyRjb2wtbmFtZX1wdWxsLTAge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdWxsLSN7JGl9IHtcbiAgICAgICAgICByaWdodDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogI3skcG9pbnR9KSB7XG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdWxsLSN7JGJyZWFrcG9pbnR9LTAge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XG4gICAgICAgICAgLiN7JGNvbC1uYW1lfXB1bGwtI3skYnJlYWtwb2ludH0tI3skaX0ge1xuICAgICAgICAgICAgcmlnaHQ6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2UtcHVzaCggJGdyaWQtY29sLWNudDogJGdyaWQtY29sLWNudCwgJGNvbC1uYW1lOiAkY29sLW5hbWUgKSB7XG4gIEBlYWNoICRicmVha3BvaW50LCAkcG9pbnQgaW4gJGdfbWVkaWEtYnJlYWtwb2ludHMge1xuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XG4gICAgICAuI3skY29sLW5hbWV9cHVzaC0wIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLSN7JGl9IHtcbiAgICAgICAgICBsZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcbiAgICAgICAgLiN7JGNvbC1uYW1lfXB1c2gtI3skYnJlYWtwb2ludH0tMCB7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQge1xuICAgICAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLSN7JGJyZWFrcG9pbnR9LSN7JGl9IHtcbiAgICAgICAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2Utb2Zmc2V0KCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2x1bW5zLCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XG4gICAgJHBvaW50OiBtZWRpYS1xdWVyeS1taW4tdmFsKCRicmVha3BvaW50KTtcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IC0gMSB7XG4gICAgICAgIC4jeyRjb2wtbmFtZX1vZmZzZXQtI3skaX0ge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IC0gMSB7XG4gICAgICAgICAgLiN7JGNvbC1uYW1lfW9mZnNldC0jeyRicmVha3BvaW50fS0jeyRpfSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyB0cmlhbmdsZSjilrYpLCBhcnJvdyg+KSDsgqzsmqnrspVcbi8vIC0g67Cp7ZalIDogdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0XG4vLyAodHJpYW5nbGUo4pa2KeydgCB0b3AtbGVmdC9yaWdodCwgYm90dG9tLWxlZnQvcmlnaHQg67Cp7Zal64+EIOqwgOuKpSlcbi8vIEBpbmNsdWRlIHRyaWFuZ2xlKFwi7IK86rCB7ZiV67Cp7ZalXCIsIOqwgOuhnHB4LCDshLjroZxweCwgI+y7rOufrCk7XG4vLyBAaW5jbHVkZSBhcnJvdyhcIu2ZlOyCtO2RnOuwqe2WpVwiLCDqsIDroZxweCwg7IS466GccHgsIOyEoOq1teq4sCwgI+y7rOufrCk7XG4vLyDssLjqs6AgdXJsIDogaHR0cDovL2FwcHMuZWt5LmhrL2Nzcy10cmlhbmdsZS1nZW5lcmF0b3IvXG5cbi8vIOyCvOqwge2YlSDilrZcbkBtaXhpbiB0cmlhbmdsZSgkZGlyZWN0aW9uLCAkd2lkdGhTaXplLCAkaGVpZ2h0U2l6ZSwgJGNvbG9yKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBAaWYgJGRpcmVjdGlvbj09XCJ0b3BcIiB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6IDAgKCR3aWR0aFNpemUgLyAyKSAkaGVpZ2h0U2l6ZTtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwidG9wLXJpZ2h0XCIge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6IDAgJHdpZHRoU2l6ZSAkaGVpZ2h0U2l6ZSAwO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwiIHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICgkaGVpZ2h0U2l6ZSAvIDIpIDAgKCRoZWlnaHRTaXplIC8gMikgJHdpZHRoU2l6ZTtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiYm90dG9tLXJpZ2h0XCIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgJHdpZHRoU2l6ZSAkd2lkdGhTaXplO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b21cIiB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICRoZWlnaHRTaXplICgkd2lkdGhTaXplIC8gMikgMDtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiYm90dG9tLWxlZnRcIiB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogJGNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkd2lkdGhTaXplIDAgMCAkd2lkdGhTaXplO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICgkaGVpZ2h0U2l6ZSAvIDIpICR3aWR0aFNpemUgKCRoZWlnaHRTaXplIC8gMikgMDtcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwidG9wLWxlZnRcIiB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICR3aWR0aFNpemUgJHdpZHRoU2l6ZSAwIDA7XG4gIH1cbn1cbi8vIO2ZlOyCtO2RnCA+XG5AbWl4aW4gYXJyb3coJGRpcmVjdGlvbiwgJHdpZHRoLCAkaGVpZ2h0LCAkYm9yZGVyLCAkY29sb3IpIHtcbiAgY29udGVudDpcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBmbG9vcigkd2lkdGggLyAxLjQxNCk7XG4gIGhlaWdodDogZmxvb3IoJGhlaWdodCooJHdpZHRoLyRoZWlnaHQpIC8gMS40MTQpO1xuICBib3JkZXItdG9wOiAkYm9yZGVyIHNvbGlkICRjb2xvcjtcbiAgYm9yZGVyLXJpZ2h0OiAkYm9yZGVyIHNvbGlkICRjb2xvcjtcbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJ0b3BcIiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwie1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb249PVwibGVmdFwiIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b21cIiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICB9XG59XG5cbi8v7KCB7JqpIO2bhCwgbWFyZ2lu7J2064KYIHRyYXNuZm9ybeycvOuhnCDsnITsuZgg7KGw7KCILiIsIi8vIEJ1dHRvbiB2YXJpYW50c1xuLy8g67KE7Yq8IOyCrOydtOymiOuzhCDsg53shLFcbkBtaXhpbiBidXR0b24tc2l6ZS1weCgkYnRuLXNpemUgOiAkZ19idG4tc2l6ZSkge1xuICAvLyBCYXNlIHN0eWxlc1xuICAlYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcyBsaW5lYXIsYm9yZGVyIC4zcyBsaW5lYXI7XG4gIH1cbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGJ0bi1zaXplKXtcbiAgICAuYnRuLSN7JGtleX0ge1xuICAgICAgQGV4dGVuZCAlYnRuO1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuICAgICAgICBAaWYgKCRrZXkyID09IG1lZGlhKSB7XG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mykge1xuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwzKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZXtcbiAgICAgICAgICBAaWYgKCB0eXBlLW9mKCR2YWwyKSA9PSBtYXAgKSB7IC8vIG9uZSBkZXB0aCBjbGFzcyDslYjsl5Ag7LaU6rCAIGNsYXNzIOyDneyEsVxuICAgICAgICAgICAgLiN7JGtleTJ9IHtcbiAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMik7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IEBlbHNlIHsgLy8gb25lIGRlcHRoIGNsYXNzIOuyhO2KvFxuICAgICAgICAgICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnRuLWRpc2FibGVkKCkge1xuICAmLmRpc2FibGVkIHtcbiAgICBAY29udGVudDtcbiAgICBwb2ludGVyLWV2ZW50czpub25lO1xuICB9XG59XG5cbi8vIOuyhO2KvCDsiqTtg4Dsnbwg7ISk7KCV7ZW07KO86riwXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRidG4tZ3JvdXAgOiAkZ19idG4tZ3JvdXApe1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRidG4tZ3JvdXAge1xuICAgIC5idG4tI3ska2V5fSxcbiAgICAuYnRuLSN7JGtleX06dmlzaXRlZHtcbiAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcbiAgICAgICAgQGlmICgka2V5MiA9PSBtZWRpYSkgeyAvLyBtZWRpYVxuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTMpIHtcbiAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMyk7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1AZWxzZSBpZigka2V5MiA9PSBob3Zlcil7IC8vIGhvdmVyXG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXItb24ge1xuICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwyIHtcbiAgICAgICAgICAgICAgLy8gQGlmKCRrZXk0ICE9IGJhY2tncm91bmQtY29sb3IpeyAvLyBiYWNrZ3JvdW5kLWNvbG9yIOydtOyZuOydmCDrgpjrqLjsp4Ag7Lac66ClXG4gICAgICAgICAgICAgICAgI3ska2V5NH06ICN7JHZhbDR9O1xuICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBAaWYobWFwX2hhc19rZXkobWFwLWdldCgkdmFsLGhvdmVyKSxiYWNrZ3JvdW5kLWNvbG9yKSl7IC8vaG92ZXIgbWFw7JeQIGJhY2tncm91bmQtY29sb3Ig6rCS7J20IOyeiOycvOuptCDqt7jqsoPsnYQg7Lac66ClXG4gICAgICAgICAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAvLyBAZWxzZSBpZihtYXBfaGFzX2tleSgkdmFsLGJhY2tncm91bmQtY29sb3IpKXsgLy/sl4bsnLzrqbQg6riw67O4IOyEpOygleqwkuyXkCBkYXJrZW7snLzroZwg7KCB7JqpXG4gICAgICAgICAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6ZGFya2VuKG1hcC1nZXQoJHZhbCxiYWNrZ3JvdW5kLWNvbG9yKSwgMTUlKTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1AZWxzZSBpZigka2V5MiA9PSBkaXNhYmxlZCl7IC8vIGRpc2FibGVkXG4gICAgICAgICAgQGluY2x1ZGUgYnRuLWRpc2FibGVkIHtcbiAgICAgICAgICAgIEBpZiAoIHR5cGUtb2YoJHZhbDIpID09IG1hcCApIHtcbiAgICAgICAgICAgICAgQGVhY2ggJGtleTUsICR2YWw1IGluICR2YWwyIHtcbiAgICAgICAgICAgICAgICAjeyRrZXk1fTogI3skdmFsNX07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1AZWxzZXtcbiAgICAgICAgICBAaWYgKCB0eXBlLW9mKCR2YWwyKSA9PSBtYXAgKSB7IC8vIG9uZSBkZXB0aCBjbGFzcyDslYjsl5Ag7LaU6rCAIGNsYXNzIOyDneyEsVxuICAgICAgICAgICAgLiN7JGtleTJ9IHtcbiAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMik7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IEBlbHNlIHsgLy8gb25lIGRlcHRoIGNsYXNzIOy9lOuTnCDstpzroKVcbiAgICAgICAgICAgICN7JGtleTJ9OiAjeyR2YWwyfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiQG1peGluIG1ha2UtY2FyZC1zZXQoJGNhcmQtaW5mbykge1xuICAlY2FyZC13cmFwe1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBAZWFjaCAka2V5LCAkdmFsIGluICRjYXJkLWluZm8ge1xuICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcbiAgICAgIEBpZiAka2V5MiA9PSBcIndyYXBcIiB7XG4gICAgICAgIC5jYXJkLSN7JGtleTJ9LSN7JGtleX0ge1xuICAgICAgICAgIEBleHRlbmQgJWNhcmQtd3JhcDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCR2YWwyLCBtYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCR2YWwyLCBwYWRkaW5nKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCR2YWwyLCBiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gIG1hcC1nZXQoJHZhbDIsIGJvcmRlci1zdHlsZSkge1xuICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBib3JkZXItcmFkaXVzOiBtYXAtZ2V0KCR2YWwyLCBib3JkZXItcmFkaXVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGtleTIgPT0gXCJoZWFkZXJcIiB7XG4gICAgICAgIC5jYXJkLXdyYXAtI3ska2V5fXtcbiAgICAgICAgICAuY2FyZC0jeyRrZXkyfSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCR2YWwyLCBwYWRkaW5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsIGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICBtYXAtZ2V0KCR2YWwyLCBib3JkZXItc3R5bGUpIHtcbiAgICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCR2YWwyLCBmb250LXNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC5jYXJkLXdyYXAtI3ska2V5fXtcbiAgICAgICAgICAuY2FyZC0jeyRrZXkyfSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCR2YWwyLCBwYWRkaW5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsIGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICBtYXAtZ2V0KCR2YWwyLCBib3JkZXItc3R5bGUpIHtcbiAgICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLy8g64ukIOuCmOuIhOqzoCDtlZjrgpjroZwg7ZWp7LmY64qU6rKMIOyii+yngCDslYrsnYTquYw/Pz8/Pz8/XG4vLyDsg4Hsho3snZgg6rOE64WQ7J2EIOyggeyaqe2VtOyVvCDtlZjripTqsIA/P1xuLy8g7IOB7IaN7J2EIOyggeyaqe2VmOuptCDsvZTrk5zqsIAg7KGw6riIIOuzteyeoe2VtOyniOuTr1xuLy8g7JWE7JiIIHdyYXAsIGhlYWRlciwgYm9keSwgZm9vdGVyIOuCmOuIhOuKlOuNmOyngCwg7KeA6riI7LKY65+8IOyymOumrO2VmOuKlOqyjCDrgpjsnYTrk69cbiIsIi8vIFBhZ2luYXRpb25cbkBtaXhpbiBwYWdpbmF0aW9uLWxpbmtzKCRwYWdlLWl0ZW0pe1xuICB3aWR0aDptYXAtZ2V0KCRwYWdlLWl0ZW0sIHdpZHRoKTtcbiAgaGVpZ2h0Om1hcC1nZXQoJHBhZ2UtaXRlbSwgaGVpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBoZWlnaHQpOyAvLyBoZWlnaHTqsJLqs7wg64+Z7J28XG5cbiAgLy9wYWRkaW5nOm1hcC1nZXQoJHBhZ2UtaXRlbSwgcGFkZGluZyk7IC0+IOyCreygnOyYiOyglSDrs7TrpZguLlxuICBtYXJnaW46bWFwLWdldCgkcGFnZS1pdGVtLCBtYXJnaW4pO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHBhZ2UtaXRlbSwgdGhlbWUtY29sb3IpO1xuICBib3JkZXI6IG1hcC1nZXQoJHBhZ2UtaXRlbSwgYm9yZGVyKTtcbiAgYm9yZGVyLXJpZ2h0Om1hcC1nZXQoJHBhZ2UtaXRlbSwgYm9yZGVyLXJpZ2h0KTtcblxuICBib3JkZXItcmFkaXVzOm1hcC1nZXQoJHBhZ2UtaXRlbSwgYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTptYXAtZ2V0KCRwYWdlLWl0ZW0sIGZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0Om1hcC1nZXQoJHBhZ2UtaXRlbSwgZm9udC13ZWlnaHQpO1xuICBmb250LWZhbWlseTptYXAtZ2V0KCRwYWdlLWl0ZW0sIGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6bWFwLWdldCgkcGFnZS1pdGVtLCBsZXR0ZXItc3BhY2luZyk7XG4gIGNvbG9yOm1hcC1nZXQoJHBhZ2UtaXRlbSwgZm9udC1jb2xvcik7XG5cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkcGFnZS1pdGVtLCBob3Zlci10aGVtZS1jb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjptYXAtZ2V0KCRwYWdlLWl0ZW0saG92ZXItdGhlbWUtY29sb3IpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOmRhcmtlbiggbWFwLWdldCgkcGFnZS1pdGVtLCB0aGVtZS1jb2xvciksIDE1JSk7XG4gICAgfVxuICAgIGNvbG9yOm1hcC1nZXQoJHBhZ2UtaXRlbSwgaG92ZXItY29sb3IpO1xuICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkcGFnZS1pdGVtLCBob3Zlci1ib3JkZXItY29sb3IpO1xuICB9XG5cbn1cbi8vIOyVoe2LsOu4jCDrkKDsi5xcbkBtaXhpbiBwYWdpbmF0aW9uLWFjdGl2ZSgkcGFnZS1hY3RpdmUtaXRlbSl7XG4gIGJhY2tncm91bmQtY29sb3I6bWFwLWdldCgkcGFnZS1hY3RpdmUtaXRlbSwgYWN0aXZlLXRoZW1lKTtcbiAgY29sb3I6bWFwLWdldCgkcGFnZS1hY3RpdmUtaXRlbSxhY3RpdmUtY29sb3IpO1xuICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gKG1hcC1nZXQoJHBhZ2UtYWN0aXZlLWl0ZW0sYWN0aXZlLXN0eWxlKSl7XG4gICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xuICB9XG59XG4vLyDrlKQg65Cg7IucXG5AbWl4aW4gcGFnaW5hdGlvbi1kaXNhYmxlZCgkcGFnZS1kaXNhYmxlZC1pdGVtKXtcbiAgb3BhY2l0eTptYXAtZ2V0KCRwYWdlLWRpc2FibGVkLWl0ZW0sIGRpbS1vcGFjaXR5KTtcbiAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgQGVhY2ggJGtleTIsICR2YWwyIGluIChtYXAtZ2V0KCRwYWdlLWRpc2FibGVkLWl0ZW0sZGlzYWJsZWQtc3R5bGUpKXtcbiAgICAjeyRrZXkyfTogI3skdmFsMn07XG4gIH1cbn1cblxuLy8g7LKY7J2MIOydtOyghCDri6TsnYwg64GdIGFycm93IOq0gOugqCDsu6TsiqTthYBcbkBtaXhpbiBwYWdpbmF0aW9uLWFycm93cygkcGFnZS1hcnJvdy1zdHlsZSkge1xuICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHBhZ2UtYXJyb3ctc3R5bGUge1xuICAgICN7JGtleTJ9OiAjeyR2YWwyfTtcbiAgfVxufSIsIkBtaXhpbiBtYWtlLWZvcm0td3JhcCggJGZvcm0td3JhcC1pbmZvIDogJGdfZm9ybS13cmFwICkge1xuICBAZWFjaCAka2V5LCAkdmFsIGluICgkZm9ybS13cmFwLWluZm8pe1xuICAgIC5mb3JtLXdyYXAtI3ska2V5fSB7XG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XG4gICAgICAgIEBpZih0eXBlLW9mKCR2YWwyKSAhPSBtYXApIHtcbiAgICAgICAgICAjeyRrZXkyfSA6ICN7JHZhbDJ9O1xuICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgIC4jeyRrZXkyfSB7XG4gICAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gJHZhbDIge1xuICAgICAgICAgICAgICBAaWYodHlwZS1vZigkdmFsMykgIT0gbWFwKSB7IC8vY2FzY2FkaW5n7Jy866GcIOuovOyggCDstpzroKVcbiAgICAgICAgICAgICAgICAgICN7JGtleTN9OiAjeyR2YWwzfTtcbiAgICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaWYoJGtleTMgPT0gbWVkaWEpe1xuICAgICAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwzIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXk0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsNCk7XG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfUBlbHNlIGlmKCRrZXkzID09IFwiJlwiKSB7XG4gICAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwzLCBcIlwiLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICAgICAgLiN7JGtleTN9IHtcbiAgICAgICAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2Rlcygka2V5Myk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gLyrthY3siqTtirgg67CV7IqkKi9cbkBtaXhpbiBtYWtlLWZpZWxkLWRlZmF1bHQoKSB7XG4gICVmaWVsZC1iYXNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRnX2ZpZWxkLXN0eWxlKSB7XG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuICAgIC5maWVsZC0jeyRrZXl9IGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICAgIC5maWVsZC0jeyRrZXl9IHNlbGVjdCxcbiAgICAuZmllbGQtI3ska2V5fSB0ZXh0YXJlYXtcbiAgICAgIEBleHRlbmQgJWZpZWxkLWJhc2U7XG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gKCR2YWwpIHtcbiAgICAgICAgQGlmKCAka2V5MiA9PSBcImlucHV0X2RlZmF1bHRcIikge1xuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAoJHZhbDIpIHtcbiAgICAgICAgICAgIEBpZiggdHlwZS1vZigkdmFsMykgIT0gbWFwKSB7XG4gICAgICAgICAgICAgICN7JGtleTN9IDogI3skdmFsM307XG4gICAgICAgICAgICB9QGVsc2UgaWYoJGtleTMgPT0gJ2ZvY3VzLXN0eWxlJyl7XG4gICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMyB7XG4gICAgICAgICAgICAgICAgICAjeyRrZXk0fSA6ICN7JHZhbDR9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfUBlbHNlIGlmKCRrZXkzID09ICdwbGFjZWhvbGRlci1zdHlsZScpe1xuICAgICAgICAgICAgICAmOjpwbGFjZWhvbGRlcntcbiAgICAgICAgICAgICAgICBAZWFjaCAka2V5NCwgJHZhbDQgaW4gJHZhbDMge1xuICAgICAgICAgICAgICAgICAgI3ska2V5NH0gOiAjeyR2YWw0fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMyB7XG4gICAgICAgICAgICAgICAgICAjeyRrZXk0fSA6ICN7JHZhbDR9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMyB7XG4gICAgICAgICAgICAgICAgICAjeyRrZXk0fSA6ICN7JHZhbDR9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfUBlbHNlIGlmICgka2V5MyA9PSAnbWVkaWEnKSB7XG4gICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXk0KSB7XG4gICAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWw0KTtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmZpZWxkLSN7JGtleX0gc2VsZWN0e1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICgkdmFsKSB7XG4gICAgICAgIEBpZiggJGtleTIgPT0gXCJzZWxlY3RcIikge1xuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICBAaWYgKCRrZXkzID09IG1lZGlhKSB7XG4gICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXk0KSB7XG4gICAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWw0KTtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICN7JGtleTN9IDogI3skdmFsM307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuZmllbGQtI3ska2V5fSB0ZXh0YXJlYXtcbiAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAoJHZhbCkge1xuICAgICAgICBAaWYoICRrZXkyID09IFwidGV4dGFyZWFcIikge1xuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICBAaWYgKCRrZXkzID09ICdtZWRpYScpIHtcbiAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwzIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTQpIHtcbiAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDQpO1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgICAgI3ska2V5M30gOiAjeyR2YWwzfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5maWVsZC0jeyRrZXl9Lm5vLXVuZGVybGluZSB7XG4gICAgICBib3JkZXItYm90dG9tOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gLyp0ZXh0YXJlYSovXG5AbWl4aW4gbWFrZS10ZXh0LWFyZWEoKSB7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRnX3RleHQtYXJlYS1zdHlsZSkge1xuICAgIC50ZXh0YXJlYS0jeyRrZXl9IHRleHRhcmVhe1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuICAgICAgICBAaWYoJGtleTIgPT0gbWVkaWEpIHtcbiAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gJHZhbDIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXkzKSB7XG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDMpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICN7JGtleTJ9IDogI3skdmFsMn07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gLyrshYDroIntirgg67CV7IqkKi9cbkBtaXhpbiBtYWtlLXNlbGVjdGJveCgpIHtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGdfc2VsZWN0LXN0eWxlKSB7XG4gICAgLnNlbGVjdC0jeyRrZXl9IHNlbGVjdHtcbiAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcbiAgICAgICAgQGlmKCB0eXBlLW9mKCR2YWwyKSAhPSBtYXApe1xuICAgICAgICAgICN7JGtleTJ9IDogI3skdmFsMn07XG4gICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mykge1xuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwzKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICAgIH1cbiAgfVxufVxuXG4vLyAvKuydtOuvuOyngCDssrTtgawgJiDrnbzrlJTsmKQqL1xuQG1peGluIG1ha2UtY2hlY2tib3gtaW1nKCAkY2hlY2stYm94LWluZm86ICRnX2NoZWNrLWJveC1pbWcgKSB7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRjaGVjay1ib3gtaW5mbykge1xuICAgIC5ja2J4LSN7JGtleX17XG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gKCR2YWwpIHtcbiAgICAgICAgQGlmKHR5cGUtb2YoJHZhbDIpICE9IG1hcCkge1xuICAgICAgICAgICN7JGtleTJ9IDogI3skdmFsMn07XG4gICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgQGlmKCRrZXkyID09IGNoZWNrYm94LXN0eWxlKSB7XG4gICAgICAgICAgIC5jdXN0b20tY2hlY2tlZCB7XG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICB9IFxuICAgICAgICAgIH1AZWxzZSBpZigka2V5MiA9PSBjaGVja2VkLXN0eWxlKXtcbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgJlt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkLFxuICAgICAgICAgICAgICAmW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQge1xuICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1AZWxzZSBpZigka2V5MiA9PSB0ZXh0LXN0eWxlKXtcbiAgICAgICAgICAgIC50ZXh0IHtcbiAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMik7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY29sb3I6ICNlZWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vLyAvKu2DnOq3uCDssrTtgawmIOudvOuUlOyYpCovXG5AbWl4aW4gbWFrZS1jaGVja2JveC10YWcoICRjaGVjay1ib3gtaW5mbzogJGdfY2hlY2stYm94LXRhZyApIHtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGNoZWNrLWJveC1pbmZvKSB7XG4gICAgLy8g67OA7IiYIOyEoOyWuFxuICAgICR3aWR0aCA6IGZhbHNlO1xuICAgICRoZWlnaHQgOiBmYWxzZTtcbiAgICAuY2tieC0jeyRrZXl9e1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICgkdmFsKSB7XG4gICAgICAgIEBpZih0eXBlLW9mKCR2YWwyKSAhPSBtYXApIHtcbiAgICAgICAgICAjeyRrZXkyfSA6ICN7JHZhbDJ9O1xuICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgIEBpZigka2V5MiA9PSBjaGVja2JveC1zdHlsZSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xuICAgICAgICAgICAgICAgIEBpZiAoJGtleTMgPT0gd2lkdGgpe1xuICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkdmFsMztcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6LShyb3VuZCgkdmFsMyAvIDIpKTtcbiAgICAgICAgICAgICAgICAgIC8vIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNTAlKSwgd2Via2l0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICgka2V5MyA9PSBoZWlnaHQpe1xuICAgICAgICAgICAgICAgICAgJGhlaWdodDogJHZhbDM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfUBlbHNlIGlmKCRrZXkyID09IGNoZWNrZWQtc3R5bGUpIHtcbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgJlt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkLFxuICAgICAgICAgICAgICAmW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiByb3VuZCgoJHdpZHRoIC0gKCR3aWR0aCAvIDIpKSAvIDIpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkdmFsMiwgd2lkdGgpID09IGZhbHNlIGFuZCAkd2lkdGgpeyBcbiAgICAgICAgICAgICAgICAgIC8vIGNoZWNrZWQgbWFw7JeQIHdpZHRo6rCAIOyeiOuKlOyngCDssrTtgawg7JeG7Jy866m0IGNoZWNrYm94IG1hcCDsnZgg67CY7IKs7J207KaI66GcIOqwgOyguOyYtFxuICAgICAgICAgICAgICAgICAgJHZhbDIgOiBtYXAtc2V0KCR2YWwyLHdpZHRoLHJvdW5kKCR3aWR0aCAvIDIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCR2YWwyLCBoZWlnaHQpID09IGZhbHNlIGFuZCAkaGVpZ2h0KXsgXG4gICAgICAgICAgICAgICAgICAvLyBjaGVja2VkIG1hcOyXkCBoZWlnaHQg7J6I64qU7KeAIOyytO2BrCDsl4bsnLzrqbQgY2hlY2tib3ggbWFwIOydmCDrsJjsgqzsnbTspojroZwg6rCA7KC47Ji0XG4gICAgICAgICAgICAgICAgICAkdmFsMiA6IG1hcC1zZXQoJHZhbDIsaGVpZ2h0LHJvdW5kKCRoZWlnaHQgLyAyKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMiB7XG4gICAgICAgICAgICAgICAgICBAaWYgKCRrZXk0ID09IHdpZHRoKXtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDotKHJvdW5kKCR2YWw0IC8gMikpO1xuICAgICAgICAgICAgICAgICAgICAvLyBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTUwJSksIHdlYmtpdCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAjeyRrZXk0fTogI3skdmFsNH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfUBlbHNlIGlmKCRrZXkyID09IHRleHQtc3R5bGUpe1xuICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwyKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgJi5kaXNhYmxlZHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjZWVlO1xuICAgICAgICBsYWJlbDpiZWZvcmV7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZWVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmNpcmNsZTpiZWZvcmUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgICAmLmNpcmNsZSBpbnB1dCB7XG4gICAgICAgICZbdHlwZT1yYWRpb106Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCxcbiAgICAgICAgJlt0eXBlPWNoZWNrYm94XTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG1pbi13aWR0aDogJHdpZHRoO1xuICAgICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vcnAtdGFibGVcbkBtaXhpbiBtYWtlLXJwLXRhYmxlKCRycC10YWJsZS1pbmZvIDogJGdfcnAtdGFibGUpIHtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJHJwLXRhYmxlLWluZm8pe1xuICAgIC5ycC10YWJsZS0jeyRrZXl9IHtcbiAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcbiAgICAgICAgQGlmKHR5cGUtb2YoJHZhbDIpICE9IG1hcCkge1xuICAgICAgICAgICN7JGtleTJ9IDogI3skdmFsMn07XG4gICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgLiN7JGtleTJ9IHtcbiAgICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICAgIEBpZih0eXBlLW9mKCR2YWwzKSAhPSBtYXApIHsgLy9jYXNjYWRpbmfsnLzroZwg66i87KCAIOy2nOugpVxuICAgICAgICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xuICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpZigka2V5MyA9PSBtZWRpYSl7XG4gICAgICAgICAgICAgICAgICBAZWFjaCAka2V5NCwgJHZhbDQgaW4gJHZhbDMge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWw0KTtcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9QGVsc2UgaWYoJGtleTMgPT0gXCImXCIpIHtcbiAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDMsIFwiXCIsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICAgICAuI3ska2V5M30ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCR2YWwzKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG4iLCIvLy8qIHRhYiAqL1xuQG1peGluIHRhYi1pdGVtcygkdGFiLWdyb3VwIDogJGdfdGFiLWdyb3VwKSB7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCR0YWItZ3JvdXApe1xuICAgIEBpZigka2V5ID09IHRhYi13cmFwLWRlZmF1bHQpe1xuICAgICAgLnRhYi13cmFwIHtcbiAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuICAgICAgICAgIEBpZigka2V5MiA9PSBtZWRpYSl7XG4gICAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gJHZhbDIge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTMpIHtcbiAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwzKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1AZWxzZSB7XG4gICAgICAudGFiLXdyYXAuI3ska2V5fSB7XG4gICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsIHtcbiAgICAgICAgICBAaWYodHlwZS1vZigkdmFsNCkgIT0gbWFwICkgeyAvL2Nhc2NhZGluZ+ycvOuhnCDrqLzsoIAg7Lac66ClXG4gICAgICAgICAgICAjeyRrZXk0fTogI3skdmFsNH07XG4gICAgICAgICAgfUBlbHNlIHsgLy9tZWRpYSwgYWN0aXZlLCBzdWJDbGFzc1xuICAgICAgICAgICAgLiN7JGtleTR9IHtcbiAgICAgICAgICAgICAgQGVhY2ggJGtleTUsICR2YWw1IGluICR2YWw0IHtcbiAgICAgICAgICAgICAgICBAaWYodHlwZS1vZigkdmFsNSkgIT0gbWFwKSB7IC8vY2FzY2FkaW5n7Jy866GcIOuovOyggCDstpzroKVcbiAgICAgICAgICAgICAgICAgICN7JGtleTV9OiAjeyR2YWw1fTtcbiAgICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICAgICAgQGlmKCRrZXk1ID09IG1lZGlhKXtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJGtleTYsICR2YWw2IGluICR2YWw1IHtcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfUBlbHNlIGlmICgka2V5NSA9PSBhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJHZhbDUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAaWYoJGtleTUgPT0gXCImXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWw1LCBcIlwiLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgLiN7JGtleTV9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLEFBRUkscUJBRmlCLENBQ25CLGVBQWUsQ0FDYixVQUFVLENBQUE7RUFDUixHQUFHLEVBQUMsS0FBSztDQUlWOztBU0tDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7RVRaekMsQUFFSSxxQkFGaUIsQ0FDbkIsZUFBZSxDQUNiLFVBQVUsQ0FBQTtJQUdOLEdBQUcsRUFBQyxLQUFLO0dBRVo7OztBQVBMLEFBU0UscUJBVG1CLENBU25CLFdBQVcsQ0FBQTtFQUNULGFBQWEsRUFBRSxDQUFDO0VBQ2hCLGNBQWMsRUFBQyxDQUFDO0NBV2pCOztBU1ZHLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7RVRaekMsQUFTRSxxQkFUbUIsQ0FTbkIsV0FBVyxDQUFBO0lBSVAsYUFBYSxFQUFFLElBQUk7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 */
