/* breakpoints */
.title-row-box {
  border: 1px solid #d2d2d2;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 87px;
  margin: 0;
  padding: 0;
  background: #f7f7f7;
}
.title-row-box > .component-content {
  max-width: 960px;
  margin: 0 auto !important;
}
.title-row-box > .component-content .title {
  display: inline-block;
  vertical-align: middle;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 23px 0 0 0;
  padding: 0;
}
.title-row-box > .component-content .title h1 {
  font-size: 22px;
  font-size: 2.2rem;
  border: none;
}
@media only screen and (max-width: 959px) {
  .title-row-box > .component-content .title {
    margin: 23px 0 0 20px;
  }
}
.title-row-box > .component-content .rich-text {
  margin: 0;
}
.title-row-box > .component-content .rich-text h1, .title-row-box > .component-content .rich-text h2, .title-row-box > .component-content .rich-text h3, .title-row-box > .component-content .rich-text h4 {
  margin: 0;
  padding: 0;
}
.title-row-box > .component-content .breadcrumb {
  display: inline-block;
  vertical-align: middle;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 14px;
  font-size: 1.4rem;
  margin: 23px 0 0 0;
  padding: 0;
  float: right;
  clear: both;
}
@media only screen and (min-width: 381px) and (max-width: 959px) {
  .title-row-box > .component-content .breadcrumb {
    margin: 23px 20px 0 0;
  }
}
@media only screen and (max-width: 380px) {
  .title-row-box > .component-content .breadcrumb {
    display: none;
  }
}
@media only screen and (max-width: 959px) {
  .title-row-box .alpha {
    vertical-align: middle;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: auto !important;
    float: left;
  }
  .title-row-box .omega {
    vertical-align: middle;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: auto !important;
    float: right;
  }
}

.container {
  padding: 0;
}

.c-full-width-background {
  padding: 0 !important;
  overflow: hidden;
  max-width: 100% !important;
}
@media (min-width: 640px) {
  .c-full-width-background {
    position: relative;
    left: 0;
    max-width: 100%;
    height: 464px;
  }
  .c-full-width-background > .component-content {
    background-size: cover;
    background-position: center;
    position: relative;
    height: 100%;
  }
}

