.content-type--main .editor h2,
.content-type--main .editor h3,
.content-type--main .editor h4,
.content-type--main .editor h5,
.content-type--main .editor h6,
.heading,
.page-heading,
.sub-subheading,
.subheading,
.callout__heading {
  color: rgb(59.2717391304, 67.9456521739, 73.7282608696);
}

a:hover {
  color: #005e82;
}

.header.site-menu-active {
  background: linear-gradient(90deg, #005e82 0%, #005e82 60%, #b70062 100%);
  background-color: #005e82;
}

.site-header {
  background: linear-gradient(90deg, #005e82 0%, #005e82 60%, #b70062 100%);
  background-color: #005e82;
}

@media (min-width: 760px) {
  .site-header__nav--secondary .list__item {
    width: 33.33%;
  }
}

.sidebar__nav--primary .list__item.active {
  background-color: rgb(59.2717391304, 67.9456521739, 73.7282608696);
}

.sidebar .content-type--contact .content-type__container {
  background-color: rgb(59.2717391304, 67.9456521739, 73.7282608696);
  margin-top: -1rem;
  padding-bottom: 1.5rem;
  padding-top: 1.5rem;
}
.sidebar .content-type--contact .content-type__container .contact__heading,
.sidebar .content-type--contact .content-type__container .contact__text {
  color: #fff;
}
.sidebar .content-type--contact .content-type__container .list__link {
  color: #ed2482;
}
.sidebar .content-type--contact .content-type__container .list__link:hover {
  color: #fff;
  text-decoration: none;
}
.sidebar .content-type--contact .content-type__container .icon__svg {
  fill: #fff;
  opacity: 0.5;
}

.breadcrumbs {
  background-color: rgba(0, 0, 0, 0.25);
}

.breadcrumbs__item::before {
  background-image: url("data:image/svg+xml, %3Csvg%20viewBox%3D%220%200%2014%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.744%2012L.168.874A.5.5%200%201%201%20.83.126l13%2011.5a.5.5%200%200%201%200%20.748l-13%2011.5a.5.5%200%201%201-.662-.748L12.744%2012z%22%20fill%3D%22%23fff%22%20%2F%3E%3C%2Fsvg%3E");
  opacity: 0.6;
}
.breadcrumbs__item a {
  color: #fff;
  opacity: 0.6;
}
.breadcrumbs__item a::after {
  background-color: #fff;
}
.breadcrumbs__item a:hover, .breadcrumbs__item a:focus {
  color: #fff;
}
.breadcrumbs__item:first-child a {
  background-image: url("data:image/svg+xml, %3Csvg%20width%3D%2210%22%20height%3D%2210%22%20viewBox%3D%220%200%2010%2010%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%203.68v6.322h3.889v-3.89H6.11v3.89H10V3.68L5%200z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E");
}
@media (max-width: 759px) {
  .breadcrumbs__item:nth-last-child(2)::before {
    background-image: url("data:image/svg+xml, %3Csvg%20viewBox%3D%220%200%2014%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1.254%2012L13.83%2023.126a.5.5%200%201%201-.662.748l-13-11.5a.5.5%200%200%201%200-.748l13-11.5a.5.5%200%201%201%20.663.748L1.255%2012z%22%20fill%3D%22%23fff%22%20%2F%3E%3C%2Fsvg%3E");
    opacity: 0.6;
  }
}

.callout--subtle {
  background-color: #f6f7f7;
  border: none 0;
}

.card__link .card__content {
  background-color: rgb(59.2717391304, 67.9456521739, 73.7282608696);
}
.card__link:hover .card__content, .card__link:focus .card__content, .card__link:active .card__content {
  background-color: #b70062;
}

.card--contact .card__text {
  border-bottom: none 0;
  margin-bottom: 0;
  padding-bottom: 0;
}

.card--subtle .card__link:hover .card__heading, .card--subtle .card__link:focus .card__heading, .card--subtle .card__link:active .card__heading {
  color: #005e82;
}
.card--subtle .card__link:hover .icon--ui-arrow-right .icon__svg, .card--subtle .card__link:focus .icon--ui-arrow-right .icon__svg, .card--subtle .card__link:active .icon--ui-arrow-right .icon__svg {
  fill: #005e82;
}

.slick-dots {
  line-height: 0;
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  text-align: center;
  width: 100%;
}
.slick-dots li {
  display: inline-block;
  margin: 0;
  padding: 0;
  text-align: center;
  vertical-align: middle;
}
.slick-dots button {
  background-color: #cbcece;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  display: block;
  height: 0.75rem;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  outline: 0;
  overflow: hidden;
  padding: 0;
  text-indent: 100%;
  transition: transform 0.3s;
  white-space: nowrap;
  width: 0.75rem;
}
@media (min-width: 960px) {
  .slick-dots button {
    height: 1rem;
    width: 1rem;
  }
}
.slick-dots button:hover, .slick-dots button:focus {
  background-color: rgb(176.7425742574, 181.2574257426, 181.2574257426);
  transform: scale(1.25);
}
.slick-dots .slick-active button {
  background-color: #525e66;
  cursor: default;
  opacity: 1;
  transform: scale(1.25);
}

.intro {
  background: linear-gradient(90deg, #005e82 0%, #005e82 60%, #b70062 100%);
  background-color: #005e82;
}

.list--section-iterator a {
  color: #b70062;
}
.list--section-iterator a:hover, .list--section-iterator a:focus {
  color: #361163;
}
.list--section-iterator .list__item--prev a::before {
  background-image: url("data:image/svg+xml, %3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M.045%207.83C.04%207.82.032%207.814.028%207.805a.33.33%200%200%201%200-.268c.003-.01.01-.016.016-.026a.302.302%200%200%201%20.062-.08l.005-.01L8.45.09a.333.333%200%201%201%20.44.5L1.22%207.34h14.45a.334.334%200%200%201%200%20.667H1.218l7.67%206.75a.332.332%200%200%201-.22.583.33.33%200%200%201-.22-.083L.11%207.922c-.002%200-.003-.005-.005-.007a.348.348%200%200%201-.062-.083V7.83z%22%20fill%3D%22%23b70062%22%20%2F%3E%3C%2Fsvg%3E");
}
.list--section-iterator .list__item--next a::before {
  background-image: url("data:image/svg+xml, %3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.954%207.83c.005-.01.013-.016.017-.025a.33.33%200%200%200%200-.268c0-.01-.01-.016-.013-.026a.302.302%200%200%200-.062-.08l-.005-.01L7.552.09a.333.333%200%201%200-.44.5l7.67%206.75H.332a.333.333%200%200%200%200%20.667h14.45l-7.67%206.75a.332.332%200%200%200%20.22.583.33.33%200%200%200%20.22-.083l8.335-7.333c.002%200%20.003-.005.005-.007a.348.348%200%200%200%20.062-.083z%22%20fill%3D%22%23b70062%22%20%2F%3E%3C%2Fsvg%3E");
}

.social__link .icon__svg {
  fill: #005e82;
}
.social__link:hover .icon__svg {
  fill: rgb(59.2717391304, 67.9456521739, 73.7282608696);
}

.rss-posts-list ul {
  list-style-type: none;
  margin: 0;
  padding: 0.5rem 0 2rem;
}
.rss-posts-list ul li a {
  background-color: #f6f7f7;
  display: block;
  margin-bottom: 1rem;
  padding: 0.5rem 1rem;
}
.rss-posts-list ul li a strong {
  font-size: 0.9rem;
}
@media (min-width: 600px) and (max-width: 960px) {
  .rss-posts-list ul li a strong {
    font-size: calc(0.9rem + 0.1125 * (100vw - 600px) / 360);
  }
}
@media (min-width: 960px) and (max-width: 1220px) {
  .rss-posts-list ul li a strong {
    font-size: calc(1.0125rem + 0.1125 * (100vw - 960px) / 260);
  }
}
@media (min-width: 1220px) {
  .rss-posts-list ul li a strong {
    font-size: 1.125rem;
  }
}
.rss-posts-list ul li a strong {
  line-height: 1.555555556;
}
.rss-posts-list ul li a .rss__date {
  font-size: 0.7111111111rem;
}
@media (min-width: 600px) and (max-width: 960px) {
  .rss-posts-list ul li a .rss__date {
    font-size: calc(0.7111111111rem + 0.0888888889 * (100vw - 600px) / 360);
  }
}
@media (min-width: 960px) and (max-width: 1220px) {
  .rss-posts-list ul li a .rss__date {
    font-size: calc(0.8rem + 0.0888888889 * (100vw - 960px) / 260);
  }
}
@media (min-width: 1220px) {
  .rss-posts-list ul li a .rss__date {
    font-size: 0.8888888889rem;
  }
}
.rss-posts-list ul li a .rss__date {
  line-height: 1.406074241;
  color: #525e66;
  display: block;
}

.home .card__heading {
  font-size: 1.4416259766rem;
}
@media (min-width: 600px) and (max-width: 960px) {
  .home .card__heading {
    font-size: calc(1.4416259766rem + 0.1802032471 * (100vw - 600px) / 360);
  }
}
@media (min-width: 960px) and (max-width: 1220px) {
  .home .card__heading {
    font-size: calc(1.6218292236rem + 0.1802032471 * (100vw - 960px) / 260);
  }
}
@media (min-width: 1220px) {
  .home .card__heading {
    font-size: 1.8020324707rem;
  }
}
.home .card__heading {
  line-height: 1.387347392;
}
.home .section-footer {
  background-color: #525e66;
  margin-top: 3rem;
  padding: 3rem 0;
}
.home .section-footer .content-type__container {
  margin: 0 auto;
  max-width: calc(1180px - 2rem);
}
.home .section-footer .content-type__container .contact {
  background-color: rgb(59.2717391304, 67.9456521739, 73.7282608696);
  color: #fff;
  margin: 0 auto;
  max-width: 375px;
  padding: 1.25rem 1.5rem;
}
.home .section-footer .content-type__container .contact .list__link {
  color: #ed2482;
}
.home .section-footer .content-type__container .contact .list__link:hover {
  color: #fff;
  text-decoration: none;
}
.home .section-footer .content-type__container .contact .icon__svg {
  fill: #fff;
  opacity: 0.5;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UvX2Jhc2Uuc2NzcyIsImFpLWVkdWNhdGlvbi0yMDI2LmNzcyIsImFic3RyYWN0cy9fdmFyaWFibGVzLnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwibGF5b3V0L19zaWRlYmFyLnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiY29tcG9uZW50cy9fY2FsbG91dC5zY3NzIiwiY29tcG9uZW50cy9fY2FyZC5zY3NzIiwiY29tcG9uZW50cy9fY2Fyb3VzZWwuc2NzcyIsImNvbXBvbmVudHMvX2ludHJvLnNjc3MiLCJjb21wb25lbnRzL19saXN0LnNjc3MiLCJjb21wb25lbnRzL19zb2NpYWwuc2NzcyIsInBhZ2VzL19ibG9nLnNjc3MiLCJ2ZW5kb3JzL21vZHVsYXJzY2FsZS9fcmVzcG9uZC5zY3NzIiwiYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsInBhZ2VzL19ob21lLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7Ozs7Ozs7Ozs7RUFVRSx1REFBQTtBQ0pGOztBRE9BO0VBQ0UsY0VrTHNCO0FEdEx4Qjs7QUVQRTtFQUNFLHlFQUFBO0VBQ0EseUJEMkxvQjtBRGpMeEI7O0FFQ0E7RUFDRSx5RUFBQTtFQUNBLHlCRDhLc0I7QUQ1S3hCOztBR29oQkk7RUQzZ0JGO0lBRUksYUFBQTtFRk5KO0FBQ0Y7O0FJMUJBO0VBQ0Usa0VBQUE7QUo2QkY7O0FJeEJJO0VBQ0Usa0VBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0EsbUJBQUE7QUoyQk47QUl6Qk07O0VBRUUsV0grTGdCO0FEcEt4QjtBSXhCTTtFQUNFLGNIbUpnQjtBRHpIeEI7QUl4QlE7RUFDRSxXSHdMYztFR3ZMZCxxQkFBQTtBSjBCVjtBSXRCTTtFQUNFLFVIa0xnQjtFR2pMaEIsWUFBQTtBSndCUjs7QUtqREE7RUFDRSxxQ0FBQTtBTG9ERjs7QUt4Q0U7RUFDRSxxVkFBQTtFQUNBLFlBQUE7QUwyQ0o7QUt0Q0U7RUFDRSxXSnFMb0I7RUlwTHBCLFlBQUE7QUx3Q0o7QUtwQ0k7RUFDRSxzQkorS2tCO0FEekl4QjtBS25DSTtFQUVFLFdKMEtrQjtBRHRJeEI7QUs3Qkk7RUFDRSxvU0FBQTtBTCtCTjtBRzhkSTtFRXRmQTtJQUVJLG1WQUFBO0lBQ0EsWUFBQTtFTDBCTjtBQUNGOztBTWhGQTtFQUNFLHlCTDJNc0I7RUsxTXRCLGNBQUE7QU5tRkY7O0FPcEZFO0VBQ0Usa0VBQUE7QVB1Rko7QU9qRkk7RUFDRSx5Qk4ySmtCO0FEeEV4Qjs7QU85RUE7RUFDRSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QVBpRkY7O0FPekVNO0VBQ0UsY05zS2dCO0FEMUZ4QjtBT3pFTTtFQUNFLGFOa0tnQjtBRHZGeEI7O0FRdkdBO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0FSMEdGO0FRdEdFO0VBQ0UscUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7QVJ3R0o7QVFuR0U7RUFDRSx5QlArS29CO0VPOUtwQixTQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLGVQK053QjtFTzlOeEIsbUJQNk53QjtFTzVOeEIsb0JQNE53QjtFTzNOeEIsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsMEJBQUE7RUFDQSxtQkFBQTtFQUNBLGNQc053QjtBRGpINUI7QUc4Wkk7RUtsaEJGO0lBa0JJLFlQb05zQjtJT25OdEIsV1BtTnNCO0VEN0cxQjtBQUNGO0FRcEdJO0VBRUUscUVBQUE7RUFDQSxzQkFBQTtBUnFHTjtBUTlGSTtFQUNFLHlCUDRJa0I7RU8zSWxCLGVBQUE7RUFDQSxVQUFBO0VBQ0Esc0JBQUE7QVJnR047O0FTMUpBO0VBQ0UseUVBQUE7RUFDQSx5QlI4THNCO0FEakN4Qjs7QVUzSkU7RUFDRSxjVCtKb0I7QUREeEI7QVU1Skk7RUFFRSxjVHlKa0I7QURJeEI7QVVySk07RUFDRSxvbkJBQUE7QVZ1SlI7QVU5SU07RUFDRSw0bUJBQUE7QVZnSlI7O0FXM0tFO0VBQ0UsYVY4TG9CO0FEaEJ4QjtBVzFLSTtFQUNFLHNEQUFBO0FYNEtOOztBWW5MRTtFQUNFLHFCQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0Fac0xKO0FZcExJO0VBQ0UseUJYc01rQjtFV3JNbEIsY0FBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7QVpzTE47QVlwTE07RUNlSSxpQkFBQTtBYndLVjtBYS9KVTtFRHhCSjtJQzJCTSx3REFBQTtFYmdLVjtBQUNGO0FhcEtVO0VEeEJKO0lDMkJNLDJEQUFBO0VicUtWO0FBQ0Y7QWE1Skk7RURyQ0U7SUNzQ0EsbUJBQUE7RWIrSko7QUFDRjtBWXRNTTtFRVdKLHdCQUFBO0FkOExGO0FZck1NO0VDV0ksMEJBQUE7QWI2TFY7QWFwTFU7RURwQko7SUN1Qk0sdUVBQUE7RWJxTFY7QUFDRjtBYXpMVTtFRHBCSjtJQ3VCTSw4REFBQTtFYjBMVjtBQUNGO0FhakxJO0VEakNFO0lDa0NBLDBCQUFBO0Vib0xKO0FBQ0Y7QVl2Tk07RUVPSix3QkFBQTtFRkpNLGNYaUxnQjtFV2hMaEIsY0FBQTtBWndOUjs7QWUzT0U7RUYwQlEsMEJBQUE7QWJxTlY7QWE1TVU7RUVuQ1I7SUZzQ1UsdUVBQUE7RWI2TVY7QUFDRjtBYWpOVTtFRW5DUjtJRnNDVSx1RUFBQTtFYmtOVjtBQUNGO0Fhek1JO0VFaERGO0lGaURJLDBCQUFBO0ViNE1KO0FBQ0Y7QWU5UEU7RURzQkEsd0JBQUE7QWQyT0Y7QWU3UEU7RUFDRSx5QmQ4TG9CO0VjN0xwQixnQkFBQTtFQUNBLGVBQUE7QWYrUEo7QWU3UEk7RUFDRSxjQUFBO0VBQ0EsOEJBQUE7QWYrUE47QWU3UE07RUFDRSxrRUFBQTtFQUNBLFdkOExnQjtFYzdMaEIsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7QWYrUFI7QWU3UFE7RUFDRSxjZGdKYztBRCtHeEI7QWU3UFU7RUFDRSxXZHFMWTtFY3BMWixxQkFBQTtBZitQWjtBZTNQUTtFQUNFLFVkK0tjO0VjOUtkLFlBQUE7QWY2UFYiLCJmaWxlIjoiYWktZWR1Y2F0aW9uLTIwMjYuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoaXMgZmlsZSBjb250YWlucyB2ZXJ5IGJhc2ljIHN0eWxlcy5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGgyLFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGgzLFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGg0LFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGg1LFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGg2LFxuLmhlYWRpbmcsXG4ucGFnZS1oZWFkaW5nLFxuLnN1Yi1zdWJoZWFkaW5nLFxuLnN1YmhlYWRpbmcsXG4uY2FsbG91dF9faGVhZGluZyB7XG4gIGNvbG9yOiBkYXJrZW4oJGFzcGhhbHQsIDEwJSk7XG59XG5cbmE6aG92ZXIge1xuICBjb2xvcjogJHBldHJvbC1ibHVlO1xufVxuIiwiLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGgyLFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGgzLFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGg0LFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGg1LFxuLmNvbnRlbnQtdHlwZS0tbWFpbiAuZWRpdG9yIGg2LFxuLmhlYWRpbmcsXG4ucGFnZS1oZWFkaW5nLFxuLnN1Yi1zdWJoZWFkaW5nLFxuLnN1YmhlYWRpbmcsXG4uY2FsbG91dF9faGVhZGluZyB7XG4gIGNvbG9yOiByZ2IoNTkuMjcxNzM5MTMwNCwgNjcuOTQ1NjUyMTczOSwgNzMuNzI4MjYwODY5Nik7XG59XG5cbmE6aG92ZXIge1xuICBjb2xvcjogIzAwNWU4Mjtcbn1cblxuLmhlYWRlci5zaXRlLW1lbnUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDA1ZTgyIDAlLCAjMDA1ZTgyIDYwJSwgI2I3MDA2MiAxMDAlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNWU4Mjtcbn1cblxuLnNpdGUtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDA1ZTgyIDAlLCAjMDA1ZTgyIDYwJSwgI2I3MDA2MiAxMDAlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNWU4Mjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5zaXRlLWhlYWRlcl9fbmF2LS1zZWNvbmRhcnkgLmxpc3RfX2l0ZW0ge1xuICAgIHdpZHRoOiAzMy4zMyU7XG4gIH1cbn1cblxuLnNpZGViYXJfX25hdi0tcHJpbWFyeSAubGlzdF9faXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTkuMjcxNzM5MTMwNCwgNjcuOTQ1NjUyMTczOSwgNzMuNzI4MjYwODY5Nik7XG59XG5cbi5zaWRlYmFyIC5jb250ZW50LXR5cGUtLWNvbnRhY3QgLmNvbnRlbnQtdHlwZV9fY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU5LjI3MTczOTEzMDQsIDY3Ljk0NTY1MjE3MzksIDczLjcyODI2MDg2OTYpO1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcbn1cbi5zaWRlYmFyIC5jb250ZW50LXR5cGUtLWNvbnRhY3QgLmNvbnRlbnQtdHlwZV9fY29udGFpbmVyIC5jb250YWN0X19oZWFkaW5nLFxuLnNpZGViYXIgLmNvbnRlbnQtdHlwZS0tY29udGFjdCAuY29udGVudC10eXBlX19jb250YWluZXIgLmNvbnRhY3RfX3RleHQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5zaWRlYmFyIC5jb250ZW50LXR5cGUtLWNvbnRhY3QgLmNvbnRlbnQtdHlwZV9fY29udGFpbmVyIC5saXN0X19saW5rIHtcbiAgY29sb3I6ICNlZDI0ODI7XG59XG4uc2lkZWJhciAuY29udGVudC10eXBlLS1jb250YWN0IC5jb250ZW50LXR5cGVfX2NvbnRhaW5lciAubGlzdF9fbGluazpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc2lkZWJhciAuY29udGVudC10eXBlLS1jb250YWN0IC5jb250ZW50LXR5cGVfX2NvbnRhaW5lciAuaWNvbl9fc3ZnIHtcbiAgZmlsbDogI2ZmZjtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uYnJlYWRjcnVtYnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG4uYnJlYWRjcnVtYnNfX2l0ZW06OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwgJTNDc3ZnJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAyNCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTIuNzQ0JTIwMTJMLjE2OC44NzRBLjUuNSUyMDAlMjAxJTIwMSUyMC44My4xMjZsMTMlMjAxMS41YS41LjUlMjAwJTIwMCUyMDElMjAwJTIwLjc0OGwtMTMlMjAxMS41YS41LjUlMjAwJTIwMSUyMDEtLjY2Mi0uNzQ4TDEyLjc0NCUyMDEyeiUyMiUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcIik7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi5icmVhZGNydW1ic19faXRlbSBhIHtcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi5icmVhZGNydW1ic19faXRlbSBhOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnJlYWRjcnVtYnNfX2l0ZW0gYTpob3ZlciwgLmJyZWFkY3J1bWJzX19pdGVtIGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5icmVhZGNydW1ic19faXRlbTpmaXJzdC1jaGlsZCBhIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCAlM0NzdmclMjB3aWR0aCUzRCUyMjEwJTIyJTIwaGVpZ2h0JTNEJTIyMTAlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMCUyMDEwJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMy42OHY2LjMyMmgzLjg4OXYtMy44OUg2LjExdjMuODlIMTBWMy42OEw1JTIwMHolMjIlMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc1OXB4KSB7XG4gIC5icmVhZGNydW1ic19faXRlbTpudGgtbGFzdC1jaGlsZCgyKTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsICUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMjQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEuMjU0JTIwMTJMMTMuODMlMjAyMy4xMjZhLjUuNSUyMDAlMjAxJTIwMS0uNjYyLjc0OGwtMTMtMTEuNWEuNS41JTIwMCUyMDAlMjAxJTIwMC0uNzQ4bDEzLTExLjVhLjUuNSUyMDAlMjAxJTIwMSUyMC42NjMuNzQ4TDEuMjU1JTIwMTJ6JTIyJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbn1cblxuLmNhbGxvdXQtLXN1YnRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY3Zjc7XG4gIGJvcmRlcjogbm9uZSAwO1xufVxuXG4uY2FyZF9fbGluayAuY2FyZF9fY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1OS4yNzE3MzkxMzA0LCA2Ny45NDU2NTIxNzM5LCA3My43MjgyNjA4Njk2KTtcbn1cbi5jYXJkX19saW5rOmhvdmVyIC5jYXJkX19jb250ZW50LCAuY2FyZF9fbGluazpmb2N1cyAuY2FyZF9fY29udGVudCwgLmNhcmRfX2xpbms6YWN0aXZlIC5jYXJkX19jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I3MDA2Mjtcbn1cblxuLmNhcmQtLWNvbnRhY3QgLmNhcmRfX3RleHQge1xuICBib3JkZXItYm90dG9tOiBub25lIDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uY2FyZC0tc3VidGxlIC5jYXJkX19saW5rOmhvdmVyIC5jYXJkX19oZWFkaW5nLCAuY2FyZC0tc3VidGxlIC5jYXJkX19saW5rOmZvY3VzIC5jYXJkX19oZWFkaW5nLCAuY2FyZC0tc3VidGxlIC5jYXJkX19saW5rOmFjdGl2ZSAuY2FyZF9faGVhZGluZyB7XG4gIGNvbG9yOiAjMDA1ZTgyO1xufVxuLmNhcmQtLXN1YnRsZSAuY2FyZF9fbGluazpob3ZlciAuaWNvbi0tdWktYXJyb3ctcmlnaHQgLmljb25fX3N2ZywgLmNhcmQtLXN1YnRsZSAuY2FyZF9fbGluazpmb2N1cyAuaWNvbi0tdWktYXJyb3ctcmlnaHQgLmljb25fX3N2ZywgLmNhcmQtLXN1YnRsZSAuY2FyZF9fbGluazphY3RpdmUgLmljb24tLXVpLWFycm93LXJpZ2h0IC5pY29uX19zdmcge1xuICBmaWxsOiAjMDA1ZTgyO1xufVxuXG4uc2xpY2stZG90cyB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDEuNXJlbSAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG4uc2xpY2stZG90cyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uc2xpY2stZG90cyBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JjZWNlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwLjc1cmVtO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgb3V0bGluZTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMC43NXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuc2xpY2stZG90cyBidXR0b24ge1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB3aWR0aDogMXJlbTtcbiAgfVxufVxuLnNsaWNrLWRvdHMgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBidXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc2Ljc0MjU3NDI1NzQsIDE4MS4yNTc0MjU3NDI2LCAxODEuMjU3NDI1NzQyNik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7XG59XG4uc2xpY2stZG90cyAuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MjVlNjY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcbn1cblxuLmludHJvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDA1ZTgyIDAlLCAjMDA1ZTgyIDYwJSwgI2I3MDA2MiAxMDAlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNWU4Mjtcbn1cblxuLmxpc3QtLXNlY3Rpb24taXRlcmF0b3IgYSB7XG4gIGNvbG9yOiAjYjcwMDYyO1xufVxuLmxpc3QtLXNlY3Rpb24taXRlcmF0b3IgYTpob3ZlciwgLmxpc3QtLXNlY3Rpb24taXRlcmF0b3IgYTpmb2N1cyB7XG4gIGNvbG9yOiAjMzYxMTYzO1xufVxuLmxpc3QtLXNlY3Rpb24taXRlcmF0b3IgLmxpc3RfX2l0ZW0tLXByZXYgYTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCAlM0NzdmclMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0uMDQ1JTIwNy44M0MuMDQlMjA3LjgyLjAzMiUyMDcuODE0LjAyOCUyMDcuODA1YS4zMy4zMyUyMDAlMjAwJTIwMSUyMDAtLjI2OGMuMDAzLS4wMS4wMS0uMDE2LjAxNi0uMDI2YS4zMDIuMzAyJTIwMCUyMDAlMjAxJTIwLjA2Mi0uMDhsLjAwNS0uMDFMOC40NS4wOWEuMzMzLjMzMyUyMDAlMjAxJTIwMSUyMC40NC41TDEuMjIlMjA3LjM0aDE0LjQ1YS4zMzQuMzM0JTIwMCUyMDAlMjAxJTIwMCUyMC42NjdIMS4yMThsNy42NyUyMDYuNzVhLjMzMi4zMzIlMjAwJTIwMCUyMDEtLjIyLjU4My4zMy4zMyUyMDAlMjAwJTIwMS0uMjItLjA4M0wuMTElMjA3LjkyMmMtLjAwMiUyMDAtLjAwMy0uMDA1LS4wMDUtLjAwN2EuMzQ4LjM0OCUyMDAlMjAwJTIwMS0uMDYyLS4wODNWNy44M3olMjIlMjBmaWxsJTNEJTIyJTIzYjcwMDYyJTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuLmxpc3QtLXNlY3Rpb24taXRlcmF0b3IgLmxpc3RfX2l0ZW0tLW5leHQgYTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCAlM0NzdmclMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xNS45NTQlMjA3LjgzYy4wMDUtLjAxLjAxMy0uMDE2LjAxNy0uMDI1YS4zMy4zMyUyMDAlMjAwJTIwMCUyMDAtLjI2OGMwLS4wMS0uMDEtLjAxNi0uMDEzLS4wMjZhLjMwMi4zMDIlMjAwJTIwMCUyMDAtLjA2Mi0uMDhsLS4wMDUtLjAxTDcuNTUyLjA5YS4zMzMuMzMzJTIwMCUyMDElMjAwLS40NC41bDcuNjclMjA2Ljc1SC4zMzJhLjMzMy4zMzMlMjAwJTIwMCUyMDAlMjAwJTIwLjY2N2gxNC40NWwtNy42NyUyMDYuNzVhLjMzMi4zMzIlMjAwJTIwMCUyMDAlMjAuMjIuNTgzLjMzLjMzJTIwMCUyMDAlMjAwJTIwLjIyLS4wODNsOC4zMzUtNy4zMzNjLjAwMiUyMDAlMjAuMDAzLS4wMDUuMDA1LS4wMDdhLjM0OC4zNDglMjAwJTIwMCUyMDAlMjAuMDYyLS4wODN6JTIyJTIwZmlsbCUzRCUyMiUyM2I3MDA2MiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cblxuLnNvY2lhbF9fbGluayAuaWNvbl9fc3ZnIHtcbiAgZmlsbDogIzAwNWU4Mjtcbn1cbi5zb2NpYWxfX2xpbms6aG92ZXIgLmljb25fX3N2ZyB7XG4gIGZpbGw6IHJnYig1OS4yNzE3MzkxMzA0LCA2Ny45NDU2NTIxNzM5LCA3My43MjgyNjA4Njk2KTtcbn1cblxuLnJzcy1wb3N0cy1saXN0IHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuNXJlbSAwIDJyZW07XG59XG4ucnNzLXBvc3RzLWxpc3QgdWwgbGkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY3Zjc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbn1cbi5yc3MtcG9zdHMtbGlzdCB1bCBsaSBhIHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnJzcy1wb3N0cy1saXN0IHVsIGxpIGEgc3Ryb25nIHtcbiAgICBmb250LXNpemU6IGNhbGMoMC45cmVtICsgMC4xMTI1ICogKDEwMHZ3IC0gNjAwcHgpIC8gMzYwKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTIyMHB4KSB7XG4gIC5yc3MtcG9zdHMtbGlzdCB1bCBsaSBhIHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiBjYWxjKDEuMDEyNXJlbSArIDAuMTEyNSAqICgxMDB2dyAtIDk2MHB4KSAvIDI2MCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjIwcHgpIHtcbiAgLnJzcy1wb3N0cy1saXN0IHVsIGxpIGEgc3Ryb25nIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG4ucnNzLXBvc3RzLWxpc3QgdWwgbGkgYSBzdHJvbmcge1xuICBsaW5lLWhlaWdodDogMS41NTU1NTU1NTY7XG59XG4ucnNzLXBvc3RzLWxpc3QgdWwgbGkgYSAucnNzX19kYXRlIHtcbiAgZm9udC1zaXplOiAwLjcxMTExMTExMTFyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucnNzLXBvc3RzLWxpc3QgdWwgbGkgYSAucnNzX19kYXRlIHtcbiAgICBmb250LXNpemU6IGNhbGMoMC43MTExMTExMTExcmVtICsgMC4wODg4ODg4ODg5ICogKDEwMHZ3IC0gNjAwcHgpIC8gMzYwKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTIyMHB4KSB7XG4gIC5yc3MtcG9zdHMtbGlzdCB1bCBsaSBhIC5yc3NfX2RhdGUge1xuICAgIGZvbnQtc2l6ZTogY2FsYygwLjhyZW0gKyAwLjA4ODg4ODg4ODkgKiAoMTAwdncgLSA5NjBweCkgLyAyNjApO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIyMHB4KSB7XG4gIC5yc3MtcG9zdHMtbGlzdCB1bCBsaSBhIC5yc3NfX2RhdGUge1xuICAgIGZvbnQtc2l6ZTogMC44ODg4ODg4ODg5cmVtO1xuICB9XG59XG4ucnNzLXBvc3RzLWxpc3QgdWwgbGkgYSAucnNzX19kYXRlIHtcbiAgbGluZS1oZWlnaHQ6IDEuNDA2MDc0MjQxO1xuICBjb2xvcjogIzUyNWU2NjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5ob21lIC5jYXJkX19oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjQ0MTYyNTk3NjZyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuaG9tZSAuY2FyZF9faGVhZGluZyB7XG4gICAgZm9udC1zaXplOiBjYWxjKDEuNDQxNjI1OTc2NnJlbSArIDAuMTgwMjAzMjQ3MSAqICgxMDB2dyAtIDYwMHB4KSAvIDM2MCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEyMjBweCkge1xuICAuaG9tZSAuY2FyZF9faGVhZGluZyB7XG4gICAgZm9udC1zaXplOiBjYWxjKDEuNjIxODI5MjIzNnJlbSArIDAuMTgwMjAzMjQ3MSAqICgxMDB2dyAtIDk2MHB4KSAvIDI2MCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjIwcHgpIHtcbiAgLmhvbWUgLmNhcmRfX2hlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMS44MDIwMzI0NzA3cmVtO1xuICB9XG59XG4uaG9tZSAuY2FyZF9faGVhZGluZyB7XG4gIGxpbmUtaGVpZ2h0OiAxLjM4NzM0NzM5Mjtcbn1cbi5ob21lIC5zZWN0aW9uLWZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MjVlNjY7XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIHBhZGRpbmc6IDNyZW0gMDtcbn1cbi5ob21lIC5zZWN0aW9uLWZvb3RlciAuY29udGVudC10eXBlX19jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiBjYWxjKDExODBweCAtIDJyZW0pO1xufVxuLmhvbWUgLnNlY3Rpb24tZm9vdGVyIC5jb250ZW50LXR5cGVfX2NvbnRhaW5lciAuY29udGFjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1OS4yNzE3MzkxMzA0LCA2Ny45NDU2NTIxNzM5LCA3My43MjgyNjA4Njk2KTtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDM3NXB4O1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbn1cbi5ob21lIC5zZWN0aW9uLWZvb3RlciAuY29udGVudC10eXBlX19jb250YWluZXIgLmNvbnRhY3QgLmxpc3RfX2xpbmsge1xuICBjb2xvcjogI2VkMjQ4Mjtcbn1cbi5ob21lIC5zZWN0aW9uLWZvb3RlciAuY29udGVudC10eXBlX19jb250YWluZXIgLmNvbnRhY3QgLmxpc3RfX2xpbms6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmhvbWUgLnNlY3Rpb24tZm9vdGVyIC5jb250ZW50LXR5cGVfX2NvbnRhaW5lciAuY29udGFjdCAuaWNvbl9fc3ZnIHtcbiAgZmlsbDogI2ZmZjtcbiAgb3BhY2l0eTogMC41O1xufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIGFwcGxpY2F0aW9uLXdpZGUgU2FzcyB2YXJpYWJsZXMuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL1xuLy8gRm9udCBmYW1pbGllc1xuLy9cblxuJGZvbnQtYnJhbmQ6ICdOdW5pdG8gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vXG4vLyBGb250IHdlaWdodHNcbi8vXG5cbiRmb250LXdlaWdodC1leHRyYS1saWdodDogMjAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtbm9ybWFsOiA0MDAgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtbWVkaXVtOiA1MDAgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA2MDAgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtYm9sZDogNzAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDogODAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJsYWNrOiA5MDAgIWRlZmF1bHQ7XG5cblxuXG5cblxuLy9cbi8vIEZvbnQgd2lkdGhzXG4vL1xuXG4kZm9udC13aWR0aC1ub3JtYWw6IDEwMCUgIWRlZmF1bHQ7XG4kZm9udC13aWR0aC1jb25kZW5zZWQ6IDc1JSAhZGVmYXVsdDtcblxuXG5cblxuXG4vL1xuLy8gVHlwZSBzY2FsZVxuLy9cblxuLy8gTW9kdWxhciBzY2FsZSBjb25maWdcbiRtb2R1bGFyc2NhbGU6IChcbiAgcmF0aW86IDEuMTI1LFxuICA2MDBweDogKFxuICAgIGJhc2U6IDAuOHJlbSxcbiAgKSxcbiAgOTYwcHg6IChcbiAgICBiYXNlOiAwLjlyZW1cbiAgKSxcbiAgMTIyMHB4OiAoXG4gICAgYmFzZTogMXJlbVxuICApXG4pO1xuXG5cbi8vIFR5cGUgc2V0dGluZ3MgbWFwIChodHRwOi8vd3d3Lm1vZHVsYXJzY2FsZS5jb20vPzEmcmVtJjEuMTI1KVxuJHR5cGUtc2V0dGluZ3M6IChcbiAgLTI6IChcbiAgICB0eXBlLXNjYWxlOiAtMiwgLy8gMC43OXJlbSAoKDEyLjY0cHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuNTgyMjc4NDgxIC8vIDEuMjVyZW0gLyAwLjc5cmVtXG4gICksXG4gIC0xOiAoXG4gICAgdHlwZS1zY2FsZTogLTEsIC8vIDAuODg5cmVtICgxNC4yMnB4KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjQwNjA3NDI0MSAvLyAxLjI1cmVtIC8gMC44ODlyZW1cbiAgKSxcbiAgMDogKFxuICAgIHR5cGUtc2NhbGU6IDAsIC8vIDFyZW0gKDE2cHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuNSAvLyAxLjVyZW0gLyAxcmVtXG4gICksXG4gIDE6IChcbiAgICB0eXBlLXNjYWxlOiAxLCAvLyAxLjEyNXJlbSAoMThweClcbiAgICBsaW5lLWhlaWdodDogMS41NTU1NTU1NTYgLy8gMS43NXJlbSAvIDEuMTI1cmVtXG4gICksXG4gIDI6IChcbiAgICB0eXBlLXNjYWxlOiAyLCAvLyAxLjI2NnJlbSAoMjAuMjVweClcbiAgICBsaW5lLWhlaWdodDogMS4zODIzMDY0NzcgLy8gMS43NXJlbSAvIDEuMjY2cmVtXG4gICksXG4gIDM6IChcbiAgICB0eXBlLXNjYWxlOiAzLCAvLyAxLjQyNHJlbSAoMjIuNzhweClcbiAgICBsaW5lLWhlaWdodDogMS40MDQ0OTQzODIgLy8gMnJlbSAvIDEuNDI0cmVtXG4gICksXG4gIDQ6IChcbiAgICB0eXBlLXNjYWxlOiA0LCAvLyAxLjYwMnJlbSAoMjUuNjNweClcbiAgICBsaW5lLWhlaWdodDogMS40MDQ0OTQzODIgLy8gMi4yNXJlbSAvIDEuNjAycmVtXG4gICksXG4gIDU6IChcbiAgICB0eXBlLXNjYWxlOiA1LCAvLyAxLjgwMnJlbSAoMjguODNweClcbiAgICBsaW5lLWhlaWdodDogMS4zODczNDczOTIgLy8gMi41cmVtIC8gMS44MDJyZW1cbiAgKSxcbiAgNjogKFxuICAgIHR5cGUtc2NhbGU6IDYsIC8vIDIuMDI3cmVtICgzMi40NHB4KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjM1NjY4NDc1NiAvLyAyLjc1cmVtIC8gMi4wMjdyZW1cbiAgKSxcbiAgNzogKFxuICAgIHR5cGUtc2NhbGU6IDcsIC8vIDIuMjgxcmVtICgzNi40OXB4KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjMxNTIxMjYyNiAvLyAzcmVtIC8gMi4yODFyZW1cbiAgKSxcbiAgODogKFxuICAgIHR5cGUtc2NhbGU6IDgsIC8vIDIuNTY2cmVtICg0MS4wNXB4KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjI2NjU2Mjc0NCAvLyAzLjI1cmVtIC8gMi41NjZyZW1cbiAgKSxcbiAgOTogKFxuICAgIHR5cGUtc2NhbGU6IDksIC8vIDIuODg3cmVtICg0Ni4xOHB4KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjIxMjMzMTE0IC8vIDMuNXJlbSAvIDIuODg3cmVtXG4gICksXG4gIDEwOiAoXG4gICAgdHlwZS1zY2FsZTogMTAsIC8vIDMuMjQ3cmVtICg1MS45NnB4KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1NDkxMjIyNyAvLyAzLjc1cmVtIC8gMy4yNDdyZW1cbiAgKSxcbiAgMTE6IChcbiAgICB0eXBlLXNjYWxlOiAxMSwgLy8gMy42NTNyZW0gKDU4LjQ1cHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuMTYzNDI3MzIgLy8gNC4yNXJlbSAvIDMuNjUzcmVtXG4gICksXG4gIDEyOiAoXG4gICAgdHlwZS1zY2FsZTogMTIsIC8vIDQuMTFyZW0gKDY1Ljc2cHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuMDk0ODkwNTExIC8vIDQuNXJlbSAvIDQuMTFyZW1cbiAgKSxcbiAgMTM6IChcbiAgICB0eXBlLXNjYWxlOiAxMywgLy8gNC42MjRyZW0gKDczLjk4cHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuMDgxMzE0ODc5IC8vIDVyZW0gLyA0LjYyNHJlbVxuICApLFxuICAxNDogKFxuICAgIHR5cGUtc2NhbGU6IDE0LCAvLyA1LjIwMnJlbSAoODMuMjNweClcbiAgICBsaW5lLWhlaWdodDogMS4wNTcyODU2NTkgLy8gNS41cmVtIC8gNS4yMDJyZW1cbiAgKSxcbiAgMTU6IChcbiAgICB0eXBlLXNjYWxlOiAxNSwgLy8gNS44NTJyZW0gKDkzLjYzcHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuMDY4MDEwOTM2IC8vIDYuMjVyZW0gLyA1Ljg1MnJlbVxuICApLFxuICAxNjogKFxuICAgIHR5cGUtc2NhbGU6IDE2LCAvLyA2LjU4M3JlbSAoMTA1LjMzcHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuMDI1MzY4MzczIC8vIDYuNzVyZW0gLyA2LjU4M3JlbVxuICApLFxuICAxNzogKFxuICAgIHR5cGUtc2NhbGU6IDE3LCAvLyA3LjQwNnJlbSAoKDExOC41MHB4KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjAxMjY5MjQxMiAvLyA3LjVyZW0gLyA3LjQwNnJlbVxuICApLFxuICAxODogKFxuICAgIHR5cGUtc2NhbGU6IDE4LCAvLyA4LjMzMnJlbSAoMTMzLjMxcHgpXG4gICAgbGluZS1oZWlnaHQ6IDEuMDIwMTYzMjI2IC8vIDguNXJlbSAvIDguMzMycmVtXG4gICksXG4gIDE5OiAoXG4gICAgdHlwZS1zY2FsZTogMTksIC8vIDkuMzczcmVtICgxNDkuOTdweClcbiAgICBsaW5lLWhlaWdodDogMS4wMTM1NDk1NTcgLy8gOS41cmVtIC8gOS4zNzNyZW1cbiAgKSxcbiAgMjA6IChcbiAgICB0eXBlLXNjYWxlOiAyMCwgLy8gMTAuNTQ1cmVtICgxNjguNzJweClcbiAgICBsaW5lLWhlaWdodDogMS4wNDMxNDg0MTIgLy8gMTFyZW0gLyAxMC41NDVyZW1cbiAgKVxuKTtcblxuXG5cblxuXG4vL1xuLy8gQ29sb3Vyc1xuLy9cblxuLy8gQnJhbmQgY29sb3Vyc1xuLy8gc3R5bGVsaW50LWRpc2FibGUgY29sb3Itbm8taGV4XG4kYWZyaWNhbi12aW9sZXQ6ICAgICAgICAjMzYxMTYzICFkZWZhdWx0O1xuJGFmcmljYW4tdmlvbGV0LWxpZ2h0OiAgIzZmMzA5MiAhZGVmYXVsdDtcbiRtdWxiZXJyeTogICAgICAgICAgICAgICNiNzAwNjIgIWRlZmF1bHQ7XG4kbXVsYmVycnktbGlnaHQ6ICAgICAgICAjZWQyNDgyICFkZWZhdWx0O1xuJG11bGJlcnJ5LWxpZ2h0LWFhOiAgICAgI2UxMWE4MSAhZGVmYXVsdDtcbiRtZXJjaWEtcmVkOiAgICAgICAgICAgICNhNzA1MzEgIWRlZmF1bHQ7XG4kbWVyY2lhLXJlZC1saWdodDogICAgICAjZWUyZjRmICFkZWZhdWx0O1xuJG1lcmNpYS1yZWQtbGlnaHQtYWE6ICAgI2Q1MmE0NyAhZGVmYXVsdDtcbiRicm9uemU6ICAgICAgICAgICAgICAgICNmMjZhMzggIWRlZmF1bHQ7XG4kYnJvbnplLWFhOiAgICAgICAgICAgICAjY2Y0YTJhICFkZWZhdWx0O1xuJGJyb256ZS1kYXJrOiAgICAgICAgICAgIzk4MzMxZCAhZGVmYXVsdDtcbiRnb2xkOiAgICAgICAgICAgICAgICAgICNlNzdlMWQgIWRlZmF1bHQ7XG4kZ29sZC1hYTogICAgICAgICAgICAgICAjYzc1MzAyICFkZWZhdWx0O1xuJGdvbGQtbGlnaHQ6ICAgICAgICAgICAgI2ZiYWExYiAhZGVmYXVsdDtcbiRtYXJpZ29sZDogICAgICAgICAgICAgICNiZDg1MDggIWRlZmF1bHQ7XG4kbWFyaWdvbGQtYWE6ICAgICAgICAgICAjOWM2ZTA3ICFkZWZhdWx0O1xuJG1hcmlnb2xkLWxpZ2h0OiAgICAgICAgI2U3YWQwMCAhZGVmYXVsdDtcbiRjYW5hcnk6ICAgICAgICAgICAgICAgICNmY2Q4MzkgIWRlZmF1bHQ7XG4kY2VkYXI6ICAgICAgICAgICAgICAgICAjYjFiZTI3ICFkZWZhdWx0O1xuJGNlZGFyLWFhOiAgICAgICAgICAgICAgIzZmN2UwZCAhZGVmYXVsdDtcbiRjZWRhci1saWdodDogICAgICAgICAgICNlMWNhMDAgIWRlZmF1bHQ7XG4kb2x5bXBpYy1ncmVlbjogICAgICAgICAjMDA4NDY2ICFkZWZhdWx0O1xuJG9seW1waWMtZ3JlZW4tYWE6ICAgICAgIzEyODg1MSAhZGVmYXVsdDtcbiRvbHltcGljLWdyZWVuLWRhcms6ICAgICMwMDZlNTUgIWRlZmF1bHQ7XG4kbmVwdHVuZTogICAgICAgICAgICAgICAjMDA2MTY3ICFkZWZhdWx0O1xuJG5lcHR1bmUtbGlnaHQ6ICAgICAgICAgIzc4YjJiYiAhZGVmYXVsdDtcbiRuZXB0dW5lLWxpZ2h0LWFhOiAgICAgICMyNjgyOGUgIWRlZmF1bHQ7XG4kcGVhY29jazogICAgICAgICAgICAgICAjMDBhYWFkICFkZWZhdWx0O1xuJHBlYWNvY2stYWE6ICAgICAgICAgICAgIzJkODI4OSAhZGVmYXVsdDtcbiRwZWFjb2NrLWxpZ2h0OiAgICAgICAgICM1NGM2ZDUgIWRlZmF1bHQ7XG4kcGV0cm9sLWJsdWU6ICAgICAgICAgICAjMDA1ZTgyICFkZWZhdWx0O1xuJHBldHJvbC1ibHVlLWxpZ2h0OiAgICAgIzAwOWJjOSAhZGVmYXVsdDtcbiRwZXRyb2wtYmx1ZS1saWdodC1hYTogICMwMDdkYTMgIWRlZmF1bHQ7XG4kYXNwaGFsdDogICAgICAgICAgICAgICAjNTI1ZTY2ICFkZWZhdWx0O1xuJHNpbHZlcjogICAgICAgICAgICAgICAgIzhjOGM4ZCAhZGVmYXVsdDtcbiRzaWx2ZXItYWE6ICAgICAgICAgICAgICM3Njc2NzcgIWRlZmF1bHQ7XG4kZm91bnRhaW4tZ3JleTogICAgICAgICAjY2JjZWNlICFkZWZhdWx0O1xuJHBlYmJsZTogICAgICAgICAgICAgICAgIzcxNWY1NCAhZGVmYXVsdDtcbiRkb3ZlLWdyZXk6ICAgICAgICAgICAgICNhODliOTEgIWRlZmF1bHQ7XG4kcGVhcmwtd2hpdGU6ICAgICAgICAgICAjZDJjOWMxICFkZWZhdWx0O1xuJGJsYWNrOiAgICAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbiRkYXJrLWdyZXk6ICAgICAgICAgICAgICMxYjFiMWIgIWRlZmF1bHQ7XG4kbGlnaHQtZ3JleTogICAgICAgICAgICAjZjZmN2Y3ICFkZWZhdWx0O1xuJHdoaXRlOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiR0ZXh0LWNvbG9yOiAgICAgICAgICAgICRhc3BoYWx0ICFkZWZhdWx0O1xuJHRleHQtY29sb3ItbGlnaHQ6ICAgICAgbGlnaHRlbigkdGV4dC1jb2xvciwgNSUpICFkZWZhdWx0O1xuJHRleHQtY29sb3ItbGlnaHRlc3Q6ICAgbGlnaHRlbigkdGV4dC1jb2xvciwgMTAlKSAhZGVmYXVsdDtcblxuJHRyYW5zLWJsYWNrLTEwOiAgICAgICAgcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vIFByb2plY3QgY29sb3Vyc1xuLy8gJHZhcmlhYmxlLW5hbWU6ICMwMDA7XG4vLyBzdHlsZWxpbnQtZW5hYmxlIGNvbG9yLW5vLWhleFxuXG5cblxuXG5cbi8vXG4vLyBDb250YWluZXIncyBtYXhpbXVtIHdpZHRoXG4vL1xuJG1heC13aWR0aDogMTE4MHB4ICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vXG4vLyBHdXR0ZXJzXG4vL1xuJGd1dHRlcjogICAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRndXR0ZXItaGFsZjogICAgIG1hdGguZGl2KCRndXR0ZXIsIDIpICFkZWZhdWx0O1xuJGd1dHRlci10aGlyZDogICAgbWF0aC5kaXYoJGd1dHRlciwgMykgIWRlZmF1bHQ7XG4kZ3V0dGVyLXF1YXJ0ZXI6ICBtYXRoLmRpdigkZ3V0dGVyLCA0KSAhZGVmYXVsdDtcbiRndXR0ZXItc2l4dGg6ICAgIG1hdGguZGl2KCRndXR0ZXIsIDYpICFkZWZhdWx0O1xuXG5cblxuXG5cbi8vXG4vLyBTcGFjaW5nXG4vL1xuJHNwYWNlOiAgICAgICAgICAgICAgICAgICAgIDEuNXJlbSAhZGVmYXVsdDsgLy8gMjRweFxuJHNwYWNlLXR3ZWx0aDogICAgICAgICAgICAgIG1hdGguZGl2KCRzcGFjZSwgMTIpICFkZWZhdWx0OyAvLyAycHhcbiRzcGFjZS1laWdodGg6ICAgICAgICAgICAgICBtYXRoLmRpdigkc3BhY2UsIDgpICFkZWZhdWx0OyAvLyAzcHhcbiRzcGFjZS1zaXh0aDogICAgICAgICAgICAgICBtYXRoLmRpdigkc3BhY2UsIDYpICFkZWZhdWx0OyAvLyA0cHhcbiRzcGFjZS1xdWFydGVyOiAgICAgICAgICAgICBtYXRoLmRpdigkc3BhY2UsIDQpICFkZWZhdWx0OyAvLyA2cHhcbiRzcGFjZS10aGlyZDogICAgICAgICAgICAgICBtYXRoLmRpdigkc3BhY2UsIDMpICFkZWZhdWx0OyAvLyA4cHhcbiRzcGFjZS1oYWxmOiAgICAgICAgICAgICAgICBtYXRoLmRpdigkc3BhY2UsIDIpICFkZWZhdWx0OyAvLyAxMnB4XG4kc3BhY2UtdHdvLXRoaXJkczogICAgICAgICAgJHNwYWNlLXRoaXJkICogMiAhZGVmYXVsdDsgLy8gMTZweFxuJHNwYWNlLXRocmVlLXF1YXJ0ZXJzOiAgICAgICRzcGFjZS1xdWFydGVyICogMyAhZGVmYXVsdDsgLy8gMThweFxuJHNwYWNlLWZpdmUtc2l4dGhzOiAgICAgICAgICRzcGFjZS1zaXh0aCAqIDUgIWRlZmF1bHQ7IC8vIDIwcHhcbiRzcGFjZS1hbmQtZWlnaHRoOiAgICAgICAgICAkc3BhY2UgKyAkc3BhY2UtZWlnaHRoICFkZWZhdWx0OyAvLyAyN3B4XG4kc3BhY2UtYW5kLXNpeHRoOiAgICAgICAgICAgJHNwYWNlICsgJHNwYWNlLXNpeHRoICFkZWZhdWx0OyAvLyAyOHB4XG4kc3BhY2UtYW5kLXF1YXJ0ZXI6ICAgICAgICAgJHNwYWNlICsgJHNwYWNlLXF1YXJ0ZXIgIWRlZmF1bHQ7IC8vIDMwcHhcbiRzcGFjZS1hbmQtdGhpcmQ6ICAgICAgICAgICAkc3BhY2UgKyAkc3BhY2UtdGhpcmQgIWRlZmF1bHQ7IC8vIDMycHhcbiRzcGFjZS1hbmQtaGFsZjogICAgICAgICAgICAkc3BhY2UgKyAkc3BhY2UtaGFsZiAhZGVmYXVsdDsgLy8gMzZweFxuJHNwYWNlLWFuZC10d28tdGhpcmRzOiAgICAgICRzcGFjZSArICRzcGFjZS10d28tdGhpcmRzICFkZWZhdWx0OyAvLyA0MHB4XG4kc3BhY2UtYW5kLXRocmVlLXF1YXJ0ZXJzOiAgJHNwYWNlICsgJHNwYWNlLXRocmVlLXF1YXJ0ZXJzICFkZWZhdWx0OyAvLyA0MnB4XG4kc3BhY2UtZG91YmxlOiAgICAgICAgICAgICAgJHNwYWNlICogMiAhZGVmYXVsdDsgLy8gNDhweFxuJHNwYWNlLXRyZWJsZTogICAgICAgICAgICAgICRzcGFjZSAqIDMgIWRlZmF1bHQ7IC8vIDcycHhcbiRzcGFjZS1xdWFkcnVwbGU6ICAgICAgICAgICAkc3BhY2UgKiA0ICFkZWZhdWx0OyAvLyA5NnB4XG5cblxuXG5cblxuLy9cbi8vIE1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzXG4vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICd4cyc6IDQwMHB4LFxuICAneHMtdHdlYWsnOiA1MDBweCxcbiAgJ3MnOiA2MDBweCxcbiAgJ3MtdHdlYWsnOiA2ODBweCxcbiAgJ20nOiA3NjBweCxcbiAgJ20tdHdlYWsnOiA4NjBweCxcbiAgJ2wnOiA5NjBweCxcbiAgJ3hsJzogMTAyMHB4LFxuICAnbWF4JzogJG1heC13aWR0aCxcbiAgJ3dpZGUnOiAxMjIwcHgsXG4gICd1bHRyYS13aWRlJzogMTQ0MHB4LFxuICAnc3VwZXItd2lkZSc6IDE2MDBweFxuKTtcbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIHN0eWxlcyByZWxhdGVkIHRvIHRoZSBoZWFkZXIuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL1xuLy8gSGVhZGVyXG4vL1xuLmhlYWRlciB7XG4gICYuc2l0ZS1tZW51LWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAkcGV0cm9sLWJsdWUgMCUsICRwZXRyb2wtYmx1ZSA2MCUsICRtdWxiZXJyeSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGV0cm9sLWJsdWU7XG4gIH1cbn1cblxuXG5cblxuXG4vL1xuLy8gU2l0ZSBoZWFkZXJcbi8vXG4uc2l0ZS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICRwZXRyb2wtYmx1ZSAwJSwgJHBldHJvbC1ibHVlIDYwJSwgJG11bGJlcnJ5IDEwMCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGV0cm9sLWJsdWU7XG59XG5cblxuXG5cblxuLy9cbi8vIFNlY29uZGFyeSBzaXRlIGhlYWRlciBuYXZpZ2F0aW9uXG4vL1xuLnNpdGUtaGVhZGVyX19uYXYtLXNlY29uZGFyeSB7XG4gIC5saXN0X19pdGVtIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgn4omlbScpIHtcbiAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIGxheW91dCBzdHlsZXMgcmVsYXRlZCB0byB0aGUgc2lkZWJhci5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLnNpZGViYXJfX25hdi0tcHJpbWFyeSAubGlzdF9faXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGFzcGhhbHQsIDEwJSk7XG59XG5cbi5zaWRlYmFyIHtcbiAgLmNvbnRlbnQtdHlwZS0tY29udGFjdCB7XG4gICAgLmNvbnRlbnQtdHlwZV9fY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYXNwaGFsdCwgMTAlKTtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG5cbiAgICAgIC5jb250YWN0X19oZWFkaW5nLFxuICAgICAgLmNvbnRhY3RfX3RleHQge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICAubGlzdF9fbGluayB7XG4gICAgICAgIGNvbG9yOiAkbXVsYmVycnktbGlnaHQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmljb25fX3N2ZyB7XG4gICAgICAgIGZpbGw6ICR3aGl0ZTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoaXMgZmlsZSBjb250YWlucyBhbGwgc3R5bGVzIHJlbGF0ZWQgdG8gdGhlIGJyZWFkY3J1bWIgY29tcG9uZW50LiBEZWxldGUgYWxsXG4vLyBpZiBkZWZhdWx0IHN0eWxlcyBhcmUgZ29pbmcgdG8gYmUgdXNlZCBmb3IgdGhpcyBwcm9qZWN0LlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy9cbi8vIE91dGVyIGNvbnRhaW5lciBjb2xvdXIgb3ZlcnJpZGVcbi8vXG4uYnJlYWRjcnVtYnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG59XG5cblxuXG5cblxuLy9cbi8vIEluZGl2aWR1YWwgYnJlYWRjcnVtYiBpdGVtIGNvbG91ciBvdmVycmlkZXNcbi8vXG4uYnJlYWRjcnVtYnNfX2l0ZW0ge1xuICAvLyBSaWdodCBjaGV2cm9uXG4gICY6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogZW5jb2RlLXN2ZygnPHN2ZyB2aWV3Qm94PVwiMCAwIDE0IDI0XCIgeG1sbnM9XCJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMi43NDQgMTJMLjE2OC44NzRBLjUuNSAwIDEgMSAuODMuMTI2bDEzIDExLjVhLjUuNSAwIDAgMSAwIC43NDhsLTEzIDExLjVhLjUuNSAwIDEgMS0uNjYyLS43NDhMMTIuNzQ0IDEyelwiIGZpbGw9XCIjeyR3aGl0ZX1cIiAvPjwvc3ZnPicpO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuXG5cbiAgLy8gTGlua3MgKGNhbid0IHVzZSBCRU0gYmVjYXVzZSBUNCBhdXRvbWF0aWNhbGx5IHByb2R1Y2VzIHRoZSBsaW5rIGVsZW1lbnRzKVxuICBhIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIG9wYWNpdHk6IDAuNjtcblxuXG4gICAgLy8gQm90dG9tIGJvcmRlciAoaGlkZGVuIGluaXRpYWxseSlcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9XG5cblxuICAvLyBGaXJzdCBicmVhZGNydW1iIGl0ZW0gKGhvdXNlIGljb24pXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogZW5jb2RlLXN2ZygnPHN2ZyB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDEwIDEwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMCAzLjY4djYuMzIyaDMuODg5di0zLjg5SDYuMTF2My44OUgxMFYzLjY4TDUgMHpcIiBmaWxsPVwiI3skd2hpdGV9XCIvPjwvc3ZnPicpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gTGVmdCBjaGV2cm9uIG9uIG1vYmlsZVxuICAmOm50aC1sYXN0LWNoaWxkKDIpIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBlbmNvZGUtc3ZnKCc8c3ZnIHZpZXdCb3g9XCIwIDAgMTQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xLjI1NCAxMkwxMy44MyAyMy4xMjZhLjUuNSAwIDEgMS0uNjYyLjc0OGwtMTMtMTEuNWEuNS41IDAgMCAxIDAtLjc0OGwxMy0xMS41YS41LjUgMCAxIDEgLjY2My43NDhMMS4yNTUgMTJ6XCIgZmlsbD1cIiN7JHdoaXRlfVwiIC8+PC9zdmc+Jyk7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIHN0eWxlcyByZWxhdGVkIHRvIHRoZSBjYWxsb3V0IGNvbXBvbmVudC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmNhbGxvdXQtLXN1YnRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuICBib3JkZXI6IG5vbmUgMDtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIHN0eWxlcyByZWxhdGVkIHRvIHRoZSBjYXJkIGNvbXBvbmVudC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmNhcmRfX2xpbmsge1xuICAuY2FyZF9fY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRhc3BoYWx0LCAxMCUpO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIC5jYXJkX19jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtdWxiZXJyeTtcbiAgICB9XG4gIH1cbn1cblxuLmNhcmQtLWNvbnRhY3QgLmNhcmRfX3RleHQge1xuICBib3JkZXItYm90dG9tOiBub25lIDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uY2FyZC0tc3VidGxlIHtcbiAgLmNhcmRfX2xpbmsge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAuY2FyZF9faGVhZGluZyB7XG4gICAgICAgIGNvbG9yOiAkcGV0cm9sLWJsdWU7XG4gICAgICB9XG5cbiAgICAgIC5pY29uLS11aS1hcnJvdy1yaWdodCAuaWNvbl9fc3ZnIHtcbiAgICAgICAgZmlsbDogJHBldHJvbC1ibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGFsbCBzdHlsZXMgcmVsYXRlZCB0byB0aGUgY2FsbG91dCBjb21wb25lbnQuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL1xuLy8gQ2Fyb3VzZWwgcGFnaW5hdGlvblxuLy9cbi5zbGljay1kb3RzIHtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogJHNwYWNlIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcblxuXG4gIC8vIFBhZ2luYXRpb24gYnV0dG9uIHdyYXBwZXJcbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG5cbiAgLy8gUGFnaW5hdGlvbiBidXR0b25cbiAgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm91bnRhaW4tZ3JleTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRzcGFjZS1oYWxmO1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2UtdGhpcmQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2UtdGhpcmQ7XG4gICAgb3V0bGluZTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogJHNwYWNlLWhhbGY7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgn4omlbCcpIHtcbiAgICAgIGhlaWdodDogJHNwYWNlLXR3by10aGlyZHM7XG4gICAgICB3aWR0aDogJHNwYWNlLXR3by10aGlyZHM7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZm91bnRhaW4tZ3JleSwgMTAlKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7XG4gICAgfVxuICB9XG5cblxuICAvLyBJbmNyZWFzZSBvcGFjaXR5IG9mIHBhZ2luYXRpb24gaXRlbSB3aGVuIGFjdGl2ZVxuICAuc2xpY2stYWN0aXZlIHtcbiAgICBidXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFzcGhhbHQ7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIHN0eWxlcyByZWxhdGVkIHRvIHRoZSBpbnRybyBjb21wb25lbnQuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5pbnRybyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgJHBldHJvbC1ibHVlIDAlLCAkcGV0cm9sLWJsdWUgNjAlLCAkbXVsYmVycnkgMTAwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwZXRyb2wtYmx1ZTtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIHN0eWxlcyByZWxhdGVkIHRvIHRoZSBsaXN0IGNvbXBvbmVudC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vXG4vLyBTZWN0aW9uIGl0ZXJhdG9yXG4vL1xuLmxpc3QtLXNlY3Rpb24taXRlcmF0b3Ige1xuICAvLyBDaGFuZ2UgbGluayBjb2xvdXJcbiAgYSB7XG4gICAgY29sb3I6ICRtdWxiZXJyeTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFmcmljYW4tdmlvbGV0O1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gUHJldmlvdXMgbGluayBhcnJvdyBpY29uIGNvbG91clxuICAubGlzdF9faXRlbS0tcHJldiB7XG4gICAgYSB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBlbmNvZGUtc3ZnKCc8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0uMDQ1IDcuODNDLjA0IDcuODIuMDMyIDcuODE0LjAyOCA3LjgwNWEuMzMuMzMgMCAwIDEgMC0uMjY4Yy4wMDMtLjAxLjAxLS4wMTYuMDE2LS4wMjZhLjMwMi4zMDIgMCAwIDEgLjA2Mi0uMDhsLjAwNS0uMDFMOC40NS4wOWEuMzMzLjMzMyAwIDEgMSAuNDQuNUwxLjIyIDcuMzRoMTQuNDVhLjMzNC4zMzQgMCAwIDEgMCAuNjY3SDEuMjE4bDcuNjcgNi43NWEuMzMyLjMzMiAwIDAgMS0uMjIuNTgzLjMzLjMzIDAgMCAxLS4yMi0uMDgzTC4xMSA3LjkyMmMtLjAwMiAwLS4wMDMtLjAwNS0uMDA1LS4wMDdhLjM0OC4zNDggMCAwIDEtLjA2Mi0uMDgzVjcuODN6XCIgZmlsbD1cIiN7JG11bGJlcnJ5fVwiIC8+PC9zdmc+Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvLyBOZXh0IGxpbmsgYXJyb3cgaWNvbiBjb2xvdXJcbiAgLmxpc3RfX2l0ZW0tLW5leHQge1xuICAgIGEge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogZW5jb2RlLXN2ZygnPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTUuOTU0IDcuODNjLjAwNS0uMDEuMDEzLS4wMTYuMDE3LS4wMjVhLjMzLjMzIDAgMCAwIDAtLjI2OGMwLS4wMS0uMDEtLjAxNi0uMDEzLS4wMjZhLjMwMi4zMDIgMCAwIDAtLjA2Mi0uMDhsLS4wMDUtLjAxTDcuNTUyLjA5YS4zMzMuMzMzIDAgMSAwLS40NC41bDcuNjcgNi43NUguMzMyYS4zMzMuMzMzIDAgMCAwIDAgLjY2N2gxNC40NWwtNy42NyA2Ljc1YS4zMzIuMzMyIDAgMCAwIC4yMi41ODMuMzMuMzMgMCAwIDAgLjIyLS4wODNsOC4zMzUtNy4zMzNjLjAwMiAwIC4wMDMtLjAwNS4wMDUtLjAwN2EuMzQ4LjM0OCAwIDAgMCAuMDYyLS4wODN6XCIgZmlsbD1cIiN7JG11bGJlcnJ5fVwiIC8+PC9zdmc+Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGFsbCBzdHlsZXMgcmVsYXRlZCB0byB0aGUgc29jaWFsIGNvbXBvbmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uc29jaWFsX19saW5rIHtcbiAgLmljb25fX3N2ZyB7XG4gICAgZmlsbDogJHBldHJvbC1ibHVlO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLmljb25fX3N2ZyB7XG4gICAgICBmaWxsOiBkYXJrZW4oJGFzcGhhbHQsIDEwJSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIHN0eWxlcyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgYmxvZyBmZWVkIHBhZ2UuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucnNzLXBvc3RzLWxpc3Qge1xuICB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMCAycmVtO1xuXG4gICAgbGkgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuXG4gICAgICBzdHJvbmcge1xuICAgICAgICBAaW5jbHVkZSB0eXBlLXNldHRpbmcoMSk7XG4gICAgICB9XG5cbiAgICAgIC5yc3NfX2RhdGUge1xuICAgICAgICBAaW5jbHVkZSB0eXBlLXNldHRpbmcoLTEpO1xuXG4gICAgICAgIGNvbG9yOiAkYXNwaGFsdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBHZW5lcmF0ZSBjYWxjKCkgZnVuY3Rpb25cbi8vIGJhc2VkIG9uIE1pa2UgUmlldGhtdWxsZXIncyBQcmVjaXNlIGNvbnRyb2wgb3ZlciByZXNwb25zaXZlIHR5cG9ncmFwaHlcbi8vIGh0dHA6Ly9tYWRlYnltaWtlLmNvbS5hdS93cml0aW5nL3ByZWNpc2UtY29udHJvbC1yZXNwb25zaXZlLXR5cG9ncmFwaHkvXG5AZnVuY3Rpb24gbXMtZmx1aWQoJHZhbDE6IDFlbSwgJHZhbDI6IDFlbSwgJGJyZWFrMTogMCwgJGJyZWFrMjogMCkge1xuICAkZGlmZjogbXMtdW5pdGxlc3MoJHZhbDIpIC0gbXMtdW5pdGxlc3MoJHZhbDEpO1xuXG4gIC8vIHYxICsgKHYyIC0gdjEpICogKCAoMTAwdncgLSBiMSkgLyBiMiAtIGIxIClcbiAgQHJldHVybiBjYWxjKCAjeyR2YWwxfSArICN7bXMtdW5pdGxlc3MoJHZhbDIpIC0gbXMtdW5pdGxlc3MoJHZhbDEpfSAqICggKCAxMDB2dyAtICN7JGJyZWFrMX0pIC8gI3ttcy11bml0bGVzcygkYnJlYWsyKSAtIG1zLXVuaXRsZXNzKCRicmVhazEpfSApICk7XG59XG5cbi8vIE1haW4gcmVzcG9uc2l2ZSBtaXhpblxuQG1peGluIG1zLXJlc3BvbmQoJHByb3AsICR2YWwsICRtYXA6ICRtb2R1bGFyc2NhbGUsICRtcy1pbXBvcnRhbnQ6IGZhbHNlKSB7XG4gICRiYXNlOiAkbXMtYmFzZTtcbiAgJHJhdGlvOiAkbXMtcmF0aW87XG5cbiAgJGZpcnN0LXdyaXRlOiB0cnVlO1xuICAkbGFzdC1icmVhazogbnVsbDtcblxuICAkaW1wb3J0YW50OiAnJztcblxuICBAaWYgJG1zLWltcG9ydGFudCA9PSB0cnVlIHtcbiAgICAkaW1wb3J0YW50OiAnICFpbXBvcnRhbnQnO1xuICB9XG5cbiAgLy8gbG9vcCB0aHJvdWdoIGFsbCBzZXR0aW5ncyB3aXRoIGEgYnJlYWtwb2ludCB0eXBlIHZhbHVlXG4gIEBlYWNoICR2LCAkcyBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gbnVtYmVyIHtcbiAgICAgIEBpZiB1bml0KCR2KSAhPSAnJyB7XG5cbiAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBmaXJzdCB2YWx1ZSB3aXRob3V0IGEgbWVkaWEgcXVlcnkuXG4gICAgICAgIEBpZiAkZmlyc3Qtd3JpdGUge1xuICAgICAgICAgICN7JHByb3B9OiB1bnF1b3RlKFwiI3ttcy1mdW5jdGlvbigkdmFsLCAkdGhyZWFkOiAkdiwgJHNldHRpbmdzOiAkbWFwKX0jeyRpbXBvcnRhbnR9XCIpO1xuXG4gICAgICAgICAgLy8gTm90IHRoZSBmaXJzdCB3cml0ZSBhbnltb3JlLCByZXNldCB0byBmYWxzZSB0byBtb3ZlIG9uLlxuICAgICAgICAgICRmaXJzdC13cml0ZTogZmFsc2U7XG4gICAgICAgICAgJGxhc3QtYnJlYWs6ICR2O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV3JpdGUgaW50ZXJtZWRpYXRlIGJyZWFrcG9pbnRzLlxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRsYXN0LWJyZWFrKSBhbmQgKG1heC13aWR0aDogJHYpIHtcbiAgICAgICAgICAgICR2YWwxOiBtcy1mdW5jdGlvbigkdmFsLCAkdGhyZWFkOiAkbGFzdC1icmVhaywgJHNldHRpbmdzOiAkbWFwKTtcbiAgICAgICAgICAgICR2YWwyOiBtcy1mdW5jdGlvbigkdmFsLCAkdGhyZWFkOiAkdiwgJHNldHRpbmdzOiAkbWFwKTtcbiAgICAgICAgICAgICN7JHByb3B9OiB1bnF1b3RlKFwiI3ttcy1mbHVpZCgkdmFsMSwkdmFsMiwkbGFzdC1icmVhaywkdil9I3skaW1wb3J0YW50fVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJGxhc3QtYnJlYWs6ICR2O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV3JpdGUgdGhlIGxhc3QgYnJlYWtwb2ludC5cbiAgQGlmICRsYXN0LWJyZWFrIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGxhc3QtYnJlYWspIHtcbiAgICAgICN7JHByb3B9OiB1bnF1b3RlKFwiI3ttcy1mdW5jdGlvbigkdmFsLCAkdGhyZWFkOiAkbGFzdC1icmVhaywgJHNldHRpbmdzOiAkbWFwKX0jeyRpbXBvcnRhbnR9XCIpO1xuICAgIH1cbiAgfVxufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGZpbGUgY29udGFpbnMgYWxsIGFwcGxpY2F0aW9uLXdpZGUgU2FzcyBtaXhpbnMuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL1xuLy8gQ2xlYXIgaW5uZXIgZmxvYXRzXG4vLyBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuXG5cblxuXG5cbi8vXG4vLyBUeXBlIHNldHRpbmcgKGZvbnQtc2l6ZSBhbmQgbGluZSBoZWlnaHQgZnJvbSBzY2FsZSlcbi8vIEBpbmNsdWRlIHR5cGUtc2V0dGluZygyKTtcbi8vXG5AbWl4aW4gdHlwZS1zZXR0aW5nKCRsZXZlbCkge1xuICBAaW5jbHVkZSBtcy1yZXNwb25kKGZvbnQtc2l6ZSwgbWFwLWdldChtYXAtZ2V0KCR0eXBlLXNldHRpbmdzLCAkbGV2ZWwpLCB0eXBlLXNjYWxlKSk7XG5cbiAgbGluZS1oZWlnaHQ6IG1hcC1nZXQobWFwLWdldCgkdHlwZS1zZXR0aW5ncywgJGxldmVsKSwgbGluZS1oZWlnaHQpO1xufVxuXG5cblxuXG5cbi8vXG4vLyBUeXBlIHNjYWxlIChmb250IHNpemUgZnJvbSBzY2FsZSlcbi8vIEBpbmNsdWRlIHR5cGUtc2NhbGUoMik7XG4vL1xuQG1peGluIHR5cGUtc2NhbGUoJGxldmVsKSB7XG4gIEBpbmNsdWRlIG1zLXJlc3BvbmQoZm9udC1zaXplLCBtYXAtZ2V0KG1hcC1nZXQoJHR5cGUtc2V0dGluZ3MsICRsZXZlbCksIHR5cGUtc2NhbGUpKTtcbn1cblxuXG5cblxuXG4vL1xuLy8gQ29sdW1uXG4vL1xuLy8gRGVmYXVsdCBiZWhhdmlvdXIgcHJlc3VtZXMgYSAxMiBjb2x1bW4gZ3JpZDpcbi8vIGBAaW5jbHVkZSBjb2woMyk7YCBvdXRwdXRzIHRvIGB3aWR0aDogMjUlO2AgKCgzIC8gMTIpICogMTAwKVxuLy9cbi8vIE92ZXJyaWRlIDEyIGNvbHVtbiBncmlkIGJ5IGVudGVyaW5nIHNlY29uZCB2YWx1ZTpcbi8vIGBAaW5jbHVkZSBjb2woMiwgMTApO2Agb3V0cHV0cyB0byBgd2lkdGg6IDIwJTtgICgoMiAvIDEwKSAqIDEwMClcbi8vXG5AbWl4aW4gY29sKCRjb2x1bW4sICRjb2x1bW5zOiAnJykge1xuICBAaWYgJGNvbHVtbnMgIT0gJycge1xuICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoJGNvbHVtbiwgJGNvbHVtbnMpKTtcbiAgfSBAZWxzZSB7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigkY29sdW1uLCAxMikpO1xuICB9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIHN0eWxlcyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgaG9tZSBwYWdlLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmhvbWUge1xuICAuY2FyZF9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgdHlwZS1zZXR0aW5nKDUpO1xuICB9XG5cbiAgLnNlY3Rpb24tZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXNwaGFsdDtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIHBhZGRpbmc6IDNyZW0gMDtcblxuICAgIC5jb250ZW50LXR5cGVfX2NvbnRhaW5lciB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1heC13aWR0aDogY2FsYygxMTgwcHggLSAycmVtKTtcblxuICAgICAgLmNvbnRhY3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGFzcGhhbHQsIDEwJSk7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDM3NXB4O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcblxuICAgICAgICAubGlzdF9fbGluayB7XG4gICAgICAgICAgY29sb3I6ICRtdWxiZXJyeS1saWdodDtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaWNvbl9fc3ZnIHtcbiAgICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiJdfQ== */
