/* z-indexes are large due to the fact that things might change
 * in the future. In order to account for scalability, this gives
 * room to make changes and not break the entire site, meaning 
 * we won't have to go in and refactor a lot of our code.
 */
/*  ----------------------------------------------------
    INPUTS
  ----------------------------------------------------- */
/*  ----------------------------------------------------
    CONTAINERS
  ----------------------------------------------------- */
/* -------------------
	Base result styles
-------------------- */
/* -------------------
	Variations
-------------------- */
/* -----------------------------------------------------
  Base styling
----------------------------------------------------- */
/* -----------------------------------------------------
  With secondary section
----------------------------------------------------- */
/* -----------------------------------------------------
  Checkbox tags
----------------------------------------------------- */
/* -----------------------------------------------------
  States
----------------------------------------------------- */
.thermal-performance {
  background: #e9e9e9;
}

performance-calculator {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding: calc(var(--gap) * 2) calc(var(--gap) * 2) 0;
  color: var(--font-colour);
  height: -moz-fit-content;
  height: fit-content;
}
performance-calculator .heading, performance-calculator > span {
  width: 100%;
  text-align: center;
}
performance-calculator .heading {
  margin-bottom: var(--gap);
}
performance-calculator > span {
  font-size: 1.4rem;
  margin-bottom: calc(var(--gap) * 2);
}
performance-calculator .controls, performance-calculator .results {
  display: grid;
  grid-gap: var(--gap);
  align-content: start;
  margin: 0 calc(var(--gap) * 2) calc(var(--gap) * 2);
}
performance-calculator .controls h2, performance-calculator .results h2 {
  text-align: center;
  font-weight: 400;
}
performance-calculator .results {
  text-align: center;
}
performance-calculator .results .results-boxes {
  display: flex;
  width: 100%;
  flex-wrap: nowrap;
  color: var(--font-colour);
}
performance-calculator .results .results-boxes .result-box {
  --font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  padding: calc(var(--gap) * 0.5);
  align-items: center;
  background-color: var(--background-colour);
  color: var(--font-colour);
}
performance-calculator .results .results-boxes .result-box.passive {
  --background-colour: #DF3035;
}
performance-calculator .results .results-boxes .result-box.forced {
  --background-colour: #131f6b;
}
performance-calculator .results .results-boxes .result-box .result {
  font-size: 2em;
  font-weight: 600;
}
performance-calculator .results .results-boxes .result-box .key {
  text-transform: uppercase;
  white-space: nowrap;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMvei1pbmRleC5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl9lbGVtZW50cy9yZXN1bHQtaXRlbS5zY3NzIiwiX2VsZW1lbnRzL3RhZy5zY3NzIiwiY29tcG9uZW50cy9wZXJmb3JtYW5jZS1jYWxjdWxhdG9yLnNjc3MiLCJfdmFyaWFibGVzL2NvbG91cnMuc2NzcyIsImNvbXBvbmVudHMvcGVyZm9ybWFuY2UtY2FsY3VsYXRvci5jc3MiLCJfbGliL2NyZWF0ZS9fdW5pdHMuc2NzcyIsIl92YXJpYWJsZXMvZm9udHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztFQUFBO0FDYUE7O3lEQUFBO0FBbURBOzt5REFBQTtBQzVEQTs7c0JBQUE7QUFzRUE7O3NCQUFBO0FDekRBOzt1REFBQTtBQStCQTs7dURBQUE7QUF5QkE7O3VEQUFBO0FBMkJBOzt1REFBQTtBQ2pHQTtFQUNFLG1CQzRCa0I7QUNEcEI7O0FGeEJBO0VBQ0UsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsZUFBQTtFQUNBLG9EQUFBO0VBQ0EseUJBQUE7RUFDQSx3QkFBQTtFQUFBLG1CQUFBO0FFMkJGO0FGekJFO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0FFMkJKO0FGeEJFO0VBQVcseUJHK0JMO0FESlI7QUYxQkU7RUFDRSxpQklkVztFSmVYLG1DRzZCSTtBRERSO0FGekJFO0VBQ0UsYUFBQTtFQUNBLG9CR3VCSTtFSHRCSixvQkFBQTtFQUNBLG1EQUFBO0FFMkJKO0FGekJJO0VBQUssa0JBQUE7RUFBb0IsZ0JBQUE7QUU2QjdCO0FGMUJFO0VBQ0Usa0JBQUE7QUU0Qko7QUYxQkk7RUFDRSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7QUU0Qk47QUYxQk07RUFDRSxzQkFBQTtFQUNBLHlCQUFBO0VBRUEsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsK0JHRkE7RUhHQSxtQkFBQTtFQUNBLDBDQUFBO0VBQ0EseUJBQUE7QUUyQlI7QUZ6QlE7RUFBWSw0QkFBQTtBRTRCcEI7QUYzQlE7RUFBWSw0QkFBQTtBRThCcEI7QUY1QlE7RUFDRSxjSS9DSztFSmdETCxnQkFBQTtBRThCVjtBRjNCUTtFQUNFLHlCQUFBO0VBQ0EsbUJBQUE7QUU2QlYiLCJmaWxlIjoiY29tcG9uZW50cy9wZXJmb3JtYW5jZS1jYWxjdWxhdG9yLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cblxuJHBhZ2UtYmFja2dyb3VuZCAgICAgICAgICA6IDUwMDtcblxuJG5hdmlnYXRpb24tYmFyICAgICAgICAgICA6IDE1MDA7XG4kbmF2aWdhdGlvbi1iYXItY29udGFpbmVyIDogJG5hdmlnYXRpb24tYmFyO1xuJGdsb2JhbC1zZWFyY2gtbW9iaWxlICAgICA6IC0xO1xuXG4kc2Nyb2xsLWJhciAgICAgICAgICAgICAgIDogMTEwMDtcblxuJG1haW4gICAgICAgICAgICAgICAgICAgICA6IDEwMDA7XG4kaGVhZGVyICAgICAgICAgICAgICAgICAgIDogMTAwMDtcbiRzaWRlLWJhciAgICAgICAgICAgICAgICAgOiAxNzUwO1xuXG4kbW9kYWwgICAgICAgICAgICAgICAgICAgIDogMTAwMDA7IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuQHVzZSBcImZvbnRcIjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuJGJhc2UtaW5wdXQtcGFkZGluZzogJGdhcDtcblxuXG5AbWl4aW4gYXJyb3ctZG93bi1pbWFnZSgkc3Ryb2tlIDogdmFyKC0tZm9udC1jb2xvdXIpKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIElOUFVUU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gY2hhcmFjdGVyLWlucHV0cygpIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGFsbC1pbnB1dHMoKSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjaGFyYWN0ZXItaW5wdXQoKSB7XG4gIC0tZm9udC1jb2xvdXIgICAgICAgOiAjeyRmb250LWNvbG91cn07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0tcGFkZGluZyAgICAgICAgICAgOiBjYWxjKCN7JGJhc2UtaW5wdXQtcGFkZGluZ30gLyAxLjUpICN7JGJhc2UtaW5wdXQtcGFkZGluZ307XG4gIC0tYm9yZGVyLWNvbG91ciAgICAgOiAjeyRncmV5N307XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwO1xuXG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7ICAvKiBPcGVyYSAxMC41LCBJRSA5LCBTYWZhcmkgNSwgQ2hyb21lLCBGaXJlZm94IDQsIGlPUyA0LCBBbmRyb2lkIDIuMSsgKi9cbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwOyAgLyogU2FmYXJpIDMtNCwgaU9TIDEtMy4yLCBBbmRyb2lkIDEuNi0gKi8gICAgXG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDsgIC8qIEZpcmVmb3ggMS0zLjYgKi8gICAgIFxuXG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJHRyYW5zaXRpb247XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudDtcblxuICAmOjpwbGFjZWhvbGRlciB7IHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uIH1cblxuICAvLyAmOm5vdCg6ZW1wdHkpIHtcbiAgLy8gICAmOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkdHJhbnNwYXJlbnQgfVxuICAvLyB9XG59XG5cblxuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDT05UQUlORVJTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBjb250YWluZXIoKSB7XG4gIC0tbGFiZWwtY29sb3VyICAgICAgICA6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1sYWJlbC1hY3RpdmUtY29sb3VyIDogdmFyKC0tdGhlbWUtYWNjZW50KTtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogMXJlbTtcblxuICBsYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWxhYmVsLWNvbG91cik7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gIH1cbn1cblxuQG1peGluIHRleHQtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbn1cblxuXG5AbWl4aW4gcmFkaW8tY2hlY2tib3gtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcblxuICAtLWlucHV0LXdpZHRoOiAxLjJlbTtcbiAgLS1pbnB1dC1ib3JkZXItdGhpY2tuZXNzOiAxcHg7XG4gIC0taW5wdXQtYWN0aXZlLWNvbG91cjogI3skcmVkfTtcblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgIGdyaWQtZ2FwOiAkZ2FwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKHZhcigtLWlucHV0LXdpZHRoKSk7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICBib3JkZXI6IHZhcigtLWlucHV0LWJvcmRlci10aGlja25lc3MsIDFweCkgc29saWQgJGdyZXk7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKGNhbGModmFyKC0taW5wdXQtd2lkdGgpIC0gdmFyKC0taW5wdXQtYm9yZGVyLXRoaWNrbmVzcykgKiA2KSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1hY3RpdmUtY29sb3VyKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBsZWZ0OiAtMTBweDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAtLWxhYmVsLWNvbG91cjogdmFyKC0tbGFiZWwtYWN0aXZlLWNvbG91cik7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtYWN0aXZlLWNvbG91cik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgKyBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1sYWJlbC1hY3RpdmUtY29sb3VyKTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJhZGlvLWNvbnRhaW5lcigpIHtcbiAgbGFiZWwge1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbXVsdGktaW5wdXQoKSB7XG4gIC0taW5wdXQtc3BhY2luZzogMDtcbiAgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0taW5wdXQtc3BhY2luZyk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcblxuICBAaW5jbHVkZSBjaGFyYWN0ZXItaW5wdXRzKCkge1xuICAgICY6bm90KHNlbGVjdCkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgPiAqOm5vdChzZWxlY3QsIGJ1dHRvbiwgYSkge1xuICAgIGZsZXg6IDE7XG4gIH1cbiAgXG4gIHNlbGVjdCwgYnV0dG9uLCBhIHtcbiAgICAtLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skcmVkfTtcblxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgc2VsZWN0IHsgQGluY2x1ZGUgYXJyb3ctZG93bi1pbWFnZSgkd2hpdGUpIH07XG59XG5cbkBtaXhpbiBiYXNlLXJlcXVpcmVkKCkge1xuICByZXF1aXJlZC1ub3RpY2Uge1xuICAgIC0tbm90aWNlLWNvbG91cjogI3skcmVkfTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLW5vdGljZS1jb2xvdXIpO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG5cbiAgICBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiByYWRpby10YWJzKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIHJhZGlvLXRhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDA7XG4gICAgXG4gICAgaW5wdXQgeyBcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm5vdCg6Y2hlY2tlZCkge1xuICAgICAgICArIGxhYmVsOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkdHJhbnNpdGlvbjtcbiAgICAgIH1cbiAgICAgIFxuXG4gICAgfVxuXG4gIH1cbn1cblxuXG5AbWl4aW4gaW5wdXQtZm9jdXMoKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMXB4IDFweCByZ2JhKCRyZWQsIDAuMyk7XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcy8nIGFzICo7XG5AdXNlICcuLi9faGVscGVycy8nIGFzICo7XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRCYXNlIHJlc3VsdCBzdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuQG1peGluIGJhc2UoKSB7XG5cbiAgLS1oZWFkaW5nLWNvbG91ciAgICA6ICN7JGJsdWV9O1xuXG4gIC0tYm9yZGVyLXRoaWNrbmVzcyAgOiAxcHg7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwcHg7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiB3aGl0ZTtcblxuICAtLXBhZGRpbmcgICAgICAgICAgIDogMnJlbTtcblxuICAtLXBhZGRpbmctbGVmdCAgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIC0tcGFkZGluZy1yaWdodCAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1wYWRkaW5nLXRvcCAgICAgICA6IHZhcigtLXBhZGRpbmcpO1xuICAtLXBhZGRpbmctYm90dG9tICAgIDogdmFyKC0tcGFkZGluZyk7XG5cbiAgLS1pbWFnZS13aWR0aCAgICAgICA6IDEwMHB4O1xuICAtLWltYWdlLWhlaWdodCAgICAgIDogMTAwcHg7XG5cbiAgLS1ncmlkLWdhcCAgICAgICAgICA6ICN7JGdhcH07XG5cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctdG9wKSB2YXIoLS1wYWRkaW5nLXJpZ2h0KSB2YXIoLS1wYWRkaW5nLWJvdHRvbSkgdmFyKC0tcGFkZGluZy1sZWZ0KTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItdGhpY2tuZXNzKSBzb2xpZCAkdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIC8vIGJveC1zaGFkb3c6IDBweCAwcHggNXB4IDFweCByZ2JhKCRncmV5LCAwLjEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIHRyYW5zaXRpb246IGJvcmRlciAkdHJhbnNpdGlvbjtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3JpZC1nYXApIHZhcigtLWdyaWQtZ2FwKTtcbiAgLy8gcGxhY2UtY29udGVudDogc3RhcnQ7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgZ3JpZC1hcmVhOiBpbWFnZTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHBpY3R1cmUge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1oZWlnaHQpO1xuICAgICAgXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogdmFyKC0taW1hZ2UtaGVpZ2h0KTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSB7XG4gICAgZ3JpZC1hcmVhOiB0aXRsZTtcbiAgICBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIpO1xuICAgIGEgeyBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIpIH1cbiAgfVxuXG4gIC5yZXN1bHQtc3VidGl0bGUgeyBncmlkLWFyZWE6IHN1YnRpdGxlIH1cbiAgLnJlc3VsdC1ib2R5ICAgICB7IGdyaWQtYXJlYTogYm9keSB9XG5cbiAgJi5ibG9nICAgIHsgQGluY2x1ZGUgYmxvZygpIH1cbiAgJi5tYXJrZXQtc2VjdG9yICAgIHsgQGluY2x1ZGUgbWFya2V0LXNlY3RvcigpIH1cbiAgJi5wcm9kdWN0IHsgQGluY2x1ZGUgcHJvZHVjdCgpIH1cbiAgJi5wYWdlICAgIHsgQGluY2x1ZGUgcGFnZSgpIH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBtYXJrZXQtc2VjdG9yKCkge1xuXG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6dHJhbnNwYXJlbnQ7IFxuICAtLWZvbnQtY29sb3VyOndoaXRlOyBcbiAgLS1oZWFkaW5nLWNvbG91ciA6IHdoaXRlOyBcblxuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6MCAwICRndXR0ZXIwIDAgOyBcbiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tcmVzdWx0LWl0ZW0tYm9yZGVyLWJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpKTtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNsYW1wKDE0MHB4LCA0MHZ3LCAxODBweCk7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWltYWdlLW91dGxpbmUtY29sb3VyLCB0cmFuc3BhcmVudCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWltYWdlLW91dGxpbmUtb2Zmc2V0LCAwLjFlbSk7IFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yICR0cmFuc2l0aW9uLCBvdXRsaW5lLW9mZnNldCAkdHJhbnNpdGlvbjtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgfVxuXG4gICY6aG92ZXIgeyBcbiAgICAtLWltYWdlLW91dGxpbmUtY29sb3VyIDogI3tyZ2JhKHdoaXRlLCAwLjIpfTtcbiAgICAtLWltYWdlLW91dGxpbmUtb2Zmc2V0IDogMC4zZW07XG4gICAgLnJlc3VsdC10aXRsZSBhIHsgY29sb3I6JHJlZDsgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICY6OmFmdGVyIHsgXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6MDsgXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgei1pbmRleDoxOyBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5W2RhdGEtdGhlbWU9J3doaXRlJ10gJiB7XG4gICAgLS1yZXN1bHQtaXRlbS1ib3JkZXItYm90dG9tIDogI3tyZ2JhKCRibHVlLCAwLjIpfTtcbiAgICAtLWZvbnQtY29sb3VyOiN7JGJsdWV9OyBcbiAgICAtLWhlYWRpbmctY29sb3VyIDogI3skYmx1ZX07IFxuICAgICY6aG92ZXIgeyBcbiAgICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiAje3JnYmEoJGJsdWUsIDAuMil9O1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkjbWFya2V0LXNlY3RvcnMge1xuICAgICYge1xuICAgICAgLy8gaXNvbGF0aW9uOiBpbml0aWFsO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgICAgY29udGFpbmVyLW5hbWUgOiBtYXJrZXQtc2VjdG9yO1xuICAgICAgLnJlc3VsdC1pdGVtIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgYS5kZXRhaWxzOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciAucmVzdWx0LWltYWdlIHtcbiAgICAgICAgLS1pbWFnZS1vdXRsaW5lLWNvbG91ciA6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIC0taW1hZ2Utb3V0bGluZS1vZmZzZXQgOjAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtZGFyaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDIyMHB4O1xuICAgICAgICB3aWR0aDp2YXIoLS1tYXJrZXQtc2VjdG9yLWFydGljbGUtd2lkdGgsIGNhbGMoMjAwJSArICN7JGd1dHRlcn0gKyAycHgpKTtcblxuICAgICAgICAvLyBEaXNjcmV0ZSBhbmltYXRpb24gc2V0dXBcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBvcGFjaXR5ICR0cmFuc2l0aW9uLFxuICAgICAgICAgIGRpc3BsYXkgJHRyYW5zaXRpb24gYWxsb3ctZGlzY3JldGU7XG4gICAgICAgIC5kZXRhaWxzLXRleHQge1xuICAgICAgICAgIHBhZGRpbmc6JGd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1oZWFkaW5nIHtcbiAgICAgICAgICBjb2xvcjokcmVkO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOjFlbTtcbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1pbWFnZSB7XG4gICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDEwMCUsIDM1JSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOjA7XG4gICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRldGFpbHMge1xuICAgICAgICBAY29udGFpbmVyIG1hcmtldC1zZWN0b3IgKCB3aWR0aCA8IDQyMHB4KSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgLmRldGFpbHMtaW1hZ2Uge1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBpbml0aWFsO1xuICAgICAgICAgICAgaGVpZ2h0OjEwMHB4O1xuICAgICAgICAgICAgLmRldGFpbHMtbGluayB7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgJiAucmVzdWx0LWl0ZW06aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAuZGV0YWlscyB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAbWVkaWEgKCB3aWR0aCA+IDIwNTBweCkge1xuICAgICAgICAgIHdpZHRoOjEwMCU7IFxuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJ0aWNsZS1ncmlkOmhhcygucmVzdWx0LWl0ZW06aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIHtcbiAgICAgIC5yZXN1bHQtaXRlbTpub3QoOmlzKDpob3ZlciwgOmZvY3VzLXZpc2libGUpKSB7IG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O31cbiAgICB9XG5cbiAgICBAY29udGFpbmVyIG1haW4gKCB3aWR0aCA8IDY2MHB4KSB7XG4gICAgICBhcnRpY2xlLWdyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50O1xuICAgICAgICAtLW1hcmtldC1zZWN0b3ItYXJ0aWNsZS13aWR0aCA6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJ0aWNsZS1ncmlkIHtcbiAgICAgIEBjb250YWluZXIgbWFpbiAoNjYwcHggPCB3aWR0aCA8IDk2NHB4KSAge1xuICAgICAgICAucmVzdWx0LWl0ZW06bnRoLWNoaWxkKDJuKSAuZGV0YWlscyB7XG4gICAgICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGNvbnRhaW5lciBtYWluICggd2lkdGggPiA5NjRweCkgIHtcbiAgICAgICAgLnJlc3VsdC1pdGVtOm50aC1jaGlsZCgzbikgLmRldGFpbHMge1xuICAgICAgICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJsb2coKSB7XG4gIC0tcGFkZGluZyAgICAgICAgICA6IDRyZW07XG4gIC0tYm9yZGVyLXRoaWNrbmVzcyA6IDA7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICA6IDA7XG4gIC8vIC0tYmFja2dyb3VuZC1jb2xvdXIgOiB0cmFuc3BhcmVudDtcblxuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwic3VidGl0bGVcIlxuICAgIFwidGl0bGVcIlxuICAgIFwiYm9keVwiO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgcmdiYSh3aGl0ZSwgMSkgNDUlLCB0cmFuc3BhcmVudCAxMjAlKTtcbiAgICB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LXN1YnRpdGxlIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSB9XG5cbiAgLnJlc3VsdC10aXRsZSB7ICAgICBcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIH1cblxuICAucmVzdWx0LXN1YnRpdGxlIHtcbiAgICAtLWhlYWRpbmctY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaDQsIHRpbWUge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtYm9keSB7IC0tZm9udC1jb2xvdXI6ICN7JGJsYWNrfTsgfVxuXG4gICYuZmVhdHVyZWQge1xuICAgIC0tcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuXG4gICAgLnJlc3VsdC10aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWgyO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnRkVBVFVSRUQnO1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZWQtYmFkZ2UoKTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtc3VidGl0bGUsIC5yZXN1bHQtYm9keSB7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG5cblxuQG1peGluIHBhZ2UoKSB7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gIFwiaW1hZ2UgdGl0bGVcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIjtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gcHJvZHVjdCgpIHtcbiAgLS1iYWRnZS1zcGFjaW5nIDogM3JlbTtcblxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWltYWdlLXdpZHRoKSBhdXRvO1xuXG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSBkYXRhXCJcbiAgICBcImltYWdlIGRhdGFcIjtcblxuICAvLyAucmVzdWx0LXRpdGxlIHtcbiAgLy8gICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAvLyB9XG5cbiAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1ib2R5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJhZGdlLXNwYWNpbmcpICogMik7XG4gIH1cblxuICAucHJvZHVjdC1kYXRhIHtcbiAgICBncmlkLWFyZWE6IGRhdGE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBncmlkLWdhcDogY2FsYygkZ2FwIC8gMikgJGdhcDtcbiAgfVxuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oNDUwKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlIFwiXG4gICAgXCJ0aXRsZVwiXG4gICAgXCJkYXRhXCI7XG5cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHVuc2V0O1xuXG4gICAgLnByb2R1Y3QtZGF0YSB7XG4gICAgICAvLyBtYXJnaW4tdG9wOiAkZ2FwLTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcblxuICAgIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtYm9keSB7IHBhZGRpbmctcmlnaHQ6IDAgfVxuICAgIC8vIC5yZXN1bHQtdGl0bGUgeyBhbGlnbi1zZWxmOiBjZW50ZXIgfVxuICB9XG5cblxuICAmLmluLXN0b2NrOjpiZWZvcmUge1xuICAgIC0tcGFkZGluZy15IDogMC4yZW07XG4gICAgLS1wYWRkaW5nLXggOiAxMGVtO1xuXG4gICAgY29udGVudDogJ2luIHN0b2NrJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDFlbSArIHZhcigtLXBhZGRpbmcteSkpO1xuICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tcGFkZGluZy14KSk7XG4gICAgcGFkZGluZzogMC41ZW0gdmFyKC0tcGFkZGluZy14KTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuQG1peGluIHRhZygpIHtcbiAgJltkaXNhYmxlZF0geyBAaW5jbHVkZSBkaXNhYmxlZCgpIH1cbiAgJi5jYXRlZ29yeSB7XG4gICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAtLWJvcmRlci1jb2xvdXI6ICN7JHJlZH07XG4gICAgQGluY2x1ZGUgdGFnLXdpdGgtc2Vjb25kYXJ5KCk7XG4gICAgLnRhZy1zZWNvbmRhcnk6aG92ZXIgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIoKSB9XG4gIH1cblxuICAmLmNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSB0YWctY2hlY2tib3goKTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBCYXNlIHN0eWxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWJhc2UoKSB7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgICA6IDBweDtcbiAgLS1mb250LWNvbG91ciAgICAgICAgIDogI3skcmVkfTtcbiAgLS1iZy1jb2xvdXIgICAgICAgICAgIDogd2hpdGU7XG4gIC0tc2Vjb25kYXJ5LXdpZHRoICAgICA6IDNjaDtcbiAgLS1zZWNvbmRhcnktcGFkZGluZy14IDogM3B4O1xuICAtLWJvcmRlci1jb2xvdXIgICAgICAgOiB0cmFuc3BhcmVudDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuICAudGFnLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAzcHggJGdhcCAzcHggJGdhcDtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBXaXRoIHNlY29uZGFyeSBzZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRhZy13aXRoLXNlY29uZGFyeSgpIHtcbiAgLS1zeW1ib2wtY29sb3VyIDogI3skcmVkfTtcblxuICAudGFnLXNlY29uZGFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tc2Vjb25kYXJ5LXBhZGRpbmcteCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5NDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAzY2g7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWNoZWNrYm94KCkge1xuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmIH4gbGFiZWwge1xuICAgICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAgIEBpbmNsdWRlIHRhZy13aXRoLXNlY29uZGFyeSgpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRyZWR9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gICAgICAtLWJnLWNvbG91cjogI3skcmVkfTtcblxuICAgICAgLnRhZy1zZWNvbmRhcnkgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIocmdiYSh3aGl0ZSwgMC4zKSkgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBzZWNvbmRhcnktaG92ZXIoJGNvbG91ciA6ICRyZWQpIHtcbiAgLS1zeW1ib2wtY29sb3VyOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuXG4udGhlcm1hbC1wZXJmb3JtYW5jZSB7XG4gIGJhY2tncm91bmQ6ICRncmV5Nztcbn1cblxucGVyZm9ybWFuY2UtY2FsY3VsYXRvciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6ICRnYXAyICRnYXAyIDA7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG5cbiAgLmhlYWRpbmcsID4gc3BhbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmhlYWRpbmcgeyBtYXJnaW4tYm90dG9tOiAkZ2FwIH1cbiAgPiBzcGFuICAgeyBcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbWluO1xuICAgIG1hcmdpbi1ib3R0b206ICRnYXAyO1xuICB9XG5cbiAgLmNvbnRyb2xzLCAucmVzdWx0cyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogJGdhcDtcbiAgICBhbGlnbi1jb250ZW50OiBzdGFydDtcbiAgICBtYXJnaW46IDAgJGdhcDIgJGdhcDI7XG5cbiAgICBoMiB7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICB9XG5cbiAgLnJlc3VsdHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5yZXN1bHRzLWJveGVzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcblxuICAgICAgLnJlc3VsdC1ib3gge1xuICAgICAgICAtLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgICAgIC0taGVhZGluZy1jb2xvdXI6ICN7JHdoaXRlfTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6ICRnYXAwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG5cbiAgICAgICAgJi5wYXNzaXZlIHsgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skcmVkfTsgIH1cbiAgICAgICAgJi5mb3JjZWQgIHsgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skYmx1ZX07IH1cblxuICAgICAgICAucmVzdWx0IHtcbiAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtaDI7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5rZXkge1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgID4gc3BhbiB7XG5cbiAgICB9XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEV4cGxpY2l0IENvbG91cnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBFeHBsaWNpdCBjb2xvdXJzIGFyZSBhIHdoYXQgdGhleSBhcmUuIEdyZWVuIGlzIGdyZWVuLCBibHVlIGlzIGJsdWUuLi4gbm8gb2JzY3VyaXR5LlxuLy8vIFdlIHN1ZmZpeCBudW1iZXJzIHRvIGRlZmluZSB2YXJpYXRpb25zIG9mIGNvbG91cnMgaW4gbm8gcGFydGljdWxhciBvcmRlciBvZiBzaGFkZS4gXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93IFxuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudCBcbi8vLyB0b29scyB3aWxsIGF1dG8tc3VnZ2VzdCBjb2xvdXJzIHdpdGggYWN0dWFsIGV4YW1wbGVzIG9mIHRoZSBjb2xvdXIuIFxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucywgXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd24gXG4vLy8gdGhlICdsaWdodGVyJywgJ2xpZ2h0ZXN0JywgJ2RhcmtlcicsICdkYXJrZXN0JyBjb252ZW50aW9uLiBUaGVzZSBhcmUgbm90IHBhcnRpY3Vhcmx5IGxlZ2lhYmxlIFxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLiBcbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LiBcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vd2hhdC1kby15b3UtbmFtZS1jb2xvci12YXJpYWJsZXMvXG5cbiRibHVlICAgICAgICAgICAgIDogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyICAgICAgICAgICAgOiAjMjkyQjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTMgICAgICAgICAgICA6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQgICAgICAgICAgICA6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNSAgICAgICAgICAgIDogIzAwOTVGRjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyIFxuXG4kcmVkICAgICAgICAgICAgICA6ICNERjMwMzU7IC8vIFNlY29uZGFyeSAtIFRoaXMgcGFzc2VzIHRoZSBjb250cmFzdCByYXRpbyBhY2Nlc3NpYmlsaXR5IHRlc3QgaW4gR29vZ2xlcyBMaWdodGhvdXNlIFxuXG4kZ3JleSAgICAgICAgICAgICA6ICM5Njk2OTU7XG4kZ3JleTIgICAgICAgICAgICA6ICM2QTZBNkE7IC8vIEZvbnRcbiRncmV5MyAgICAgICAgICAgIDogI0Y0RjRGNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NCAgICAgICAgICAgIDogI2RjZGNkYztcbiRncmV5NSAgICAgICAgICAgIDogI0IxQjFCMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTYgICAgICAgICAgICA6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlciAgXG4kZ3JleTcgICAgICAgICAgICA6ICNlOWU5ZTk7XG4kZ3JlZW4gICAgICAgICAgICA6ICM1MEJDMDg7XG4keWVsbG93ICAgICAgICAgICA6ICNGNkY0REI7IC8vIERpc2NsYWltZXIgQmFja2dyb3VuZFxuJHllbGxvdzIgICAgICAgICAgOiAjRkNCMDAyO1xuJGJsYWNrICAgICAgICAgICAgOiAjMUUxQTFBO1xuJHdoaXRlICAgICAgICAgICAgOiAjRkZGRkZGO1xuXG4kb3JhbmdlICAgICAgICAgICA6ICNlZDYyMjQ7XG5cblxuJHRyYW5zcGFyZW50ICAgICAgOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuJG1hcmsgICAgICAgICAgICAgOiAkYmx1ZTU7IC8vIGJhY2tncm91bmQgY29sb3VyIGZvciA8bWFyaz4gdGFnc1xuXG4kZGVmYXVsdC1ncmFkaWVudCA6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsICRibHVlIDUlLCAkYmxhY2sgNjYlKTtcbiRyZXZlcnNlLWdyYWRpZW50IDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgIzEwMTI0ZCAwJSwgJGJsdWUgODAlKTtcbiRsaWdodC1ncmFkaWVudCAgIDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20sICMxMDEyNGQgNTUlLCAjMTcyNTgyIDEwMCUpO1xuXG5cbi8vL1xuJHByaW1hcnk6ICRibHVlO1xuLy8vXG5cblxuXG5cbi8vLyBUaGVtZXMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiR0aGVtZS1kZWZhdWx0LXBhZ2UtYmFja2dyb3VuZCAgICA6ICRkZWZhdWx0LWdyYWRpZW50O1xuJHRoZW1lLWRlZmF1bHQtY29udGVudC1iYWNrZ3JvdW5kIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLWRlZmF1bHQtbmF2LWJhY2tncm91bmQgICAgIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLWRlZmF1bHQtbmF2LWJhY2tncm91bmQtbW9iIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LWZvbnQgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LWZvbnQtbW9iICAgICAgIDogJGJsdWU7XG4kdGhlbWUtZGVmYXVsdC1uYXYtc3BhY2luZy1jb2xvdXIgOiByZ2JhKCRibHVlLCAwLjMpO1xuJHRoZW1lLWRlZmF1bHQtZm9udCAgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtaGVhZGluZyAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtYWNjZW50XHRcdFx0XHRcdCAgICA6ICRyZWQ7XG4kdGhlbWUtZGVmYXVsdC1sb2dvICAgICAgICAgICAgICAgOiAkd2hpdGU7XG5cbiR0aGVtZS13aGl0ZS1wYWdlLWJhY2tncm91bmQgICAgICA6ICRsaWdodC1ncmFkaWVudDtcbiR0aGVtZS13aGl0ZS1jb250ZW50LWJhY2tncm91bmQgICA6ICNmOGY4Zjg7XG4kdGhlbWUtd2hpdGUtbmF2LWJhY2tncm91bmQgICAgICAgOiAkdHJhbnNwYXJlbnQ7XG4kdGhlbWUtd2hpdGUtbmF2LWJhY2tncm91bmQtbW9iICAgOiAkYmx1ZTtcbiR0aGVtZS13aGl0ZS1uYXYtZm9udCAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS13aGl0ZS1uYXYtZm9udC1tb2IgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS13aGl0ZS1uYXYtc3BhY2luZy1jb2xvdXIgICA6IHJnYmEoJHdoaXRlLCAwLjMpO1xuJHRoZW1lLXdoaXRlLWZvbnQgICAgICAgICAgICAgICAgIDogJGJsYWNrO1xuJHRoZW1lLXdoaXRlLWhlYWRpbmcgICAgICAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtd2hpdGUtYWNjZW50XHRcdFx0XHRcdCAgICAgIDogJHRoZW1lLWRlZmF1bHQtYWNjZW50O1xuJHRoZW1lLXdoaXRlLWxvZ28gICAgICAgICAgICAgICAgIDogJHdoaXRlO1xuXG4kdGhlbWUtYmxhY2stcGFnZS1iYWNrZ3JvdW5kICAgICAgOiAkZGVmYXVsdC1ncmFkaWVudDtcbiR0aGVtZS1ibGFjay1jb250ZW50LWJhY2tncm91bmQgICA6ICRibGFjaztcbiR0aGVtZS1ibGFjay1uYXYtYmFja2dyb3VuZCAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1uYXYtYmFja2dyb3VuZC1tb2IgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1uYXYtZm9udCAgICAgICAgICAgICA6ICRibHVlO1xuJHRoZW1lLWJsYWNrLW5hdi1mb250LW1vYiAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtYmxhY2stbmF2LXNwYWNpbmctY29sb3VyICAgOiByZ2JhKCRibHVlLCAwLjMpO1xuJHRoZW1lLWJsYWNrLWZvbnQgICAgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLWhlYWRpbmcgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLWFjY2VudFx0XHRcdFx0XHQgICAgICA6ICR0aGVtZS1kZWZhdWx0LWFjY2VudDtcbiR0aGVtZS1ibGFjay1sb2dvICAgICAgICAgICAgICAgICA6ICRibHVlO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLiBcbi8vLyBQYWxldHRlIHdpbGwgYWxzbyBleHBvc2UgcG9wdWxhciBzb2NpYWwgbWVkaWEgY29sb3VycyBhbmQgdGhlIFllbGxvIGJyYW5kIGNvbG91ci5cbi8vLyBAc2VlIGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL2F0LXJ1bGVzL2ZvcndhcmQjY29uZmlndXJpbmctbW9kdWxlc1xuLy8vIEBvdXRwdXQgJGdyZWVuIDogIzAyOTI5QTsgJGdyZWVuLWRhcmsgOiAjMjU2NTY5OyAkZ3JlZW4tbGlnaHQ6ICMwNGI5YzQ7XG5cbkBmb3J3YXJkICdjcmVhdGUvcGFsZXR0ZSd3aXRoICgkYmx1ZSA6ICRibHVlLFxuXHQkcmVkIDogJHJlZCxcblx0JGdyZXkgOiAkZ3JleSxcblx0JHllbGxvdyA6ICR5ZWxsb3csXG5cdCRncmVlbiA6ICRncmVlbixcblx0JGJsYWNrIDogJGJsYWNrKTtcblxuJGNvbXBvbmVudC10aGVtZXMgOiAoXCJyZWRcIjogJHJlZCwgXCJibHVlXCI6ICRibHVlLCBcImdyZXlcIjogJGdyZXkzLCBcIndoaXRlXCIgOiAkd2hpdGUpOyIsIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSU5QVVRTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENPTlRBSU5FUlNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QmFzZSByZXN1bHQgc3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQmFzZSBzdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgV2l0aCBzZWNvbmRhcnkgc2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGhlcm1hbC1wZXJmb3JtYW5jZSB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG5cbnBlcmZvcm1hbmNlLWNhbGN1bGF0b3Ige1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAyKSBjYWxjKHZhcigtLWdhcCkgKiAyKSAwO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xufVxucGVyZm9ybWFuY2UtY2FsY3VsYXRvciAuaGVhZGluZywgcGVyZm9ybWFuY2UtY2FsY3VsYXRvciA+IHNwYW4ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxucGVyZm9ybWFuY2UtY2FsY3VsYXRvciAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG5wZXJmb3JtYW5jZS1jYWxjdWxhdG9yID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbn1cbnBlcmZvcm1hbmNlLWNhbGN1bGF0b3IgLmNvbnRyb2xzLCBwZXJmb3JtYW5jZS1jYWxjdWxhdG9yIC5yZXN1bHRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWdhcCk7XG4gIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICBtYXJnaW46IDAgY2FsYyh2YXIoLS1nYXApICogMikgY2FsYyh2YXIoLS1nYXApICogMik7XG59XG5wZXJmb3JtYW5jZS1jYWxjdWxhdG9yIC5jb250cm9scyBoMiwgcGVyZm9ybWFuY2UtY2FsY3VsYXRvciAucmVzdWx0cyBoMiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbnBlcmZvcm1hbmNlLWNhbGN1bGF0b3IgLnJlc3VsdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5wZXJmb3JtYW5jZS1jYWxjdWxhdG9yIC5yZXN1bHRzIC5yZXN1bHRzLWJveGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xufVxucGVyZm9ybWFuY2UtY2FsY3VsYXRvciAucmVzdWx0cyAucmVzdWx0cy1ib3hlcyAucmVzdWx0LWJveCB7XG4gIC0tZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xufVxucGVyZm9ybWFuY2UtY2FsY3VsYXRvciAucmVzdWx0cyAucmVzdWx0cy1ib3hlcyAucmVzdWx0LWJveC5wYXNzaXZlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0RGMzAzNTtcbn1cbnBlcmZvcm1hbmNlLWNhbGN1bGF0b3IgLnJlc3VsdHMgLnJlc3VsdHMtYm94ZXMgLnJlc3VsdC1ib3guZm9yY2VkIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2Yjtcbn1cbnBlcmZvcm1hbmNlLWNhbGN1bGF0b3IgLnJlc3VsdHMgLnJlc3VsdHMtYm94ZXMgLnJlc3VsdC1ib3ggLnJlc3VsdCB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxucGVyZm9ybWFuY2UtY2FsY3VsYXRvciAucmVzdWx0cyAucmVzdWx0cy1ib3hlcyAucmVzdWx0LWJveCAua2V5IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vIFRoaXMgdW5pdHMgY3JlYXRvciB3aWxsIHJlbmRlciBzaXggcG9zaXRpdmUgYW5kIHNpeCBuZWdhdGl2ZSBzYXNzIHZhcmlhYmxlcyBmb3IgXG4vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZXYgdmFsdWVzIGRlZmluZWQgYmVsb3cuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQmFzZSBWYWx1ZXMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gQHNlZSBodHRwczovL2NvZGVwZW4uaW8vbWFya25vdHRvbi9wZW4vRXhQYk5HZVxuXG4vLyBUaGVzZSB0aHJlZSB2YWx1ZXMgd2lsbCBhY3QgYSBjb25zdGFudCBiYXNlbGluZSBmb3IgYWxsIGZvbGxvd2luZyB1bml0IGRlbGNhcmF0aW9ucy5cblxuLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbi8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuJGdhcCA6IDE2cHggIWRlZmF1bHQ7XG4kYmFzZS1nYXAgOiAkZ2FwO1xuXG4vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiRzcGFjZXIgOiA0dmggIWRlZmF1bHQ7IFxuJGJhc2Utc3BhY2VyIDogJHNwYWNlcjsgXG5cbi8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbi8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiRndXR0ZXIgOiAzdncgIWRlZmF1bHQ7XG4kYmFzZS1ndXR0ZXIgOiAkZ3V0dGVyOyBcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFzYm9sdXRlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR2FwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdhcHMgYXJlIGFuIGFic29sdXRlIHVuaXQgKHB4KSBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGluZGl2aWR1YWwgZWxlbWVudHMgd2l0aGluIGEgY29tcG9uZW50ZWQuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBzcGFjaW5nIGFtb25nc3QgYmxvY2ssIGlubGluZSwgdGFibGUgYW5kIGdyb3VwIGh0bWwgZWxlbWVudHMuXG5cbkBmdW5jdGlvbiBnYXAoJGFtb3VudCA6IDEpIHtcbiAgQGlmICggJGFtb3VudCA9PSAxICkgeyBcbiAgICBAcmV0dXJuIHZhcigtLWdhcCk7IFxuICB9IEBlbHNlIHsgXG4gICAgQHJldHVybiBjYWxjKHZhcigtLWdhcCkgKiAjeyRhbW91bnR9KTsgXG4gIH1cbn1cblxuJGdhcDAgOiBnYXAoMC41KTsgJGdhcDAtIDogZ2FwKC0wLjUpO1xuJGdhcCAgOiBnYXAoMSk7ICAgJGdhcC0gIDogZ2FwKC0xKTtcbiRnYXAyIDogZ2FwKDIpOyAgICRnYXAyLSA6IGdhcCgtMik7XG4kZ2FwMyA6IGdhcCgzKTsgICAkZ2FwMy0gOiBnYXAoLTMpO1xuJGdhcDQgOiBnYXAoNCk7ICAgJGdhcDQtIDogZ2FwKC00KTtcbiRnYXA1IDogZ2FwKDUpOyAgICRnYXA1LSA6IGdhcCgtNSk7XG4kZ2FwNiA6IGdhcCg2KTsgICAkZ2FwNi0gOiBnYXAoLTYpO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVsYXRpdmUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZnVuY3Rpb24gX2R5bmFtaWMtdW5pdCgkY3VzdG9tLXByb3BlcnR5LCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG5cbiAgLy8gQ2FsYyBNZXRob2RcbiAgJHJlc3VsdCA6IGNhbGMoKCN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9KSArICN7aWYoc2FzcygkbWluID09IDApOiAwcHg7IGVsc2U6ICRtaW4pfSk7XG4gIFxuICAvLyBDbGFtcCBNZXRob2RcbiAgQGlmICggJHVzZS1jbGFtcCApIHtcbiAgICBAaWYgKCAkYW1vdW50ID09IDAgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3ttYXRoLmRpdigkbWluLCAyKX0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAwLjUsICN7JG1heH0pO1xuICAgIH0gQGVsc2UgaWYgKCAkYW1vdW50ID09IDEgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0sICN7JG1heH0pO1xuICAgIH1cbiAgfSBcblxuICBAaWYgKCAkdXNlLW5lZ2F0aXZlICkge1xuICAgICRyZXN1bHQgOiBjYWxjKC0xICogI3skcmVzdWx0fSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG5cbn0gXG5cbi8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTcGFjZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IGhlaWdodCAodmgpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIGNvbXBvbmVudGVkIGxldmVsLlxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIFNwYWNlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJHNwYWNlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZoIHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIHNwYWNlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1zcGFjZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJHNwYWNlcjAgOiB2YXIoLS1zcGFjZXIwKTsgJHNwYWNlcjAtIDogdmFyKC0tc3BhY2VyMC0pO1xuJHNwYWNlciAgOiB2YXIoLS1zcGFjZXIxKTsgJHNwYWNlci0gIDogdmFyKC0tc3BhY2VyMS0pO1xuJHNwYWNlcjIgOiB2YXIoLS1zcGFjZXIyKTsgJHNwYWNlcjItIDogdmFyKC0tc3BhY2VyMi0pO1xuJHNwYWNlcjMgOiB2YXIoLS1zcGFjZXIzKTsgJHNwYWNlcjMtIDogdmFyKC0tc3BhY2VyMy0pO1xuJHNwYWNlcjQgOiB2YXIoLS1zcGFjZXI0KTsgJHNwYWNlcjQtIDogdmFyKC0tc3BhY2VyNC0pO1xuJHNwYWNlcjUgOiB2YXIoLS1zcGFjZXI1KTsgJHNwYWNlcjUtIDogdmFyKC0tc3BhY2VyNS0pO1xuJHNwYWNlcjYgOiB2YXIoLS1zcGFjZXI2KTsgJHNwYWNlcjYtIDogdmFyKC0tc3BhY2VyNi0pO1xuXG4vLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbi8vIGZvciBleGFtcGxlLCBhIHdyYXBwZXIgY29udGFpbmVyIG9yIGJvZHkgd2l0aCBuZXN0ZWQgY29tcG9uZW50cy4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gZ3V0dGVyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLWd1dHRlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kZ3V0dGVyMCA6IHZhcigtLWd1dHRlcjApOyAkZ3V0dGVyMC0gOiB2YXIoLS1ndXR0ZXIwLSk7XG4kZ3V0dGVyICA6IHZhcigtLWd1dHRlcjEpOyAkZ3V0dGVyLSAgOiB2YXIoLS1ndXR0ZXIxLSk7XG4kZ3V0dGVyMiA6IHZhcigtLWd1dHRlcjIpOyAkZ3V0dGVyMi0gOiB2YXIoLS1ndXR0ZXIyLSk7XG4kZ3V0dGVyMyA6IHZhcigtLWd1dHRlcjMpOyAkZ3V0dGVyMy0gOiB2YXIoLS1ndXR0ZXIzLSk7XG4kZ3V0dGVyNCA6IHZhcigtLWd1dHRlcjQpOyAkZ3V0dGVyNC0gOiB2YXIoLS1ndXR0ZXI0LSk7XG4kZ3V0dGVyNSA6IHZhcigtLWd1dHRlcjUpOyAkZ3V0dGVyNS0gOiB2YXIoLS1ndXR0ZXI1LSk7XG4kZ3V0dGVyNiA6IHZhcigtLWd1dHRlcjYpOyAkZ3V0dGVyNi0gOiB2YXIoLS1ndXR0ZXI2LSk7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEZvbnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ2NvbG91cnMnIGFzICo7XG5cbiRjb2xvdXIgICAgICA6ICRncmV5MjtcbiRzaXplICAgICAgICA6IDEuNXJlbSAhZGVmYXVsdDtcbiRzaXplLW1pbiAgICA6IDEuNHJlbSAhZGVmYXVsdDsgXG4kc2l6ZS1tYXggICAgOiAxLjZyZW0gIWRlZmF1bHQ7IFxuJGxpbmUtaGVpZ2h0IDogMS42ICFkZWZhdWx0OyBcblxuJHNpemUtaDEgICAgIDogNWVtICFkZWZhdWx0O1xuJHNpemUtaDEtbWluIDogNGVtICFkZWZhdWx0O1xuJHNpemUtaDIgICAgIDogMmVtICFkZWZhdWx0O1xuJHNpemUtaDMgICAgIDogMS41ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNCAgICAgOiAxLjNlbSAhZGVmYXVsdDtcbiRzaXplLWg1ICAgICA6IDEuM2VtICFkZWZhdWx0O1xuJHNpemUtaDYgICAgIDogMS4zZW0gIWRlZmF1bHQ7XG4gIFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBMYXRvIEZvbnRcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gVGhpcyBmb250IGl0IHByaW1hcmlseSB1c2VkIGZvciBoZWFkaW5ncyAoPGgqPiB0YWdzKVxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGZvbnQtbGF0byhib2xkKVxuXG5AbWl4aW4gbGF0bygkd2VpZ2h0OnJlZ3VsYXIpIHtcblxuICBmb250LWZhbWlseTpsYXRvLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG5cbiAgQGlmICggJHdlaWdodCA9PSAncmVndWxhcicpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9IEBlbHNlIGlmICggJHdlaWdodCA9PSAnc2VtaS1ib2xkJyBvciAkd2VpZ2h0ID09ICdzZW1pYm9sZCcpIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9IEBlbHNlIGlmICggJHdlaWdodCA9PSAnYm9sZCcpIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG5cbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBNb250c2VycmF0IEZvbnRcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gVGhpcyBpcyB0aGUgYmFzZSBmb250IHVzZWQgZm9yIGFsbCBzdGFuZGFyZCBjb3B5IHRocm91Z2hvdXQgdGhlIHNpdGUuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgZm9udC1tb250c2VycmF0KClcblxuQG1peGluIG1vbnRzZXJyYXQoJHdlaWdodDpyZWd1bGFyKSB7XG5cbiAgZm9udC1mYW1pbHk6bW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgXG4gIEBpZiAoICR3ZWlnaHQgPT0gJ3JlZ3VsYXInKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdpdGFsaWMnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxufSJdfQ== */