/* Variables  */
/* Aliases  */
@keyframes sugar-calendar-spinner-rotation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Variables  */
/* Aliases  */
.sugar-calendar-toggle-control {
  display: flex;
  align-items: center;
  margin: 0 1px;
  line-height: 1;
  color: #50575e;
  font-weight: 500;
  height: 25px;
  box-sizing: border-box;
}
.sugar-calendar-toggle-control input[type=checkbox] {
  position: absolute;
  overflow: hidden;
  height: 0;
  width: 0;
  border: none !important;
  box-shadow: none !important;
  margin: 0;
  min-width: 0;
}
.sugar-calendar-toggle-control input[type=checkbox]:hover, .sugar-calendar-toggle-control input[type=checkbox]:focus {
  border: none !important;
  box-shadow: none !important;
}
.sugar-calendar-toggle-control input[type=checkbox]:hover:not(:disabled) + label.sugar-calendar-toggle-control-icon {
  background-color: #646970;
}
.sugar-calendar-toggle-control input[type=checkbox]:focus:not(:disabled) + label.sugar-calendar-toggle-control-icon {
  box-shadow: 0 0 0 1px white, 0 0 0 2px #c3c4c7;
}
.sugar-calendar-toggle-control input[type=checkbox]:checked + label.sugar-calendar-toggle-control-icon {
  background-color: #2271b1;
  opacity: 1;
}
.sugar-calendar-toggle-control input[type=checkbox]:checked + label.sugar-calendar-toggle-control-icon:after {
  left: calc(100% - 2px);
  transform: translateX(-100%);
}
.sugar-calendar-toggle-control input[type=checkbox]:checked:hover:not(:disabled) + label.sugar-calendar-toggle-control-icon {
  background-color: #0a4b78;
}
.sugar-calendar-toggle-control input[type=checkbox]:checked:focus:not(:disabled) + label.sugar-calendar-toggle-control-icon {
  box-shadow: 0 0 0 1px white, 0 0 0 2px #2271b1;
}
.sugar-calendar-toggle-control input[type=checkbox]:disabled + label.sugar-calendar-toggle-control-icon {
  opacity: 0.5;
}
.sugar-calendar-toggle-control input[type=checkbox]:disabled:hover + label.sugar-calendar-toggle-control-icon, .sugar-calendar-toggle-control input[type=checkbox]:disabled:focus + label.sugar-calendar-toggle-control-icon {
  box-shadow: none;
}
.sugar-calendar-toggle-control span,
.sugar-calendar-toggle-control label {
  display: inline-block;
  margin-bottom: 0;
}
.sugar-calendar-toggle-control .sugar-calendar-toggle-control-label {
  padding: 0 10px;
  max-width: calc(100% - 65px);
}
.sugar-calendar-toggle-control .sugar-calendar-toggle-control-status {
  color: #50575e;
  font-size: 12px;
  line-height: 17px;
  padding: 0 10px;
  text-transform: uppercase;
  display: none;
}
.sugar-calendar-toggle-control .sugar-calendar-toggle-control-status-off,
.sugar-calendar-toggle-control .sugar-calendar-toggle-control-status-on {
  cursor: pointer;
}
.sugar-calendar-toggle-control input:not(:checked) ~ .sugar-calendar-toggle-control-status-off,
.sugar-calendar-toggle-control input:checked ~ .sugar-calendar-toggle-control-status-on {
  display: inline-block;
}
.sugar-calendar-toggle-control .sugar-calendar-toggle-control-icon {
  background-color: #8c8f94;
  border-radius: 8.5px;
  cursor: pointer;
  display: inline-block;
  height: 17px;
  position: relative;
  text-indent: -9999px;
  width: 27px;
}
.sugar-calendar-toggle-control .sugar-calendar-toggle-control-icon:after {
  background: white;
  border-radius: 50%;
  content: "";
  height: 13px;
  left: 2px;
  position: absolute;
  top: 2px;
  width: 13px;
  transition: all 0.15s ease-out;
}
.sugar-calendar-toggle-control input:disabled ~ .sugar-calendar-toggle-control-icon,
.sugar-calendar-toggle-control input:disabled ~ .sugar-calendar-toggle-control-status-off,
.sugar-calendar-toggle-control input:disabled ~ .sugar-calendar-toggle-control-status-on {
  cursor: default;
}