.c-full-width-background--lg {
  padding: 0 !important;
  margin-top: 64px;
  margin-bottom: 64px;
}
@media (min-width: 640px) {
  .c-full-width-background--lg {
    position: relative;
    left: 50%;
    width: 100vw;
    right: 50%;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
  }
  .c-full-width-background--lg > .component-content {
    width: 100vw !important;
    background-size: cover;
    background-position: center;
    position: relative;
    height: 100%;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJzdHlsZXMvY29udGFpbmVyL3RpdGxlLXJvdy1ib3guc2NzcyIsImFic3RyYWN0cy92YXJzL19jb2xvcnMuc2NzcyIsImNvbXBvbmVudC1jb250YWluZXIuY3NzIiwiY29tcG9uZW50LWNvbnRhaW5lci5zY3NzIiwiYWJzdHJhY3RzL21peGlucy9fc2Fzcy1tcS1tb2Quc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3QkEsZ0JBQUE7QUNyQkE7RUR1R1EseUJBQUE7RUNyR0osOEJBQUE7VUFBQSxzQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxtQkNxRVk7QUN0RWhCO0FGR0k7RURvQkEsZ0JBQUE7RUFDQSx5QkFBQTtBR3BCSjtBRkVRO0VBQ0kscUJBQUE7RUFDQSxzQkFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QUVBWjtBRkVZO0VEdUJSLGVBQUE7RUFDQSxpQkFBQTtFQ3RCWSxZQUFBO0FFQ2hCO0FId0RRO0VDbEVBO0lBYVEscUJBQUE7RUVDZDtBQUNGO0FGRVE7RUFDSSxTQUFBO0FFQVo7QUZFWTtFQUNJLFNBQUE7RUFDQSxVQUFBO0FFQWhCO0FGSVE7RUFDSSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsOEJBQUE7VUFBQSxzQkFBQTtFRENSLGVBQUE7RUFDQSxpQkFBQTtFQ0FRLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0FFRFo7QUg0QlE7RUNuQ0E7SUFXUSxxQkFBQTtFRUFkO0FBQ0Y7QUhRUTtFQ3BCQTtJQWVRLGFBQUE7RUVDZDtBQUNGO0FIdUJRO0VDbkJBO0lBQ0ksc0JBQUE7SUFDQSw4QkFBQTtZQUFBLHNCQUFBO0lBQ0Esc0JBQUE7SUFDQSxXQUFBO0VFRFY7RUZJTTtJQUNJLHNCQUFBO0lBQ0EsOEJBQUE7WUFBQSxzQkFBQTtJQUNBLHNCQUFBO0lBQ0EsWUFBQTtFRUZWO0FBQ0Y7O0FDckVBO0VBQ0ksVUFBQTtBRHdFSjs7QUNyRUE7RUFDSSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsMEJBQUE7QUR3RUo7QUV1S1E7RURsUFI7SUFNUSxrQkFBQTtJQUNBLE9BQUE7SUFDQSxlQUFBO0lBQ0EsYUFBQTtFRHlFTjtFQ3ZFTTtJQUNJLHNCQUFBO0lBQ0EsMkJBQUE7SUFDQSxrQkFBQTtJQUNBLFlBQUE7RUR5RVY7QUFDRjs7QUNyRUE7RUFDSSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7QUR3RUo7QUVtSlE7RUQ5TlI7SUFNUSxrQkFBQTtJQUNBLFNBQUE7SUFDQSxZQUFBO0lBQ0EsVUFBQTtJQUNBLDZCQUFBO0lBQ0EsOEJBQUE7RUR5RU47RUN2RU07SUFDSSx1QkFBQTtJQUNBLHNCQUFBO0lBQ0EsMkJBQUE7SUFDQSxrQkFBQTtJQUNBLFlBQUE7RUR5RVY7QUFDRiIsImZpbGUiOiJjb21wb25lbnQtY29udGFpbmVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBpbXBvcnQgJ35zYXNzLW1xL21xJztcclxuQHVzZSBcInNhc3M6bGlzdFwiO1xyXG5AdXNlICdtaXhpbnMvc2Fzcy1tcS1tb2Quc2Nzcyc7XHJcbkB1c2UgJy4uL2NvbW1vbi11aS90eXBvZ3JhcGh5L21peGlucyc7XHJcbkB1c2UgJ21peGlucy9hY2Nlc3NpYmlsaXR5JztcclxuQHVzZSAnbWl4aW5zL2J1dHRvbic7XHJcbkB1c2UgJ21peGlucy9saW5rJztcclxuQHVzZSAnbWl4aW5zL292ZXJsYXknO1xyXG5AdXNlICdtaXhpbnMvdHJhbnNpdGlvbnMnO1xyXG5AdXNlICdtaXhpbnMvc2hhZG93cyc7XHJcbkB1c2UgJ21peGlucy90YWcnO1xyXG5AdXNlICcuLi9hYnN0cmFjdHMvdmFycy9jb2xvcnMnO1xyXG5cclxuQGZvcndhcmQgJ21peGlucy9zYXNzLW1xLW1vZC5zY3NzJztcclxuQGZvcndhcmQgJy4uL2NvbW1vbi11aS90eXBvZ3JhcGh5L21peGlucyc7XHJcbkBmb3J3YXJkICdtaXhpbnMvYWNjZXNzaWJpbGl0eSc7XHJcbkBmb3J3YXJkICdtaXhpbnMvYnV0dG9uJztcclxuQGZvcndhcmQgJ21peGlucy9saW5rJztcclxuQGZvcndhcmQgJ21peGlucy9vdmVybGF5JztcclxuQGZvcndhcmQgJ21peGlucy90cmFuc2l0aW9ucyc7XHJcbkBmb3J3YXJkICdtaXhpbnMvc2hhZG93cyc7XHJcbkBmb3J3YXJkICdtaXhpbnMvdGFnJztcclxuXHJcbi8vIEJlbG93IGFyZSBtaXhpbidzIGZyb20gRlhBXHJcbi8qIGJyZWFrcG9pbnRzICovXHJcblxyXG4kYnJlYWstZGVza3RvcDogOTYwcHg7XHJcbiRicmVhay1tb2JpbGU6IDM4MHB4O1xyXG4kYnJlYWstbW9iaWxlLWhvcml6b250YWw6IDY0MHB4O1xyXG4kYnJlYWstbW9iaWxlLWxhcmdlOiA3ODZweDtcclxuXHJcbkBtaXhpbiB3cmFwcGVyKCkge1xyXG4gICAgbWF4LXdpZHRoOiA5NjBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEuNikge1xyXG4gICAgZm9udC1zaXplOiAoJHNpemVWYWx1ZSAqIDEwKSArIHB4O1xyXG4gICAgZm9udC1zaXplOiAkc2l6ZVZhbHVlICsgcmVtO1xyXG59XHJcblxyXG5AbWl4aW4gb3BlbnNhbnMtZm9udC1zdGFjaygpIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuQG1peGluIGxvYWRpbmctZ2lmKCkge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXpNaUF6TWlJZ2QybGtkR2c5SWpNeUlpQm9aV2xuYUhROUlqTXlJaUJtYVd4c1BTSmliR0ZqYXlJK0RRb2dJRHh3WVhSb0lDQnZjR0ZqYVhSNVBTSXVNalVpSUdROUlrMHhOaUF3SUVFeE5pQXhOaUF3SURBZ01DQXhOaUF6TWlCQk1UWWdNVFlnTUNBd0lEQWdNVFlnTUNCTk1UWWdOQ0JCTVRJZ01USWdNQ0F3SURFZ01UWWdNamdnUVRFeUlERXlJREFnTUNBeElERTJJRFFpTHo0TkNpQWdQSEJoZEdnZ1ptbHNiRDBuSXpGaE9EQmlOaWNnWkQwaVRURTJJREFnUVRFMklERTJJREFnTUNBeElETXlJREUySUV3eU9DQXhOaUJCTVRJZ01USWdNQ0F3SURBZ01UWWdOSG9pUGcwS0lDQWdJRHhoYm1sdFlYUmxWSEpoYm5ObWIzSnRJR0YwZEhKcFluVjBaVTVoYldVOUluUnlZVzV6Wm05eWJTSWdkSGx3WlQwaWNtOTBZWFJsSWlCbWNtOXRQU0l3SURFMklERTJJaUIwYnowaU16WXdJREUySURFMklpQmtkWEk5SWpBdU9ITWlJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpQXZQZzBLSUNBOEwzQmhkR2crRFFvOEwzTjJaejROQ2c9PSk7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5cclxuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XHJcbiAgICBAaWYgJG1lZGlhPT1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PW1vYmlsZS1ob3Jpem9udGFsIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUtaG9yaXpvbnRhbCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1tb2JpbGUtbGFyZ2Uge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZS1sYXJnZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PXRhYmxldCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstbW9iaWxlICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVhay1kZXNrdG9wIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PWFsbC1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLWRlc2t0b3AgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09ZGVza3RvcCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstZGVza3RvcCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItYmFzaWMoJHBvc2l0aW9uOiBhbGwsICRib3JkZXItY29sb3I6IGNvbG9ycy4kYm9yZGVyLWdyYXksICRib3JkZXItd2lkdGg6IDFweCkge1xyXG4gICAgQGlmKCRwb3NpdGlvbj09dG9wKSB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1ib3R0b20pIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PWxlZnQpIHtcclxuICAgICAgICBib3JkZXItbGVmdDogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1yaWdodCkge1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gZml4ZWQtYmcoJHBvcywgJG1pbi1oZWlnaHQ6IDI0MHB4KSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zO1xyXG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcclxuICAgIG1pbi1oZWlnaHQ6ICRtaW4taGVpZ2h0O1xyXG59XHJcblxyXG5AbWl4aW4gbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcy4uLikge1xyXG4gICAgLy8gRGlyZWN0aW9uIGhhcyBiZWVuIG9taXR0ZWQgYW5kIGhhcHBlbnMgdG8gYmUgYSBjb2xvci1zdG9wXHJcbiAgICBAaWYgaXMtZGlyZWN0aW9uKCRkaXJlY3Rpb24pPT1mYWxzZSB7XHJcbiAgICAgICAgJGNvbG9yLXN0b3BzOiAkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHM7XHJcbiAgICAgICAgJGRpcmVjdGlvbjogMTgwZGVnO1xyXG4gICAgfVxyXG5cclxuICAgICRmaXJzdC1jb2xvci1zdG9wLWdyb3VwOiBsaXN0Lm50aCgkY29sb3Itc3RvcHMsIDEpO1xyXG4gICAgJGZpcnN0LWNvbG9yLXN0b3A6IGxpc3QubnRoKCRmaXJzdC1jb2xvci1zdG9wLWdyb3VwLCAxKTtcclxuICAgIGJhY2tncm91bmQ6ICRmaXJzdC1jb2xvci1zdG9wO1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVnYWN5LWRpcmVjdGlvbigkZGlyZWN0aW9uKSwgJGNvbG9yLXN0b3BzKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMpO1xyXG59XHJcbiIsIkB1c2UgXCIuLi8uLi9hYnN0cmFjdHMvdmFycy9jb2xvcnNcIjtcclxuQHVzZSBcIi4uLy4uL2Fic3RyYWN0cy9taXhpbnNcIjtcclxuXHJcbi50aXRsZS1yb3ctYm94IHtcclxuICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMoKTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogODdweDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJGNvbnRhaW5lci10aXRsZS1yb3ctYmc7XHJcblxyXG4gICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1peGlucy53cmFwcGVyKCk7XHJcblxyXG4gICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgbWFyZ2luOiAyM3B4IDAgMCAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICAgICAgaDEge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmZvbnQtc2l6ZSgyLjIpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMucmVzcG9uZC10byhhbGwtbW9iaWxlKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDIzcHggMCAwIDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yaWNoLXRleHQge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICAgICAgICBoMSwgaDIsIGgzLCBoNCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmZvbnQtc2l6ZSgxLjQpO1xyXG4gICAgICAgICAgICBtYXJnaW46IDIzcHggMCAwIDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMucmVzcG9uZC10byh0YWJsZXQpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMjNweCAyMHB4IDAgMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnJlc3BvbmQtdG8obW9iaWxlKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1peGlucy5yZXNwb25kLXRvKGFsbC1tb2JpbGUpIHtcclxuICAgICAgICAuYWxwaGEge1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyAvL292ZXJyaWRlcyBncmlkXHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm9tZWdhIHtcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgLy9vdmVycmlkZXMgZ3JpZFxyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIkB1c2UgXCIuLi9mdW5jdGlvbnMvY29sb3JcIjtcclxuQHVzZSBcInNhc3M6bWFwXCI7XHJcbkBmb3J3YXJkIFwiLi4vZnVuY3Rpb25zL2NvbG9yXCIgc2hvdyBjb2xvcjtcclxuXHJcbi8vIFVzZSBjb2xvciBmdW5jdGlvbnMgZm9yIFRUQ1xyXG4vLyBOYW1lcyB0YWtlbiBmcm9tIGh0bWxjc3Njb2xvci5jb20gaWYgbm90IGRlc2NyaXB0aXZlIGVub3VnaCBmcm9tIHplcGxpblxyXG4kY29sb3JzOiAoXHJcbiAgXCJ3aGl0ZVwiOiAjZmZmZmZmLFxyXG4gIFwid2hpdGUtc21va2VcIjogI2YzZjNmMyxcclxuICBcImNoZXJyeS1yZWRcIjogI2RhMjUxZCxcclxuICBcInNjYXJsZXRcIjogIzc0MDAwMCxcclxuICBcImNhcm1pbmVcIjogI2EzMDAxYyxcclxuICBcImNlcnVsZWFuXCI6ICMwMDcwY2QsXHJcbiAgXCJvY2Vhbi1ibHVlXCI6ICMwNjU2YTUsXHJcbiAgXCJjZXJ1bGVhbi10d29cIjogIzAwOWFkZSxcclxuICBcImdvbGRlbi15ZWxsb3dcIjogI2ZmYzYyNyxcclxuICBcIndhcm0tZ3JleVwiOiAjNzY3Njc2LFxyXG4gIFwiZ3JleTI5XCI6ICM0YTRhNGEsXHJcbiAgXCJncmV5NzBcIjogI2IzYjNiMyxcclxuICBcImR1c3R5LWdyZXlcIjogI2VkZWRlZCxcclxuICBcIndhcm0tZ3JleS0yXCI6ICM5Nzk3OTcsXHJcbiAgXCJkaW0tZ3JleVwiOiAjNjk2OTY5LFxyXG4gIFwid2hpdGUtdHdvXCI6ICNkNWQ1ZDUsXHJcbiAgXCJ3aGl0ZS10aHJlZVwiOiAjZDJkMmQyLFxyXG4gIFwiZ2FpbnNib3JvXCI6ICNkOGQ4ZDgsXHJcbiAgXCJuZXJvXCI6ICMxZTFlMWUsXHJcbiAgXCJnb2xkZW4tcG9wcHlcIjogI2Y4YzMwMCxcclxuICBcImV4cHJlc3MtZ3JlZW5cIjogIzAwOTIzZixcclxuICBcIm5pZ2h0LWJsdWVcIjogIzAyNDE4MixcclxuICBcImNvbW11bml0eS1ncmV5XCI6ICM4MDgwODAsXHJcbiAgXCJtYXV2ZS10YXVwZVwiOiAjOTc1ODZCLFxyXG4gIFwiYmxhY2tcIjogIzAwMDAwMCxcclxuICBcInNwaW5rXCI6ICNFQjZGQkQsXHJcbiAgXCJvcmFuZ2VcIjogI0VCODczOCxcclxuICBcInNodXR0bGUtb3JhbmdlXCI6ICNFQjg3MzhcclxuKTtcclxuXHJcbiRmdW5jdGlvbmFsLWNvbG9yczogKFxyXG4gIHByaW1hcnktY29udHJhc3Q6IG1hcC5nZXQoJGNvbG9ycywgXCJ3aGl0ZVwiKSxcclxuICBwcmltYXJ5LWNvbnRyYXN0LWRhcms6IG1hcC5nZXQoJGNvbG9ycywgXCJ3aGl0ZS1zbW9rZVwiKSxcclxuICBwcmltYXJ5OiBtYXAuZ2V0KCRjb2xvcnMsIFwiY2hlcnJ5LXJlZFwiKSxcclxuICBwcmltYXJ5LWRhcms6IG1hcC5nZXQoJGNvbG9ycywgXCJzY2FybGV0XCIpLFxyXG4gIHByaW1hcnktZGFya2VyOiBtYXAuZ2V0KCRjb2xvcnMsIFwiY2FybWluZVwiKSxcclxuICBzZWNvbmRhcnk6IG1hcC5nZXQoJGNvbG9ycywgXCJjZXJ1bGVhblwiKSxcclxuICBzZWNvbmRhcnktZGFyazogbWFwLmdldCgkY29sb3JzLCBcIm9jZWFuLWJsdWVcIiksXHJcbiAgc2Vjb25kYXJ5LWxpZ2h0OiBtYXAuZ2V0KCRjb2xvcnMsIFwiY2VydWxlYW4tdHdvXCIpLFxyXG4gIGFjY2VudC15ZWxsb3c6IG1hcC5nZXQoJGNvbG9ycywgXCJnb2xkZW4teWVsbG93XCIpLFxyXG4gIGdyZXk6IG1hcC5nZXQoJGNvbG9ycywgXCJncmV5MjlcIiksXHJcbiAgZ3JleS1tZW51OiBtYXAuZ2V0KCRjb2xvcnMsIFwiZHVzdHktZ3JleVwiKSxcclxuICBncmV5LWJvcmRlcjogbWFwLmdldCgkY29sb3JzLCBcIndhcm0tZ3JleVwiKSxcclxuICBncmV5LWJvcmRlci0yOiBtYXAuZ2V0KCRjb2xvcnMsIFwid2hpdGUtdGhyZWVcIiksXHJcbiAgZ3JleS1wbGFjZWhvbGRlcjogbWFwLmdldCgkY29sb3JzLCBcImdyZXk3MFwiKSxcclxuICBncmV5LTI6IG1hcC5nZXQoJGNvbG9ycywgXCJ3YXJtLWdyZXktMlwiKSxcclxuICBjYXJvdXNlbC1kb3RzOiBtYXAuZ2V0KCRjb2xvcnMsIFwiZGltLWdyZXlcIiksXHJcbiAgZ3JleS1saWdodDogbWFwLmdldCgkY29sb3JzLCBcImdhaW5zYm9yb1wiKSxcclxuICB0YWItLWRpc2FibGVkOiBtYXAuZ2V0KCRjb2xvcnMsIFwid2hpdGUtdHdvXCIpLFxyXG4gIGJhY2tkcm9wOiByZ2JhKDAsMCwwLDAuNyksXHJcbiAgYmxhY2s6IG1hcC5nZXQoJGNvbG9ycywgXCJibGFja1wiKSxcclxuICBzaXRlLXdpZGUtYWxlcnQ6IG1hcC5nZXQoJGNvbG9ycywgXCJnb2xkZW4tcG9wcHlcIiksXHJcbiAgdmlzaXRlZC0tbGluazogbWFwLmdldCgkY29sb3JzLCBcIm1hdXZlLXRhdXBlXCIpXHJcbik7XHJcblxyXG4vLyBQb3B1bGF0ZSBzaGFyZWQgY29sb3IgZnVuY3Rpb24gbWFwc1xyXG5AaW5jbHVkZSBjb2xvci5zZXQtY29sb3ItbWFwcygkY29sb3JzLCAkZnVuY3Rpb25hbC1jb2xvcnMpO1xyXG5cclxuLy8gQ29tcGF0aWJpbGl0eSBzaGltIGZvciBsZWdhY3kgY2FsbHMgdXNpbmcgbWFwLWdldCguLi4pLlxyXG4vLyBUaGlzIGF2b2lkcyBEYXJ0IFNhc3MgZ2xvYmFsIGJ1aWx0LWluIGRlcHJlY2F0aW9uIHdhcm5pbmdzIHdoaWxlIHRoZSBjb2RlYmFzZSBpcyBpbmNyZW1lbnRhbGx5IG1pZ3JhdGVkIHRvIG1hcC5nZXQoLi4uKS5cclxuQGZ1bmN0aW9uIG1hcC1nZXQoJG1hcC12YWx1ZSwgJGtleSkge1xyXG4gIEByZXR1cm4gbWFwLmdldCgkbWFwLXZhbHVlLCAka2V5KTtcclxufVxyXG5cclxuLy8gTGVnYWN5IGNvbXBhdGliaWxpdHkgZm9yIGZpbGVzIHN0aWxsIHVzaW5nIG1hcC1nZXQoJGNvbG9ycywgLi4uKVxyXG4kY29sb3JzOiAkY29sb3JzICFkZWZhdWx0O1xyXG4kZnVuY3Rpb25hbC1jb2xvcnM6ICRmdW5jdGlvbmFsLWNvbG9ycyAhZGVmYXVsdDtcclxuXHJcbi8vQmFja2dyb3VuZHMgY29sb3JzXHJcbiRiZy10cmFuc3BhcmVudDp0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJGJnLWJhc2ljLWNvbG9yOiNGRkZGRkYgIWRlZmF1bHQ7XHJcbiRiZy1iYXNpYy1jb2xvci1hY3RpdmU6ICNjY2NjY2MgIWRlZmF1bHQ7XHJcbiRiZy1saWdodC1ncmF5OiAjZjdmN2Y3ICFkZWZhdWx0O1xyXG4kYmctbGlnaHQtZ3JheS1hY3RpdmU6ICNkYWRhZGEgIWRlZmF1bHQ7XHJcbiRiZy1ibHVlOiM4OUM2Q0M7XHJcbiRiZy1ibHVlLWFjdGl2ZTogIzE1OTA5YyAhZGVmYXVsdDtcclxuJGJnLXN1Ym1lbnU6I2VkZWJlYiAhZGVmYXVsdDtcclxuJGJnLXN1Ym1lbnUtYWN0aXZlOiNmNmY2ZjYgIWRlZmF1bHQ7XHJcbiRiZy1ibGFjazojMDAwMDAwO1xyXG4kYmctYmxhY2stYWN0aXZlOiMzZDNkM2Q7XHJcbi8vVGV4dCBjb2xvcnNcclxuJHRleHQtd2hpdGU6I2ZmZiAhZGVmYXVsdDtcclxuJHRleHQtaGVhZGluZy1jb2xvcjogIzIyMiAhZGVmYXVsdDtcclxuJHRleHQtYmFzaWM6Izc0NzQ3NCAhZGVmYXVsdDtcclxuJHRleHQtYmFzaWMtYWN0aXZlOiM4Nzg3ODcgIWRlZmF1bHQ7XHJcbiR0ZXh0LWJsdWU6Izg5QzZDQyAhZGVmYXVsdDtcclxuJHRleHQtYmx1ZS1hY3RpdmU6IzE1OTA5YyAhZGVmYXVsdDtcclxuJHRleHQtc3VibWVudS1hY3RpdmU6ICMyMjIgIWRlZmF1bHQ7XHJcbiR0ZXh0LWRpc2FibGVkOiAjYWFhICFkZWZhdWx0O1xyXG4kdGV4dC1ibGFjazogIzAwMDAwMCAhZGVmYXVsdDtcclxuLy9Cb3JkZXIgY29sb3JzXHJcbiRib3JkZXItZ3JheTogI2QyZDJkMiAhZGVmYXVsdDtcclxuJGJvcmRlci13aGl0ZTogI2ZmZmZmZiAhZGVmYXVsdDtcclxuJGJvcmRlci1iYXNpYy1jb2xvcjogIzg5QzZDQyAhZGVmYXVsdDtcclxuJGJvcmRlci1iYXNpYy1hY3RpdmU6IzE1OTA5YyAhZGVmYXVsdDtcclxuXHJcbi8vU3R5bGVzIGZvciBlYWNoIGNvbXBvbmVudCBzZXBhcmF0ZWx5XHJcbi8vQWNjb3JkaW9uXHJcbiRhY2NvcmRpb24taGVhZGVyLWJnOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi1oZWFkZXItYmctYWN0aXZlOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi10b2dnbGVkLWJnOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi1oZWFkZXItYm9yZGVyOiAkYm9yZGVyLWdyYXk7XHJcbi8vQnJlYWRjcnVtYlxyXG4kYnJlYWRjcnVtYi1kcm9wZG93bi1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRicmVhZGNydW1iLWRyb3Bkb3duLWJnLWFjdGl2ZTokYmctYmx1ZTtcclxuJGJyZWFkY3J1bWItZHJvcGRvd24tdGV4dC1hY3RpdmU6JHRleHQtd2hpdGU7XHJcbiRicmVhZGNydW1iLWJnOnRyYW5zcGFyZW50O1xyXG4kYnJlYWRjcnVtYi1jb2xvcjokdGV4dC1iYXNpYztcclxuJGJyZWFkY3J1bWItY29sb3ItYWN0aXZlOiR0ZXh0LWJsdWUtYWN0aXZlO1xyXG4vL0J1dHRvbnMgY29sb3JzXHJcbiRidG4tZ3JlZW4tbGlnaHQ6ICNhMGNlNGU7XHJcbiRidG4tZ3JlZW46ICM5MmJlNDM7XHJcbiRidG4tcmVkLWFjdGl2ZTogI2MzNGUzMDtcclxuJGJ0bi1yZWQ6ICNiYzQ1MjY7XHJcbi8vQ2Fyb3VzZWxcclxuJGNhcm91c2VsLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGNhcm91c2VsLW5hdi1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kY2Fyb3VzZWwtbmF2LWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL0NvbnRhaW5lciBjb21wb25lbnRcclxuJGNvbnRhaW5lci10aXRsZS1yb3ctYmc6ICRiZy1saWdodC1ncmF5O1xyXG4vL0V2ZW50IExpc3RcclxuJGV2ZW50LWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRldmVudC1saXN0LWl0ZW0tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kZXZlbnQtbGlzdC1pdGVtLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kZXZlbnQtbGlzdC10aXRsZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9DYWxlbmRhclxyXG4kY2FsZW5kYXItYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kY2FsZW5kYXItaGVhZGVyLWJnOiRiZy1iYXNpYy1jb2xvci1hY3RpdmU7XHJcbiRjYWxlbmRhci1kYXktY29sb3ItYWN0aXZlOiR0ZXh0LXdoaXRlO1xyXG4vL0ZlZWRcclxuJGZlZWQtYmc6dHJhbnNwYXJlbnQ7XHJcbiRmZWVkLWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbi8vRmllbGQgRWRpdG9yXHJcbiRmaWVsZC1lZGl0b3ItYmc6dHJhbnNwYXJlbnQ7XHJcbiRmaWVsZC1lZGl0b3ItdGFibGUtYm9yZGVyOiRiZy1saWdodC1ncmF5O1xyXG4kZmllbGQtZWRpdG9yLXRleHQtaGVhZGVyOiR0ZXh0LWJsYWNrO1xyXG4kZmllbGQtZWRpdG9yLXRleHQ6JHRleHQtYmFzaWM7XHJcbi8vRmlsZSBMaXN0XHJcbiRmaWxlLWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRmaWxlLWxpc3QtaXRlbS1iZzp0cmFuc3BhcmVudDtcclxuJGZpbGUtbGlzdC10aXRsZS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGZpbGUtbGlzdC10aXRsZS1ib3JkZXI6dHJhbnNwYXJlbnQ7XHJcbiRmaWxlLWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGZpbGUtbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRmaWxlLWxpc3QtaXRlbS1zaXplOiR0ZXh0LWJhc2ljO1xyXG4kZmlsZS1saXN0LWl0ZW0tYm9yZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9GbGlwXHJcbiRmbGlwLWJnOnRyYW5zcGFyZW50O1xyXG4kZmxpcC1zbGlkZXMtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4vL0dhbGxlcnlcclxuJGdhbGxlcmlhLWNvbnRhaW5lci1iZzokYmctYmxhY2s7XHJcbiRnYWxsZXJ5LWluZm8tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kZ2FsbGVyeS1pbmZvLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRnYWxsZXJ5LWluZm8tdGV4dDokdGV4dC1iYXNpYztcclxuJGdhbGxlcnktbmF2LWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuJGdhbGxlcnktbmF2OiR0ZXh0LWJhc2ljO1xyXG4kZ2FsbGVyeS1jb3VudGVyLWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4vL0xhbmd1YWdlIHNlbGVjdG9yXHJcbiRsYW5nLXNlbGVjdG9yLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGxhbmctc2VsZWN0b3ItYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRsYW5nLXNlbGVjdG9yLWl0ZW0tYmctYWN0aXZlOiRiZy1iYXNpYy1jb2xvcjtcclxuJGxhbmctc2VsZWN0b3ItaXRlbS1ib3JkZXI6JGJvcmRlci13aGl0ZTtcclxuJGxhbmctc2VsZWN0b3ItaXRlbS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtYWN0aXZlO1xyXG4vL1NpdGUgc2VsZWN0b3JcclxuJHNpdGUtc2VsZWN0b3ItY29sb3I6JHRleHQtYmFzaWM7XHJcbi8vTGluayBMaXN0XHJcbiRsaW5rLWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLWxpc3QtaGVhZGVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbGluay1saXN0LWl0ZW1zLWJnOnRyYW5zcGFyZW50O1xyXG4kbGluay1saXN0LWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxpbmstbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRsaW5rLWxpc3QtaXRlbS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vTG9naW5cclxuJGxvZ2luLWJnOnRyYW5zcGFyZW50O1xyXG4vL0xvZ291dFxyXG4kbG9nb3V0LWJnOnRyYW5zcGFyZW50O1xyXG4kbG9nb3V0LWxpbmstdGV4dC1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxvZ291dC1saW5rLXRleHQtY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJGxvZ291dC1saW5rLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL01hcFxyXG4kbWFwLWJnOnRyYW5zcGFyZW50O1xyXG4kbWFwLWJvcmRlcjpub25lO1xyXG4vL1BhZ2UgTGlzdFxyXG4kcGFnZS1saXN0LWJnOiRiZy10cmFuc3BhcmVudDtcclxuJHBhZ2UtbGlzdC1pdGVtLWJnOiRiZy10cmFuc3BhcmVudDtcclxuJHBhZ2UtbGlzdC1pdGVtLXRpdGxlLXRleHQ6JHRleHQtYmxhY2s7XHJcbiRwYWdlLWxpc3QtaXRlbS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9QYWdpbmF0aW9uXHJcbiRsaXN0LXBhZ2luYXRpb24tYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaXN0LXBhZ2luYXRpb24tYWN0aXZlLWJnOiRiZy1ibHVlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjokdGV4dC13aGl0ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6JHRleHQtYmx1ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtYmc6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbi8vUGxheSBsaXN0IFxyXG4kcGxheS1saXN0LWJnOnRyYW5zcGFyZW50O1xyXG4kcGxheS1saXN0LWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbiRwbGF5LWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHBsYXktbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuJHBsYXktbGlzdC1uYXYtYWN0aXZlOiR0ZXh0LWJsdWU7XHJcbiRwbGF5LWxpc3QtaXRlbS1iZzokYmctbGlnaHQtZ3JheTtcclxuJHBsYXktbGlzdC1pdGVtLWFjdGl2ZS1iZzokYmctYmx1ZTtcclxuJHBsYXktbGlzdC1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHBsYXktbGlzdC10aXRsZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9Qcm9tb1xyXG4kcHJvbW8tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kcHJvbW8tYmctaGVybzpyZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiRwcm9tby1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kcHJvbW8taGVyby10ZXh0LWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4kcHJvbW8tc2hhZG93LWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1JpY2ggVGV4dCBDb250ZW50XHJcbiRyaWNoLWNvbnRlbnQtYmc6dHJhbnNwYXJlbnQ7XHJcbiRyaWNoLWNvbnRlbnQtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRyaWNoLWNvbnRlbnQtYm9yZGVyOm5vbmU7XHJcbi8vU2VhcmNoXHJcbiRzZWFyY2gtZmlsdGVyOiR0ZXh0LWJhc2ljO1xyXG4kc2VhcmNoLWZpbHRlci1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9NZW51IGNvbG9yc1xyXG4kbWVudS1ob3Zlci1jb2xvcjojMWI4MDllO1xyXG4kbWVudS1hY3RpdmUtY29sb3I6IzE3NmY4OTtcclxuLy9OYXZpZ2F0aW9uXHJcbiRuYXYtYmc6dHJhbnNwYXJlbnQ7XHJcbiRuYXYtY29sb3Itcm9vdDokdGV4dC1iYXNpYztcclxuJG5hdi1jb2xvci1yb290LWFjdGl2ZTokdGV4dC1iYXNpYztcclxuJG5hdi1ib3JkZXItcm9vdDokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbmF2LWJvcmRlci1yb290LWFjdGl2ZTokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbmF2LWNvbG9yLXN1Ym1lbnU6JHRleHQtc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtY29sb3Itc3VibWVudS1hY3RpdmU6JHRleHQtc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctcm9vdDokYmctc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctc3VibWVudTokYmctc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctc3VibWVudS1hY3RpdmU6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbmF2LWJvcmRlci1zdWJtZW51OiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRuYXYtc3VibWVudS1pdGVtLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRuYXYtc3VibWVudS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vU29jaWFsIE1lZGlhIFNoYXJlXHJcbiRzb2NpYWwtbWVkaWEtc2hhcmUtYmc6dHJhbnNwYXJlbnQ7XHJcbi8vVGFic1xyXG4kdGFiLWhlYWRpbmctYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiR0YWItaGVhZGluZy1hY3RpdmUtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdGFiLWhlYWRpbmctY29sb3I6JHRleHQtaGVhZGluZy1jb2xvcjtcclxuJHRhYi1oZWFkaW5nLWFjdGl2ZS1jb2xvcjokdGV4dC1ibGFjaztcclxuJHRhYi1jb250YWluZXItYmc6dHJhbnNwYXJlbnQ7XHJcbiR0YWItY29udGFpbmVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1RpdGxlXHJcbiR0aXRsZS1iZzp0cmFuc3BhcmVudDtcclxuJHRpdGxlLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdGl0bGUtY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuLy9Ub2dnbGVcclxuJHRvZ2dsZS1oZWFkZXItYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdG9nZ2xlLWNvbnRlbnQtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdG9nZ2xlLXNob3ctY29sb3I6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4vL1NlYXJjaCBDb21wb25lbnRzXHJcbiRzZWFyY2gtYnRuLWJnOnRyYW5zcGFyZW50O1xyXG4kc2VhcmNoLWJ0bi1hY3RpdmUtYmc6I2UwZTBlMDtcclxuJHNlYXJjaC1idG4tYWN0aXZlLWJvcmRlcjojYWRhZGFkO1xyXG4vL0ltYWdlIGNvbXBvbmVudFxyXG4kaW1hZ2UtY2FwdGlvbi1jb2xvcjokdGV4dC1iYXNpYztcclxuLy9NZWRpYSBMaW5rIENvbXBvbmVudFxyXG4kbWVkaWEtbGluay1iZzp0cmFuc3BhcmVudDtcclxuJG1lZGlhLWxpbmstYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRtZWRpYS1saW5rLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kbWVkaWEtbGluay1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4vL1RhZyBDb21wb25lbnRcclxuJHRhZy1jb2xvcjokdGV4dC1iYXNpYztcclxuJHRhZy1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kdGFnLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbiR0YWctbGluay1iZyA6JGJnLWJsdWU7XHJcbiR0YWctbGluay1iZy1hY3RpdmUgOiRiZy1ibHVlLWFjdGl2ZTtcclxuJHRhZy1saW5rLWNvbG9yIDokdGV4dC13aGl0ZTtcclxuLy9MaW5rIENvbXBvbmVudFxyXG4kbGluay1iZzp0cmFuc3BhcmVudDtcclxuJGxpbmstdGV4dC1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxpbmstdGV4dC1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kbGluay1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9PdmVybGF5XHJcbiRvdmVybGF5LWJnOiRiZy1saWdodC1ncmF5O1xyXG4vL1NlYXJjaCBDb21wb25lbnRzXHJcbiRzZWFyY2gtdGl0bGUtYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRzZWFyY2gtdGl0bGUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRzZWFyY2gtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1pdGVtLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kc2VhcmNoLWl0ZW0tYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9cclxuJHNlYXJjaC1maWx0ZXItcmFkaXVzLWFjdGl2ZTokdGV4dC1ibHVlO1xyXG4kc2VhcmNoLWZpbHRlci1yYWRpdXMtYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJHNlYXJjaC1maWx0ZXItcmFkaXVzLWJnOiRib3JkZXItZ3JheTtcclxuLy9cclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJnLWFjdGl2ZTokYmctYmx1ZTtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJ0bi1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYnRuLWJnOiRiZy1saWdodC1ncmF5O1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYnRuLWJnLWFjdGl2ZTokYmctbGlnaHQtZ3JheS1hY3RpdmU7XHJcbi8vU2VyYWNoIFBhZ2luYXRpb25cclxuJHNlYXJjaC1wYWdpbmF0aW9uLWJnOnRyYW5zcGFyZW50O1xyXG4kc2VhcmNoLXBhZ2luYXRpb24tYWN0aXZlLWJnOiRiZy1ibHVlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24tYWN0aXZlLWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24taG92ZXItY29sb3I6JHRleHQtYmx1ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWhvdmVyLWJnOiRiZy1zdWJtZW51LWFjdGl2ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWhvdmVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9TZWFyY2ggc2VsZWN0b3JcclxuJHNlcmFjaC1zZWxlY3Rvci12YXJpYW50LWNvbG9yLWFjdGl2ZTogJHRleHQtYmx1ZS1hY3RpdmU7XHJcbi8vVHlwZWhlYWRcclxuJHR0LWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdHQtY29sb3ItYWN0aXZlOiR0ZXh0LWJsdWU7XHJcbiR0dC1wcmljZS1jb2xvcjokdGV4dC1ibHVlO1xyXG4kdHQtZHJvcGRvd24tYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiR0dC1zdWdnZXN0aW9uLWJnLWFjdGl2ZTokYmctbGlnaHQtZ3JheS1hY3RpdmU7XHJcbiR0dC1kcm9wZG93bi1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4vL1ZpZGVvXHJcbiR2aWRlby1jb250cm9sLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJHZpZGVvLXRpbWUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiR2aWRlby10aW1lLXRvdGFsLWJnOiRiZy1ibGFjaztcclxuJHZpZGVvLXRpbWUtaGFuZGxlLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiR2aWRlby10aW1lLWhhbmRsZS1iZzokYmctYmxhY2s7XHJcbi8vTWFpblxyXG4kcGFnZS1iZzogJGJnLWJhc2ljLWNvbG9yO1xyXG4kcGFnZS1iZy1lZGl0b3I6bm9uZTtcclxuIiwiLyogYnJlYWtwb2ludHMgKi9cbi50aXRsZS1yb3ctYm94IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QyZDJkMjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODdweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xufVxuLnRpdGxlLXJvdy1ib3ggPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xufVxuLnRpdGxlLXJvdy1ib3ggPiAuY29tcG9uZW50LWNvbnRlbnQgLnRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDIzcHggMCAwIDA7XG4gIHBhZGRpbmc6IDA7XG59XG4udGl0bGUtcm93LWJveCA+IC5jb21wb25lbnQtY29udGVudCAudGl0bGUgaDEge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtc2l6ZTogMi4ycmVtO1xuICBib3JkZXI6IG5vbmU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gIC50aXRsZS1yb3ctYm94ID4gLmNvbXBvbmVudC1jb250ZW50IC50aXRsZSB7XG4gICAgbWFyZ2luOiAyM3B4IDAgMCAyMHB4O1xuICB9XG59XG4udGl0bGUtcm93LWJveCA+IC5jb21wb25lbnQtY29udGVudCAucmljaC10ZXh0IHtcbiAgbWFyZ2luOiAwO1xufVxuLnRpdGxlLXJvdy1ib3ggPiAuY29tcG9uZW50LWNvbnRlbnQgLnJpY2gtdGV4dCBoMSwgLnRpdGxlLXJvdy1ib3ggPiAuY29tcG9uZW50LWNvbnRlbnQgLnJpY2gtdGV4dCBoMiwgLnRpdGxlLXJvdy1ib3ggPiAuY29tcG9uZW50LWNvbnRlbnQgLnJpY2gtdGV4dCBoMywgLnRpdGxlLXJvdy1ib3ggPiAuY29tcG9uZW50LWNvbnRlbnQgLnJpY2gtdGV4dCBoNCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi50aXRsZS1yb3ctYm94ID4gLmNvbXBvbmVudC1jb250ZW50IC5icmVhZGNydW1iIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBtYXJnaW46IDIzcHggMCAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZsb2F0OiByaWdodDtcbiAgY2xlYXI6IGJvdGg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM4MXB4KSBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLnRpdGxlLXJvdy1ib3ggPiAuY29tcG9uZW50LWNvbnRlbnQgLmJyZWFkY3J1bWIge1xuICAgIG1hcmdpbjogMjNweCAyMHB4IDAgMDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzODBweCkge1xuICAudGl0bGUtcm93LWJveCA+IC5jb21wb25lbnQtY29udGVudCAuYnJlYWRjcnVtYiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTlweCkge1xuICAudGl0bGUtcm93LWJveCAuYWxwaGEge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC50aXRsZS1yb3ctYm94IC5vbWVnYSB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cbi5jb250YWluZXIge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uYy1mdWxsLXdpZHRoLWJhY2tncm91bmQge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5jLWZ1bGwtd2lkdGgtYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDY0cHg7XG4gIH1cbiAgLmMtZnVsbC13aWR0aC1iYWNrZ3JvdW5kID4gLmNvbXBvbmVudC1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi5jLWZ1bGwtd2lkdGgtYmFja2dyb3VuZC0tbGcge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDY0cHg7XG4gIG1hcmdpbi1ib3R0b206IDY0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmMtZnVsbC13aWR0aC1iYWNrZ3JvdW5kLS1sZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTUwdncgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC01MHZ3ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmMtZnVsbC13aWR0aC1iYWNrZ3JvdW5kLS1sZyA+IC5jb21wb25lbnQtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufSIsIkB1c2UgXCJzdHlsZXMvY29udGFpbmVyL3RpdGxlLXJvdy1ib3hcIjtcclxuQHVzZSBcImFic3RyYWN0cy9taXhpbnNcIjtcclxuXHJcbi5jb250YWluZXIge1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLmMtZnVsbC13aWR0aC1iYWNrZ3JvdW5kIHtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuXHJcbiAgICBAaW5jbHVkZSBtaXhpbnMubXEoc20pIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiA0NjRweDtcclxuXHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmMtZnVsbC13aWR0aC1iYWNrZ3JvdW5kLS1sZyB7XHJcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tdG9wOiA2NHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNjRweDtcclxuXHJcbiAgICBAaW5jbHVkZSBtaXhpbnMubXEoc20pIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgICByaWdodDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNTB2dyAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTUwdncgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLy9tb2RkZWQgdG8gdXNlIHB4XHJcblxyXG5AY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcclxuQHVzZSAnLi4vdmFycy9icmVha3BvaW50cyc7XHJcbkB1c2UgJ3Nhc3M6bGlzdCc7XHJcbkB1c2UgJ3Nhc3M6bWFwJztcclxuQHVzZSAnc2FzczptZXRhJztcclxuQHVzZSAnc2FzczptYXRoJztcclxuQHVzZSAnc2FzczpzdHJpbmcnO1xyXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXHJcblxyXG4vLy8gQmFzZSBmb250IHNpemUgb24gdGhlIGA8Ym9keT5gIGVsZW1lbnRcclxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcclxuJG1xLWJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIFJlc3BvbnNpdmUgbW9kZVxyXG4vLy9cclxuLy8vIFNldCB0byBgZmFsc2VgIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxyXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcclxuLy8vXHJcbi8vLyBZb3UgY291bGQgY3JlYXRlIGEgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gb2xkZXIgYnJvd3NlcnMsXHJcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyBvbGQtaWUuc2Nzc1xyXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcclxuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcclxuLy8vXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cclxuJG1xLXJlc3BvbnNpdmU6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQnJlYWtwb2ludCBsaXN0XHJcbi8vL1xyXG4vLy8gTmFtZSB5b3VyIGJyZWFrcG9pbnRzIGluIGEgd2F5IHRoYXQgY3JlYXRlcyBhIHViaXF1aXRvdXMgbGFuZ3VhZ2VcclxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cclxuLy8vIHN0YWtlaG9sZGVycywgZGVzaWduZXJzLCBkZXZlbG9wZXJzLCBhbmQgdGVzdGVycy5cclxuLy8vXHJcbi8vLyBAdHlwZSBNYXBcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtYnJlYWtwb2ludHM6IGJyZWFrcG9pbnRzLiRtcS1icmVha3BvaW50cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXHJcbi8vL1xyXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXHJcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcclxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3NcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xyXG4vLy8gIC8vXHJcbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXHJcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLXN0YXRpYy1icmVha3BvaW50OiBtZDIgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2hvdyBicmVha3BvaW50cyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxyXG4vLy9cclxuLy8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXHJcbi8vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xyXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXHJcbi8vL1xyXG4vLy8gQHR5cGUgbWFwXHJcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDdXN0b21pemUgdGhlIG1lZGlhIHR5cGUgKGUuZy4gYEBtZWRpYSBzY3JlZW5gIG9yIGBAbWVkaWEgcHJpbnRgKVxyXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcclxuLy8vXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1tZWRpYS10eXBlOiBhbGwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRweCAtIHZhbHVlIHRvIGNvbnZlcnRcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xyXG4vLy8gIHAgeyBmb250LXNpemU6IG1xLXB4MmVtKDE2cHgpOyB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxyXG4vLy8gQHJldHVybnMge051bWJlcn1cclxuQGZ1bmN0aW9uIG1xLXB4MmVtKCRweCwgJGJhc2UtZm9udC1zaXplOiAkbXEtYmFzZS1mb250LXNpemUpIHtcclxuICAgIEBpZiBtYXRoLmlzLXVuaXRsZXNzKCRweCkge1xyXG4gICAgICAgIEB3YXJuIFwiQXNzdW1pbmcgI3skcHh9IHRvIGJlIGluIHBpeGVscywgYXR0ZW1wdGluZyB0byBjb252ZXJ0IGl0IGludG8gcGl4ZWxzLlwiO1xyXG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgbWF0aC51bml0KCRweCkgPT0gJ2VtJyB7XHJcbiAgICAgICAgQHJldHVybiAkcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiBtYXRoLmRpdigkcHgsICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XHJcbn1cclxuXHJcbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50LiBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gICR0YWJsZXQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKHRhYmxldCk7XHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFZhbHVlIGluIHBpeGVsc1xyXG5AZnVuY3Rpb24gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJG5hbWUsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xyXG4gICAgICAgIEByZXR1cm4gbWFwLmdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcclxuICAgICAgICBAcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBNZWRpYSBRdWVyeSBtaXhpblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlICgkbXEtbWVkaWEtdHlwZSkgLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XHJcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cylcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtTdHJpbmd9ICRzdGF0aWMtYnJlYWtwb2ludCAoJG1xLXN0YXRpYy1icmVha3BvaW50KVxyXG4vLy9cclxuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXHJcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1nZXQtYnJlYWtwb2ludC13aWR0aFxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAuZWxlbWVudCB7XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoJGZyb206IG1vYmlsZSkge1xyXG4vLy8gICAgICBjb2xvcjogcmVkO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKCR1bnRpbDogdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKG1vYmlsZSwgdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBncmVlbjtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xyXG4vLy8gICAgICBjb2xvcjogdGVhbDtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSg5NTBweCkge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XHJcbi8vLyAgICAkbXktYnJlYWtwb2ludHM6IChMOiA5MDBweCwgWEw6IDEyMDBweCk7XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoTCwgJGJyZWFrcG9pbnRzOiAkbXktYnJlYWtwb2ludHMsICRzdGF0aWMtYnJlYWtwb2ludDogTCkge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbkBtaXhpbiBtcSggJGZyb206IGZhbHNlLCAkdW50aWw6IGZhbHNlLCAkYW5kOiBmYWxzZSwgJGVtcy1vbjogZmFsc2UsICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsICRyZXNwb25zaXZlOiAkbXEtcmVzcG9uc2l2ZSwgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnQgKSB7XHJcbiAgICAkbWluLXdpZHRoOiAwO1xyXG4gICAgJG1heC13aWR0aDogMDtcclxuICAgICRtZWRpYS1xdWVyeTogJyc7XHJcblxyXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXHJcbiAgICBAaWYgJGZyb20ge1xyXG4gICAgICAgIEBpZiBtZXRhLnR5cGUtb2YoJGZyb20pID09ICdudW1iZXInIHtcclxuICAgICAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRtaW4td2lkdGg6ICRmcm9tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxyXG4gICAgQGlmICR1bnRpbCB7XHJcbiAgICAgICAgQGlmIG1ldGEudHlwZS1vZigkdW50aWwpID09ICdudW1iZXInIHtcclxuICAgICAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiAkdW50aWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJG1heC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpIC0gMXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcclxuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXHJcbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xyXG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG51bGw7XHJcblxyXG4gICAgICAgIEBpZiAkZW1zLW9uIHtcclxuICAgICAgICAgICAgJHRhcmdldC13aWR0aDogbXEtcHgyZW0oJHN0YXRpYy1icmVha3BvaW50LXdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAkdGFyZ2V0LXdpZHRoOiAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXHJcbiAgICAgICAgQGlmICggJGFuZCA9PSBmYWxzZSBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoIGFuZCAoICR1bnRpbCA9PSBmYWxzZSBvciAkbWF4LXdpZHRoID49ICR0YXJnZXQtd2lkdGggKSApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHtcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgJG1heC13aWR0aCAhPSAwIHtcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KSc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgJGFuZCB7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xyXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xyXG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyaW5nLnNsaWNlKHN0cmluZy51bnF1b3RlKCRtZWRpYS1xdWVyeSksIDYpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXR5cGUgKyAkbWVkaWEtcXVlcnl9IHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLy8gUXVpY2sgc29ydFxyXG4vLy9cclxuLy8vIEBhdXRob3IgU2FtIFJpY2hhcmRzXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNvcnRcclxuLy8vIEByZXR1cm5zIHtMaXN0fSBTb3J0ZWQgTGlzdFxyXG5AZnVuY3Rpb24gX21xLXF1aWNrLXNvcnQoJGxpc3QpIHtcclxuICAgICRsZXNzOiAoKTtcclxuICAgICRlcXVhbDogKCk7XHJcbiAgICAkbGFyZ2U6ICgpO1xyXG5cclxuICAgIEBpZiBsaXN0Lmxlbmd0aCgkbGlzdCkgPiAxIHtcclxuICAgICAgICAkc2VlZDogbGlzdC5udGgoJGxpc3QsIG1hdGguY2VpbChsaXN0Lmxlbmd0aCgkbGlzdCkgLyAyKSk7XHJcblxyXG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGVxdWFsOiBsaXN0LmFwcGVuZCgkZXF1YWwsICRpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSBpZiAoJGl0ZW0gPCAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGxlc3M6IGxpc3QuYXBwZW5kKCRsZXNzLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsYXJnZTogbGlzdC5hcHBlbmQoJGxhcmdlLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEByZXR1cm4gbGlzdC5qb2luKGxpc3Quam9pbihfbXEtcXVpY2stc29ydCgkbGVzcyksICRlcXVhbCksIF9tcS1xdWljay1zb3J0KCRsYXJnZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuXHJcbi8vLyBTb3J0IGEgbWFwIGJ5IHZhbHVlcyAod29ya3Mgd2l0aCBudW1iZXJzIG9ubHkpXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXHJcbkBmdW5jdGlvbiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1hcCkge1xyXG4gICAgJG1hcC1zb3J0ZWQ6ICgpO1xyXG4gICAgJG1hcC1rZXlzOiBtYXAua2V5cygkbWFwKTtcclxuICAgICRtYXAtdmFsdWVzOiBtYXAudmFsdWVzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXMtc29ydGVkOiBfbXEtcXVpY2stc29ydCgkbWFwLXZhbHVlcyk7XHJcblxyXG4gICAgLy8gUmVvcmRlciBrZXkvdmFsdWUgcGFpcnMgYmFzZWQgb24ga2V5IHZhbHVlc1xyXG4gICAgQGVhY2ggJHZhbHVlIGluICRtYXAtdmFsdWVzLXNvcnRlZCB7XHJcbiAgICAgICAgJGluZGV4OiBsaXN0LmluZGV4KCRtYXAtdmFsdWVzLCAkdmFsdWUpO1xyXG4gICAgICAgICRrZXk6IGxpc3QubnRoKCRtYXAta2V5cywgJGluZGV4KTtcclxuICAgICAgICAkbWFwLXNvcnRlZDogbWFwLm1lcmdlKCRtYXAtc29ydGVkLCAoJGtleTogJHZhbHVlKSk7XHJcblxyXG4gICAgICAgIC8vIFVuc2V0IHRoZSB2YWx1ZSBpbiAkbWFwLXZhbHVlcyB0byBwcmV2ZW50IHRoZSBsb29wXHJcbiAgICAgICAgLy8gZnJvbSBmaW5kaW5nIHRoZSBzYW1lIGluZGV4IHR3aWNlXHJcbiAgICAgICAgJG1hcC12YWx1ZXM6IGxpc3Quc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xyXG59XHJcblxyXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICBAaW5jbHVkZSBtcS1hZGQtYnJlYWtwb2ludCh0dnNjcmVlbiwgMTkyMHB4KTtcclxuLy8vICBAaW5jbHVkZSBtaXhpbnMubXEodHZzY3JlZW4pIHt9XHJcbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XHJcbiAgICAkbmV3LWJyZWFrcG9pbnQ6ICgkbmFtZTogJHdpZHRoKTtcclxuICAgICRtcS1icmVha3BvaW50czogbWFwLm1lcmdlKCRtcS1icmVha3BvaW50cywgJG5ldy1icmVha3BvaW50KSAhZ2xvYmFsO1xyXG4gICAgJG1xLWJyZWFrcG9pbnRzOiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1xLWJyZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyAoJG1xLXNob3ctYnJlYWtwb2ludHMpIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXHJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zaG93LWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXHJcbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcclxuLy8vXHJcbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3NcclxuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcclxuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xyXG4gICAgYm9keTpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkJFRUQ1O1xyXG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xyXG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XHJcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDtcclxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXHJcbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XHJcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGlmIGxpc3QubGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xyXG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcclxufVxyXG4iXX0= */
