.u-type--light {
  font-weight: 300;
}

.u-type--regular {
  font-weight: 400;
}

.u-type--medium {
  font-weight: 500;
}

.u-type--bold {
  font-weight: 700;
}

/* breakpoints */
.link-list.list-vertical h3 {
  background: #FFFFFF;
  width: 100%;
  display: inline-block;
  padding: 3px 5px;
  border: 1px solid #d2d2d2;
}
.link-list.list-vertical a {
  border: none;
}
.link-list.list-vertical li {
  display: block;
  margin-left: 20px;
}

.link-list h1, .link-list h2, .link-list h3, .link-list h4, .link-list h5, .link-list h6 {
  border-bottom: 1px solid #767676;
}
.link-list h1:empty, .link-list h2:empty, .link-list h3:empty, .link-list h4:empty, .link-list h5:empty, .link-list h6:empty {
  border-bottom: none;
}
.link-list ul {
  list-style: none;
}
.link-list li {
  display: block;
  /*a[title]:focus:after {
    content: attr(title);
    background-color: white;
    color: black;
    padding: 3px;
    margin-top: 0.2em;
    margin-left: 0.1em;
    margin-right: 0.1em;
    position: absolute;
    font-family: Segoe UI !important;
    font-size: 12px !important;
    border: 1px solid black;
    white-space: pre !important;
    white-space: nowrap !important;
    z-index: 1;
  }*/
}
.link-list li a {
  display: inline-block;
  position: relative;
  padding-left: 10px;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
}
@media (min-width: 768px) {
  .link-list li a {
    font-size: 2rem;
    line-height: 32px;
  }
}
.link-list li a {
  font-style: normal;
  font-weight: 400;
  color: #0070cd;
  text-decoration: none;
}
.link-list li a:hover, .link-list li a:focus {
  text-decoration: underline;
}
.link-list li {
  /*a:not(.c-footer__links):visited: {
      color : functions-color.color(mauve-taupe);
  }*/
}
.link-list.c-related-links, .link-list.c-related-links--2col {
  margin: 16px 0;
}
.link-list.c-related-links h3, .link-list.c-related-links--2col h3 {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.3rem;
  line-height: 28px;
}
@media (min-width: 768px) {
  .link-list.c-related-links h3, .link-list.c-related-links--2col h3 {
    font-size: 2.8rem;
    line-height: 36px;
  }
}
.link-list.c-related-links h3, .link-list.c-related-links--2col h3 {
  font-style: normal;
  font-weight: 700;
}
.link-list.c-related-links h1, .link-list.c-related-links--2col h1, .link-list.c-related-links h2, .link-list.c-related-links--2col h2, .link-list.c-related-links h3, .link-list.c-related-links--2col h3, .link-list.c-related-links h4, .link-list.c-related-links--2col h4, .link-list.c-related-links h5, .link-list.c-related-links--2col h5, .link-list.c-related-links h6, .link-list.c-related-links--2col h6 {
  padding-bottom: 16px;
  border-bottom: 1px solid #767676;
}
.link-list.c-related-links h1:empty, .link-list.c-related-links--2col h1:empty, .link-list.c-related-links h2:empty, .link-list.c-related-links--2col h2:empty, .link-list.c-related-links h3:empty, .link-list.c-related-links--2col h3:empty, .link-list.c-related-links h4:empty, .link-list.c-related-links--2col h4:empty, .link-list.c-related-links h5:empty, .link-list.c-related-links--2col h5:empty, .link-list.c-related-links h6:empty, .link-list.c-related-links--2col h6:empty {
  border-bottom: none;
}
.link-list.c-related-links a, .link-list.c-related-links--2col a {
  display: block;
  padding: 16px 0;
  width: 100%;
  border-bottom: 1px solid #767676;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
}
@media (min-width: 768px) {
  .link-list.c-related-links a, .link-list.c-related-links--2col a {
    font-size: 2rem;
    line-height: 32px;
  }
}
.link-list.c-related-links a, .link-list.c-related-links--2col a {
  font-style: normal;
  font-weight: 400;
  color: #0070cd;
  text-decoration: none;
}
.link-list.c-related-links a:hover, .link-list.c-related-links--2col a:hover, .link-list.c-related-links a:focus, .link-list.c-related-links--2col a:focus {
  text-decoration: underline;
}
@media (min-width: 640px) {
  .link-list.c-related-links--2col ul {
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
            justify-content: space-between;
    flex-wrap: wrap;
  }
  .link-list.c-related-links--2col li {
    width: calc(50% - 16px);
  }
  .link-list.c-related-links--2col li a:visited {
    color: #7e3d50;
  }
}
.link-list.c-related-links--multi .current-page a {
  pointer-events: none;
  color: #4a4a4a;
}
.link-list.c-related-links--multi .heading-title p {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.1rem;
  line-height: 28px;
}
@media (min-width: 768px) {
  .link-list.c-related-links--multi .heading-title p {
    font-size: 2.4rem;
    line-height: 30px;
  }
}
.link-list.c-related-links--multi .heading-title p {
  font-style: normal;
  font-weight: 700;
  padding: 16px 0;
}

