search-bar {
  --font-size: 1.1em;
  --border-radius: 30px;
  display: grid;
  grid-template-columns: 60px 1fr;
  align-items: center;
  width: 100%;
  max-width: 500px;
  font-size: 1.4em;
  z-index: 3;
}
search-bar::after {
  --size: 12px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, #969695);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
  left: auto;
  right: var(--gap);
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
search-bar.loading::after {
  opacity: 1;
  animation-play-state: running;
}
search-bar:not(.showing-suggestions) ul.results {
  display: none;
}
search-bar.showing-suggestions input[type=search] {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
search-bar svg {
  color: white;
  grid-column: 1;
  grid-row: 1;
  position: relative;
  z-index: 1;
  background-color: #df3035;
  height: auto;
  width: 100%;
  height: 46px;
  padding: 10px;
  border-top-left-radius: var(--border-radius);
  border-bottom-left-radius: var(--border-radius);
  margin-left: 4px;
}
search-bar input[type=search] {
  --font-colour: #6a6a6a;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  --border-radius: 30px;
  background-color: white;
  border: none;
  grid-column: 1/-1;
  grid-row: 1;
  padding-left: calc(var(--font-size) + calc(var(--gap) * 3) + 8px);
  color: #6a6a6a;
}
search-bar input[type=search]::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-bar input[type=search]::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-bar input[type=search]:focus {
  outline-color: #131f6b;
}
search-bar input[type=search]:focus::-moz-placeholder {
  color: transparent;
}
search-bar input[type=search]:focus::placeholder {
  color: transparent;
}
search-bar input[type=search].autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
search-bar input[type=search]::-moz-placeholder {
  font-size: 0.72em;
  color: #131f6b;
}
search-bar input[type=search]::placeholder {
  font-size: 0.72em;
  color: #131f6b;
}
search-bar ul.results {
  width: 100%;
  position: absolute;
  top: calc(100% - 1px);
  right: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border-top: 1px dashed #dcdcdc;
  border-bottom-left-radius: var(--border-radius, 6px);
  border-bottom-right-radius: var(--border-radius, 6px);
  max-height: 305px;
  padding: 0 var(--gap);
  background-color: white;
  box-shadow: 0px 6px 16px -6px #6a6a6a;
}
search-bar ul.results li {
  background-color: white;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  cursor: pointer;
  position: relative;
}
search-bar ul.results li + li {
  border-top: 1px solid #f4f4f4;
}
search-bar ul.results li mark {
  background-color: initial;
  color: inherit;
  border-radius: initial;
  padding: initial;
  transition: initial;
  color: #0095ff;
}
search-bar ul.results li a {
  text-decoration: none;
  padding: calc(var(--gap) * 0.5) var(--gap);
  display: block;
  text-align: left;
  font-size: 0.75em;
  line-height: 1.2;
}
search-bar ul.results li a:focus {
  outline: none;
}
search-bar ul.results li.focus a {
  background-color: #10124d;
}
search-bar ul.results li.focus a .type, search-bar ul.results li.focus a {
  color: white;
}
search-bar ul.results li .type {
  display: block;
  color: #969695;
  font-size: 0.7em;
  order: 1;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-bar ul.results li.no-result {
  background-color: #131f6b;
  margin-top: -1px;
}
search-bar ul.results li.no-result a {
  color: white;
}
search-bar ul.results li:nth-of-type(even) {
  background-color: #f4f4f4;
}
@media (hover: hover) {
  search-bar ul.results li:hover {
    background-color: #dcdcdc;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcGFydGlhbHMvc2VhcmNoLWJhci5zY3NzIiwiY29tcG9uZW50cy9wYXJ0aWFscy9zZWFyY2gtYmFyLmNzcyIsIl9lbGVtZW50cy9sb2FkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9fdW5pdHMuc2NzcyIsIl92YXJpYWJsZXMvY29sb3Vycy5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl92YXJpYWJsZXMvdW5pdHMuc2NzcyIsIl9lbGVtZW50cy9tYXJrLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0Usa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGFBQUE7RUFDQSwrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0FDREY7QURHRTtFRVJBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQ0FBQTtFQUNBLGlDQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLCtDQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQ0FBQTtFQUNBLDZCQUFBO0VBQ0Esd0JBQUE7RUFDQSxtQ0FBQTtFQUNBLHVEQUFBO0VBQ0EsNEJBQUE7RUZORSxVQUFBO0VBQ0EsaUJHbUNJO0FGcEJSO0FDVEU7RUFDRTtJQUFNLHlCQUFBO0VEWVI7RUNYRTtJQUFJLHVCQUFBO0VEY047QUFDRjtBRHBCRTtFRVdBLFVBQUE7RUFDQSw2QkFBQTtBRFlGO0FEbkJJO0VBQ0UsYUFBQTtBQ3FCTjtBRGpCRTtFQUNFLDRCQUFBO0VBQ0EsNkJBQUE7QUNtQko7QURoQkU7RUFDRSxZQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkloQkU7RUppQkYsWUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLDRDQUFBO0VBQ0EsK0NBQUE7RUFDQSxnQkFBQTtBQ2tCSjtBSVpFO0VBL0NBLHNCQUFBO0VBQ0EsNEJBQUE7RUFDQSwwQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esd0NBQUE7RUFDQSxnQ0FBQTtFQUVBLHdDQ2tDZTtFRGpDZiwwQ0FBQTtFQUNBLHFCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBRUEsd0JBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VMNkJFLHFCQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsaUVBQUE7RUFDQSxjSS9CSTtBSCtEUjtBSWpFRTtFQUNFLHdJQUFBO0VBQUEsbUlBQUE7QUptRUo7QUlwRUU7RUFDRSxtSUFBQTtBSm1FSjtBSWpFRTtFQUlFLHNCRGJHO0FINkVQO0FJbkVJO0VBQ0Usa0JBQUE7QUpxRU47QUl0RUk7RUFDRSxrQkFBQTtBSnFFTjtBSWpFRTtFQUNFLDZCQUFBO0VBQ0EsNEJBQUE7QUptRUo7QUQ1Q0k7RUFDRSxpQkFBQTtFQUNBLGNJMUNDO0FId0ZQO0FEaERJO0VBQ0UsaUJBQUE7RUFDQSxjSTFDQztBSHdGUDtBRDFDRTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsUUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLG9ETXpCYTtFTjBCYixxRE0xQmE7RU4yQmIsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLHVCQUFBO0VBQ0EscUNBQUE7QUM0Q0o7QUQzQ0k7RUFDRSx1QkFBQTtFQUNBLDhJQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0FDNkNOO0FEM0NNO0VBQ0UsNkJBQUE7QUM2Q1I7QUQzQ007RU81RUoseUJBQUE7RUFDQSxjQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VQMEVNLGNJbkVBO0FIb0hSO0FEL0NNO0VBQ0UscUJBQUE7RUFDQSwwQ0FBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7QUNpRFI7QURoRFE7RUFDRSxhQUFBO0FDa0RWO0FEL0NNO0VBQ0UseUJJbEZBO0FIbUlSO0FEaERRO0VBRUUsWUFBQTtBQ2lEVjtBRDlDTTtFQUNFLGNBQUE7RUFDQSxjSXRGRDtFSnVGQyxnQkFBQTtFQUNBLFFBQUE7RUFDQSxtSUFBQTtBQ2dEUjtBRDlDTTtFQUNFLHlCSW5HRDtFSm9HQyxnQkFBQTtBQ2dEUjtBRC9DUTtFQUNFLFlBQUE7QUNpRFY7QUQ5Q007RUFDRSx5QklqR0E7QUhpSlI7QU92S0U7RUFDRTtJUnlISSx5QkluR0E7RUhvSk47QUFDRiIsImZpbGUiOiJjb21wb25lbnRzL3BhcnRpYWxzL3NlYXJjaC1iYXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnNlYXJjaC1iYXIge1xuICAtLWZvbnQtc2l6ZTogMS4xZW07XG4gIC0tYm9yZGVyLXJhZGl1czogMzBweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA2MHB4IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIGZvbnQtc2l6ZTogMS40ZW07XG4gIHotaW5kZXg6IDM7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGxvYWRlcjtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAkZ2FwO1xuICB9XG5cbiAgJi5sb2FkaW5nOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbG9hZGVyLWFuaW1hdGlvbjtcbiAgfVxuXG4gICY6bm90KC5zaG93aW5nLXN1Z2dlc3Rpb25zKSB7XG4gICAgdWwucmVzdWx0cyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYuc2hvd2luZy1zdWdnZXN0aW9ucyBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIGdyaWQtcm93OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDZweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLWlucHV0KCdzZWFyY2gnKSB7XG4gICAgLS1ib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIGdyaWQtcm93OiAxO1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1mb250LXNpemUpICsgI3skZ2FwM30gKyA4cHgpO1xuICAgIGNvbG9yOiAkZm9udC1jb2xvdXI7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgZm9udC1zaXplOiAwLjcyZW07XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgfVxuICB9XG5cbiAgdWwucmVzdWx0cyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlIC0gMXB4KTtcbiAgICByaWdodDogMDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICRncmV5NDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgbWF4LWhlaWdodDogMzA1cHg7XG4gICAgcGFkZGluZzogMCAkZ2FwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJveC1zaGFkb3c6IDBweCA2cHggMTZweCAtNnB4ICM2YTZhNmE7XG4gICAgbGkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICArIGxpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmV5MztcbiAgICAgIH1cbiAgICAgIG1hcmsge1xuICAgICAgICBAaW5jbHVkZSBtYXJrLXJlc2V0KCk7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTU7XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTIpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmZvY3VzIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTQ7XG4gICAgICAgIC50eXBlLFxuICAgICAgICAmIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC50eXBlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgICAgZm9udC1zaXplOiAwLjdlbTtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgfVxuICAgICAgJi5uby1yZXN1bHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJzZWFyY2gtYmFyIHtcbiAgLS1mb250LXNpemU6IDEuMWVtO1xuICAtLWJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNjBweCAxZnI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDUwMHB4O1xuICBmb250LXNpemU6IDEuNGVtO1xuICB6LWluZGV4OiAzO1xufVxuc2VhcmNoLWJhcjo6YWZ0ZXIge1xuICAtLXNpemU6IDEycHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsICM5Njk2OTUpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogdmFyKC0tZ2FwKTtcbn1cbkBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5zZWFyY2gtYmFyLmxvYWRpbmc6OmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG59XG5zZWFyY2gtYmFyOm5vdCguc2hvd2luZy1zdWdnZXN0aW9ucykgdWwucmVzdWx0cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5zZWFyY2gtYmFyLnNob3dpbmctc3VnZ2VzdGlvbnMgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5zZWFyY2gtYmFyIHN2ZyB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuc2VhcmNoLWJhciBpbnB1dFt0eXBlPXNlYXJjaF0ge1xuICAtLWZvbnQtY29sb3VyOiAjNmE2YTZhO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIC0tYm9yZGVyLWNvbG91cjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtLWJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBncmlkLXJvdzogMTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWZvbnQtc2l6ZSkgKyBjYWxjKHZhcigtLWdhcCkgKiAzKSArIDhweCk7XG4gIGNvbG9yOiAjNmE2YTZhO1xufVxuc2VhcmNoLWJhciBpbnB1dFt0eXBlPXNlYXJjaF06OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zZWFyY2gtYmFyIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5zZWFyY2gtYmFyIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5zZWFyY2gtYmFyIGlucHV0W3R5cGU9c2VhcmNoXS5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbnNlYXJjaC1iYXIgaW5wdXRbdHlwZT1zZWFyY2hdOjpwbGFjZWhvbGRlciB7XG4gIGZvbnQtc2l6ZTogMC43MmVtO1xuICBjb2xvcjogIzEzMWY2Yjtcbn1cbnNlYXJjaC1iYXIgdWwucmVzdWx0cyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlIC0gMXB4KTtcbiAgcmlnaHQ6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAjZGNkY2RjO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWF4LWhlaWdodDogMzA1cHg7XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggMTZweCAtNnB4ICM2YTZhNmE7XG59XG5zZWFyY2gtYmFyIHVsLnJlc3VsdHMgbGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5zZWFyY2gtYmFyIHVsLnJlc3VsdHMgbGkgKyBsaSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjRmNGY0O1xufVxuc2VhcmNoLWJhciB1bC5yZXN1bHRzIGxpIG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzogaW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbiAgY29sb3I6ICMwMDk1ZmY7XG59XG5zZWFyY2gtYmFyIHVsLnJlc3VsdHMgbGkgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS1nYXApO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5zZWFyY2gtYmFyIHVsLnJlc3VsdHMgbGkgYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5zZWFyY2gtYmFyIHVsLnJlc3VsdHMgbGkuZm9jdXMgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMDEyNGQ7XG59XG5zZWFyY2gtYmFyIHVsLnJlc3VsdHMgbGkuZm9jdXMgYSAudHlwZSwgc2VhcmNoLWJhciB1bC5yZXN1bHRzIGxpLmZvY3VzIGEge1xuICBjb2xvcjogd2hpdGU7XG59XG5zZWFyY2gtYmFyIHVsLnJlc3VsdHMgbGkgLnR5cGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICM5Njk2OTU7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG4gIG9yZGVyOiAxO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnNlYXJjaC1iYXIgdWwucmVzdWx0cyBsaS5uby1yZXN1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuc2VhcmNoLWJhciB1bC5yZXN1bHRzIGxpLm5vLXJlc3VsdCBhIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuc2VhcmNoLWJhciB1bC5yZXN1bHRzIGxpOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHNlYXJjaC1iYXIgdWwucmVzdWx0cyBsaTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYztcbiAgfVxufSIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICdtb2R1bGVzL2NvbG91ci9lbmNvZGUnIGFzIGNvbG91cjtcblxuXG5AbWl4aW4gbG9hZGVyKCRzaXplIDogMTJweCwgJGNvbG91ciA6ICRncmV5KSB7XG4gIC0tc2l6ZSA6ICN7JHNpemV9OyBcbiAgY29udGVudDpcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDpjYWxjKDUwJSAtICh2YXIoLS1zaXplKSAvIDIpKTsgXG4gIGxlZnQ6Y2FsYyg1MCUgLSAodmFyKC0tc2l6ZSkgLyAyKSk7IFxuICBvcGFjaXR5OiAwO1xuICB3aWR0aDp2YXIoLS1zaXplKTsgXG4gIGhlaWdodDp2YXIoLS1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6MnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsICRjb2xvdXIpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgJGVhc2UtaW4tb3V0O1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICBAa2V5ZnJhbWVzIGxvYWRlci1yb3RhdGUge1xuICAgIGZyb20ge3RyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICB0byB7dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgfVxuICBAY29udGVudDtcbn1cblxuQG1peGluIGxvYWRlci1hbmltYXRpb24geyBcbiAgb3BhY2l0eToxOyBcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG4gIEBjb250ZW50O1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLlxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvd1xuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci5cbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd25cbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGVcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS5cbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LlxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWU6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMjogIzI5MmI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0OiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTU6ICMwMDk1ZmY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuLy8gJHJlZCAgICA6ICNFMDNBNDA7IC8vIFNlY29uZGFyeVxuJHJlZDogI2RmMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2VcbiRncmV5OiAjOTY5Njk1O1xuJGdyZXkyOiAjNmE2YTZhOyAvLyBGb250XG4kZ3JleTM6ICNmNGY0ZjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQ6ICNkY2RjZGM7XG4kZ3JleTU6ICNiMWIxYjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2OiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXJcbiRncmVlbjogIzUwYmMwODtcbiRncmVlbjI6ICM3NmJiMjg7IC8vIEVTRyBncmVlblxuJHllbGxvdzogI2Y2ZjRkYjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MjogI2ZjYjAwMjtcbiRvcmFuZ2U6ICNmZjZhMDA7XG4kb3JhbmdlMjogI2RhOGIwZjtcbiRibGFjazogIzFlMWMxYztcblxuJG1hcms6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRwcmltYXJ5OiB2YXIoLS1wcmltYXJ5LCAjeyRibHVlfSk7XG4kc2Vjb25kYXJ5OiB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLlxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJyB3aXRoIChcbiAgJGJsdWU6ICRibHVlLFxuICAkcmVkOiAkcmVkLFxuICAkZ3JleTogJGdyZXksXG4gICR5ZWxsb3c6ICR5ZWxsb3csXG4gICRvcmFuZ2U6ICRvcmFuZ2UsXG4gICRncmVlbjogJGdyZWVuLFxuICAkYmxhY2s6ICRibGFja1xuKTtcblxuJG1hcDogKFxuICBibHVlOiAkYmx1ZSxcbiAgcmVkOiAkcmVkLFxuICBncmV5OiAkZ3JleTMsXG4gIHllbGxvdzogJHllbGxvdyxcbiAgb3JhbmdlOiAkb3JhbmdlLFxuICBncmVlbjogJGdyZWVuLFxuICBibGFjazogJGJsYWNrLFxuKTtcbiIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICdtb2R1bGVzL2NvbG91ci9lbmNvZGUnIGFzIGNvbG91cjtcbkB1c2UgXCJmb250XCI7XG5cbkBtaXhpbiBfYmFzZS1zdHlsaW5nIHtcbiAgXG4gIC0tZm9udC1jb2xvdXIgOiAjeyRmb250LWNvbG91cn07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0tYm9yZGVyLXJhZGl1cyA6ICN7JGJvcmRlci1yYWRpdXN9O1xuICAtLWJvcmRlci1jb2xvdXIgOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyIDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmcgOiAjeyRnYXB9ICN7JGdhcH07XG5cbiAgYm9yZGVyLXJhZGl1czokYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjp2YXIoLS1ib3JkZXIpOyBcbiAgcGFkZGluZzp2YXIoLS1wYWRkaW5nKTsgXG4gIGZvbnQtc2l6ZTpmb250LnNpemUoMTQpOyBcbiAgY29sb3I6dmFyKCAtLWZvbnQtY29sb3VyKTtcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gIH1cbiAgJjpmb2N1cyB7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6dHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIG91dGxpbmUtY29sb3IgOiAkYmx1ZTsgXG4gIH1cbiAgJi5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbn1cblxuQG1peGluIGFsbC1pbnB1dHMoKSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sIHNlbGVjdCwgdGV4dGFyZWEge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbnB1dCgkdHlwZTpudWxsKSB7XG5cbiAgJHNlbGVjdG9yIDogJ2lucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSknO1xuXG4gIEBpZiB0eXBlLW9mKCR0eXBlKSAhPSAnbnVsbCcge1xuICAgICRzZWxlY3RvciA6ICdpbnB1dFt0eXBlPVwiI3skdHlwZX1cIl0nO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5AbWl4aW4gc2VsZWN0KCRzdHJva2UgOiAkYmxhY2spIHtcblxuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlICBfYmFzZS1zdHlsaW5nOyBcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IFxuICAgIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNhbGMoMTAwJSAtICN7JGdhcH0pIGNlbnRlcjsgXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNy40JyBoZWlnaHQ9JzEwLjEnJTNFJTNDcGF0aCBkPSdNMTYuNy43bC04IDgtOC04JyBmaWxsPSdub25lJyBzdHJva2U9J1wiK2NvbG91ci5lbmNvZGUoJHN0cm9rZSkrXCInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJy8lM0UlM0Mvc3ZnJTNFXCIpOyAgICBcbiAgICBAY29udGVudDtcbiAgfVxuXG59XG5cbkBtaXhpbiBjaGVja2JveCgpIHtcblxufVxuXG5AbWl4aW4gdGV4dGFyZWEoKSB7XG5cbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlICBfYmFzZS1zdHlsaW5nOyBcbiAgICBAY29udGVudDtcbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVuaXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gQHNlZSBodHRwczovL2NvZGVwZW4uaW8vbWFya25vdHRvbi9wZW4vRXhQYk5HZVxuLy8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hcmtub3R0b24vZG9nZ2lzdHlsZS9ibG9iL21hc3Rlci9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3NcblxuLy8vIFRoaXMgdW5pdHMgY3JlYXRvciB3aWxsIHJlbmRlciBzaXggcG9zaXRpdmUgYW5kIHNpeCBuZWdhdGl2ZSBzYXNzIHZhcmlhYmxlcyBmb3IgXG4vLy8gZ2Fwcywgc3BhY2VycywgYW5kIGd1dHRlcnMgcmVsYXRpdmUgdG8gdGhlIGJhc2UgdmFsdWVzIGRlZmluZWQgYmVsb3cuIFxuXG5AZm9yd2FyZCAnY3JlYXRlL3VuaXRzJyB3aXRoIChcblxuICAvLy8gR2FwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8vIEdhcHMgYXJlIGFuIGFic29sdXRlIHVuaXQgKHB4KSBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGluZGl2aWR1YWwgZWxlbWVudHMgd2l0aGluIGEgY29tcG9uZW50ZWQuIFxuICAvLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBzcGFjaW5nIGFtb25nc3QgYmxvY2ssIGlubGluZSwgdGFibGUgYW5kIGdyb3VwIGh0bWwgZWxlbWVudHMuXG4gIC8vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuICAvLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4gIC8vLyBAcmVzdWx0IDogJGdhcDAsICRnYXAsICRnYXAyLCAkZ2FwMywgJGdhcDQsICRnYXA1ICwgJGdhcDYsICRnYXAwLSwgJGdhcC0sICRnYXAyLSwgJGdhcDMtLCAkZ2FwNC0sICRnYXA1LSBhbmQgJGdhcDYtXG4gIFxuICAkZ2FwIDogMTZweCxcblxuICAvLyBTcGFjZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTcGFjZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IGhlaWdodCAodmgpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIGNvbXBvbmVudGVkIGxldmVsLlxuICAvLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbiAgLy8vIFNwYWNlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJHNwYWNlciAqIHgpICsgJGdhcGAuIFxuICAvLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZoIHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcbiAgLy8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuICAvLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuICAvLy8gQHJlc3VsdCA6ICRzcGFjZXIwLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyNCwgJHNwYWNlcjUsICRzcGFjZXI2LCAkc3BhY2VyMC0sICRzcGFjZXItLCAkc3BhY2VyLSwgJHNwYWNlci0sICRzcGFjZXI0LSwgJHNwYWNlcjUtIGFuZCAkc3BhY2VyNi1cbiAgXG4gICRzcGFjZXIgOiA0dmgsIFxuXG4gIC8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEd1dHRlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgd2lkdGggKHZ3KSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBwYXJlbnQgbGV2ZWw7XG4gIC8vIGZvciBleGFtcGxlLCBhIHdyYXBwZXIgY29udGFpbmVyIG9yIGJvZHkgd2l0aCBuZXN0ZWQgY29tcG9uZW50cy4gXG4gIC8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4gIC8vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbiAgLy8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG4gIC8vLyBHdXR0ZXJzIG11c3QgdXNlIGEgJ3Z3JyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCB3aWR0aC13aXNlLiBcbiAgLy8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvciBtYXJnaW4gb24gYSBwYXJlbnQgbGV2ZWwuXG4gIC8vLyBBcyBhIHN1Z2dlc3Rpb24sIHRoaXMgZ3V0dGVyIGNvbnN0YW50IHNob3VsZCBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSBzcGFjZXIgdmFsdWUuXG4gIC8vLyBAcmVzdWx0IDogJGd1dHRlcjAsICRndXR0ZXIsICRndXR0ZXIyLCAkZ3V0dGVyMywgJGd1dHRlcjQsICRndXR0ZXI1LCAkZ3V0dGVyNiwgJGd1dHRlcjAtLCAkZ3V0dGVyLSwgJGd1dHRlcjItLCAkZ3V0dGVyMy0sICRndXR0ZXI0LSwgJGd1dHRlcjUtIGFuZCAkZ3V0dGVyNi1cbiAgXG4gICRndXR0ZXIgOiAzdncsIFxuXG4pO1xuXG4kYm9yZGVyLXJhZGl1cyA6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4kc2lkZWJhci13aWR0aCA6IDUwMHB4OyIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cbkBtaXhpbiBtYXJrKCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Vycy1tYXJrO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoI3skYm9yZGVyLXJhZGl1c30gLyAyKTtcbiAgcGFkZGluZzowIDVweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG59XG5cbkBtaXhpbiBtYXJrLXJlc2V0KCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzppbml0aWFsO1xuICB0cmFuc2l0aW9uOiBpbml0aWFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGhvdmVyKCRzZWxlY3RvciA6IG51bGwpIHtcbiAgQG1lZGlhICggaG92ZXIgOiBob3ZlciApIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2VsZWN0b3Ige1xuICAgICYjeyRzZWxlY3Rvcn0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59Il19 */