#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row .sugar-calendar-metabox__field input[type=number] {
  background-color: white;
  border: 1px solid #c3c4c7;
  border-radius: 4px;
  box-shadow: none;
  color: #2c3338;
  display: inline-block;
  vertical-align: middle;
  padding: 0 10px;
  margin: 0;
  width: 400px;
  min-height: 36px;
  line-height: 34px;
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row .sugar-calendar-metabox__field input[type=number]:hover {
  color: #2c3338;
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row .sugar-calendar-metabox__field input[type=number]:focus {
  border-color: #2271b1 !important;
  box-shadow: 0 0 0 1px #2271b1 !important;
  outline: none !important;
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row .sugar-calendar-metabox__field input[type=number]:disabled {
  color: #a7aaad;
}
@media (max-width: 1023px) {
  #sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row .sugar-calendar-metabox__field input[type=number] {
    width: 300px;
  }
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row--ticket_price {
  align-items: start;
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row--ticket_quantity {
  align-items: start;
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row--ticket_quantity .sugar-calendar-metabox__field input[type=number] {
  width: 80px;
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row--woocommerce-checkout {
  align-items: start;
}
#sugar_calendar_editor_event_details .sugar-calendar-event-details-metabox .sugar-calendar-metabox__section .sugar-calendar-metabox__field-row--woocommerce-checkout .sugar-calendar-toggle-control-status {
  text-transform: capitalize;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3NzL2FkbWluL192YXJpYWJsZXMuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19taXhpbnMuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19mb3Jtcy5zY3NzIiwiYXNzZXRzL3Njc3MvZmVhdHVyZXMvZXZlbnQtdGlja2V0aW5nL2FkbWluLWV2ZW50LW1ldGFib3guc2NzcyIsImFzc2V0cy9zY3NzL3ZlbmRvci9faW5jbHVkZS1tZWRpYS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FBbUVBO0FDdkJBO0VBQ0M7SUFDQzs7RUFFRDtJQUNDOzs7QURqREY7QUFtRUE7QUVtRkE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBLE9GeElrQjtFRXlJbEI7RUFDQTtFQUNBOztBQUVBO0VBNUJBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBd0JDO0VBRUM7RUFDQTs7QUFJQTtFQUNDLGtCRnZKZTs7QUU0SmhCO0VBQ0M7O0FBS0Q7RUFDQyxrQkYzS2tCO0VFNEtsQjs7QUFFQTtFQUNDO0VBQ0E7O0FBS0Q7RUFDQyxrQkZwTGlCOztBRXlMbEI7RUFDQzs7QUFNRjtFQUNDOztBQUtBO0VBQ0M7O0FBTUo7QUFBQTtFQUVDO0VBQ0E7O0FBR0Q7RUFDQztFQUNBOztBQUdEO0VBQ0MsT0ZwTmlCO0VFcU5qQixXRjNHa0I7RUU0R2xCO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0FBQUE7RUFFQzs7QUFHRDtBQUFBO0VBRUM7O0FBR0Q7RUFDQyxrQkZyT2lCO0VFc09qQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDLFlGak9tQjtFRWtPbkI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJRjtBQUFBO0FBQUE7RUFHQzs7O0FDMVFHO0VEUEosa0JGaUNxQjtFRWhDckI7RUFDQSxlRjBCVztFRXpCWDtFQUNBLE9GV2tCO0VFVmxCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0MsT0ZDaUI7O0FFRWxCO0VBQ0M7RUFDQTtFQUNBOztBQUdEO0VBQ0MsT0ZIaUI7O0FJeWtCZjtFRHZsQkM7SURxQkg7OztBQ2hCRTtFQUNDOztBQUdEO0VBQ0M7O0FBR0M7RUFDQzs7QUFLSDtFQUNDOztBQUVBO0VBQ0MiLCJmaWxlIjoiYXNzZXRzL2Nzcy9mZWF0dXJlcy9ldmVudC10aWNrZXRpbmcvYWRtaW4tZXZlbnQtbWV0YWJveC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBZG1pbiB2YXJpYWJsZXMuXG5cbi8qIFZhcmlhYmxlcyAgKi9cbiRyYWRpdXMtbWQ6IDRweDtcbiRyYWRpdXMtbGc6IDZweDtcbiRyYWRpdXMtc206IDNweDtcbiRzcGFjaW5nLXhzOiA1cHg7XG4kc3BhY2luZy1zbTogMTBweDtcbiRzcGFjaW5nLW1kOiAyMHB4O1xuJHNwYWNpbmctbGc6IDMwcHg7XG4kc3BhY2luZy14bDogNTBweDtcbiRjb2xvci1icmFuZC1vcmFuZ2UtNTA6ICNGRjg4NDVGRjtcbiRjb2xvci1icmFuZC1vcmFuZ2UtNzA6ICNDQjZEMzdGRjtcbiRjb2xvci1icmFuZC1ibHVlLTA6ICNmMGY2ZmNmZjtcbiRjb2xvci1icmFuZC1ibHVlLTUwOiAjMjI3MUIxRkY7XG4kY29sb3ItYnJhbmQtYmx1ZS1icmlnaHQtNTA6ICMwMEEwRDJGRjtcbiRjb2xvci1icmFuZC1ibHVlLTcwOiAjMEE0Qjc4RkY7XG4kY29sb3ItbmV1dHJhbC0xMDA6ICMxMDE1MTc7XG4kY29sb3ItbmV1dHJhbC05MDogIzFEMjMyN0ZGO1xuJGNvbG9yLW5ldXRyYWwtODA6ICMyQzMzMzhGRjtcbiRjb2xvci1uZXV0cmFsLTcwOiAjM0M0MzRBRkY7XG4kY29sb3ItbmV1dHJhbC02MDogIzUwNTc1RUZGO1xuJGNvbG9yLW5ldXRyYWwtNTA6ICM2NDY5NzBGRjtcbiRjb2xvci1uZXV0cmFsLTMwOiAjOEM4Rjk0RkY7XG4kY29sb3ItbmV1dHJhbC0xMDogI0MzQzRDN0ZGO1xuJGNvbG9yLW5ldXRyYWwtMjA6ICNBN0FBQURGRjtcbiRjb2xvci1uZXV0cmFsLTU6ICNEQ0RDREVGRjtcbiRjb2xvci11dGlsaXR5LXllbGxvdy0wOiAjRkNGOUU4O1xuJGNvbG9yLXV0aWxpdHkteWVsbG93LTMwOiAjRjJENjc1O1xuJGNvbG9yLXV0aWxpdHkteWVsbG93LTUwOiAjREJBNjE3RkY7XG4kY29sb3ItdXRpbGl0eS1yZWQtNTA6ICNENjM2MzhGRjtcbiRjb2xvci11dGlsaXR5LWdyZWVuLTUwOiAjMDA4QTIwRkY7XG4kcmFkaXVzLW1kOiA0cHg7XG4kcmFkaXVzLWxnOiA2cHg7XG4kcmFkaXVzLXhsOiA5cHg7XG4kY29sb3ItbmV1dHJhbC0zOiAjRjBGMEYxRkY7XG4kY29sb3ItbmV1dHJhbC0wOiAjRjZGN0Y3RkY7XG4kY29sb3ItdXRpbGl0eS13aGl0ZTogI0ZGRkZGRkZGO1xuJGNvbG9yLWJyYW5kLW9yYW5nZS0wOiAjRkZGM0VDRkY7XG4kY29sb3ItYnJhbmQtYmx1ZS1icmlnaHQtMDogI0U1RjVGQUZGO1xuJGNvbG9yLXV0aWxpdHktZ3JlZW4tMDogI0VERkFFRkZGO1xuJGNvbG9yLXV0aWxpdHktcmVkLTA6ICNGQ0YwRjFGRjtcbiRjb2xvci1icmFuZC1vcmFuZ2UtMzA6ICNGRkEwNkFGRjtcbiRjb2xvci1icmFuZC1ibHVlLWJyaWdodC0zMDogIzY2QzZFNEZGO1xuJGNvbG9yLXV0aWxpdHktZ3JlZW4tMzA6ICMwMEJBMzdGRjtcbiRjb2xvci11dGlsaXR5LXJlZC0zMDogI0Y4NjM2OEZGO1xuJGNvbG9yLXdvcmRwcmVzcy1ibHVlOiAjMjI3MUIxRkY7XG4kY29sb3ItdXRpbGl0eS1ncmF5LTA6ICNGNkY2RjZGRjtcbiRjb2xvci1hY2NlbnQtb3JhbmdlLTUwOiAjRkU5RTY4RkY7XG4kY29sb3ItYWNjZW50LW9yYW5nZS0wOiAjRkZGMEU4RkY7XG4kY29sb3ItYWNjZW50LXJlZC01MDogI0ZGNzM2OEZGO1xuJGNvbG9yLWFjY2VudC1yZWQtMDogI0ZGRUFFOEZGO1xuJGNvbG9yLWFjY2VudC1waW5rLTUwOiAjREY1QjlBRkY7XG4kY29sb3ItYWNjZW50LXBpbmstMDogI0ZBRTZGMEZGO1xuJGNvbG9yLWFjY2VudC1wdXJwbGUtNTA6ICM4NjU5QzJGRjtcbiRjb2xvci1hY2NlbnQtcHVycGxlLTA6ICNFREU2RjZGRjtcbiRjb2xvci1hY2NlbnQtYmx1ZS01MDogIzU2ODVCREZGO1xuJGNvbG9yLWFjY2VudC1ibHVlLTA6ICNFNkVERjVGRjtcbiRjb2xvci1hY2NlbnQtdGVhbC01MDogIzRCQjlBN0ZGO1xuJGNvbG9yLWFjY2VudC10ZWFsLTA6ICNFNEY1RjJGRjtcbiRjb2xvci1hY2NlbnQtZ3JlZW4tNTA6ICM1N0Q0NjZGRjtcbiRjb2xvci1hY2NlbnQtZ3JlZW4tMDogI0U2RjlFOEZGO1xuJGNvbG9yLWFjY2VudC15ZWxsb3ctNTA6ICNGRkM0NjlGRjtcbiRjb2xvci1hY2NlbnQteWVsbG93LTA6ICNGRkY2RTlGRjtcbiRjYWxlbmRhci10ZXh0LXByaW1hcnk6ICMwMDAwMDBEOTtcbiRjYWxlbmRhci10ZXh0LXNlY29uZGFyeTogcmdiYSgwLCAwLCAwLCAwLjcwKTtcbiRjYWxlbmRhci10ZXh0LXRlcnRpYXJ5OiAjMDAwMDAwNjY7XG4kY2FsZW5kYXItYmFja2dyb3VuZDogIzAwMDAwMDA4O1xuXG4vKiBBbGlhc2VzICAqL1xuJHRleHQtdGV4dC1wcmltYXJ5OiAkY29sb3ItbmV1dHJhbC04MDtcbiR0ZXh0LXRleHQtc2Vjb25kYXJ5OiAkY29sb3ItbmV1dHJhbC02MDtcbiR0ZXh0LXRleHQtdGVydGlhcnk6ICM3ODdDODI7XG4kdGV4dC10ZXh0LWhlYWRpbmc6ICRjb2xvci1uZXV0cmFsLTkwO1xuJHRleHQtdGV4dC10aXRsZTogJGNvbG9yLW5ldXRyYWwtMTAwO1xuJGJ1dHRvbnMtYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZDogJGNvbG9yLWJyYW5kLW9yYW5nZS01MDtcbiRidXR0b25zLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZDogJGNvbG9yLWJyYW5kLWJsdWUtNTA7XG4kYnV0dG9ucy1idXR0b24tdGVydGlhcnktYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtMDtcbiRmaWVsZHMtZmllbGQtYm9yZGVyOiAkY29sb3ItbmV1dHJhbC0xMDtcbiRmaWVsZC1ib3JkZXItZXJyb3I6ICRjb2xvci11dGlsaXR5LXJlZC01MDtcbiRzdXJmYWNlLXN1cmZhY2UtYm9yZGVyOiAkY29sb3ItbmV1dHJhbC0xMDtcbiRzdXJmYWNlLXN1cmZhY2UtZGl2aWRlcjogJGNvbG9yLW5ldXRyYWwtNTtcbiRidXR0b25zLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQtLWhvdmVyOiAkY29sb3ItYnJhbmQtb3JhbmdlLTcwO1xuJGJ1dHRvbnMtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLS1ob3ZlcjogJGNvbG9yLWJyYW5kLWJsdWUtNzA7XG4kYnV0dG9ucy1idXR0b24tdGVydGlhcnktYm9yZGVyOiAkY29sb3ItbmV1dHJhbC0zMDtcbiRidXR0b25zLWJ1dHRvbi1wcmltYXJ5LXRleHQ6ICRjb2xvci11dGlsaXR5LXdoaXRlO1xuJGJ1dHRvbnMtYnV0dG9uLXNlY29uZGFyeS10ZXh0OiAkY29sb3ItdXRpbGl0eS13aGl0ZTtcbiRidXR0b25zLWJ1dHRvbi10ZXJ0aWFyeS10ZXh0OiAkY29sb3ItbmV1dHJhbC02MDtcbiRidXR0b25zLWJ1dHRvbi10ZXJ0aWFyeS1ib3JkZXItLWhvdmVyOiAkY29sb3ItbmV1dHJhbC02MDtcbiRidXR0b25zLWJ1dHRvbi10ZXJ0aWFyeS1iYWNrZ3JvdW5kLS0taG92ZXI6ICRjb2xvci1uZXV0cmFsLTM7XG4kYnV0dG9ucy1idXR0b24tdGVydGlhcnktdGV4dC0taG92ZXI6ICRjb2xvci1uZXV0cmFsLTgwO1xuJGJ1dHRvbnMtYnV0dG9uLXdwLXByaW1hcnktYmFja2dyb3VuZDogIzIyNzFCMTtcbiR0ZXh0LXRleHQtd2hpdGU6ICRjb2xvci11dGlsaXR5LXdoaXRlO1xuJHRleHQtdGV4dC1saW5rOiAkY29sb3ItYnJhbmQtYmx1ZS01MDtcbiR0ZXh0LXRleHQtc3VjY2VzczogJGNvbG9yLXV0aWxpdHktZ3JlZW4tNTA7XG4kdGV4dC10ZXh0LWVycm9yOiAkY29sb3ItdXRpbGl0eS1yZWQtNTA7XG4kdGV4dC10ZXh0LXdhcm5pbmc6ICRjb2xvci11dGlsaXR5LXllbGxvdy01MDtcbiRmaWVsZHMtZmllbGQtYm9yZGVyLS1mb2N1czogJGNvbG9yLWJyYW5kLWJsdWUtNTA7XG4kZmllbGRzLWZpZWxkLWJvcmRlci1lcnJvcjogJGNvbG9yLXV0aWxpdHktcmVkLTUwO1xuJGZpZWxkcy1maWVsZC1jaG9pY2Utb2ZmOiAkY29sb3ItbmV1dHJhbC0zMDtcbiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uOiAkY29sb3ItYnJhbmQtYmx1ZS01MDtcbiRiYWRnZXMtYmFkZ2Utb3JhbmdlLXRleHQ6ICRjb2xvci1icmFuZC1vcmFuZ2UtMzA7XG4kYmFkZ2VzLWJhZGdlLW9yYW5nZS1iYWNrZ3JvdW5kOiAkY29sb3ItYnJhbmQtb3JhbmdlLTA7XG4kYmFkZ2VzLWJhZGdlLWJsdWUtYmFja2dyb3VuZDogJGNvbG9yLWJyYW5kLWJsdWUtYnJpZ2h0LTA7XG4kYmFkZ2VzLWJhZGdlLWJsdWUtdGV4dDogJGNvbG9yLWJyYW5kLWJsdWUtYnJpZ2h0LTMwO1xuJGJhZGdlcy1iYWRnZS1ncmVlbi1iYWNrZ3JvdW5kOiAkY29sb3ItdXRpbGl0eS1ncmVlbi0wO1xuJGJhZGdlcy1iYWRnZS1ncmVlbi10ZXh0OiAkY29sb3ItdXRpbGl0eS1ncmVlbi01MDtcbiRiYWRnZXMtYmFkZ2UtcmVkLWJhY2tncm91bmQ6ICRjb2xvci11dGlsaXR5LXJlZC0wO1xuJGJhZGdlcy1iYWRnZS1yZWQtdGV4dDogJGNvbG9yLXV0aWxpdHktcmVkLTMwO1xuJGJhZGdlcy1iYWRnZS1uZXV0cmFsLWJhY2tncm91bmQ6ICRjb2xvci1uZXV0cmFsLTU7XG4kYmFkZ2VzLWJhZGdlLW5ldXRyYWwtdGV4dDogJGNvbG9yLW5ldXRyYWwtMzA7XG4kcmFkaXVzLXJhZGl1cy10YWJsZTogJHJhZGl1cy1tZDtcbiRyYWRpdXMtcmFkaXVzLWJ1dHRvbjogJHJhZGl1cy1tZDtcbiRyYWRpdXMtcmFkaXVzLWZpZWxkOiAkcmFkaXVzLW1kO1xuJHJhZGl1cy1yYWRpdXMtYmFkZ2U6ICRyYWRpdXMtc207XG4kc3VyZmFjZS1zdXJmYWNlLWJvcmRlci1wcmltYXJ5OiAkY29sb3ItYnJhbmQtb3JhbmdlLTUwO1xuJHN1cmZhY2Utc3VyZmFjZS1iYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC0zO1xuJHN1cmZhY2Utc3VyZmFjZS1iYWNrZ3JvdW5kLXdoaXRlOiAkY29sb3ItdXRpbGl0eS13aGl0ZTtcbiR0ZXh0LXRleHQtaWNvbjogJGNvbG9yLW5ldXRyYWwtMjA7XG4kdGV4dC10ZXh0LWljb24tLWhvdmVyOiAkY29sb3ItbmV1dHJhbC01MDtcbiRzdXJmYWNlLXN1cmZhY2UtYmFja2dyb3VuZC1saWdodDogI0Y3RjdGNztcbiRmaWVsZHMtZmllbGQtY2hvaWNlLW9mZi0taG92ZXI6ICRjb2xvci1uZXV0cmFsLTUwO1xuJGZpZWxkcy1maWVsZC1jaG9pY2Utb24tLWhvdmVyOiAkY29sb3ItYnJhbmQtYmx1ZS03MDtcbiRXb3JkUHJlc3MtRmllbGQtQm9yZGVyOiAjOEM4Rjk0O1xuXG4vLyBGb250IHNpemVzLlxuJHRleHQtZm9udC1zaXplLTJ4czogMTFweDtcbiR0ZXh0LWZvbnQtc2l6ZS14czogMTJweDtcbiR0ZXh0LWZvbnQtc2l6ZS1zczogMTNweDtcbiR0ZXh0LWZvbnQtc2l6ZS1zOiAxNHB4O1xuJHRleHQtZm9udC1zaXplLW06IDE2cHg7XG4kdGV4dC1mb250LXNpemUtbDogMThweDtcbiR0ZXh0LWZvbnQtc2l6ZS1sbDogMjBweDtcbiR0ZXh0LWZvbnQtc2l6ZS1sbGw6IDIycHg7XG4kdGV4dC1mb250LXNpemUteGw6IDI0cHg7XG4kdGV4dC1mb250LXNpemUteHhsOiAyOHB4O1xuXG4vLyBUcmFuc2l0aW9ucy5cbiR0cmFuc2l0aW9ucy10cmFuc2l0aW9uLXNsb3dlc3Q6IC41MHM7XG4kdHJhbnNpdGlvbnMtdHJhbnNpdGlvbi1zbG93ZXI6IC40MHM7XG4kdHJhbnNpdGlvbnMtdHJhbnNpdGlvbi1zbG93OiAuMjVzO1xuJHRyYW5zaXRpb25zLXRyYW5zaXRpb24tbm9ybWFsOiAuMTVzO1xuJHRyYW5zaXRpb25zLXRyYW5zaXRpb24tZmFzdDogLjA1cztcbiIsIkBtaXhpbiBsaW5rLXJlc2V0IHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjb2xvcjogaW5oZXJpdDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0b3V0bGluZTogbm9uZTtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWl4aW4gdmlzdWFsbHktaGlkZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwO1xuXHRtaW4td2lkdGg6IDA7XG59XG5cbkBtaXhpbiBiYWRnZSgkcG9zaXRpb246IGFmdGVyKSB7XG5cdCY6OiN7JHBvc2l0aW9ufSB7XG5cdFx0Y29udGVudDogXCJQUk9cIjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXNtO1xuXHRcdHBhZGRpbmc6IDVweCA4cHg7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRmb250LXNpemU6IDhweDtcblx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjRweDtcblx0XHRsaW5lLWhlaWdodDogOHB4O1xuXHRcdGNvbG9yOiAkYmFkZ2VzLWJhZGdlLW5ldXRyYWwtdGV4dDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2VzLWJhZGdlLW5ldXRyYWwtYmFja2dyb3VuZDtcblx0XHRib3JkZXItcmFkaXVzOiAkcmFkaXVzLXJhZGl1cy1iYWRnZTtcblxuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbkBtaXhpbiBhbmltYXRpb24oICRrZXlmcmFtZXMgKSB7XG5cdC13ZWJraXQtYW5pbWF0aW9uOiAka2V5ZnJhbWVzO1xuXHQtbW96LWFuaW1hdGlvbjogJGtleWZyYW1lcztcblx0LW1zLWFuaW1hdGlvbjogJGtleWZyYW1lcztcblx0LW8tYW5pbWF0aW9uOiAka2V5ZnJhbWVzO1xuXHRhbmltYXRpb246ICRrZXlmcmFtZXM7XG59XG5cbkBrZXlmcmFtZXMgc3VnYXItY2FsZW5kYXItc3Bpbm5lci1yb3RhdGlvbiB7XG5cdGZyb20ge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKCAwZGVnICk7XG5cdH1cblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKCAzNjBkZWcgKTtcblx0fVxufVxuXG5AbWl4aW4gc3Bpbm5lcigkYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpLCAkZm9yZWdyb3VuZDogI2ZmZikge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGFuaW1hdGlvbjogbG9hZGluZyAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdGJvcmRlcjogMnB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuXHRib3JkZXItdG9wLWNvbG9yOiAkZm9yZWdyb3VuZDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRoZWlnaHQ6IDE2cHg7XG5cdHdpZHRoOiAxNnB4O1xuXHRAY29udGVudDtcblxuXHRAa2V5ZnJhbWVzIGxvYWRpbmcge1xuXHRcdHRvIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG5cdFx0fVxuXHR9XG59XG4iLCJAdXNlIFwidmFyaWFibGVzXCI7XG5AdXNlIFwiLi4vdmVuZG9yL2luY2x1ZGUtbWVkaWFcIjtcblxuQG1peGluIGZvcm0tZmllbGQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXJpYWJsZXMuJHN1cmZhY2Utc3VyZmFjZS1iYWNrZ3JvdW5kLXdoaXRlO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1ib3JkZXI7XG5cdGJvcmRlci1yYWRpdXM6IHZhcmlhYmxlcy4kcmFkaXVzLXJhZGl1cy1maWVsZDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0Y29sb3I6IHZhcmlhYmxlcy4kdGV4dC10ZXh0LXByaW1hcnk7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZzogMCAxMHB4O1xuXHRtYXJnaW46IDA7XG5cdHdpZHRoOiA0MDBweDtcblx0bWluLWhlaWdodDogMzZweDtcblx0bGluZS1oZWlnaHQ6IDM0cHg7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcmlhYmxlcy4kdGV4dC10ZXh0LXByaW1hcnk7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHZhcmlhYmxlcy4kZmllbGRzLWZpZWxkLWJvcmRlci0tZm9jdXMgIWltcG9ydGFudDtcblx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtYm9yZGVyLS1mb2N1cyAhaW1wb3J0YW50O1xuXHRcdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdCY6ZGlzYWJsZWQge1xuXHRcdGNvbG9yOiB2YXJpYWJsZXMuJHRleHQtdGV4dC1pY29uO1xuXHR9XG5cblx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYShcIjxkZXNrdG9wXCIpIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cdH1cbn1cblxuQG1peGluIGZvcm0tZmllbGQtc2VsZWN0IHtcblx0QGluY2x1ZGUgZm9ybS1maWVsZDtcblxuXHRwYWRkaW5nOiAwIDMycHggMCAxMHB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0YmFja2dyb3VuZDogI2ZmZiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsQ2p4emRtY2dkMmxrZEdnOUlqRXlJaUJvWldsbmFIUTlJamNpSUhacFpYZENiM2c5SWpBZ01DQXhNaUEzSWlCbWFXeHNQU0p1YjI1bElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaVBnbzhjR0YwYUNCa1BTSk5NaUF3TGpNeE1qVk1OaUEwTGpNeE1qVk1NVEFnTUM0ek1USTFUREV4TGpVNU16Z2dNUzR3T1RNM05VdzJJRFl1TmpnM05Vd3dMalF3TmpJMUlERXVNRGt6TnpWTU1pQXdMak14TWpWYUlpQm1hV3hzUFNJalFUZEJRVUZFSWk4K0Nqd3ZjM1puUGdvPScpIG5vLXJlcGVhdCByaWdodCAxMHB4IHRvcCA1NSU7XG59XG5cbkBtaXhpbiBmb3JtLWZpZWxkLXJhZGlvIHtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtYm9yZGVyO1xuXHRtYXJnaW46IDFweCAxMHB4IDAgMDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHQmOjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcmlhYmxlcy4kZmllbGRzLWZpZWxkLWNob2ljZS1vbjtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb247XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcmlhYmxlcy4kZmllbGRzLWZpZWxkLWNob2ljZS1vbjtcblx0fVxuXG5cdCY6Y2hlY2tlZCB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb247XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uLS1ob3ZlcjtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uLS1ob3Zlcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb24tLWhvdmVyO1xuXHRcdH1cblx0fVxuXG5cdCY6ZGlzYWJsZWQge1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb2ZmO1xuXHR9XG59XG5cbkBtaXhpbiBmb3JtLWZpZWxkLWNoZWNrYm94IHtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtYm9yZGVyO1xuXHRtYXJnaW46IDFweCAxMHB4IDAgMDtcblxuXHQmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcblx0XHRib3JkZXItY29sb3I6IHZhcmlhYmxlcy4kZmllbGRzLWZpZWxkLWNob2ljZS1vbjtcblx0fVxuXG5cdCY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uO1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb247XG5cdH1cblxuXHQmOmNoZWNrZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcmlhYmxlcy4kZmllbGRzLWZpZWxkLWNob2ljZS1vbjtcblx0XHRib3JkZXItY29sb3I6IHZhcmlhYmxlcy4kZmllbGRzLWZpZWxkLWNob2ljZS1vbjtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0bWFzazogdXJsKC4uL2ltYWdlcy9pY29ucy95ZXMuc3ZnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcmlhYmxlcy4kc3VyZmFjZS1zdXJmYWNlLWJhY2tncm91bmQtd2hpdGU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJVxuXHRcdH1cblxuXHRcdCY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb24tLWhvdmVyO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uLS1ob3Zlcjtcblx0XHR9XG5cblx0XHQmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXJpYWJsZXMuJHN1cmZhY2Utc3VyZmFjZS1iYWNrZ3JvdW5kLXdoaXRlLCAwIDAgMCAycHggdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uLS1ob3Zlcjtcblx0XHR9XG5cdH1cblxuXHQmOmRpc2FibGVkIHtcblx0XHRvcGFjaXR5OiAwLjU7XG5cblx0XHQmOmNoZWNrZWQge1xuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQG1peGluIHZpc3VhbGx5LWhpZGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGhlaWdodDogMDtcblx0d2lkdGg6IDA7XG5cdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMDtcblx0bWluLXdpZHRoOiAwO1xufVxuXG5AbWl4aW4gZm9ybS1maWVsZC10ZXh0YXJlYSB7XG5cdEBpbmNsdWRlIGZvcm0tZmllbGQ7XG59XG5cbkBtaXhpbiBmb3JtLWZpZWxkLWVycm9yIHtcblx0Ym9yZGVyLWNvbG9yOiB2YXJpYWJsZXMuJGZpZWxkLWJvcmRlci1lcnJvcjtcbn1cblxuLnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luOiAwIDFweDtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdGNvbG9yOiB2YXJpYWJsZXMuJHRleHQtdGV4dC1zZWNvbmRhcnk7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGhlaWdodDogMjVweDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0QGluY2x1ZGUgdmlzdWFsbHktaGlkZTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcblx0XHRcdCYgKyBsYWJlbC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1pY29uIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtY2hvaWNlLW9mZi0taG92ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG5cdFx0XHQmICsgbGFiZWwuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wtaWNvbiB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXJpYWJsZXMuJHN1cmZhY2Utc3VyZmFjZS1iYWNrZ3JvdW5kLXdoaXRlLCAwIDAgMCAycHggdmFyaWFibGVzLiRmaWVsZHMtZmllbGQtYm9yZGVyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6Y2hlY2tlZCB7XG5cdFx0XHQmICsgbGFiZWwuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wtaWNvbiB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcmlhYmxlcy4kZmllbGRzLWZpZWxkLWNob2ljZS1vbjtcblx0XHRcdFx0b3BhY2l0eTogMTtcblxuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRsZWZ0OiBjYWxjKDEwMCUgLSAycHgpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Jjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG5cdFx0XHRcdCYgKyBsYWJlbC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1pY29uIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb24tLWhvdmVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuXHRcdFx0XHQmICsgbGFiZWwuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wtaWNvbiB7XG5cdFx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcmlhYmxlcy4kc3VyZmFjZS1zdXJmYWNlLWJhY2tncm91bmQtd2hpdGUsIDAgMCAwIDJweCB2YXJpYWJsZXMuJGZpZWxkcy1maWVsZC1jaG9pY2Utb247XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmRpc2FibGVkIHtcblx0XHRcdCYgKyBsYWJlbC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1pY29uIHtcblx0XHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdCYgKyBsYWJlbC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1pY29uIHtcblx0XHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0c3Bhbixcblx0bGFiZWwge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cblx0LnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sLWxhYmVsIHtcblx0XHRwYWRkaW5nOiAwIHZhcmlhYmxlcy4kc3BhY2luZy1zbTtcblx0XHRtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDY1cHgpO1xuXHR9XG5cblx0LnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sLXN0YXR1cyB7XG5cdFx0Y29sb3I6IHZhcmlhYmxlcy4kdGV4dC10ZXh0LXNlY29uZGFyeTtcblx0XHRmb250LXNpemU6IHZhcmlhYmxlcy4kdGV4dC1mb250LXNpemUteHM7XG5cdFx0bGluZS1oZWlnaHQ6IDE3cHg7XG5cdFx0cGFkZGluZzogMCB2YXJpYWJsZXMuJHNwYWNpbmctc207XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sLXN0YXR1cy1vZmYsXG5cdC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1zdGF0dXMtb24ge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuXG5cdGlucHV0Om5vdCg6Y2hlY2tlZCkgfiAuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wtc3RhdHVzLW9mZixcblx0aW5wdXQ6Y2hlY2tlZCB+IC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1zdGF0dXMtb24ge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1pY29uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXJpYWJsZXMuJGNvbG9yLW5ldXRyYWwtMzA7XG5cdFx0Ym9yZGVyLXJhZGl1czogOC41cHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRoZWlnaHQ6IDE3cHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRleHQtaW5kZW50OiAtOTk5OXB4O1xuXHRcdHdpZHRoOiAyN3B4O1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXJpYWJsZXMuJGNvbG9yLXV0aWxpdHktd2hpdGU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0aGVpZ2h0OiAxM3B4O1xuXHRcdFx0bGVmdDogMnB4O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAycHg7XG5cdFx0XHR3aWR0aDogMTNweDtcblx0XHRcdHRyYW5zaXRpb246IGFsbCB2YXJpYWJsZXMuJHRyYW5zaXRpb25zLXRyYW5zaXRpb24tbm9ybWFsIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuXG5cdGlucHV0OmRpc2FibGVkIH4gLnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sLWljb24sXG5cdGlucHV0OmRpc2FibGVkIH4gLnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sLXN0YXR1cy1vZmYsXG5cdGlucHV0OmRpc2FibGVkIH4gLnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sLXN0YXR1cy1vbiB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG59XG4iLCIvLyBQcm9kdWN0IGVkdWNhdGlvbi5cbkBpbXBvcnQgJy4uLy4uL2FkbWluL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi92ZW5kb3IvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICcuLi8uLi9hZG1pbi9taXhpbnMnO1xuQGltcG9ydCAnLi4vLi4vYWRtaW4vZm9ybXMnO1xuXG4jc3VnYXJfY2FsZW5kYXJfZWRpdG9yX2V2ZW50X2RldGFpbHMge1xuXHQuc3VnYXItY2FsZW5kYXItZXZlbnQtZGV0YWlscy1tZXRhYm94IHtcblx0XHQuc3VnYXItY2FsZW5kYXItbWV0YWJveF9fc2VjdGlvbiB7XG5cdFx0XHQuc3VnYXItY2FsZW5kYXItbWV0YWJveF9fZmllbGQtcm93IHtcblx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLW1ldGFib3hfX2ZpZWxkIHtcblx0XHRcdFx0XHRpbnB1dFt0eXBlPW51bWJlcl0ge1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgZm9ybS1maWVsZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLS10aWNrZXRfcHJpY2Uge1xuXHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBzdGFydDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYtLXRpY2tldF9xdWFudGl0eSB7XG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IHN0YXJ0O1xuXG5cdFx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLW1ldGFib3hfX2ZpZWxkIHtcblx0XHRcdFx0XHRcdGlucHV0W3R5cGU9bnVtYmVyXSB7XG5cdFx0XHRcdFx0XHRcdHdpZHRoOiA4MHB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYtLXdvb2NvbW1lcmNlLWNoZWNrb3V0IHtcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogc3RhcnQ7XG5cblx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wtc3RhdHVzIHtcblx0XHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYyLjAuMFxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgS2l0dHkgR2lyYXVkZWwgKEBraXR0eWdpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcbkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnc21fbW9uaXRvcic6IDk5MnB4LFxuICAnZGVza3RvcCc6IDEwMjRweCxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOlxuICAgICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6XG4gICAgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJyxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMCxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgbWV0YS5mZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7XG4gIH1cbn1cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge1xufVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC5oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKVxuICAgICAge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGxpc3QuaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0cmluZy5pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0cmluZy5pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0cmluZy5zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItdHJpbSgkcGFyc2VkLWRpbWVuc2lvbik7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0cmluZy5sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGxpc3QuaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0cmluZy5zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyaW5nLmxlbmd0aCgkb3BlcmF0b3IpKTtcbiAgJHRyaW1tZWRWYWx1ZTogc3RyLXRyaW0oJHZhbHVlKTtcblxuICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdHJpbW1lZFZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJHRyaW1tZWRWYWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR0cmltbWVkVmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAuZ2V0KCR1bml0LWludGVydmFscywgbWF0aC51bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7bWF0aC51bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAuaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAuZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGlzdC5sZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsaXN0Lmxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogbGlzdC5hcHBlbmQoJHJlc3VsdCwgbGlzdC5udGgoJGxpc3QsICRpKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgbWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIG1ldGEudHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6IChcbiAgICAnMCc6IDAsXG4gICAgJzEnOiAxLFxuICAgICcyJzogMixcbiAgICAnMyc6IDMsXG4gICAgJzQnOiA0LFxuICAgICc1JzogNSxcbiAgICAnNic6IDYsXG4gICAgJzcnOiA3LFxuICAgICc4JzogOCxcbiAgICAnOSc6IDksXG4gICk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0cmluZy5zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHJpbmcubGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0cmluZy5zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90KGxpc3QuaW5kZXgobWFwLmtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0cmluZy5zbGljZSgkdmFsdWUsICRpKSk7XG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWF0aC5kaXYobWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3RlciksICRkaWdpdHMpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoXG4gICAgJ3B4JzogMXB4LFxuICAgICdjbSc6IDFjbSxcbiAgICAnbW0nOiAxbW0sXG4gICAgJyUnOiAxJSxcbiAgICAnY2gnOiAxY2gsXG4gICAgJ3BjJzogMXBjLFxuICAgICdpbic6IDFpbixcbiAgICAnZW0nOiAxZW0sXG4gICAgJ3JlbSc6IDFyZW0sXG4gICAgJ3B0JzogMXB0LFxuICAgICdleCc6IDFleCxcbiAgICAndncnOiAxdncsXG4gICAgJ3ZoJzogMXZoLFxuICAgICd2bWluJzogMXZtaW4sXG4gICAgJ3ZtYXgnOiAxdm1heCxcbiAgKTtcblxuICBAaWYgbm90IGxpc3QuaW5kZXgobWFwLmtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLmdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBKYWNrIE1jTmljb2xcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gVHJpbXMgYSBzdHJpbmcgb2YgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAtIFZhbHVlIHRvIGJlIHRyaW1tZWRcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ31cbi8vL1xuXG5AZnVuY3Rpb24gc3RyLXRyaW0oJHN0cmluZykge1xuICBAaWYgKHN0ci1zbGljZSgkc3RyaW5nLCAxLCAxKSA9PSAnICcpIHtcbiAgICBAcmV0dXJuIHN0ci10cmltKHN0ci1zbGljZSgkc3RyaW5nLCAyKSk7XG4gIH0gQGVsc2UgaWYgKHN0ci1zbGljZSgkc3RyaW5nLCBzdHItbGVuZ3RoKCRzdHJpbmcpLCAtMSkgPT0gJyAnKSB7XG4gICAgQHJldHVybiBzdHItdHJpbShzdHItc2xpY2UoJHN0cmluZywgMSwgLTIpKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc3RyaW5nO1xuICB9XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAubWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLm1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsaXN0Lmxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSlcbiAge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGlzdC5sZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3N0cmluZy51bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obGlzdC5udGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICAkc2xpY2VkLWNvbmRpdGlvbnM6IHNsaWNlKCRjb25kaXRpb25zLCAyKTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbGljZWQtY29uZGl0aW9ucy4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== */