@media (max-width: 639px) {
  .c-promo__links {
    background-color: #da251d;
  }
  .c-promo__links a {
    color: #ffffff !important;
    text-decoration: underline !important;
  }
  .c-promo__links li {
    margin-top: 16px;
  }
  .c-promo__links li a:visited {
    color: #7e3047;
  }
  .link-list.c-related-links--2col li:first-child a {
    border-top: 1px solid #767676;
  }
}
@media (min-width: 640px) {
  .c-promo__links {
    background-color: #ffffff;
  }
  .c-promo__links li {
    display: inline-block;
    border-right: 1px solid #0070cd;
    padding-right: 16px;
    padding-left: calc(16px - 5px);
  }
  .c-promo__links li:last-child {
    border-right: none;
  }
  .c-promo__links li:first-child {
    padding-left: 0;
  }
  .link-list.c-related-links--2col li:first-child a,
  .link-list.c-related-links--2col li:nth-child(2) a {
    border-top: 1px solid #767676;
  }
}
@media (min-width: 1225px) {
  .link-list.c-related-links--multi {
    margin-right: -104px;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy92YXJzL190eXBlLWNsYXNzZXMuc2NzcyIsImNvbXBvbmVudC1saW5rLWxpc3QuY3NzIiwiYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsInN0eWxlcy9saW5rLWxpc3QvbGlzdC12ZXJ0aWNhbC5zY3NzIiwiYWJzdHJhY3RzL3ZhcnMvX2NvbG9ycy5zY3NzIiwiYWJzdHJhY3RzL3ZhcnMvX21hcmdpbnMuc2NzcyIsImNvbXBvbmVudC1saW5rLWxpc3Quc2NzcyIsImNvbW1vbi11aS90eXBvZ3JhcGh5L19taXhpbnMuc2NzcyIsImFic3RyYWN0cy9taXhpbnMvX2xpbmsuc2NzcyIsImFic3RyYWN0cy9taXhpbnMvX3Nhc3MtbXEtbW9kLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0k7RUFDSSxnQkFBQTtBQ0ZSOztBRENJO0VBQ0ksZ0JBQUE7QUNFUjs7QURISTtFQUNJLGdCQUFBO0FDTVI7O0FEUEk7RUFDSSxnQkFBQTtBQ1VSOztBQ1VBLGdCQUFBO0FDbEJJO0VBQ0ksbUJDc0VRO0VEckVSLFdBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VEZ0dBLHlCQUFBO0FEbkZSO0FFVEk7RUFDSSxZQUFBO0FGV1I7QUVSSTtFQUNJLGNBQUE7RUFDQSxpQkVsQk87QUo0QmY7O0FLUkk7RUoyRUksZ0NBQUE7QUQvRFI7QUtUUTtFQUNJLG1CQUFBO0FMV1o7QUtQSTtFQUNJLGdCQUFBO0FMU1I7QUtOSTtFQUNJLGNBQUE7RUFDQTs7Ozs7Ozs7Ozs7Ozs7O0lBQUE7QUx1QlI7QUtOUTtFQUNJLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQ1BKLHdDQWFjO0VBUGxCLGtDQUFBO0VBQ0EsbUNBQUE7RUF0Q0ksaUJBQUE7RUFDQSxpQkFBQTtBTmtEUjtBTW5DZ0I7RURtQlI7SUNuQ0EsZUFBQTtJQUNBLGlCQUFBO0VOdUROO0FBQ0Y7QUt0QlE7RUNrQkksa0JBQUE7RUFBQSxnQkFBQTtFQzVEUixjQUptQjtFQUtuQixxQkFBQTtBUHFFSjtBT25FSTtFQUNJLDBCQUFBO0FQcUVSO0FLbERJO0VBeUJJOztJQUFBO0FMOEJSO0FLekJJO0VBQ0ksY0FBQTtBTDJCUjtBS3pCUTtFQ2xCQSx3Q0FhYztFQVBsQixrQ0FBQTtFQUNBLG1DQUFBO0VBdENJLGlCQUFBO0VBQ0EsaUJBQUE7QU5nRlI7QU1qRWdCO0VEaUNSO0lDakRBLGlCQUFBO0lBQ0EsaUJBQUE7RU5xRk47QUFDRjtBS3RDUTtFQ0lJLGtCQUFBO0VBQUEsZ0JBQUE7QU5zQ1o7QUt0Q1E7RUFDSSxvQkEzRFE7RUpvRlosZ0NBQUE7QURnQlI7QUt0Q1k7RUFDSSxtQkFBQTtBTHdDaEI7QUtwQ1E7RUFDSSxjQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUpjSixnQ0FBQTtFS2hEQSx3Q0FhYztFQVBsQixrQ0FBQTtFQUNBLG1DQUFBO0VBdENJLGlCQUFBO0VBQ0EsaUJBQUE7QU40R1I7QU03RmdCO0VEOENSO0lDOURBLGVBQUE7SUFDQSxpQkFBQTtFTmlITjtBQUNGO0FLckRRO0VDVEksa0JBQUE7RUFBQSxnQkFBQTtFQzVEUixjQUptQjtFQUtuQixxQkFBQTtBUCtISjtBTzdISTtFQUNJLDBCQUFBO0FQK0hSO0FRMkdRO0VINUpJO0lBQ0ksb0JBQUE7SUFBQSxhQUFBO0lBQ0EseUJBQUE7WUFBQSw4QkFBQTtJQUNBLGVBQUE7RUxvRGQ7RUtqRFU7SUFDSSx1QkFBQTtFTG1EZDtFS2pEYztJQUNJLGNBQUE7RUxtRGxCO0FBQ0Y7QUs1Q1k7RUFDSSxvQkFBQTtFQUNBLGNBaEdPO0FMOEl2QjtBS3pDWTtFQ3JFSix3Q0FhYztFQVBsQixrQ0FBQTtFQUNBLG1DQUFBO0VBdENJLGlCQUFBO0VBQ0EsaUJBQUE7QU5tSlI7QU1wSWdCO0VEb0ZKO0lDcEdKLGlCQUFBO0lBQ0EsaUJBQUE7RU53Sk47QUFDRjtBS3REWTtFQy9DQSxrQkFBQTtFQUFBLGdCQUFBO0VEaURJLGVBQUE7QUx5RGhCOztBUXdFUTtFSDFISjtJQUNJLHlCQWpIa0I7RUx1S3hCO0VLcERNO0lBQ0kseUJBQUE7SUFDQSxxQ0FBQTtFTHNEVjtFS25ETTtJQUNJLGdCQTNIUTtFTGdMbEI7RUtuRFU7SUFDSSxjQUFBO0VMcURkO0VLL0NNO0lKbkRBLDZCQUFBO0VEcUdOO0FBQ0Y7QVFxRFE7RUhqR0o7SUFDSSx5QkF2STJCO0VMc0xqQztFSzdDTTtJQUNJLHFCQUFBO0lBQ0EsK0JBQUE7SUFDQSxtQkFqSlE7SUFrSlIsOEJBQUE7RUwrQ1Y7RUs3Q1U7SUFDSSxrQkFBQTtFTCtDZDtFSzVDVTtJQUNJLGVBQUE7RUw4Q2Q7RUt4Q007O0lKOUVBLDZCQUFBO0VEMEhOO0FBQ0Y7QVFnQ1E7RUhwRUE7SUFDSSxvQkFBQTtFTHVDVjtBQUNGIiwiZmlsZSI6ImNvbXBvbmVudC1saW5rLWxpc3QuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSBcInR5cGVcIjtcclxuXHJcbkBlYWNoICRuYW1lLCAkc3R5bGUgaW4gdHlwZS4kdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMge1xyXG4gICAgLnUtdHlwZS0tI3skbmFtZX0ge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAjeyRzdHlsZX07XHJcbiAgICB9XHJcbn1cclxuIiwiLnUtdHlwZS0tbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4udS10eXBlLS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnUtdHlwZS0tbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnUtdHlwZS0tYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIGJyZWFrcG9pbnRzICovXG4ubGluay1saXN0Lmxpc3QtdmVydGljYWwgaDMge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAzcHggNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDJkMmQyO1xufVxuLmxpbmstbGlzdC5saXN0LXZlcnRpY2FsIGEge1xuICBib3JkZXI6IG5vbmU7XG59XG4ubGluay1saXN0Lmxpc3QtdmVydGljYWwgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5saW5rLWxpc3QgaDEsIC5saW5rLWxpc3QgaDIsIC5saW5rLWxpc3QgaDMsIC5saW5rLWxpc3QgaDQsIC5saW5rLWxpc3QgaDUsIC5saW5rLWxpc3QgaDYge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc2NzY3Njtcbn1cbi5saW5rLWxpc3QgaDE6ZW1wdHksIC5saW5rLWxpc3QgaDI6ZW1wdHksIC5saW5rLWxpc3QgaDM6ZW1wdHksIC5saW5rLWxpc3QgaDQ6ZW1wdHksIC5saW5rLWxpc3QgaDU6ZW1wdHksIC5saW5rLWxpc3QgaDY6ZW1wdHkge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLmxpbmstbGlzdCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubGluay1saXN0IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qYVt0aXRsZV06Zm9jdXM6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGF0dHIodGl0bGUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgbWFyZ2luLXRvcDogMC4yZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC4xZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGZvbnQtZmFtaWx5OiBTZWdvZSBVSSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogMTtcbiAgfSovXG59XG4ubGluay1saXN0IGxpIGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5saW5rLWxpc3QgbGkgYSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG59XG4ubGluay1saXN0IGxpIGEge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMDA3MGNkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubGluay1saXN0IGxpIGE6aG92ZXIsIC5saW5rLWxpc3QgbGkgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmxpbmstbGlzdCBsaSB7XG4gIC8qYTpub3QoLmMtZm9vdGVyX19saW5rcyk6dmlzaXRlZDoge1xuICAgICAgY29sb3IgOiBmdW5jdGlvbnMtY29sb3IuY29sb3IobWF1dmUtdGF1cGUpO1xuICB9Ki9cbn1cbi5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCB7XG4gIG1hcmdpbjogMTZweCAwO1xufVxuLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDMsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGgzIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMi4zcmVtO1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMywgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDMge1xuICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICB9XG59XG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMywgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDMge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDEsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGgyLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoMiwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDMsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGgzLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoNCwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDQsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGg1LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoNSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDYsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGg2IHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNzY3Njc2O1xufVxuLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDE6ZW1wdHksIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGgxOmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoMjplbXB0eSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDI6ZW1wdHksIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGgzOmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoMzplbXB0eSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgaDQ6ZW1wdHksIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGg0OmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBoNTplbXB0eSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgaDU6ZW1wdHksIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGg2OmVtcHR5LCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBoNjplbXB0eSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcyBhLCAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDE2cHggMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNzY3Njc2O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGEsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGEge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgfVxufVxuLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MgYSwgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgYSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMwMDcwY2Q7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGE6aG92ZXIsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGE6aG92ZXIsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzIGE6Zm9jdXMsIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIGxpIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTtcbiAgfVxuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBsaSBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjN2UzZDUwO1xuICB9XG59XG4ubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tbXVsdGkgLmN1cnJlbnQtcGFnZSBhIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiAjNGE0YTRhO1xufVxuLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLW11bHRpIC5oZWFkaW5nLXRpdGxlIHAge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjFyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS1tdWx0aSAuaGVhZGluZy10aXRsZSBwIHtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgfVxufVxuLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLW11bHRpIC5oZWFkaW5nLXRpdGxlIHAge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDE2cHggMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5jLXByb21vX19saW5rcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RhMjUxZDtcbiAgfVxuICAuYy1wcm9tb19fbGlua3MgYSB7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5jLXByb21vX19saW5rcyBsaSB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxuICAuYy1wcm9tb19fbGlua3MgbGkgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzdlMzA0NztcbiAgfVxuICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzc2NzY3NjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5jLXByb21vX19saW5rcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgfVxuICAuYy1wcm9tb19fbGlua3MgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMDA3MGNkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDE2cHggLSA1cHgpO1xuICB9XG4gIC5jLXByb21vX19saW5rcyBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cbiAgLmMtcHJvbW9fX2xpbmtzIGxpOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgbGk6Zmlyc3QtY2hpbGQgYSxcbiAgLmxpbmstbGlzdC5jLXJlbGF0ZWQtbGlua3MtLTJjb2wgbGk6bnRoLWNoaWxkKDIpIGEge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNzY3Njc2O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIyNXB4KSB7XG4gIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS1tdWx0aSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTA0cHg7XG4gIH1cbn0iLCIvLyBAaW1wb3J0ICd+c2Fzcy1tcS9tcSc7XHJcbkB1c2UgXCJzYXNzOmxpc3RcIjtcclxuQHVzZSAnbWl4aW5zL3Nhc3MtbXEtbW9kLnNjc3MnO1xyXG5AdXNlICcuLi9jb21tb24tdWkvdHlwb2dyYXBoeS9taXhpbnMnO1xyXG5AdXNlICdtaXhpbnMvYWNjZXNzaWJpbGl0eSc7XHJcbkB1c2UgJ21peGlucy9idXR0b24nO1xyXG5AdXNlICdtaXhpbnMvbGluayc7XHJcbkB1c2UgJ21peGlucy9vdmVybGF5JztcclxuQHVzZSAnbWl4aW5zL3RyYW5zaXRpb25zJztcclxuQHVzZSAnbWl4aW5zL3NoYWRvd3MnO1xyXG5AdXNlICdtaXhpbnMvdGFnJztcclxuQHVzZSAnLi4vYWJzdHJhY3RzL3ZhcnMvY29sb3JzJztcclxuXHJcbkBmb3J3YXJkICdtaXhpbnMvc2Fzcy1tcS1tb2Quc2Nzcyc7XHJcbkBmb3J3YXJkICcuLi9jb21tb24tdWkvdHlwb2dyYXBoeS9taXhpbnMnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL2FjY2Vzc2liaWxpdHknO1xyXG5AZm9yd2FyZCAnbWl4aW5zL2J1dHRvbic7XHJcbkBmb3J3YXJkICdtaXhpbnMvbGluayc7XHJcbkBmb3J3YXJkICdtaXhpbnMvb3ZlcmxheSc7XHJcbkBmb3J3YXJkICdtaXhpbnMvdHJhbnNpdGlvbnMnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL3NoYWRvd3MnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL3RhZyc7XHJcblxyXG4vLyBCZWxvdyBhcmUgbWl4aW4ncyBmcm9tIEZYQVxyXG4vKiBicmVha3BvaW50cyAqL1xyXG5cclxuJGJyZWFrLWRlc2t0b3A6IDk2MHB4O1xyXG4kYnJlYWstbW9iaWxlOiAzODBweDtcclxuJGJyZWFrLW1vYmlsZS1ob3Jpem9udGFsOiA2NDBweDtcclxuJGJyZWFrLW1vYmlsZS1sYXJnZTogNzg2cHg7XHJcblxyXG5AbWl4aW4gd3JhcHBlcigpIHtcclxuICAgIG1heC13aWR0aDogOTYwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZVZhbHVlOiAxLjYpIHtcclxuICAgIGZvbnQtc2l6ZTogKCRzaXplVmFsdWUgKiAxMCkgKyBweDtcclxuICAgIGZvbnQtc2l6ZTogJHNpemVWYWx1ZSArIHJlbTtcclxufVxyXG5cclxuQG1peGluIG9wZW5zYW5zLWZvbnQtc3RhY2soKSB7XHJcbiAgICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbkBtaXhpbiBsb2FkaW5nLWdpZigpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtODtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqTXlJaUJvWldsbmFIUTlJak15SWlCbWFXeHNQU0ppYkdGamF5SStEUW9nSUR4d1lYUm9JQ0J2Y0dGamFYUjVQU0l1TWpVaUlHUTlJazB4TmlBd0lFRXhOaUF4TmlBd0lEQWdNQ0F4TmlBek1pQkJNVFlnTVRZZ01DQXdJREFnTVRZZ01DQk5NVFlnTkNCQk1USWdNVElnTUNBd0lERWdNVFlnTWpnZ1FURXlJREV5SURBZ01DQXhJREUySURRaUx6NE5DaUFnUEhCaGRHZ2dabWxzYkQwbkl6RmhPREJpTmljZ1pEMGlUVEUySURBZ1FURTJJREUySURBZ01DQXhJRE15SURFMklFd3lPQ0F4TmlCQk1USWdNVElnTUNBd0lEQWdNVFlnTkhvaVBnMEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQm1jbTl0UFNJd0lERTJJREUySWlCMGJ6MGlNell3SURFMklERTJJaUJrZFhJOUlqQXVPSE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGcwS0lDQThMM0JoZEdnK0RRbzhMM04yWno0TkNnPT0pO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbkBtaXhpbiByZXNwb25kLXRvKCRtZWRpYSkge1xyXG4gICAgQGlmICRtZWRpYT09bW9iaWxlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1tb2JpbGUtaG9yaXpvbnRhbCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlLWhvcml6b250YWwgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09bW9iaWxlLWxhcmdlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUtbGFyZ2UpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT10YWJsZXQge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrLW1vYmlsZSArIDEpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstZGVza3RvcCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1hbGwtbW9iaWxlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1kZXNrdG9wIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PWRlc2t0b3Age1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrLWRlc2t0b3ApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJhc2ljKCRwb3NpdGlvbjogYWxsLCAkYm9yZGVyLWNvbG9yOiBjb2xvcnMuJGJvcmRlci1ncmF5LCAkYm9yZGVyLXdpZHRoOiAxcHgpIHtcclxuICAgIEBpZigkcG9zaXRpb249PXRvcCkge1xyXG4gICAgICAgIGJvcmRlci10b3A6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09Ym90dG9tKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1sZWZ0KSB7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09cmlnaHQpIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGZpeGVkLWJnKCRwb3MsICRtaW4taGVpZ2h0OiAyNDBweCkge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHBvcztcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbiAgICBtaW4taGVpZ2h0OiAkbWluLWhlaWdodDtcclxufVxyXG5cclxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcclxuICAgIC8vIERpcmVjdGlvbiBoYXMgYmVlbiBvbWl0dGVkIGFuZCBoYXBwZW5zIHRvIGJlIGEgY29sb3Itc3RvcFxyXG4gICAgQGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKT09ZmFsc2Uge1xyXG4gICAgICAgICRjb2xvci1zdG9wczogJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzO1xyXG4gICAgICAgICRkaXJlY3Rpb246IDE4MGRlZztcclxuICAgIH1cclxuXHJcbiAgICAkZmlyc3QtY29sb3Itc3RvcC1ncm91cDogbGlzdC5udGgoJGNvbG9yLXN0b3BzLCAxKTtcclxuICAgICRmaXJzdC1jb2xvci1zdG9wOiBsaXN0Lm50aCgkZmlyc3QtY29sb3Itc3RvcC1ncm91cCwgMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZmlyc3QtY29sb3Itc3RvcDtcclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZ2FjeS1kaXJlY3Rpb24oJGRpcmVjdGlvbiksICRjb2xvci1zdG9wcyk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzKTtcclxufVxyXG4iLCJAdXNlIFwiLi4vLi4vYWJzdHJhY3RzL3ZhcnMvY29sb3JzXCIgYXMgKjtcclxuQHVzZSBcIi4uLy4uL2Fic3RyYWN0cy92YXJzL21hcmdpbnNcIiBhcyAqO1xyXG5AdXNlIFwiLi4vLi4vYWJzdHJhY3RzL3ZhcnMvZm9udFNpemVzXCIgYXMgKjtcclxuQHVzZSBcIi4uLy4uL2Fic3RyYWN0cy9taXhpbnNcIjtcclxuXHJcbi5saW5rLWxpc3QubGlzdC12ZXJ0aWNhbCB7XHJcbiAgICBoMyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJnLWJhc2ljLWNvbG9yO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBwYWRkaW5nOiAzcHggNXB4O1xyXG4gICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMoKTtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbWlkZGxlLW1hcmdpbjtcclxuICAgIH1cclxufVxyXG4iLCJAdXNlIFwiLi4vZnVuY3Rpb25zL2NvbG9yXCI7XHJcbkB1c2UgXCJzYXNzOm1hcFwiO1xyXG5AZm9yd2FyZCBcIi4uL2Z1bmN0aW9ucy9jb2xvclwiIHNob3cgY29sb3I7XHJcblxyXG4vLyBVc2UgY29sb3IgZnVuY3Rpb25zIGZvciBUVENcclxuLy8gTmFtZXMgdGFrZW4gZnJvbSBodG1sY3NzY29sb3IuY29tIGlmIG5vdCBkZXNjcmlwdGl2ZSBlbm91Z2ggZnJvbSB6ZXBsaW5cclxuJGNvbG9yczogKFxyXG4gIFwid2hpdGVcIjogI2ZmZmZmZixcclxuICBcIndoaXRlLXNtb2tlXCI6ICNmM2YzZjMsXHJcbiAgXCJjaGVycnktcmVkXCI6ICNkYTI1MWQsXHJcbiAgXCJzY2FybGV0XCI6ICM3NDAwMDAsXHJcbiAgXCJjYXJtaW5lXCI6ICNhMzAwMWMsXHJcbiAgXCJjZXJ1bGVhblwiOiAjMDA3MGNkLFxyXG4gIFwib2NlYW4tYmx1ZVwiOiAjMDY1NmE1LFxyXG4gIFwiY2VydWxlYW4tdHdvXCI6ICMwMDlhZGUsXHJcbiAgXCJnb2xkZW4teWVsbG93XCI6ICNmZmM2MjcsXHJcbiAgXCJ3YXJtLWdyZXlcIjogIzc2NzY3NixcclxuICBcImdyZXkyOVwiOiAjNGE0YTRhLFxyXG4gIFwiZ3JleTcwXCI6ICNiM2IzYjMsXHJcbiAgXCJkdXN0eS1ncmV5XCI6ICNlZGVkZWQsXHJcbiAgXCJ3YXJtLWdyZXktMlwiOiAjOTc5Nzk3LFxyXG4gIFwiZGltLWdyZXlcIjogIzY5Njk2OSxcclxuICBcIndoaXRlLXR3b1wiOiAjZDVkNWQ1LFxyXG4gIFwid2hpdGUtdGhyZWVcIjogI2QyZDJkMixcclxuICBcImdhaW5zYm9yb1wiOiAjZDhkOGQ4LFxyXG4gIFwibmVyb1wiOiAjMWUxZTFlLFxyXG4gIFwiZ29sZGVuLXBvcHB5XCI6ICNmOGMzMDAsXHJcbiAgXCJleHByZXNzLWdyZWVuXCI6ICMwMDkyM2YsXHJcbiAgXCJuaWdodC1ibHVlXCI6ICMwMjQxODIsXHJcbiAgXCJjb21tdW5pdHktZ3JleVwiOiAjODA4MDgwLFxyXG4gIFwibWF1dmUtdGF1cGVcIjogIzk3NTg2QixcclxuICBcImJsYWNrXCI6ICMwMDAwMDAsXHJcbiAgXCJzcGlua1wiOiAjRUI2RkJELFxyXG4gIFwib3JhbmdlXCI6ICNFQjg3MzgsXHJcbiAgXCJzaHV0dGxlLW9yYW5nZVwiOiAjRUI4NzM4XHJcbik7XHJcblxyXG4kZnVuY3Rpb25hbC1jb2xvcnM6IChcclxuICBwcmltYXJ5LWNvbnRyYXN0OiBtYXAuZ2V0KCRjb2xvcnMsIFwid2hpdGVcIiksXHJcbiAgcHJpbWFyeS1jb250cmFzdC1kYXJrOiBtYXAuZ2V0KCRjb2xvcnMsIFwid2hpdGUtc21va2VcIiksXHJcbiAgcHJpbWFyeTogbWFwLmdldCgkY29sb3JzLCBcImNoZXJyeS1yZWRcIiksXHJcbiAgcHJpbWFyeS1kYXJrOiBtYXAuZ2V0KCRjb2xvcnMsIFwic2NhcmxldFwiKSxcclxuICBwcmltYXJ5LWRhcmtlcjogbWFwLmdldCgkY29sb3JzLCBcImNhcm1pbmVcIiksXHJcbiAgc2Vjb25kYXJ5OiBtYXAuZ2V0KCRjb2xvcnMsIFwiY2VydWxlYW5cIiksXHJcbiAgc2Vjb25kYXJ5LWRhcms6IG1hcC5nZXQoJGNvbG9ycywgXCJvY2Vhbi1ibHVlXCIpLFxyXG4gIHNlY29uZGFyeS1saWdodDogbWFwLmdldCgkY29sb3JzLCBcImNlcnVsZWFuLXR3b1wiKSxcclxuICBhY2NlbnQteWVsbG93OiBtYXAuZ2V0KCRjb2xvcnMsIFwiZ29sZGVuLXllbGxvd1wiKSxcclxuICBncmV5OiBtYXAuZ2V0KCRjb2xvcnMsIFwiZ3JleTI5XCIpLFxyXG4gIGdyZXktbWVudTogbWFwLmdldCgkY29sb3JzLCBcImR1c3R5LWdyZXlcIiksXHJcbiAgZ3JleS1ib3JkZXI6IG1hcC5nZXQoJGNvbG9ycywgXCJ3YXJtLWdyZXlcIiksXHJcbiAgZ3JleS1ib3JkZXItMjogbWFwLmdldCgkY29sb3JzLCBcIndoaXRlLXRocmVlXCIpLFxyXG4gIGdyZXktcGxhY2Vob2xkZXI6IG1hcC5nZXQoJGNvbG9ycywgXCJncmV5NzBcIiksXHJcbiAgZ3JleS0yOiBtYXAuZ2V0KCRjb2xvcnMsIFwid2FybS1ncmV5LTJcIiksXHJcbiAgY2Fyb3VzZWwtZG90czogbWFwLmdldCgkY29sb3JzLCBcImRpbS1ncmV5XCIpLFxyXG4gIGdyZXktbGlnaHQ6IG1hcC5nZXQoJGNvbG9ycywgXCJnYWluc2Jvcm9cIiksXHJcbiAgdGFiLS1kaXNhYmxlZDogbWFwLmdldCgkY29sb3JzLCBcIndoaXRlLXR3b1wiKSxcclxuICBiYWNrZHJvcDogcmdiYSgwLDAsMCwwLjcpLFxyXG4gIGJsYWNrOiBtYXAuZ2V0KCRjb2xvcnMsIFwiYmxhY2tcIiksXHJcbiAgc2l0ZS13aWRlLWFsZXJ0OiBtYXAuZ2V0KCRjb2xvcnMsIFwiZ29sZGVuLXBvcHB5XCIpLFxyXG4gIHZpc2l0ZWQtLWxpbms6IG1hcC5nZXQoJGNvbG9ycywgXCJtYXV2ZS10YXVwZVwiKVxyXG4pO1xyXG5cclxuLy8gUG9wdWxhdGUgc2hhcmVkIGNvbG9yIGZ1bmN0aW9uIG1hcHNcclxuQGluY2x1ZGUgY29sb3Iuc2V0LWNvbG9yLW1hcHMoJGNvbG9ycywgJGZ1bmN0aW9uYWwtY29sb3JzKTtcclxuXHJcbi8vIENvbXBhdGliaWxpdHkgc2hpbSBmb3IgbGVnYWN5IGNhbGxzIHVzaW5nIG1hcC1nZXQoLi4uKS5cclxuLy8gVGhpcyBhdm9pZHMgRGFydCBTYXNzIGdsb2JhbCBidWlsdC1pbiBkZXByZWNhdGlvbiB3YXJuaW5ncyB3aGlsZSB0aGUgY29kZWJhc2UgaXMgaW5jcmVtZW50YWxseSBtaWdyYXRlZCB0byBtYXAuZ2V0KC4uLikuXHJcbkBmdW5jdGlvbiBtYXAtZ2V0KCRtYXAtdmFsdWUsICRrZXkpIHtcclxuICBAcmV0dXJuIG1hcC5nZXQoJG1hcC12YWx1ZSwgJGtleSk7XHJcbn1cclxuXHJcbi8vIExlZ2FjeSBjb21wYXRpYmlsaXR5IGZvciBmaWxlcyBzdGlsbCB1c2luZyBtYXAtZ2V0KCRjb2xvcnMsIC4uLilcclxuJGNvbG9yczogJGNvbG9ycyAhZGVmYXVsdDtcclxuJGZ1bmN0aW9uYWwtY29sb3JzOiAkZnVuY3Rpb25hbC1jb2xvcnMgIWRlZmF1bHQ7XHJcblxyXG4vL0JhY2tncm91bmRzIGNvbG9yc1xyXG4kYmctdHJhbnNwYXJlbnQ6dHJhbnNwYXJlbnQgIWRlZmF1bHQ7XHJcbiRiZy1iYXNpYy1jb2xvcjojRkZGRkZGICFkZWZhdWx0O1xyXG4kYmctYmFzaWMtY29sb3ItYWN0aXZlOiAjY2NjY2NjICFkZWZhdWx0O1xyXG4kYmctbGlnaHQtZ3JheTogI2Y3ZjdmNyAhZGVmYXVsdDtcclxuJGJnLWxpZ2h0LWdyYXktYWN0aXZlOiAjZGFkYWRhICFkZWZhdWx0O1xyXG4kYmctYmx1ZTojODlDNkNDO1xyXG4kYmctYmx1ZS1hY3RpdmU6ICMxNTkwOWMgIWRlZmF1bHQ7XHJcbiRiZy1zdWJtZW51OiNlZGViZWIgIWRlZmF1bHQ7XHJcbiRiZy1zdWJtZW51LWFjdGl2ZTojZjZmNmY2ICFkZWZhdWx0O1xyXG4kYmctYmxhY2s6IzAwMDAwMDtcclxuJGJnLWJsYWNrLWFjdGl2ZTojM2QzZDNkO1xyXG4vL1RleHQgY29sb3JzXHJcbiR0ZXh0LXdoaXRlOiNmZmYgIWRlZmF1bHQ7XHJcbiR0ZXh0LWhlYWRpbmctY29sb3I6ICMyMjIgIWRlZmF1bHQ7XHJcbiR0ZXh0LWJhc2ljOiM3NDc0NzQgIWRlZmF1bHQ7XHJcbiR0ZXh0LWJhc2ljLWFjdGl2ZTojODc4Nzg3ICFkZWZhdWx0O1xyXG4kdGV4dC1ibHVlOiM4OUM2Q0MgIWRlZmF1bHQ7XHJcbiR0ZXh0LWJsdWUtYWN0aXZlOiMxNTkwOWMgIWRlZmF1bHQ7XHJcbiR0ZXh0LXN1Ym1lbnUtYWN0aXZlOiAjMjIyICFkZWZhdWx0O1xyXG4kdGV4dC1kaXNhYmxlZDogI2FhYSAhZGVmYXVsdDtcclxuJHRleHQtYmxhY2s6ICMwMDAwMDAgIWRlZmF1bHQ7XHJcbi8vQm9yZGVyIGNvbG9yc1xyXG4kYm9yZGVyLWdyYXk6ICNkMmQyZDIgIWRlZmF1bHQ7XHJcbiRib3JkZXItd2hpdGU6ICNmZmZmZmYgIWRlZmF1bHQ7XHJcbiRib3JkZXItYmFzaWMtY29sb3I6ICM4OUM2Q0MgIWRlZmF1bHQ7XHJcbiRib3JkZXItYmFzaWMtYWN0aXZlOiMxNTkwOWMgIWRlZmF1bHQ7XHJcblxyXG4vL1N0eWxlcyBmb3IgZWFjaCBjb21wb25lbnQgc2VwYXJhdGVseVxyXG4vL0FjY29yZGlvblxyXG4kYWNjb3JkaW9uLWhlYWRlci1iZzogdHJhbnNwYXJlbnQ7XHJcbiRhY2NvcmRpb24taGVhZGVyLWJnLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XHJcbiRhY2NvcmRpb24tdG9nZ2xlZC1iZzogdHJhbnNwYXJlbnQ7XHJcbiRhY2NvcmRpb24taGVhZGVyLWJvcmRlcjogJGJvcmRlci1ncmF5O1xyXG4vL0JyZWFkY3J1bWJcclxuJGJyZWFkY3J1bWItZHJvcGRvd24tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kYnJlYWRjcnVtYi1kcm9wZG93bi1iZy1hY3RpdmU6JGJnLWJsdWU7XHJcbiRicmVhZGNydW1iLWRyb3Bkb3duLXRleHQtYWN0aXZlOiR0ZXh0LXdoaXRlO1xyXG4kYnJlYWRjcnVtYi1iZzp0cmFuc3BhcmVudDtcclxuJGJyZWFkY3J1bWItY29sb3I6JHRleHQtYmFzaWM7XHJcbiRicmVhZGNydW1iLWNvbG9yLWFjdGl2ZTokdGV4dC1ibHVlLWFjdGl2ZTtcclxuLy9CdXR0b25zIGNvbG9yc1xyXG4kYnRuLWdyZWVuLWxpZ2h0OiAjYTBjZTRlO1xyXG4kYnRuLWdyZWVuOiAjOTJiZTQzO1xyXG4kYnRuLXJlZC1hY3RpdmU6ICNjMzRlMzA7XHJcbiRidG4tcmVkOiAjYmM0NTI2O1xyXG4vL0Nhcm91c2VsXHJcbiRjYXJvdXNlbC1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRjYXJvdXNlbC1uYXYtYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJGNhcm91c2VsLW5hdi1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9Db250YWluZXIgY29tcG9uZW50XHJcbiRjb250YWluZXItdGl0bGUtcm93LWJnOiAkYmctbGlnaHQtZ3JheTtcclxuLy9FdmVudCBMaXN0XHJcbiRldmVudC1saXN0LWJnOnRyYW5zcGFyZW50O1xyXG4kZXZlbnQtbGlzdC1pdGVtLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGV2ZW50LWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGV2ZW50LWxpc3QtdGl0bGUtYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vQ2FsZW5kYXJcclxuJGNhbGVuZGFyLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGNhbGVuZGFyLWhlYWRlci1iZzokYmctYmFzaWMtY29sb3ItYWN0aXZlO1xyXG4kY2FsZW5kYXItZGF5LWNvbG9yLWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuLy9GZWVkXHJcbiRmZWVkLWJnOnRyYW5zcGFyZW50O1xyXG4kZmVlZC1pdGVtLWJnOnRyYW5zcGFyZW50O1xyXG4vL0ZpZWxkIEVkaXRvclxyXG4kZmllbGQtZWRpdG9yLWJnOnRyYW5zcGFyZW50O1xyXG4kZmllbGQtZWRpdG9yLXRhYmxlLWJvcmRlcjokYmctbGlnaHQtZ3JheTtcclxuJGZpZWxkLWVkaXRvci10ZXh0LWhlYWRlcjokdGV4dC1ibGFjaztcclxuJGZpZWxkLWVkaXRvci10ZXh0OiR0ZXh0LWJhc2ljO1xyXG4vL0ZpbGUgTGlzdFxyXG4kZmlsZS1saXN0LWJnOnRyYW5zcGFyZW50O1xyXG4kZmlsZS1saXN0LWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbiRmaWxlLWxpc3QtdGl0bGUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRmaWxlLWxpc3QtdGl0bGUtYm9yZGVyOnRyYW5zcGFyZW50O1xyXG4kZmlsZS1saXN0LWl0ZW0tY29sb3I6JHRleHQtYmFzaWM7XHJcbiRmaWxlLWxpc3QtaXRlbS1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kZmlsZS1saXN0LWl0ZW0tc2l6ZTokdGV4dC1iYXNpYztcclxuJGZpbGUtbGlzdC1pdGVtLWJvcmVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vRmxpcFxyXG4kZmxpcC1iZzp0cmFuc3BhcmVudDtcclxuJGZsaXAtc2xpZGVzLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuLy9HYWxsZXJ5XHJcbiRnYWxsZXJpYS1jb250YWluZXItYmc6JGJnLWJsYWNrO1xyXG4kZ2FsbGVyeS1pbmZvLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGdhbGxlcnktaW5mby1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kZ2FsbGVyeS1pbmZvLXRleHQ6JHRleHQtYmFzaWM7XHJcbiRnYWxsZXJ5LW5hdi1hY3RpdmU6JHRleHQtd2hpdGU7XHJcbiRnYWxsZXJ5LW5hdjokdGV4dC1iYXNpYztcclxuJGdhbGxlcnktY291bnRlci1jb2xvcjokdGV4dC13aGl0ZTtcclxuLy9MYW5ndWFnZSBzZWxlY3RvclxyXG4kbGFuZy1zZWxlY3Rvci1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRsYW5nLXNlbGVjdG9yLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbGFuZy1zZWxlY3Rvci1pdGVtLWJnLWFjdGl2ZTokYmctYmFzaWMtY29sb3I7XHJcbiRsYW5nLXNlbGVjdG9yLWl0ZW0tYm9yZGVyOiRib3JkZXItd2hpdGU7XHJcbiRsYW5nLXNlbGVjdG9yLWl0ZW0tYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9TaXRlIHNlbGVjdG9yXHJcbiRzaXRlLXNlbGVjdG9yLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4vL0xpbmsgTGlzdFxyXG4kbGluay1saXN0LWJnOnRyYW5zcGFyZW50O1xyXG4kbGluay1saXN0LWhlYWRlci1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJGxpbmstbGlzdC1pdGVtcy1iZzp0cmFuc3BhcmVudDtcclxuJGxpbmstbGlzdC1pdGVtLWJnOnRyYW5zcGFyZW50O1xyXG4kbGluay1saXN0LWl0ZW0tY29sb3I6JHRleHQtYmFzaWM7XHJcbiRsaW5rLWxpc3QtaXRlbS1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kbGluay1saXN0LWl0ZW0tYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL0xvZ2luXHJcbiRsb2dpbi1iZzp0cmFuc3BhcmVudDtcclxuLy9Mb2dvdXRcclxuJGxvZ291dC1iZzp0cmFuc3BhcmVudDtcclxuJGxvZ291dC1saW5rLXRleHQtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRsb2dvdXQtbGluay10ZXh0LWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRsb2dvdXQtbGluay1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9NYXBcclxuJG1hcC1iZzp0cmFuc3BhcmVudDtcclxuJG1hcC1ib3JkZXI6bm9uZTtcclxuLy9QYWdlIExpc3RcclxuJHBhZ2UtbGlzdC1iZzokYmctdHJhbnNwYXJlbnQ7XHJcbiRwYWdlLWxpc3QtaXRlbS1iZzokYmctdHJhbnNwYXJlbnQ7XHJcbiRwYWdlLWxpc3QtaXRlbS10aXRsZS10ZXh0OiR0ZXh0LWJsYWNrO1xyXG4kcGFnZS1saXN0LWl0ZW0tYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vUGFnaW5hdGlvblxyXG4kbGlzdC1wYWdpbmF0aW9uLWJnOnRyYW5zcGFyZW50O1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1iZzokYmctYmx1ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6JHRleHQtd2hpdGU7XHJcbiRsaXN0LXBhZ2luYXRpb24tYWN0aXZlLWNvbG9yOiR0ZXh0LWJsdWU7XHJcbiRsaXN0LXBhZ2luYXRpb24tYWN0aXZlLWJnOiRiZy1zdWJtZW51LWFjdGl2ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyOiRib3JkZXItYmFzaWMtYWN0aXZlO1xyXG4vL1BsYXkgbGlzdCBcclxuJHBsYXktbGlzdC1iZzp0cmFuc3BhcmVudDtcclxuJHBsYXktbGlzdC1pdGVtLWJnOnRyYW5zcGFyZW50O1xyXG4kcGxheS1saXN0LWl0ZW0tY29sb3I6JHRleHQtYmFzaWM7XHJcbiRwbGF5LWxpc3QtaXRlbS1jb2xvci1hY3RpdmU6JHRleHQtd2hpdGU7XHJcbiRwbGF5LWxpc3QtbmF2LWFjdGl2ZTokdGV4dC1ibHVlO1xyXG4kcGxheS1saXN0LWl0ZW0tYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiRwbGF5LWxpc3QtaXRlbS1hY3RpdmUtYmc6JGJnLWJsdWU7XHJcbiRwbGF5LWxpc3QtYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRwbGF5LWxpc3QtdGl0bGUtYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vUHJvbW9cclxuJHByb21vLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJHByb21vLWJnLWhlcm86cmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4kcHJvbW8tYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJHByb21vLWhlcm8tdGV4dC1jb2xvcjokdGV4dC13aGl0ZTtcclxuJHByb21vLXNoYWRvdy1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9SaWNoIFRleHQgQ29udGVudFxyXG4kcmljaC1jb250ZW50LWJnOnRyYW5zcGFyZW50O1xyXG4kcmljaC1jb250ZW50LWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kcmljaC1jb250ZW50LWJvcmRlcjpub25lO1xyXG4vL1NlYXJjaFxyXG4kc2VhcmNoLWZpbHRlcjokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1maWx0ZXItYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vTWVudSBjb2xvcnNcclxuJG1lbnUtaG92ZXItY29sb3I6IzFiODA5ZTtcclxuJG1lbnUtYWN0aXZlLWNvbG9yOiMxNzZmODk7XHJcbi8vTmF2aWdhdGlvblxyXG4kbmF2LWJnOnRyYW5zcGFyZW50O1xyXG4kbmF2LWNvbG9yLXJvb3Q6JHRleHQtYmFzaWM7XHJcbiRuYXYtY29sb3Itcm9vdC1hY3RpdmU6JHRleHQtYmFzaWM7XHJcbiRuYXYtYm9yZGVyLXJvb3Q6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJG5hdi1ib3JkZXItcm9vdC1hY3RpdmU6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJG5hdi1jb2xvci1zdWJtZW51OiR0ZXh0LXN1Ym1lbnUtYWN0aXZlO1xyXG4kbmF2LWNvbG9yLXN1Ym1lbnUtYWN0aXZlOiR0ZXh0LXN1Ym1lbnUtYWN0aXZlO1xyXG4kbmF2LWJnLXJvb3Q6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbmF2LWJnLXN1Ym1lbnU6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbmF2LWJnLXN1Ym1lbnUtYWN0aXZlOiRiZy1zdWJtZW51LWFjdGl2ZTtcclxuJG5hdi1ib3JkZXItc3VibWVudTokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbmF2LXN1Ym1lbnUtaXRlbS1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kbmF2LXN1Ym1lbnUtYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1NvY2lhbCBNZWRpYSBTaGFyZVxyXG4kc29jaWFsLW1lZGlhLXNoYXJlLWJnOnRyYW5zcGFyZW50O1xyXG4vL1RhYnNcclxuJHRhYi1oZWFkaW5nLWJnOiRiZy1saWdodC1ncmF5O1xyXG4kdGFiLWhlYWRpbmctYWN0aXZlLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJHRhYi1oZWFkaW5nLWNvbG9yOiR0ZXh0LWhlYWRpbmctY29sb3I7XHJcbiR0YWItaGVhZGluZy1hY3RpdmUtY29sb3I6JHRleHQtYmxhY2s7XHJcbiR0YWItY29udGFpbmVyLWJnOnRyYW5zcGFyZW50O1xyXG4kdGFiLWNvbnRhaW5lci1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9UaXRsZVxyXG4kdGl0bGUtYmc6dHJhbnNwYXJlbnQ7XHJcbiR0aXRsZS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHRpdGxlLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbi8vVG9nZ2xlXHJcbiR0b2dnbGUtaGVhZGVyLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJHRvZ2dsZS1jb250ZW50LWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJHRvZ2dsZS1zaG93LWNvbG9yOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuLy9TZWFyY2ggQ29tcG9uZW50c1xyXG4kc2VhcmNoLWJ0bi1iZzp0cmFuc3BhcmVudDtcclxuJHNlYXJjaC1idG4tYWN0aXZlLWJnOiNlMGUwZTA7XHJcbiRzZWFyY2gtYnRuLWFjdGl2ZS1ib3JkZXI6I2FkYWRhZDtcclxuLy9JbWFnZSBjb21wb25lbnRcclxuJGltYWdlLWNhcHRpb24tY29sb3I6JHRleHQtYmFzaWM7XHJcbi8vTWVkaWEgTGluayBDb21wb25lbnRcclxuJG1lZGlhLWxpbmstYmc6dHJhbnNwYXJlbnQ7XHJcbiRtZWRpYS1saW5rLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbWVkaWEtbGluay1jb2xvcjokdGV4dC1iYXNpYztcclxuJG1lZGlhLWxpbmstY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuLy9UYWcgQ29tcG9uZW50XHJcbiR0YWctY29sb3I6JHRleHQtYmFzaWM7XHJcbiR0YWctY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJHRhZy1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtYWN0aXZlO1xyXG4kdGFnLWxpbmstYmcgOiRiZy1ibHVlO1xyXG4kdGFnLWxpbmstYmctYWN0aXZlIDokYmctYmx1ZS1hY3RpdmU7XHJcbiR0YWctbGluay1jb2xvciA6JHRleHQtd2hpdGU7XHJcbi8vTGluayBDb21wb25lbnRcclxuJGxpbmstYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLXRleHQtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRsaW5rLXRleHQtY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJGxpbmstYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vT3ZlcmxheVxyXG4kb3ZlcmxheS1iZzokYmctbGlnaHQtZ3JheTtcclxuLy9TZWFyY2ggQ29tcG9uZW50c1xyXG4kc2VhcmNoLXRpdGxlLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kc2VhcmNoLXRpdGxlLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kc2VhcmNoLWl0ZW0tY29sb3I6JHRleHQtYmFzaWM7XHJcbiRzZWFyY2gtaXRlbS1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWM7XHJcbiRzZWFyY2gtaXRlbS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHNlYXJjaC1pdGVtLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbi8vXHJcbiRzZWFyY2gtZmlsdGVyLXJhZGl1cy1hY3RpdmU6JHRleHQtYmx1ZTtcclxuJHNlYXJjaC1maWx0ZXItcmFkaXVzLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRzZWFyY2gtZmlsdGVyLXJhZGl1cy1iZzokYm9yZGVyLWdyYXk7XHJcbi8vXHJcbiRzZWFyY2gtZmlsdGVyLXNsaWRlci1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRzZWFyY2gtZmlsdGVyLXNsaWRlci1iZy1hY3RpdmU6JGJnLWJsdWU7XHJcbiRzZWFyY2gtZmlsdGVyLXNsaWRlci1idG4tYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJ0bi1iZzokYmctbGlnaHQtZ3JheTtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJ0bi1iZy1hY3RpdmU6JGJnLWxpZ2h0LWdyYXktYWN0aXZlO1xyXG4vL1NlcmFjaCBQYWdpbmF0aW9uXHJcbiRzZWFyY2gtcGFnaW5hdGlvbi1iZzp0cmFuc3BhcmVudDtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWFjdGl2ZS1iZzokYmctYmx1ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjokdGV4dC13aGl0ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiR0ZXh0LWJsdWU7XHJcbiRzZWFyY2gtcGFnaW5hdGlvbi1ob3Zlci1iZzokYmctc3VibWVudS1hY3RpdmU7XHJcbiRzZWFyY2gtcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbi8vU2VhcmNoIHNlbGVjdG9yXHJcbiRzZXJhY2gtc2VsZWN0b3ItdmFyaWFudC1jb2xvci1hY3RpdmU6ICR0ZXh0LWJsdWUtYWN0aXZlO1xyXG4vL1R5cGVoZWFkXHJcbiR0dC1jb2xvcjokdGV4dC1iYXNpYztcclxuJHR0LWNvbG9yLWFjdGl2ZTokdGV4dC1ibHVlO1xyXG4kdHQtcHJpY2UtY29sb3I6JHRleHQtYmx1ZTtcclxuJHR0LWRyb3Bkb3duLWJnOiRiZy1saWdodC1ncmF5O1xyXG4kdHQtc3VnZ2VzdGlvbi1iZy1hY3RpdmU6JGJnLWxpZ2h0LWdyYXktYWN0aXZlO1xyXG4kdHQtZHJvcGRvd24tYm9yZGVyOiRib3JkZXItZ3JheTtcclxuLy9WaWRlb1xyXG4kdmlkZW8tY29udHJvbC1iZzokYmctYmFzaWMtY29sb3I7XHJcbiR2aWRlby10aW1lLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdmlkZW8tdGltZS10b3RhbC1iZzokYmctYmxhY2s7XHJcbiR2aWRlby10aW1lLWhhbmRsZS1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kdmlkZW8tdGltZS1oYW5kbGUtYmc6JGJnLWJsYWNrO1xyXG4vL01haW5cclxuJHBhZ2UtYmc6ICRiZy1iYXNpYy1jb2xvcjtcclxuJHBhZ2UtYmctZWRpdG9yOm5vbmU7XHJcbiIsIiRleHRyYXNtYWxsLW1hcmdpbjo1cHg7XHJcbiRzbWFsbC1tYXJnaW46MTBweDtcclxuJG1pZGRsZS1tYXJnaW46MjBweDtcclxuJGxhcmdlLW1hcmdpbjozMHB4O1xyXG4kZXh0cmFsYXJnZS1tYXJnaW46NDBweDtcclxuIiwiQHVzZSBcImFic3RyYWN0c1wiO1xyXG5AdXNlIFwiYmFzZS9mb250YXdlc29tZS9mb250LWF3ZXNvbWUtbWl4LXZhclwiO1xyXG5AdXNlIFwiYWJzdHJhY3RzL21peGluc1wiO1xyXG5AdXNlIFwiYWJzdHJhY3RzL3ZhcnMvY29sb3JzXCIgYXMgKjtcclxuQHVzZSBcImFic3RyYWN0cy92YXJzL21hcmdpbnNcIiBhcyAqO1xyXG5cclxuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnMvY29sb3JcIiBhcyBmdW5jdGlvbnMtY29sb3I7XHJcbkB1c2UgXCJhYnN0cmFjdHMvZnVuY3Rpb25zL3NwYWNlXCI7XHJcbkB1c2UgXCJiYXNlL2xpbmtzL2xpbmstYnV0dG9uXCI7XHJcbkB1c2UgXCJ2YXJpYW50cy9saW5rLWxpc3QvZGVmYXVsdFwiO1xyXG5AdXNlIFwic3R5bGVzL2xpbmstbGlzdC9saXN0LXZlcnRpY2FsXCI7XHJcblxyXG4kbGluay1saXN0LXNwYWNlLTE6ICN7c3BhY2Uuc3BhY2UoMSl9O1xyXG4kbGluay1saXN0LXNwYWNlLTI6ICN7c3BhY2Uuc3BhY2UoMil9O1xyXG4kbGluay1saXN0LXNwYWNlLTEzOiAje3NwYWNlLnNwYWNlKDEzKX07XHJcbiRsaW5rLWxpc3QtY29sb3ItcHJpbWFyeTogZnVuY3Rpb25zLWNvbG9yLmNvbG9yKHByaW1hcnkpO1xyXG4kbGluay1saXN0LWNvbG9yLWdyZXktYm9yZGVyOiBmdW5jdGlvbnMtY29sb3IuY29sb3IoZ3JleS1ib3JkZXIpO1xyXG4kbGluay1saXN0LWNvbG9yLWdyZXk6IGZ1bmN0aW9ucy1jb2xvci5jb2xvcihncmV5KTtcclxuJGxpbmstbGlzdC1jb2xvci1wcmltYXJ5LWNvbnRyYXN0OiBmdW5jdGlvbnMtY29sb3IuY29sb3IocHJpbWFyeS1jb250cmFzdCk7XHJcbiRsaW5rLWxpc3QtY29sb3Itc2Vjb25kYXJ5OiBmdW5jdGlvbnMtY29sb3IuY29sb3Ioc2Vjb25kYXJ5KTtcclxuXHJcbi5saW5rLWxpc3Qge1xyXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhib3R0b20sICRsaW5rLWxpc3QtY29sb3ItZ3JleS1ib3JkZXIpO1xyXG5cclxuICAgICAgICAmOmVtcHR5IHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdWwge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIC8qYVt0aXRsZV06Zm9jdXM6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBhdHRyKHRpdGxlKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgcGFkZGluZzogM3B4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAwLjJlbTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDAuMWVtO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMWVtO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBTZWdvZSBVSSAhaW1wb3J0YW50O1xyXG4gICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xyXG4gICAgICB6LWluZGV4OiAxO1xyXG4gICAgfSovXHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMubGluaztcclxuICAgICAgICB9XHJcbiAgICAgICAgLyphOm5vdCguYy1mb290ZXJfX2xpbmtzKTp2aXNpdGVkOiB7XHJcblx0ICAgICAgY29sb3IgOiBmdW5jdGlvbnMtY29sb3IuY29sb3IobWF1dmUtdGF1cGUpO1xyXG5cdCAgfSovXHJcbiAgICB9XHJcblxyXG4gICAgJi5jLXJlbGF0ZWQtbGlua3Mge1xyXG4gICAgICAgIG1hcmdpbjogJGxpbmstbGlzdC1zcGFjZS0yIDA7XHJcblxyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnVpLXR5cG9ncmFwaHkoZDMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkbGluay1saXN0LXNwYWNlLTI7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMoYm90dG9tLCAkbGluay1saXN0LWNvbG9yLWdyZXktYm9yZGVyKTtcclxuXHJcbiAgICAgICAgICAgICY6ZW1wdHkge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAkbGluay1saXN0LXNwYWNlLTIgMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMoYm90dG9tLCAkbGluay1saXN0LWNvbG9yLWdyZXktYm9yZGVyKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmxpbms7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYy1yZWxhdGVkLWxpbmtzLS0yY29sIHtcclxuICAgICAgICBAZXh0ZW5kIC5jLXJlbGF0ZWQtbGlua3M7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1peGlucy5tcShzbSkge1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAjeyRsaW5rLWxpc3Qtc3BhY2UtMn0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGE6dmlzaXRlZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM3ZTNkNTA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5jLXJlbGF0ZWQtbGlua3MtLW11bHRpIHtcclxuICAgICAgICAuY3VycmVudC1wYWdlIHtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkbGluay1saXN0LWNvbG9yLWdyZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5oZWFkaW5nLXRpdGxlIHtcclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMudWktdHlwb2dyYXBoeShkMik7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGluay1saXN0LXNwYWNlLTIgMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWl4aW5zLm1xKCR1bnRpbDpzbSkge1xyXG4gICAgLmMtcHJvbW9fX2xpbmtzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1saXN0LWNvbG9yLXByaW1hcnk7XHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJGxpbmstbGlzdC1jb2xvci1wcmltYXJ5LWNvbnRyYXN0ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRsaW5rLWxpc3Qtc3BhY2UtMjtcclxuXHJcbiAgICAgICAgICAgIGE6dmlzaXRlZCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzdlMzA0NztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubGluay1saXN0LmMtcmVsYXRlZC1saW5rcy0tMmNvbCB7XHJcbiAgICAgICAgbGk6Zmlyc3QtY2hpbGQgYSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWModG9wLCAkbGluay1saXN0LWNvbG9yLWdyZXktYm9yZGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1peGlucy5tcShzbSkge1xyXG4gICAgLmMtcHJvbW9fX2xpbmtzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1saXN0LWNvbG9yLXByaW1hcnktY29udHJhc3Q7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbGluay1saXN0LWNvbG9yLXNlY29uZGFyeTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGxpbmstbGlzdC1zcGFjZS0yO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoI3skbGluay1saXN0LXNwYWNlLTJ9IC0gNXB4KTtcclxuXHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5saW5rLWxpc3QuYy1yZWxhdGVkLWxpbmtzLS0yY29sIHtcclxuICAgICAgICBsaTpmaXJzdC1jaGlsZCBhLFxyXG4gICAgICAgIGxpOm50aC1jaGlsZCgyKSBhIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyh0b3AsICRsaW5rLWxpc3QtY29sb3ItZ3JleS1ib3JkZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWl4aW5zLm1xKGxnKSB7XHJcbiAgICAubGluay1saXN0IHtcclxuICAgICAgICAmLmMtcmVsYXRlZC1saW5rcy0tbXVsdGkge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kbGluay1saXN0LXNwYWNlLTEzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJAdXNlICdzYXNzOm1hcCc7XHJcbkB1c2UgJ3Nhc3M6bGlzdCc7XHJcbkB1c2UgJ3Nhc3M6bWF0aCc7XHJcbkB1c2UgJ3Nhc3M6bWV0YSc7XHJcbkB1c2UgJy4uLy4uL2Fic3RyYWN0cy92YXJzL3R5cGUnO1xyXG5AdXNlICcuLi8uLi9hYnN0cmFjdHMvdmFycy9icmVha3BvaW50cycgYXMgYmFzZTtcclxuQHVzZSAnLi4vLi4vYWJzdHJhY3RzL2Z1bmN0aW9ucy9weC10by1yZW0nO1xyXG5cclxuQGZ1bmN0aW9uIHRvLXJlbSgkdmFsdWUpIHtcclxuICAgIEBpZiBtYXRoLmlzLXVuaXRsZXNzKCR2YWx1ZSkgb3IgbWF0aC51bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XHJcbiAgICAgICAgQHJldHVybiAkdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiBweC10by1yZW0uZ2V0LXJlbSgkdmFsdWUpO1xyXG59XHJcblxyXG5AbWl4aW4gaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHNpemVzKSB7XHJcbiAgICBAaWYgbGlzdC5sZW5ndGgoJHNpemVzKSA9PSAyIHtcclxuICAgICAgICBmb250LXNpemU6IGxpc3QubnRoKCRzaXplcywgMSk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGxpc3QubnRoKCRzaXplcywgMik7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAkc2l6ZXM7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBpb3RhLXR5cGUoJHNpemVzLCAkYnJlYWtwb2ludHM6IGJhc2UuJGlvdGEtZ2xvYmFsLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBAaWYgbWV0YS50eXBlLW9mKCRzaXplcykgPT0gJ21hcCcge1xyXG4gICAgICAgIEBpZiBtYXAuaGFzLWtleSgkc2l6ZXMsIG51bGwpIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMobWFwLmdldCgkc2l6ZXMsIG51bGwpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkc2l6ZSBpbiAkc2l6ZXMge1xyXG4gICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgIT0gbnVsbCBhbmQgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xyXG4gICAgICAgICAgICAgICAgQG1lZGlhICN7bWFwLmdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KX0ge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAaW5jbHVkZSBpb3RhLWV4dHJhY3QtdHlwZS1zaXplcygkc2l6ZXMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5OiB0eXBlLiR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpIHtcclxuICAgIEBpZiAkZm9udC1mYW1pbHkgIT0gbnVsbCB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBmb250LWZhbWlseTogdHlwZS4kdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxufVxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHkoJHN0eWxlKSB7XHJcbiAgICBAaWYgbWFwLmhhcy1rZXkodHlwZS4kdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xyXG4gICAgICAgICRzdHlsZTogbWFwLmdldCh0eXBlLiR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKTtcclxuICAgICAgICAkZm9udC1mYW1pbHk6IG1hcC5nZXQoJHN0eWxlLCBmb250LWZhbWlseSk7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHktYmFzZSgkZm9udC1mYW1pbHkpO1xyXG4gICAgICAgIEBpbmNsdWRlIGlvdGEtdHlwZShtYXAuZ2V0KCRzdHlsZSwgc2l6ZXMpKTtcclxuICAgICAgICAvLyBSZW1vdmUgcHJvcGVydGllcyB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIGdlbmVyYXRlZCBiZWxvd1xyXG4gICAgICAgICRwcm9wczogbWFwLnJlbW92ZSgkc3R5bGUsIGZvbnQtZmFtaWx5LCBtYXJnaW4sIHNpemVzKTtcclxuICAgICAgICAka2V5czogbWFwLmtleXMoJHByb3BzKTtcclxuXHJcbiAgICAgICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XHJcbiAgICAgICAgICAgICN7JGtleX06IG1hcC5nZXQoJHByb3BzLCAka2V5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEB3YXJuKCdDb3VsZCBub3QgZmluZCBgI3skc3R5bGV9YCBpbiBgJHVpLXR5cG9ncmFwaHktc3R5bGVzYCcpO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gdWktdHlwb2dyYXBoeS1tYXJnaW4oJHN0eWxlKSB7XHJcbiAgICBAaWYgbWFwLmhhcy1rZXkodHlwZS4kdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xyXG4gICAgICAgICRzdHlsZS1kZWZpbml0aW9uOiBtYXAuZ2V0KHR5cGUuJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpO1xyXG4gICAgICAgICRzdHlsZS1tYXJnaW46IG1hcC5nZXQoJHN0eWxlLWRlZmluaXRpb24sIG1hcmdpbik7XHJcbiAgICAgICAgbWFyZ2luOiAkc3R5bGUtbWFyZ2luO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEB3YXJuKCdDb3VsZCBub3QgZmluZCBgI3skc3R5bGV9YCBpbiBgJHVpLXR5cG9ncmFwaHktc3R5bGVzYCBmb3IgbWFyZ2luJyk7XHJcbiAgICB9XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL2NvbW1vbi11aS90eXBvZ3JhcGh5L21peGluc1wiO1xyXG5AdXNlIFwiLi4vZnVuY3Rpb25zL2NvbG9yXCIgYXMgZnVuY3Rpb25zLWNvbG9yO1xyXG5AdXNlIFwiLi4vZnVuY3Rpb25zL3NwYWNlXCI7XHJcblxyXG4kZXh0ZW5zaW9uczogcGRmIHhscyBwcHQgZG9jO1xyXG5cclxuJGxpbmstY29sb3ItcHJpbWFyeTogZnVuY3Rpb25zLWNvbG9yLmNvbG9yKHByaW1hcnkpO1xyXG4kbGluay1jb2xvci1zZWNvbmRhcnk6IGZ1bmN0aW9ucy1jb2xvci5jb2xvcihzZWNvbmRhcnkpO1xyXG5cclxuQG1peGluIGxpbmsge1xyXG4gICAgQGluY2x1ZGUgbWl4aW5zLnVpLXR5cG9ncmFwaHkobGluayk7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay0tcmVkIHtcclxuICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KGJvZHkpO1xyXG4gICAgY29sb3I6ICRsaW5rLWNvbG9yLXByaW1hcnk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1yZWRzbSB7XHJcbiAgICBAaW5jbHVkZSBtaXhpbnMudWktdHlwb2dyYXBoeShjYXB0aW9uKTtcclxuICAgIGNvbG9yOiAkbGluay1jb2xvci1wcmltYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay0tcGRmIHtcclxuICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KHBkZik7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay0tYXJyb3cge1xyXG4gICAgJGFycm93LW1hcmdpbi1sZWZ0OiBzcGFjZS5zcGFjZSgxKTtcclxuICAgICRhcnJvdy1zaXplOiBzcGFjZS5zcGFjZSgyLjUpO1xyXG5cclxuICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KHBkZik7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYXJyb3ctbWFyZ2luLWxlZnQ7XHJcbiAgICAgICAgaGVpZ2h0OiAkYXJyb3ctc2l6ZTtcclxuICAgICAgICB3aWR0aDogJGFycm93LXNpemU7XHJcbiAgICAgICAgYm90dG9tOiAzcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9hcnJvdy1iYWNrZ3JvdW5kLXJpZ2h0LW91dGxpbmUuc3ZnJyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstZXh0ZW5zaW9ucyB7XHJcbiAgICAkZXh0ZW5zaW9uLXBhZGRpbmctcmlnaHQ6IHNwYWNlLnNwYWNlKDAuNSk7XHJcblxyXG4gICAgQGVhY2ggJGV4dGVuc2lvbiBpbiAkZXh0ZW5zaW9ucyB7XHJcbiAgICAgICAgJltocmVmKj1cIiN7JGV4dGVuc2lvbn1cIl0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZXh0ZW5zaW9uLXBhZGRpbmctcmlnaHQ7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMnB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgJGV4dGVuc2lvbiA9PSBwZGYge1xyXG4gICAgICAgICAgICAmW2hyZWYqPVwiI3skZXh0ZW5zaW9ufVwiXTo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLy0vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSWNvbnMvcGRmLXJlZC5zdmcpO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDIzcHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIzcHggMjVweDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgJltocmVmKj1cIiN7JGV4dGVuc2lvbn1cIl06OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiLiN7JGV4dGVuc2lvbn1cIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvL21vZGRlZCB0byB1c2UgcHhcclxuXHJcbkBjaGFyc2V0IFwiVVRGLThcIjsgLy8gRml4ZXMgYW4gaXNzdWUgd2hlcmUgUnVieSBsb2NhbGUgaXMgbm90IHNldCBwcm9wZXJseVxyXG5AdXNlICcuLi92YXJzL2JyZWFrcG9pbnRzJztcclxuQHVzZSAnc2FzczpsaXN0JztcclxuQHVzZSAnc2FzczptYXAnO1xyXG5AdXNlICdzYXNzOm1ldGEnO1xyXG5AdXNlICdzYXNzOm1hdGgnO1xyXG5AdXNlICdzYXNzOnN0cmluZyc7XHJcbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL3B1bGwvMTBcclxuXHJcbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxyXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0KVxyXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmVzcG9uc2l2ZSBtb2RlXHJcbi8vL1xyXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXHJcbi8vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KVxyXG4vLy9cclxuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2VycyxcclxuLy8vIHdoZXJlIEBtZWRpYSBxdWVyaWVzIGFyZSByYXN0ZXJpemVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIG9sZC1pZS5zY3NzXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9mZiBEaXNhYmxlZCByZXNwb25zaXZlIG1vZGUgZG9jdW1lbnRhdGlvblxyXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCcmVha3BvaW50IGxpc3RcclxuLy8vXHJcbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxyXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxyXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxyXG4vLy9cclxuLy8vIEB0eXBlIE1hcFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1icmVha3BvaW50czogYnJlYWtwb2ludHMuJG1xLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xyXG5cclxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcclxuLy8vXHJcbi8vLyBEZWZpbmUgdGhlIGJyZWFrcG9pbnQgZnJvbSAkbXEtYnJlYWtwb2ludHMgdGhhdCBzaG91bGRcclxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxyXG4vLy8gKGkuZS4gd2hlbiAkbXEtcmVzcG9uc2l2ZSBpcyBzZXQgdG8gJ2ZhbHNlJykgaW4gYSBvbGQtaWUuc2Nzc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyB0YWJsZXQtb25seS5zY3NzXHJcbi8vLyAgLy9cclxuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcclxuLy8vICAvLyBhbmQgZml4IHRoZSBzdHlsZXMgKGUuZy4gbGF5b3V0KSBhdCB0YWJsZXQgd2lkdGhcclxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XHJcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XHJcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gdGFibGV0XHJcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXHJcbi8vL1xyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2FkZGluZy1jdXN0b20tYnJlYWtwb2ludHMgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IG1kMiAhZGVmYXVsdDtcclxuXHJcbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXHJcbi8vL1xyXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3BcclxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXHJcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cclxuLy8vXHJcbi8vLyBAdHlwZSBtYXBcclxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXHJcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLW1lZGlhLXR5cGU6IGFsbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XHJcbi8vLyAgcCB7IGZvbnQtc2l6ZTogbXEtcHgyZW0oMTZweCk7IH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfVxyXG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xyXG4gICAgQGlmIG1hdGguaXMtdW5pdGxlc3MoJHB4KSB7XHJcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XHJcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiBtYXRoLnVuaXQoJHB4KSA9PSAnZW0nIHtcclxuICAgICAgICBAcmV0dXJuICRweDtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIG1hdGguZGl2KCRweCwgJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcclxufVxyXG5cclxuLy8vIEdldCBhIGJyZWFrcG9pbnQncyB3aWR0aFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoZGVza3RvcCkpIHt9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVmFsdWUgaW4gcGl4ZWxzXHJcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSB7XHJcbiAgICAgICAgQHJldHVybiBtYXAuZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xyXG4gICAgICAgIEByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcclxuLy8vXHJcbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxyXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXHJcbi8vL1xyXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC5lbGVtZW50IHtcclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSgkZnJvbTogbW9iaWxlKSB7XHJcbi8vLyAgICAgIGNvbG9yOiByZWQ7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoJHVudGlsOiB0YWJsZXQpIHtcclxuLy8vICAgICAgY29sb3I6IGJsdWU7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEobW9iaWxlLCB0YWJsZXQpIHtcclxuLy8vICAgICAgY29sb3I6IGdyZWVuO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XHJcbi8vLyAgICAgIGNvbG9yOiB0ZWFsO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKDk1MHB4KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcclxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XHJcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuQG1peGluIG1xKCAkZnJvbTogZmFsc2UsICR1bnRpbDogZmFsc2UsICRhbmQ6IGZhbHNlLCAkZW1zLW9uOiBmYWxzZSwgJG1lZGlhLXR5cGU6ICRtcS1tZWRpYS10eXBlLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cywgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLCAkc3RhdGljLWJyZWFrcG9pbnQ6ICRtcS1zdGF0aWMtYnJlYWtwb2ludCApIHtcclxuICAgICRtaW4td2lkdGg6IDA7XHJcbiAgICAkbWF4LXdpZHRoOiAwO1xyXG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcclxuXHJcbiAgICAvLyBGcm9tOiB0aGlzIGJyZWFrcG9pbnQgKGluY2x1c2l2ZSlcclxuICAgIEBpZiAkZnJvbSB7XHJcbiAgICAgICAgQGlmIG1ldGEudHlwZS1vZigkZnJvbSkgPT0gJ251bWJlcicge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbSgkZnJvbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogJGZyb207XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBVbnRpbDogdGhhdCBicmVha3BvaW50IChleGNsdXNpdmUpXHJcbiAgICBAaWYgJHVudGlsIHtcclxuICAgICAgICBAaWYgbWV0YS50eXBlLW9mKCR1bnRpbCkgPT0gJ251bWJlcicge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbSgkdW50aWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRtYXgtd2lkdGg6ICR1bnRpbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgIEBpZiAkZW1zLW9uIHtcclxuICAgICAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykgLSAxcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xyXG4gICAgLy8gVGhlIGJyb3dzZXIgd2lsbCByZWx5IG9uIHRoZSBjYXNjYWRlIGl0c2VsZi5cclxuICAgIEBpZiAkcmVzcG9uc2l2ZSA9PSBmYWxzZSB7XHJcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XHJcbiAgICAgICAgJHRhcmdldC13aWR0aDogbnVsbDtcclxuXHJcbiAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAkdGFyZ2V0LXdpZHRoOiBtcS1weDJlbSgkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICR0YXJnZXQtd2lkdGg6ICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcclxuICAgICAgICBAaWYgKCAkYW5kID09IGZhbHNlIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGggYW5kICggJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aCApICkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAge1xyXG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAge1xyXG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAkYW5kIHtcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXHJcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHJpbmcuc2xpY2Uoc3RyaW5nLnVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBRdWljayBzb3J0XHJcbi8vL1xyXG4vLy8gQGF1dGhvciBTYW0gUmljaGFyZHNcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxyXG4vLy8gQHJldHVybnMge0xpc3R9IFNvcnRlZCBMaXN0XHJcbkBmdW5jdGlvbiBfbXEtcXVpY2stc29ydCgkbGlzdCkge1xyXG4gICAgJGxlc3M6ICgpO1xyXG4gICAgJGVxdWFsOiAoKTtcclxuICAgICRsYXJnZTogKCk7XHJcblxyXG4gICAgQGlmIGxpc3QubGVuZ3RoKCRsaXN0KSA+IDEge1xyXG4gICAgICAgICRzZWVkOiBsaXN0Lm50aCgkbGlzdCwgbWF0aC5jZWlsKGxpc3QubGVuZ3RoKCRsaXN0KSAvIDIpKTtcclxuXHJcbiAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xyXG4gICAgICAgICAgICBAaWYgKCRpdGVtID09ICRzZWVkKSB7XHJcbiAgICAgICAgICAgICAgICAkZXF1YWw6IGxpc3QuYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIGlmICgkaXRlbSA8ICRzZWVkKSB7XHJcbiAgICAgICAgICAgICAgICAkbGVzczogbGlzdC5hcHBlbmQoJGxlc3MsICRpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSBpZiAoJGl0ZW0gPiAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGxhcmdlOiBsaXN0LmFwcGVuZCgkbGFyZ2UsICRpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQHJldHVybiBsaXN0LmpvaW4obGlzdC5qb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkbGlzdDtcclxufVxyXG5cclxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcclxuLy8vIEByZXR1cm5zIHtNYXB9IE1hcCBzb3J0ZWQgYnkgdmFsdWVcclxuQGZ1bmN0aW9uIF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbWFwKSB7XHJcbiAgICAkbWFwLXNvcnRlZDogKCk7XHJcbiAgICAkbWFwLWtleXM6IG1hcC5rZXlzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXM6IG1hcC52YWx1ZXMoJG1hcCk7XHJcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcclxuXHJcbiAgICAvLyBSZW9yZGVyIGtleS92YWx1ZSBwYWlycyBiYXNlZCBvbiBrZXkgdmFsdWVzXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcclxuICAgICAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJG1hcC12YWx1ZXMsICR2YWx1ZSk7XHJcbiAgICAgICAgJGtleTogbGlzdC5udGgoJG1hcC1rZXlzLCAkaW5kZXgpO1xyXG4gICAgICAgICRtYXAtc29ydGVkOiBtYXAubWVyZ2UoJG1hcC1zb3J0ZWQsICgka2V5OiAkdmFsdWUpKTtcclxuXHJcbiAgICAgICAgLy8gVW5zZXQgdGhlIHZhbHVlIGluICRtYXAtdmFsdWVzIHRvIHByZXZlbnQgdGhlIGxvb3BcclxuICAgICAgICAvLyBmcm9tIGZpbmRpbmcgdGhlIHNhbWUgaW5kZXggdHdpY2VcclxuICAgICAgICAkbWFwLXZhbHVlczogbGlzdC5zZXQtbnRoKCRtYXAtdmFsdWVzLCAkaW5kZXgsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJG1hcC1zb3J0ZWQ7XHJcbn1cclxuXHJcbi8vLyBBZGQgYSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xyXG4vLy8gIEBpbmNsdWRlIG1peGlucy5tcSh0dnNjcmVlbikge31cclxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcclxuICAgICRuZXctYnJlYWtwb2ludDogKCRuYW1lOiAkd2lkdGgpO1xyXG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAubWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbXEtYnJlYWtwb2ludHMpICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3NcclxuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG4vLy9cclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xyXG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBib2R5OmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XHJcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XHJcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcclxuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgei1pbmRleDogMTAwO1xyXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cclxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcclxuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AaWYgbGlzdC5sZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XHJcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG59XHJcbiJdfQ== */
