grade-filter {
  display: grid;
  grid-template-columns: 300px 1fr;
  grid-gap: var(--gutter1);
  flex-grow: 1;
  background-color: #F4F4F4;
}
grade-filter > h2 {
  grid-row: 1;
  grid-column: 1/-1;
}
grade-filter filter-bar {
  grid-row: 2;
  grid-column: 1/-1;
  display: grid;
  align-items: flex-start;
  grid-gap: var(--gap);
  grid-template-columns: auto 1fr;
}
grade-filter filter-bar button.filter {
  display: flex;
  grid-row: 1;
  width: -moz-fit-content;
  width: fit-content;
  place-items: center;
  place-content: center;
  margin-top: 1.8em;
}
grade-filter filter-bar button.filter span {
  margin-left: calc(var(--gap) * 0.5);
  font-weight: bold;
  font-size: 0.75em;
}
grade-filter filter-bar button.filter svg {
  width: 16px;
  height: 16px;
  fill: #969695;
}
grade-filter filter-bar .datalist-group {
  grid-row: 1;
  display: grid;
  grid-gap: 20px var(--gap);
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}
@media (max-width: 480px) {
  grade-filter filter-bar {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
  }
  grade-filter filter-bar button.filter {
    margin-bottom: var(--gap);
  }
  grade-filter filter-bar .datalist-group {
    grid-template-columns: 1fr;
    width: 100%;
  }
}
grade-filter filter-bar datalist-wrap {
  display: block;
  position: relative;
  flex-grow: 1;
  margin-top: 1em;
}
grade-filter filter-bar datalist-wrap label {
  font-size: 0.875em;
  color: #1E1A1A;
  margin-bottom: calc(var(--gap) * 0.5);
  display: block;
  position: absolute;
  bottom: 100%;
  left: 0;
}
grade-filter filter-bar datalist-wrap input {
  border: none;
  padding: 12px var(--gap);
  width: 100%;
  color: #6A6A6A;
  font-size: 0.875em;
  border-radius: var(--border-radius, 6px);
  background-color: white;
  border: 1px solid #F4F4F4;
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
grade-filter filter-bar datalist-wrap input:focus {
  outline: none;
}
grade-filter filter-bar datalist-wrap input:valid + button.clear {
  pointer-events: all;
  opacity: 1;
  transform: scale(1);
}
grade-filter filter-bar datalist-wrap button.clear {
  cursor: pointer;
  position: absolute;
  right: 1px;
  top: 1px;
  opacity: 0;
  height: calc(100% - 2px);
  padding: 0 var(--gap);
  text-align: center;
  align-items: center;
  justify-content: center;
  background-color: white;
  pointer-events: none;
  transform: scale(0.7);
  border-top-right-radius: var(--border-radius, 6px);
  border-bottom-right-radius: var(--border-radius, 6px);
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
grade-filter filter-bar datalist-wrap button.clear svg {
  width: 16px;
  height: 16px;
  color: #131f6b;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
grade-filter filter-bar datalist-wrap button.clear::after {
  content: "";
  width: 30px;
  height: 100%;
  position: absolute;
  top: 0;
  pointer-events: none;
  right: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0), white);
}
@media (hover: hover) {
  grade-filter filter-bar datalist-wrap button.clear:hover svg {
    color: #DF3035;
  }
}
grade-filter filter-bar datalist-wrap.active input {
  border-color: #131f6b;
}
grade-filter p#no-results {
  grid-row: 3;
  grid-column: 1/-1;
}
grade-filter p#no-results.hidden {
  display: None;
}
grade-filter section {
  grid-row: 3;
  grid-column: 2;
}
grade-filter section:not(.ungrouped) {
  display: none;
}
grade-filter section .heading {
  display: flex;
  margin-bottom: var(--gap);
  justify-content: space-between;
}
grade-filter section .heading svg {
  display: none;
  width: 1.6em;
  height: 1.6em;
}
grade-filter section .image {
  width: 100%;
  margin-bottom: var(--gutter1);
  border-radius: var(--border-radius, 6px);
  --aspect-ratio: 380/90;
  aspect-ratio: var(--aspect-ratio);
}
@supports not (aspect-ratio: 380/90) {
  grade-filter section .image {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  grade-filter section .image > * {
    position: absolute;
  }
}
grade-filter section .text {
  font-size: 0.875em;
  margin-top: calc(var(--gap) * 2);
}
grade-filter section .text ul {
  margin-left: 0;
}
grade-filter section .text > figure {
  padding: 0;
}
grade-filter section.active {
  display: unset;
}
grade-filter section article h4 {
  display: flex;
  align-items: center;
  margin-bottom: var(--gap);
}
grade-filter section article h4::after {
  content: "";
  height: 1px;
  margin-left: var(--gap);
  background-color: #dcdcdc;
  flex-grow: 1;
}
ul.grades {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  grid-gap: var(--gap);
}
ul.grades li {
  --hover-height: calc(200% + var(--gap));
  --hover-width: 100%;
  min-height: 80px;
  background-color: white;
  border-radius: var(--border-radius, 6px);
  position: relative;
  z-index: 0;
  transition: z-index 0s 0.6s cubic-bezier(0.42, 0, 0.58, 1);
}
ul.grades li > * {
  text-decoration: none;
  display: flex;
  padding: var(--gap);
  height: 100%;
  font-size: 0.9em;
  flex-direction: column;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  border-radius: inherit;
}
ul.grades li > * mark {
  background-color: initial;
  color: inherit;
  border-radius: initial;
  padding: initial;
  transition: initial;
}
ul.grades li > * .summary {
  position: absolute;
  border-radius: inherit;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  padding: var(--gap);
  height: 100%;
  width: 100%;
  color: white;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), height var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), width var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition-delay: 0.2s;
  background-color: transparent;
}
ul.grades li > * .summary::after {
  content: "";
  width: 100%;
  height: 30px;
  position: absolute;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(transparent, #DF3035 20px);
}
ul.grades li > * .summary strong {
  opacity: 0;
  transition: opacity 0.2s 0.4s cubic-bezier(0.42, 0, 0.58, 1);
}
ul.grades li > * .summary p, ul.grades li > * .summary::after {
  font-size: 0.8125em;
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
ul.grades li > * > strong {
  color: var(--secondary, #DF3035);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
ul.grades li > * em {
  font-style: normal;
  font-size: 0.75em;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  ul.grades li > *:hover {
    background-color: var(--secondary, #DF3035);
  }
  ul.grades li > *:hover, ul.grades li > *:hover strong {
    color: white;
  }
}
@media (hover: hover) {
  ul.grades li:hover {
    z-index: 1;
    transition-delay: 0s !important;
    transition-duration: 0s !important;
  }
  ul.grades li:hover > * .summary {
    pointer-events: initial;
    height: var(--hover-height);
    width: var(--hover-width);
    transition-delay: 0.2s;
    background-color: #DF3035;
  }
  ul.grades li:hover > * .summary strong {
    opacity: 1;
    transition-delay: 0s;
  }
  ul.grades li:hover > * .summary p, ul.grades li:hover > * .summary::after {
    opacity: 1;
    transition-delay: 0.4s;
  }
  ul.grades li:hover ~ * {
    transition-duration: 0s, 0s !important;
    transition: initial !important;
    z-index: 0 !important;
    transition-delay: 0s, 0s !important;
  }
}
ul.grades li.no-summary .summary {
  display: none;
}

#grades-sidebar-list {
  background-color: #FFFFFF;
  border: 1px solid #dcdcdc;
}
#grades-sidebar-list h4 {
  font-size: 1.5625em;
  line-height: 1.6;
  color: #1E1A1A;
  margin-bottom: var(--gap);
}
#grades-sidebar-list ul.grades {
  grid-template-columns: repeat(2, 1fr);
  grid-gap: calc(var(--gap) * 0.5);
}
#grades-sidebar-list ul.grades li {
  border: 1px solid #dcdcdc;
  min-height: auto;
  --hover-height: calc(300% + var(--gap) + 4px);
}
#grades-sidebar-list ul.grades li a {
  padding: calc(var(--gap) * 0.5) var(--gap);
  font-size: 0.8em !important;
}
#grades-sidebar-list ul.grades li a .summary {
  padding: calc(var(--gap) * 0.5) var(--gap);
}
#grades-sidebar-list ul.grades li a .summary strong {
  position: relative;
}

grade-filter aside {
  grid-row: 3;
  grid-column: 1;
}
grade-filter aside.ungrouped {
  display: none;
}
grade-filter aside.ungrouped ~ section {
  grid-column: 1/-1;
}
grade-filter[data-count="1"] section.active {
  grid-column: 1/-1;
}
grade-filter[data-count="1"] aside {
  display: none;
}

grade-filter aside nav {
  display: flex;
  flex-direction: column;
}
grade-filter aside nav button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--primary, #131f6b);
  text-align: left;
  width: 100%;
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-transform: uppercase;
  padding: var(--gap) 0;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
grade-filter aside nav button svg {
  width: 50px;
  height: 30px;
  fill: #1E1A1A;
  transition: fill var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
grade-filter aside nav button + button {
  border-top: 1px solid #dcdcdc;
}
@media (hover: hover) {
  grade-filter aside nav button:hover {
    color: var(--secondary, #DF3035);
  }
  grade-filter aside nav button:hover svg {
    fill: var(--secondary, #DF3035);
  }
}
grade-filter aside nav button.active {
  color: var(--secondary, #DF3035);
}
grade-filter aside nav button.active svg {
  fill: var(--secondary, #DF3035);
}
grade-filter aside nav a {
  margin-top: var(--spacer1);
}
grade-filter .grade-filter-cta {
  grid-column: 1/-1;
  width: -moz-fit-content;
  width: fit-content;
}
@media (max-width: 1400px) {
  grade-filter aside {
    display: none;
  }
  grade-filter section {
    border-top: 1px dashed #dcdcdc;
    padding-top: var(--gap);
    display: block !important;
    grid-row: auto;
    grid-column: 1/-1;
  }
  grade-filter section .heading svg {
    display: block;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ3JhZGUtZmlsdGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCJfdmFyaWFibGVzL2NvbG91cnMuc2NzcyIsImNvbXBvbmVudHMvZ3JhZGUtZmlsdGVyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2hlbHBlcnMvX2JyZWFrLnNjc3MiLCJfdmFyaWFibGVzL3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fYXNwZWN0LXJhdGlvLnNjc3MiLCJfZWxlbWVudHMvbWFyay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL19wYWxldHRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX2hlYWRpbmdzLnNjc3MiLCJfdmFyaWFibGVzL2ZvbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxhQUFBO0VBQ0EsZ0NBQUE7RUFDQSx3QkMrSFM7RUQ5SFQsWUFBQTtFQUNBLHlCRW9CUTtBQ3JCVjtBSEtFO0VBQ0UsV0FBQTtFQUNBLGlCQUFBO0FHSEo7QUhRRTtFQUNFLFdBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLG9CQzRCSTtFRDNCSiwrQkFBQTtBR05KO0FIT0k7RUFDRSxhQUFBO0VBQ0EsV0FBQTtFQUNBLHVCQUFBO0VBQUEsa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFB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QUdBZDtBSEtjO0VBQ0UsMENBQUE7RUFDQSwyQkFBQTtBR0hoQjtBSE9nQjtFQUNFLDBDQUFBO0FHTGxCO0FITWtCO0VBQ0Usa0JBQUE7QUdKcEI7O0FIbUJFO0VBQ0UsV0FBQTtFQUNBLGNBQUE7QUdoQko7QUhpQkk7RUFBYyxhQUFBO0FHZGxCO0FIZU07RUFBWSxpQkFBQTtBR1psQjtBSGVNO0VBQ0UsaUJBQUE7QUdiUjtBSGVNO0VBQVEsYUFBQTtBR1pkOztBSGNJO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0FHWE47QUhZTTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLDhCQUFBO0VBQ0EsOEJFdFZLO0VGdVZMLGdCQUFBO0VBQ0EsV0FBQTtFV25XTiw2QkFBQTtFQUNBLGtCQUFBO0VBS0UsZ0JBQUE7RUFLRixrQkFBQTtFQUNBLG1DQUFBO0VBQ0Qsa0NBQUE7RVh3Vk8seUJBQUE7RUFDQSxxQkFBQTtFQUNBLG1JQUFBO0FHTFI7QUhPUTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUVyV0E7RUZzV0Esa0lBQUE7QUdMVjtBSE9RO0VBQVcsNkJBQUE7QUdKbkI7QUdsWUU7RUFDRTtJTnVZTSxnQ0VyV0c7RUNtV1g7RUhHUTtJQUFNLCtCRXRXSDtFQ3NXWDtBQUNGO0FIQ1E7RUFDRSxnQ0V6V0c7QUMwV2I7QUhBVTtFQUFNLCtCRTFXSDtBQzZXYjtBSENNO0VBQUksMEJDN1NDO0FFK1NYO0FIRUU7RUFDRSxpQkFBQTtFQUNBLHVCQUFBO0VBQUEsa0JBQUE7QUdBSjtBQ2paRTtFSnFaRTtJQUFRLGFBQUE7RUdBVjtFSENFO0lBQ0UsOEJBQUE7SUFDQSx1QkNoWEU7SURpWEYseUJBQUE7SUFDQSxjQUFBO0lBQ0EsaUJBQUE7RUdDSjtFSENNO0lBQU0sY0FBQTtFR0VaO0FBQ0YiLCJmaWxlIjoiY29tcG9uZW50cy9ncmFkZS1maWx0ZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbmdyYWRlLWZpbHRlciB7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMDBweCAxZnI7XG4gIGdyaWQtZ2FwOiRndXR0ZXI7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzOyBcblxuICAvLyBIZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICA+IGgyIHtcbiAgICBncmlkLXJvdzoxO1xuICAgIGdyaWQtY29sdW1uOjEgLyAtMTtcbiAgfVxuXG4gIC8vIEZpbHRlciBCYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGZpbHRlci1iYXIge1xuICAgIGdyaWQtcm93OjI7XG4gICAgZ3JpZC1jb2x1bW46MSAvIC0xO1xuICAgIGRpc3BsYXk6Z3JpZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBncmlkLWdhcDokZ2FwOyBcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgIGJ1dHRvbi5maWx0ZXIge1xuICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgZ3JpZC1yb3c6MTtcbiAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOjEuOGVtO1xuICAgICAgc3BhbiB7IFxuICAgICAgICBtYXJnaW4tbGVmdDokZ2FwMDsgXG4gICAgICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IFxuICAgICAgICBmb250LXNpemU6Zm9udC1zaXplKDEyKTsgXG4gICAgICB9XG4gICAgICBzdmcgeyB3aWR0aDoxNnB4OyBoZWlnaHQ6MTZweDsgZmlsbDokZ3JleTsgfVxuICAgIH1cbiAgICAuZGF0YWxpc3QtZ3JvdXAge1xuICAgICAgZ3JpZC1yb3c6MTtcbiAgICAgIGRpc3BsYXk6Z3JpZDtcbiAgICAgIGdyaWQtZ2FwOjIwcHggJGdhcDsgXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBidXR0b24uZmlsdGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTokZ2FwOyBcbiAgICAgIH1cbiAgICAgIC5kYXRhbGlzdC1ncm91cCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICB9XG4gICAgfVxuICAgIGRhdGFsaXN0LXdyYXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtYXJnaW4tdG9wOjFlbTtcbiAgICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxNCk7XG4gICAgICAgIGNvbG9yOiRibGFjazsgXG4gICAgICAgIG1hcmdpbi1ib3R0b206JGdhcDA7IFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbToxMDAlO1xuICAgICAgICBsZWZ0OjA7IFxuICAgICAgfVxuICAgICAgaW5wdXQge1xuICAgICAgICBib3JkZXI6bm9uZTsgXG4gICAgICAgIHBhZGRpbmc6MTJweCAkZ2FwOyBcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbG9yOiRmb250LWNvbG91cjtcbiAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTM7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICY6Zm9jdXN7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmOnZhbGlkICsgYnV0dG9uLmNsZWFyIHtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOnNjYWxlKDEpO1xuICAgICAgICB9IFxuICAgICAgfVxuICAgICAgYnV0dG9uLmNsZWFyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OjFweDtcbiAgICAgICAgdG9wOjFweDtcbiAgICAgICAgb3BhY2l0eTowOyBcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAycHgpO1xuICAgICAgICBwYWRkaW5nOjAgJGdhcDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06c2NhbGUoMC43KTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAwLjJzICRlYXNlLW91dC1iYWNrO1xuICAgICAgICBzdmcge1xuICAgICAgICAgIHdpZHRoOjE2cHg7XG4gICAgICAgICAgaGVpZ2h0OjE2cHg7XG4gICAgICAgICAgY29sb3I6JGJsdWU7IFxuICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OlwiXCI7XG4gICAgICAgICAgd2lkdGg6MzBweDtcbiAgICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOjA7IFxuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgIHJpZ2h0OjEwMCU7IFxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSh3aGl0ZSwgMCksIHdoaXRlKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgc3ZnIHsgXG4gICAgICAgICAgICBjb2xvcjokcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5hY3RpdmUgaW5wdXQge1xuICAgICAgICBib3JkZXItY29sb3I6JGJsdWU7XG4gICAgICB9XG4gIFxuICAgIH1cbiAgfVxuICAvLyBObyByZXN1bHRzIG1lc3NhZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcCNuby1yZXN1bHRzIHtcbiAgICBncmlkLXJvdzozO1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgICYuaGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IE5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gU2VjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgc2VjdGlvbiB7IFxuICAgIGdyaWQtcm93OjM7XG4gICAgZ3JpZC1jb2x1bW46MjtcbiAgICAmOm5vdCgudW5ncm91cGVkKSB7XG4gICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuXG4gICAgLmhlYWRpbmcge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi1ib3R0b206JGdhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgd2lkdGg6MS42ZW07IFxuICAgICAgICBoZWlnaHQ6MS42ZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiRndXR0ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1czsgXG4gICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oJzM4MC85MCcpO1xuICAgIH1cblxuICAgIC50ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuICAgICAgbWFyZ2luLXRvcDokZ2FwMjsgXG4gICAgICAvLyBtYXJnaW4tYm90dG9tOiRnYXAyOyBcbiAgICAgIHVsIHsgbWFyZ2luLWxlZnQ6MDsgfVxuICAgICAgPiBmaWd1cmUge1xuICAgICAgICBwYWRkaW5nOjA7IFxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IHVuc2V0O1xuICAgIH1cblxuICAgIGFydGljbGUge1xuICAgICAgaDQge1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IFxuICAgICAgICBtYXJnaW4tYm90dG9tOiRnYXA7ICBcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgICAgICBoZWlnaHQ6MXB4OyBcbiAgICAgICAgICBtYXJnaW4tbGVmdDokZ2FwOyBcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5NDsgXG4gICAgICAgICAgZmxleC1ncm93OjE7XG4gICAgICAgIH0gICBcbiAgICAgIH1cbiAgICAgIEBhdC1yb290IHtcbiAgICAgICAgdWwuZ3JhZGVzIHtcbiAgICAgICAgICBkaXNwbGF5OmdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTYwcHgsIDFmcikpO1xuICAgICAgICAgIGdyaWQtZ2FwOiRnYXA7IFxuICAgICAgICAgIGxpIHtcblxuICAgICAgICAgICAgLS1ob3Zlci1oZWlnaHQgOiBjYWxjKDIwMCUgKyAjeyRnYXB9KTtcbiAgICAgICAgICAgIC0taG92ZXItd2lkdGggOiAxMDAlO1xuXG4gICAgICAgICAgICBtaW4taGVpZ2h0OjgwcHg7IFxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAgICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBcbiAgICAgICAgICAgIHotaW5kZXg6MDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHotaW5kZXggMHMgMC42cyAkZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsgXG4gICAgICAgICAgICAgIHBhZGRpbmc6JGdhcDsgXG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOjAuOWVtO1xuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6aW5oZXJpdDtcblxuICAgICAgICAgICAgICBtYXJrIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJrLXJlc2V0KClcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC5zdW1tYXJ5IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czppbmhlcml0O1xuICAgICAgICAgICAgICAgIGluc2V0OjA7IFxuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiRnYXA7XG4gICAgICAgICAgICAgICAgLy8gZm9udC1zaXplOmZvbnQtc2l6ZSgxNCk7IFxuICAgICAgICAgICAgICAgIC8vIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIC8vIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgLy8gd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgICAgICAgIGNvbG9yOndoaXRlOyBcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBoZWlnaHQgJHRyYW5zaXRpb24sIHdpZHRoICR0cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgY29udGVudDpcIlwiO1xuICAgICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDozMHB4O1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgYm90dG9tOjA7IFxuICAgICAgICAgICAgICAgICAgbGVmdDowOyBcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCAkcmVkIDIwcHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgb3BhY2l0eTowOyBcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyAwLjRzICRlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcCwgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxMyk7IFxuICAgICAgICAgICAgICAgICAgb3BhY2l0eTowOyBcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPiBzdHJvbmcgeyBcbiAgICAgICAgICAgICAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246Y29sb3IgJHRyYW5zaXRpb247XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZW0geyBcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxMik7IFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246Y29sb3IgJHRyYW5zaXRpb247XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6JHNlY29uZGFyeTtcbiAgICAgICAgICAgICAgICAmLCBzdHJvbmcgeyBjb2xvcjp3aGl0ZTsgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB6LWluZGV4OjE7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6MHMgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjowcyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICA+ICogLnN1bW1hcnkge1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGhlaWdodDp2YXIoLS1ob3Zlci1oZWlnaHQpO1xuICAgICAgICAgICAgICAgIHdpZHRoOnZhcigtLWhvdmVyLXdpZHRoKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6JHJlZDtcbiAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHAsICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6MTtcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH4gKiAgeyBcbiAgICAgICAgICAgICAgICAvLyAuc3VtbWFyeSB7IGJhY2tncm91bmQ6Z3JlZW4gIWltcG9ydGFudDsgfVxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246MHMsIDBzICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjppbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgei1pbmRleDowICFpbXBvcnRhbnQ7IFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6MHMsIDBzICFpbXBvcnRhbnQ7IFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLm5vLXN1bW1hcnkge1xuICAgICAgICAgICAgICAuc3VtbWFyeSB7IGRpc3BsYXk6bm9uZTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAjZ3JhZGVzLXNpZGViYXItbGlzdCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0OyBcbiAgICAgICAgICBoNCB7IFxuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMzsgXG4gICAgICAgICAgICBjb2xvcjokYmxhY2s7IFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTokZ2FwOyBcbiAgICAgICAgICB9XG4gICAgICAgICAgdWwuZ3JhZGVzIHsgXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgICAgICAgZ3JpZC1nYXA6JGdhcDA7IFxuICAgICAgICAgICAgbGkgeyBcbiAgICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7IFxuICAgICAgICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAtLWhvdmVyLWhlaWdodCA6IGNhbGMoMzAwJSArICN7JGdhcH0gKyA0cHgpO1xuICAgICAgICAgICAgICAvLyAtLWhvdmVyLXdpZHRoIDogY2FsYygyMDAlICsgI3skZ2FwMH0gKyAycHgpO1xuICAgICAgICAgICAgICAvLyAtLWhvdmVyLWhlaWdodCA6IDEwMCU7XG4gICAgICAgICAgICAgIC8vIC0taG92ZXItd2lkdGggOiAxMDAlO1xuICAgICAgXG4gICAgICAgICAgICAgIGEgeyBcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiRnYXAwICRnYXA7IFxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTowLjhlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHN0cm9uZyB7IFxuICAgICAgICAgICAgICAgICAgLy8gZm9udC1zaXplOmZvbnQtc2l6ZSgxMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zdW1tYXJ5IHsgXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiRnYXAwICRnYXA7IFxuICAgICAgICAgICAgICAgICAgc3Ryb25nIHsgXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdG9wOiAtMC4zNWVtO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTmF2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgYXNpZGUge1xuICAgIGdyaWQtcm93OjM7XG4gICAgZ3JpZC1jb2x1bW46MTtcbiAgICAmLnVuZ3JvdXBlZCB7IGRpc3BsYXk6bm9uZTsgXG4gICAgICB+IHNlY3Rpb24geyBncmlkLWNvbHVtbiA6IDEgLyAtMTsgfVxuICAgIH1cbiAgICBAYXQtcm9vdCBncmFkZS1maWx0ZXJbZGF0YS1jb3VudD1cIjFcIl0ge1xuICAgICAgc2VjdGlvbi5hY3RpdmUge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgfVxuICAgICAgYXNpZGUgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICB9XG4gICAgbmF2IHtcbiAgICAgIGRpc3BsYXk6ZmxleDsgXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTpmbGV4OyBcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBjb2xvcjokcHJpbWFyeTsgXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOjEwMCU7IFxuICAgICAgICBAaW5jbHVkZSBmb250LWxhdG8oc2VtaWJvbGQpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBwYWRkaW5nOiRnYXAgMDsgXG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgICBcbiAgICAgICAgc3ZnIHsgXG4gICAgICAgICAgd2lkdGg6NTBweDtcbiAgICAgICAgICBoZWlnaHQ6MzBweDtcbiAgICAgICAgICBmaWxsOiRibGFjazsgXG4gICAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAkdHJhbnNpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICArIGJ1dHRvbiB7IGJvcmRlci10b3A6MXB4IHNvbGlkICRncmV5NDsgfVxuICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgY29sb3I6JHNlY29uZGFyeTsgXG4gICAgICAgICAgc3ZnIHsgZmlsbDokc2Vjb25kYXJ5OyB9XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgICAgICAgc3ZnIHsgZmlsbDokc2Vjb25kYXJ5OyB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgYSB7IG1hcmdpbi10b3A6JHNwYWNlcjsgfVxuICAgIH1cbiAgfVxuXG4gIC5ncmFkZS1maWx0ZXItY3RhIHtcbiAgICBncmlkLWNvbHVtbjoxIC8gLTE7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4obGFyZ2UpIHtcbiAgICBhc2lkZSB7IGRpc3BsYXk6bm9uZTsgfVxuICAgIHNlY3Rpb24ge1xuICAgICAgYm9yZGVyLXRvcDoxcHggZGFzaGVkICRncmV5NDtcbiAgICAgIHBhZGRpbmctdG9wOiRnYXA7XG4gICAgICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBncmlkLXJvdzphdXRvO1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIC5oZWFkaW5nIHtcbiAgICAgICAgc3ZnIHsgZGlzcGxheTpibG9jazsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVuaXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8gZ2Fwcywgc3BhY2VycywgYW5kIGd1dHRlcnMgcmVsYXRpdmUgdG8gdGhlIGJhc2V2IHZhbHVlcyBkZWZpbmVkIGJlbG93LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgVmFsdWVzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2VcblxuLy8gVGhlc2UgdGhyZWUgdmFsdWVzIHdpbGwgYWN0IGEgY29uc3RhbnQgYmFzZWxpbmUgZm9yIGFsbCBmb2xsb3dpbmcgdW5pdCBkZWxjYXJhdGlvbnMuXG5cbi8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiRnYXAgOiAxNnB4ICFkZWZhdWx0O1xuJGJhc2UtZ2FwIDogJGdhcDtcblxuLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4kc3BhY2VyIDogNHZoICFkZWZhdWx0OyBcbiRiYXNlLXNwYWNlciA6ICRzcGFjZXI7IFxuXG4vLyBHdXR0ZXJzIG11c3QgdXNlIGEgJ3Z3JyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCB3aWR0aC13aXNlLiBcbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvciBtYXJnaW4gb24gYSBwYXJlbnQgbGV2ZWwuXG4vLyBBcyBhIHN1Z2dlc3Rpb24sIHRoaXMgZ3V0dGVyIGNvbnN0YW50IHNob3VsZCBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSBzcGFjZXIgdmFsdWUuXG4kZ3V0dGVyIDogM3Z3ICFkZWZhdWx0O1xuJGJhc2UtZ3V0dGVyIDogJGd1dHRlcjsgXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBc2JvbHV0ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuXG5AZnVuY3Rpb24gZ2FwKCRhbW91bnQgOiAxKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMSApIHsgXG4gICAgQHJldHVybiB2YXIoLS1nYXApOyBcbiAgfSBAZWxzZSB7IFxuICAgIEByZXR1cm4gY2FsYyh2YXIoLS1nYXApICogI3skYW1vdW50fSk7IFxuICB9XG59XG5cbiRnYXAwIDogZ2FwKDAuNSk7ICRnYXAwLSA6IGdhcCgtMC41KTtcbiRnYXAgIDogZ2FwKDEpOyAgICRnYXAtICA6IGdhcCgtMSk7XG4kZ2FwMiA6IGdhcCgyKTsgICAkZ2FwMi0gOiBnYXAoLTIpO1xuJGdhcDMgOiBnYXAoMyk7ICAgJGdhcDMtIDogZ2FwKC0zKTtcbiRnYXA0IDogZ2FwKDQpOyAgICRnYXA0LSA6IGdhcCgtNCk7XG4kZ2FwNSA6IGdhcCg1KTsgICAkZ2FwNS0gOiBnYXAoLTUpO1xuJGdhcDYgOiBnYXAoNik7ICAgJGdhcDYtIDogZ2FwKC02KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlbGF0aXZlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZ1bmN0aW9uIF9keW5hbWljLXVuaXQoJGN1c3RvbS1wcm9wZXJ0eSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuXG4gIC8vIENhbGMgTWV0aG9kXG4gICRyZXN1bHQgOiBjYWxjKCgjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSkgKyAje2lmKCRtaW4gPT0gMCwgMHB4LCAkbWluKX0pO1xuICBcbiAgLy8gQ2xhbXAgTWV0aG9kXG4gIEBpZiAoICR1c2UtY2xhbXAgKSB7XG4gICAgQGlmICggJGFtb3VudCA9PSAwICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7bWF0aC5kaXYoJG1pbiwgMil9LCAjeyRjdXN0b20tcHJvcGVydHl9ICogMC41LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIGlmICggJGFtb3VudCA9PSAxICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0sICN7JG1heH0pO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9LCAjeyRtYXh9KTtcbiAgICB9XG4gIH0gXG5cbiAgQGlmICggJHVzZS1uZWdhdGl2ZSApIHtcbiAgICAkcmVzdWx0IDogY2FsYygtMSAqICN7JHJlc3VsdH0pO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xuXG59IFxuXG4vLyBTcGFjZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBzcGFjZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tc3BhY2VyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRzcGFjZXIwIDogdmFyKC0tc3BhY2VyMCk7ICRzcGFjZXIwLSA6IHZhcigtLXNwYWNlcjAtKTtcbiRzcGFjZXIgIDogdmFyKC0tc3BhY2VyMSk7ICRzcGFjZXItICA6IHZhcigtLXNwYWNlcjEtKTtcbiRzcGFjZXIyIDogdmFyKC0tc3BhY2VyMik7ICRzcGFjZXIyLSA6IHZhcigtLXNwYWNlcjItKTtcbiRzcGFjZXIzIDogdmFyKC0tc3BhY2VyMyk7ICRzcGFjZXIzLSA6IHZhcigtLXNwYWNlcjMtKTtcbiRzcGFjZXI0IDogdmFyKC0tc3BhY2VyNCk7ICRzcGFjZXI0LSA6IHZhcigtLXNwYWNlcjQtKTtcbiRzcGFjZXI1IDogdmFyKC0tc3BhY2VyNSk7ICRzcGFjZXI1LSA6IHZhcigtLXNwYWNlcjUtKTtcbiRzcGFjZXI2IDogdmFyKC0tc3BhY2VyNik7ICRzcGFjZXI2LSA6IHZhcigtLXNwYWNlcjYtKTtcblxuLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEd1dHRlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgd2lkdGggKHZ3KSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBwYXJlbnQgbGV2ZWw7XG4vLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIGd1dHRlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1ndXR0ZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJGd1dHRlcjAgOiB2YXIoLS1ndXR0ZXIwKTsgJGd1dHRlcjAtIDogdmFyKC0tZ3V0dGVyMC0pO1xuJGd1dHRlciAgOiB2YXIoLS1ndXR0ZXIxKTsgJGd1dHRlci0gIDogdmFyKC0tZ3V0dGVyMS0pO1xuJGd1dHRlcjIgOiB2YXIoLS1ndXR0ZXIyKTsgJGd1dHRlcjItIDogdmFyKC0tZ3V0dGVyMi0pO1xuJGd1dHRlcjMgOiB2YXIoLS1ndXR0ZXIzKTsgJGd1dHRlcjMtIDogdmFyKC0tZ3V0dGVyMy0pO1xuJGd1dHRlcjQgOiB2YXIoLS1ndXR0ZXI0KTsgJGd1dHRlcjQtIDogdmFyKC0tZ3V0dGVyNC0pO1xuJGd1dHRlcjUgOiB2YXIoLS1ndXR0ZXI1KTsgJGd1dHRlcjUtIDogdmFyKC0tZ3V0dGVyNS0pO1xuJGd1dHRlcjYgOiB2YXIoLS1ndXR0ZXI2KTsgJGd1dHRlcjYtIDogdmFyKC0tZ3V0dGVyNi0pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuIFxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvdyBcbi8vLyBtYW55IG9wdGlvbnMgd2UgaGF2ZSBmb3IgYSBzaW5nbGUgY29sb3VyIGF0IGEgZ2xhbmNlLiBJZiB5b3Ugc2VlICRncmVlbjQsIHlvdSBrbm93IHRoaXNcbi8vLyBwcm9qZWN0IGlzIHVzaW5nIGZvdXIgdmFyaWF0aW9ucyBvZiBncmVlbi4gVGhpcyBpcyBhbHNvIG9mdGVuIHVzZWZ1bCBiZWNhdXNlIG1hbnkgZGV2ZWxvcG1lbnQgXG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLiBcbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsIFxuLy8vLyA8Y29sb3VyPi1kYXJrIGFuZCA8Y29sb3VyPi1saWdodC4gSWYgeW91IG5lZWQgYWRkaXRpb25hbCBzaGFkZXMgcGxlYXNlIHJlZnJhaW0gZnJvbSBnb2luZyBkb3duIFxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZSBcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS4gXG4vLy8gSXQgaXMgYmV0dGVyIHRvIGRlZmluZSBhIG5ldyBleHBsY2l0IGNvbG91ciBlbnRpcmVseS4gXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZSAgIDogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyICA6ICMyOTJCNjg7IC8vIE5ha2VkIExpbmtcbiRibHVlMyAgOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0ICA6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNSAgOiAjMDA5NUZGOyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXIgIFxuLy8gJHJlZCAgICA6ICNFMDNBNDA7IC8vIFNlY29uZGFyeVxuJHJlZCAgICA6ICNERjMwMzU7IC8vIFNlY29uZGFyeSAtIFRoaXMgcGFzc2VzIHRoZSBjb250cmFzdCByYXRpbyBhY2Nlc3NpYmlsaXR5IHRlc3QgaW4gR29vZ2xlcyBMaWdodGhvdXNlIFxuJGdyZXkgICA6ICM5Njk2OTU7XG4kZ3JleTIgIDogIzZBNkE2QTsgLy8gRm9udFxuJGdyZXkzICA6ICNGNEY0RjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQgIDogI2RjZGNkYzsgXG4kZ3JleTUgIDogI0IxQjFCMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTYgIDogIzMzMzIzNjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyICBcbiRncmVlbiAgOiAjNTBCQzA4O1xuJGdyZWVuMiA6ICM3NmJiMjg7IC8vIEVTRyBncmVlblxuJHllbGxvdyA6ICNGNkY0REI7IC8vIERpc2NsYWltZXIgQmFja2dyb3VuZFxuJHllbGxvdzIgOiAjRkNCMDAyOyBcbiRibGFjayAgOiAjMUUxQTFBO1xuXG4kbWFyayA6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRwcmltYXJ5ICAgOiB2YXIoLS1wcmltYXJ5LCAgI3skYmx1ZX0pO1xuJHNlY29uZGFyeSA6IHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuIFxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJyB3aXRoIChcbiAgJGJsdWUgICA6ICRibHVlLFxuICAkcmVkICAgIDogJHJlZCxcbiAgJGdyZXkgICA6ICRncmV5LFxuICAkeWVsbG93IDogJHllbGxvdyxcbiAgJGdyZWVuICA6ICRncmVlbixcbiAgJGJsYWNrICA6ICRibGFja1xuKTtcbiIsImdyYWRlLWZpbHRlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzAwcHggMWZyO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbn1cbmdyYWRlLWZpbHRlciA+IGgyIHtcbiAgZ3JpZC1yb3c6IDE7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxuZ3JhZGUtZmlsdGVyIGZpbHRlci1iYXIge1xuICBncmlkLXJvdzogMjtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBncmlkLWdhcDogdmFyKC0tZ2FwKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIGJ1dHRvbi5maWx0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBncmlkLXJvdzogMTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDEuOGVtO1xufVxuZ3JhZGUtZmlsdGVyIGZpbHRlci1iYXIgYnV0dG9uLmZpbHRlciBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuNzVlbTtcbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIGJ1dHRvbi5maWx0ZXIgc3ZnIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgZmlsbDogIzk2OTY5NTtcbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIC5kYXRhbGlzdC1ncm91cCB7XG4gIGdyaWQtcm93OiAxO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogMjBweCB2YXIoLS1nYXApO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgZ3JhZGUtZmlsdGVyIGZpbHRlci1iYXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICBncmFkZS1maWx0ZXIgZmlsdGVyLWJhciBidXR0b24uZmlsdGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xuICB9XG4gIGdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIC5kYXRhbGlzdC1ncm91cCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIGRhdGFsaXN0LXdyYXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIGRhdGFsaXN0LXdyYXAgbGFiZWwge1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiAjMUUxQTFBO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG5ncmFkZS1maWx0ZXIgZmlsdGVyLWJhciBkYXRhbGlzdC13cmFwIGlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAxMnB4IHZhcigtLWdhcCk7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzZBNkE2QTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Y0RjRGNDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIGRhdGFsaXN0LXdyYXAgaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuZ3JhZGUtZmlsdGVyIGZpbHRlci1iYXIgZGF0YWxpc3Qtd3JhcCBpbnB1dDp2YWxpZCArIGJ1dHRvbi5jbGVhciB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG5ncmFkZS1maWx0ZXIgZmlsdGVyLWJhciBkYXRhbGlzdC13cmFwIGJ1dHRvbi5jbGVhciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMXB4O1xuICB0b3A6IDFweDtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAycHgpO1xuICBwYWRkaW5nOiAwIHZhcigtLWdhcCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTtcbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIGRhdGFsaXN0LXdyYXAgYnV0dG9uLmNsZWFyIHN2ZyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiAjMTMxZjZiO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmdyYWRlLWZpbHRlciBmaWx0ZXItYmFyIGRhdGFsaXN0LXdyYXAgYnV0dG9uLmNsZWFyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcmlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSwgd2hpdGUpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZ3JhZGUtZmlsdGVyIGZpbHRlci1iYXIgZGF0YWxpc3Qtd3JhcCBidXR0b24uY2xlYXI6aG92ZXIgc3ZnIHtcbiAgICBjb2xvcjogI0RGMzAzNTtcbiAgfVxufVxuZ3JhZGUtZmlsdGVyIGZpbHRlci1iYXIgZGF0YWxpc3Qtd3JhcC5hY3RpdmUgaW5wdXQge1xuICBib3JkZXItY29sb3I6ICMxMzFmNmI7XG59XG5ncmFkZS1maWx0ZXIgcCNuby1yZXN1bHRzIHtcbiAgZ3JpZC1yb3c6IDM7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxuZ3JhZGUtZmlsdGVyIHAjbm8tcmVzdWx0cy5oaWRkZW4ge1xuICBkaXNwbGF5OiBOb25lO1xufVxuZ3JhZGUtZmlsdGVyIHNlY3Rpb24ge1xuICBncmlkLXJvdzogMztcbiAgZ3JpZC1jb2x1bW46IDI7XG59XG5ncmFkZS1maWx0ZXIgc2VjdGlvbjpub3QoLnVuZ3JvdXBlZCkge1xuICBkaXNwbGF5OiBub25lO1xufVxuZ3JhZGUtZmlsdGVyIHNlY3Rpb24gLmhlYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5ncmFkZS1maWx0ZXIgc2VjdGlvbiAuaGVhZGluZyBzdmcge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMS42ZW07XG4gIGhlaWdodDogMS42ZW07XG59XG5ncmFkZS1maWx0ZXIgc2VjdGlvbiAuaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIC0tYXNwZWN0LXJhdGlvOiAzODAvOTA7XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMzgwLzkwKSB7XG4gIGdyYWRlLWZpbHRlciBzZWN0aW9uIC5pbWFnZSB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBncmFkZS1maWx0ZXIgc2VjdGlvbiAuaW1hZ2UgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbmdyYWRlLWZpbHRlciBzZWN0aW9uIC50ZXh0IHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbn1cbmdyYWRlLWZpbHRlciBzZWN0aW9uIC50ZXh0IHVsIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5ncmFkZS1maWx0ZXIgc2VjdGlvbiAudGV4dCA+IGZpZ3VyZSB7XG4gIHBhZGRpbmc6IDA7XG59XG5ncmFkZS1maWx0ZXIgc2VjdGlvbi5hY3RpdmUge1xuICBkaXNwbGF5OiB1bnNldDtcbn1cbmdyYWRlLWZpbHRlciBzZWN0aW9uIGFydGljbGUgaDQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuZ3JhZGUtZmlsdGVyIHNlY3Rpb24gYXJ0aWNsZSBoNDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbnVsLmdyYWRlcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTtcbiAgZ3JpZC1nYXA6IHZhcigtLWdhcCk7XG59XG51bC5ncmFkZXMgbGkge1xuICAtLWhvdmVyLWhlaWdodDogY2FsYygyMDAlICsgdmFyKC0tZ2FwKSk7XG4gIC0taG92ZXItd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIHRyYW5zaXRpb246IHotaW5kZXggMHMgMC42cyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG59XG51bC5ncmFkZXMgbGkgPiAqIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG51bC5ncmFkZXMgbGkgPiAqIG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzogaW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbn1cbnVsLmdyYWRlcyBsaSA+ICogLnN1bW1hcnkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGluc2V0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBoZWlnaHQgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHdpZHRoIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnVsLmdyYWRlcyBsaSA+ICogLnN1bW1hcnk6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgI0RGMzAzNSAyMHB4KTtcbn1cbnVsLmdyYWRlcyBsaSA+ICogLnN1bW1hcnkgc3Ryb25nIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIDAuNHMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xufVxudWwuZ3JhZGVzIGxpID4gKiAuc3VtbWFyeSBwLCB1bC5ncmFkZXMgbGkgPiAqIC5zdW1tYXJ5OjphZnRlciB7XG4gIGZvbnQtc2l6ZTogMC44MTI1ZW07XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG51bC5ncmFkZXMgbGkgPiAqID4gc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxudWwuZ3JhZGVzIGxpID4gKiBlbSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgdWwuZ3JhZGVzIGxpID4gKjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbiAgfVxuICB1bC5ncmFkZXMgbGkgPiAqOmhvdmVyLCB1bC5ncmFkZXMgbGkgPiAqOmhvdmVyIHN0cm9uZyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICB1bC5ncmFkZXMgbGk6aG92ZXIge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcyAhaW1wb3J0YW50O1xuICB9XG4gIHVsLmdyYWRlcyBsaTpob3ZlciA+ICogLnN1bW1hcnkge1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xuICAgIGhlaWdodDogdmFyKC0taG92ZXItaGVpZ2h0KTtcbiAgICB3aWR0aDogdmFyKC0taG92ZXItd2lkdGgpO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RGMzAzNTtcbiAgfVxuICB1bC5ncmFkZXMgbGk6aG92ZXIgPiAqIC5zdW1tYXJ5IHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgfVxuICB1bC5ncmFkZXMgbGk6aG92ZXIgPiAqIC5zdW1tYXJ5IHAsIHVsLmdyYWRlcyBsaTpob3ZlciA+ICogLnN1bW1hcnk6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNHM7XG4gIH1cbiAgdWwuZ3JhZGVzIGxpOmhvdmVyIH4gKiB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHMsIDBzICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDAgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMgIWltcG9ydGFudDtcbiAgfVxufVxudWwuZ3JhZGVzIGxpLm5vLXN1bW1hcnkgLnN1bW1hcnkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jZ3JhZGVzLXNpZGViYXItbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG59XG4jZ3JhZGVzLXNpZGViYXItbGlzdCBoNCB7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjMUUxQTFBO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuI2dyYWRlcy1zaWRlYmFyLWxpc3QgdWwuZ3JhZGVzIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ3JpZC1nYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG4jZ3JhZGVzLXNpZGViYXItbGlzdCB1bC5ncmFkZXMgbGkge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBtaW4taGVpZ2h0OiBhdXRvO1xuICAtLWhvdmVyLWhlaWdodDogY2FsYygzMDAlICsgdmFyKC0tZ2FwKSArIDRweCk7XG59XG4jZ3JhZGVzLXNpZGViYXItbGlzdCB1bC5ncmFkZXMgbGkgYSB7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xufVxuI2dyYWRlcy1zaWRlYmFyLWxpc3QgdWwuZ3JhZGVzIGxpIGEgLnN1bW1hcnkge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG59XG4jZ3JhZGVzLXNpZGViYXItbGlzdCB1bC5ncmFkZXMgbGkgYSAuc3VtbWFyeSBzdHJvbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmdyYWRlLWZpbHRlciBhc2lkZSB7XG4gIGdyaWQtcm93OiAzO1xuICBncmlkLWNvbHVtbjogMTtcbn1cbmdyYWRlLWZpbHRlciBhc2lkZS51bmdyb3VwZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuZ3JhZGUtZmlsdGVyIGFzaWRlLnVuZ3JvdXBlZCB+IHNlY3Rpb24ge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cbmdyYWRlLWZpbHRlcltkYXRhLWNvdW50PVwiMVwiXSBzZWN0aW9uLmFjdGl2ZSB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxuZ3JhZGUtZmlsdGVyW2RhdGEtY291bnQ9XCIxXCJdIGFzaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZ3JhZGUtZmlsdGVyIGFzaWRlIG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5ncmFkZS1maWx0ZXIgYXNpZGUgbmF2IGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmdyYWRlLWZpbHRlciBhc2lkZSBuYXYgYnV0dG9uIHN2ZyB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGZpbGw6ICMxRTFBMUE7XG4gIHRyYW5zaXRpb246IGZpbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5ncmFkZS1maWx0ZXIgYXNpZGUgbmF2IGJ1dHRvbiArIGJ1dHRvbiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZ3JhZGUtZmlsdGVyIGFzaWRlIG5hdiBidXR0b246aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xuICB9XG4gIGdyYWRlLWZpbHRlciBhc2lkZSBuYXYgYnV0dG9uOmhvdmVyIHN2ZyB7XG4gICAgZmlsbDogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbiAgfVxufVxuZ3JhZGUtZmlsdGVyIGFzaWRlIG5hdiBidXR0b24uYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG59XG5ncmFkZS1maWx0ZXIgYXNpZGUgbmF2IGJ1dHRvbi5hY3RpdmUgc3ZnIHtcbiAgZmlsbDogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbn1cbmdyYWRlLWZpbHRlciBhc2lkZSBuYXYgYSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xufVxuZ3JhZGUtZmlsdGVyIC5ncmFkZS1maWx0ZXItY3RhIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgZ3JhZGUtZmlsdGVyIGFzaWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGdyYWRlLWZpbHRlciBzZWN0aW9uIHtcbiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICNkY2RjZGM7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWdhcCk7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBncmlkLXJvdzogYXV0bztcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICBncmFkZS1maWx0ZXIgc2VjdGlvbiAuaGVhZGluZyBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcmVhayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JyZWFrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gb3V0KCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JGJyZWFrcG9pbnQgKyAxfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbigkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1heC13aWR0aDojeyRicmVha3BvaW50fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skbWlufSkgYW5kIChtYXgtd2lkdGg6I3skbWF4fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVuaXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gQHNlZSBodHRwczovL2NvZGVwZW4uaW8vbWFya25vdHRvbi9wZW4vRXhQYk5HZVxuLy8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hcmtub3R0b24vZG9nZ2lzdHlsZS9ibG9iL21hc3Rlci9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3NcblxuLy8vIFRoaXMgdW5pdHMgY3JlYXRvciB3aWxsIHJlbmRlciBzaXggcG9zaXRpdmUgYW5kIHNpeCBuZWdhdGl2ZSBzYXNzIHZhcmlhYmxlcyBmb3IgXG4vLy8gZ2Fwcywgc3BhY2VycywgYW5kIGd1dHRlcnMgcmVsYXRpdmUgdG8gdGhlIGJhc2UgdmFsdWVzIGRlZmluZWQgYmVsb3cuIFxuXG5AZm9yd2FyZCAnY3JlYXRlL3VuaXRzJyB3aXRoIChcblxuICAvLy8gR2FwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8vIEdhcHMgYXJlIGFuIGFic29sdXRlIHVuaXQgKHB4KSBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGluZGl2aWR1YWwgZWxlbWVudHMgd2l0aGluIGEgY29tcG9uZW50ZWQuIFxuICAvLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBzcGFjaW5nIGFtb25nc3QgYmxvY2ssIGlubGluZSwgdGFibGUgYW5kIGdyb3VwIGh0bWwgZWxlbWVudHMuXG4gIC8vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuICAvLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4gIC8vLyBAcmVzdWx0IDogJGdhcDAsICRnYXAsICRnYXAyLCAkZ2FwMywgJGdhcDQsICRnYXA1ICwgJGdhcDYsICRnYXAwLSwgJGdhcC0sICRnYXAyLSwgJGdhcDMtLCAkZ2FwNC0sICRnYXA1LSBhbmQgJGdhcDYtXG4gIFxuICAkZ2FwIDogMTZweCxcblxuICAvLyBTcGFjZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTcGFjZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IGhlaWdodCAodmgpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIGNvbXBvbmVudGVkIGxldmVsLlxuICAvLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbiAgLy8vIFNwYWNlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJHNwYWNlciAqIHgpICsgJGdhcGAuIFxuICAvLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZoIHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcbiAgLy8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuICAvLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuICAvLy8gQHJlc3VsdCA6ICRzcGFjZXIwLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyNCwgJHNwYWNlcjUsICRzcGFjZXI2LCAkc3BhY2VyMC0sICRzcGFjZXItLCAkc3BhY2VyLSwgJHNwYWNlci0sICRzcGFjZXI0LSwgJHNwYWNlcjUtIGFuZCAkc3BhY2VyNi1cbiAgXG4gICRzcGFjZXIgOiA0dmgsIFxuXG4gIC8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEd1dHRlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgd2lkdGggKHZ3KSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBwYXJlbnQgbGV2ZWw7XG4gIC8vIGZvciBleGFtcGxlLCBhIHdyYXBwZXIgY29udGFpbmVyIG9yIGJvZHkgd2l0aCBuZXN0ZWQgY29tcG9uZW50cy4gXG4gIC8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4gIC8vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbiAgLy8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG4gIC8vLyBHdXR0ZXJzIG11c3QgdXNlIGEgJ3Z3JyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCB3aWR0aC13aXNlLiBcbiAgLy8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvciBtYXJnaW4gb24gYSBwYXJlbnQgbGV2ZWwuXG4gIC8vLyBBcyBhIHN1Z2dlc3Rpb24sIHRoaXMgZ3V0dGVyIGNvbnN0YW50IHNob3VsZCBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSBzcGFjZXIgdmFsdWUuXG4gIC8vLyBAcmVzdWx0IDogJGd1dHRlcjAsICRndXR0ZXIsICRndXR0ZXIyLCAkZ3V0dGVyMywgJGd1dHRlcjQsICRndXR0ZXI1LCAkZ3V0dGVyNiwgJGd1dHRlcjAtLCAkZ3V0dGVyLSwgJGd1dHRlcjItLCAkZ3V0dGVyMy0sICRndXR0ZXI0LSwgJGd1dHRlcjUtIGFuZCAkZ3V0dGVyNi1cbiAgXG4gICRndXR0ZXIgOiAzdncsIFxuXG4pO1xuXG4kYm9yZGVyLXJhZGl1cyA6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4kc2lkZWJhci13aWR0aCA6IDUwMHB4OyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGhvdmVyKCRzZWxlY3RvciA6IG51bGwpIHtcbiAgQG1lZGlhICggaG92ZXIgOiBob3ZlciApIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2VsZWN0b3Ige1xuICAgICYjeyRzZWxlY3Rvcn0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBBc3BlY3QgUmF0aW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYXNwZWN0LXJhdGlvXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczpzdHJpbmdcIjtcblxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxNi85KVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCRyYXRpbyA6ICcxNi85Jykge1xuXG4gIC0tYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG5cbiAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAje3N0cmluZy51bnF1b3RlKCRyYXRpbyl9KSB7XG4gICAgYXNwZWN0LXJhdGlvOmluaXRpYWw7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJS8odmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgICA+ICogeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0gXG4gIH1cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuXG5AbWl4aW4gbWFyaygpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cnMtbWFyaztcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKCN7JGJvcmRlci1yYWRpdXN9IC8gMik7XG4gIHBhZGRpbmc6MCA1cHg7XG4gIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xufVxuXG5AbWl4aW4gbWFyay1yZXNldCgpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG4gIHBhZGRpbmc6aW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3VyIFBhbGV0dGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCIuL21vZHVsZXMvY29sb3VyXCI7XG5cbi8vIEFkanVzdCB0aGVzZSB0byBhbWVuZCB0aGUgbGlnaHRuZXNzIG9yIGRhcmtuZXNzIGFtb3VudHMgZm9yIHRoZSBjb2xvdXJzIGxzaXRlZCBiZWxvdy4uIFxuXG4kX2xpZ2h0bmVzcyA6IDE1JSAhZGVmYXVsdDtcbiRfZGFya25lc3MgIDogMjAlICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tbW9uIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRyZWQgICAgICAgICAgOiAjOTcwODBFICFkZWZhdWx0O1xuJHJlZC1saWdodCAgICA6IGNvbG91ci5saWdodGVuKCRyZWQsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRyZWQtZGFyayAgICAgOiBjb2xvdXIuZGFya2VuKCRyZWQsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kb3JhbmdlICAgICAgIDogI0RBNEIwRiAhZGVmYXVsdDtcbiRvcmFuZ2UtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkb3JhbmdlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kb3JhbmdlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkb3JhbmdlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHllbGxvdyAgICAgICA6ICNFOUIxMDQgIWRlZmF1bHQ7XG4keWVsbG93LWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHllbGxvdywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHllbGxvdy1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHllbGxvdywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmVlbiAgICAgICAgOiAjNDg4QzEzICFkZWZhdWx0O1xuJGdyZWVuLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRncmVlbiwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZWVuLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGdyZWVuLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJsdWUgICAgICAgICA6ICMxQjU1QzAgIWRlZmF1bHQ7XG4kYmx1ZS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGJsdWUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRibHVlLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRibHVlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHBpbmsgICAgICAgICA6ICNFMDVENkIgIWRlZmF1bHQ7XG4kcGluay1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJHBpbmssICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwaW5rLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRwaW5rLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHB1cnBsZSAgICAgICA6ICM2MTNENUEgIWRlZmF1bHQ7XG4kcHVycGxlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHB1cnBsZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHB1cnBsZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHB1cnBsZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmV5ICAgICAgICAgOiAjNzg3ODc4ICFkZWZhdWx0O1xuJGdyZXktbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRncmV5LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JleS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkZ3JleSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRicm93biAgICAgICAgOiAjNzc0RjM4ICFkZWZhdWx0O1xuJGJyb3duLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRicm93biwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJyb3duLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGJyb3duLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHdoaXRlICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQgO1xuJHdoaXRlLWRhcmsgICA6IGNvbG91ci5saWdodGVuKCR3aGl0ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuXG4kYmxhY2sgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdCA7XG4kYmxhY2stbGlnaHQgIDogY29sb3VyLmRhcmtlbigkYmxhY2ssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU29jaWFsIE1lZGlhIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vd3d3LmxvY2tlZG93bnNlby5jb20vc29jaWFsLW1lZGlhLWNvbG9ycy9cblxuJGZhY2Vib29rOiAgICAjMTg3N2YyICFkZWZhdWx0O1xuJHR3aXR0ZXI6ICAgICAjMWRhMWYyICFkZWZhdWx0O1xuJGdvb2dsZTogICAgICAjNDI4NWY0ICFkZWZhdWx0O1xuJHlvdXR1YmU6ICAgICAjZmYwMDAwICFkZWZhdWx0O1xuJGxpbmtlZGluOiAgICAjMDA3YmI1ICFkZWZhdWx0O1xuJGluc3RhZ3JhbTogICAjYzMyYWEzICFkZWZhdWx0O1xuJHBpbnRlcmVzdDogICAjYmQwODFjICFkZWZhdWx0O1xuJGRhaWx5bW90aW9uOiAjMDA2NkRDICFkZWZhdWx0O1xuJHNuYXBjaGF0OiAgICAjZmZmYzAwICFkZWZhdWx0O1xuJGZsaWNrcjogICAgICAjZjQwMDgzICFkZWZhdWx0O1xuJHZpbWVvOiAgICAgICAjMWFiN2VhICFkZWZhdWx0O1xuJHRodW1ibGVyOiAgICAjMzU0NjVkICFkZWZhdWx0O1xuJHJlZGRpdDogICAgICAjZmY0NTAwICFkZWZhdWx0O1xuJHdoYXRzYXBwOiAgICAjMjVkMzY2ICFkZWZhdWx0O1xuJHNreXBlOiAgICAgICAjMDBhZmYwICFkZWZhdWx0O1xuJGRpc2NvcmQ6ICAgICAjNzI4OWRhICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhIDogKFxuICBmYWNlYm9vazogICAgICRmYWNlYm9vayxcbiAgdHdpdHRlcjogICAgICAkdHdpdHRlcixcbiAgZ29vZ2xlOiAgICAgICAkZ29vZ2xlLFxuICB5b3V0dWJlOiAgICAgICR5b3V0dWJlLFxuICBsaW5rZWRpbjogICAgICRsaW5rZWRpbixcbiAgaW5zdGFncmFtOiAgICAkaW5zdGFncmFtLFxuICBwaW50ZXJlc3Q6ICAgICRwaW50ZXJlc3QsXG4gIGRhaWx5bW90aW9uOiAgJGRhaWx5bW90aW9uLFxuICBzbmFwY2hhdDogICAgICRzbmFwY2hhdCxcbiAgZmxpY2tyOiAgICAgICAkZmxpY2tyLFxuICB2aW1lbzogICAgICAgICR2aW1lbyxcbiAgdGh1bWJsZXI6ICAgICAkdGh1bWJsZXIsXG4gIHJlZGRpdDogICAgICAgJHJlZGRpdCxcbiAgd2hhdHNhcHA6ICAgICAkd2hhdHNhcHAsXG4gIHNreXBlOiAgICAgICAgJHNreXBlLFxuICBkaXNjb3JkOiAgICAgICRkaXNjb3JkXG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3RoZXIgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHllbGxvOiAjRkZDQjA4ICFkZWZhdWx0O1xuXG4vLy8gSGFuZGxlcyB0aGUgY3Vyc29yIHNlbGVjdGlvbiBjb2xvdXJcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9zZWxlY3RvcnMvcy9zZWxlY3Rpb24vXG5cbiRoaWdobGlnaHQ6ICNCMkQzRkEgIWRlZmF1bHQ7IFxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhlYWRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJy4vY29sbGVjdGlvbnMvZm9udCc7XG5AdXNlICcuL21vZHVsZXMvdW5pdCc7XG5cbi8vIERlZmF1bHQgSGVhZGluZyBWYWx1ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDMuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuMVxuKSAhZGVmYXVsdDtcblxuJGgyIDogKFxuICAnZm9udC1zaXplJyAgIDogMi41cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4zXG4pICFkZWZhdWx0O1xuXG4kaDMgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjJyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNCA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg1IDogKFxuICAnZm9udC1zaXplJyAgIDogMS44cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDYgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjZyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRiYXNlIDogNjIuNSAhZGVmYXVsdDtcbiRzY2FsZXIgOiAxLjV2dyAhZGVmYXVsdDtcbiRlbmFibGUtY3JvcHBpbmcgOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFsbGJhY2sgTGluZS1oZWlnaHRzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDEsIFwibGluZS1oZWlnaHRcIikgeyAkaDEgOiBtYXAuc2V0KCRoMSwgJ2xpbmUtaGVpZ2h0JywgMS4xKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDIsIFwibGluZS1oZWlnaHRcIikgeyAkaDIgOiBtYXAuc2V0KCRoMiwgJ2xpbmUtaGVpZ2h0JywgMS4zKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDMsIFwibGluZS1oZWlnaHRcIikgeyAkaDMgOiBtYXAuc2V0KCRoMywgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDQsIFwibGluZS1oZWlnaHRcIikgeyAkaDQgOiBtYXAuc2V0KCRoNCwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDUsIFwibGluZS1oZWlnaHRcIikgeyAkaDUgOiBtYXAuc2V0KCRoNSwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDYsIFwibGluZS1oZWlnaHRcIikgeyAkaDYgOiBtYXAuc2V0KCRoNiwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuXG4vLyBEZWZpbmUgdGhlIHZhcmlhYmxlcyBzbyB0aGV5IGFyZSBzdGlsbCBhY2Nlc2libGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgxLCAnZm9udC1zaXplJyk7XG4kaDEtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgxLCAnbGluZS1oZWlnaHQnKTtcbiRoMS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDEsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgyLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMiwgJ2ZvbnQtc2l6ZScpO1xuJGgyLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDItZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDItc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgyLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoMy1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDMsICdmb250LXNpemUnKTtcbiRoMy1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDMsICdsaW5lLWhlaWdodCcpO1xuJGgzLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgzLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMywgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDQtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg0LCAnZm9udC1zaXplJyk7XG4kaDQtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg0LCAnbGluZS1oZWlnaHQnKTtcbiRoNC1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNC1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDQsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg1LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNSwgJ2ZvbnQtc2l6ZScpO1xuJGg1LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDUtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDUtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg1LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNi1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDYsICdmb250LXNpemUnKTtcbiRoNi1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDYsICdsaW5lLWhlaWdodCcpO1xuJGg2LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg2LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNiwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4vLyBIYW5kbGVzIENyb3BzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kX2gxLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDIsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDMtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgzLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g0LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNCwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNS1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDUsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDYtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg2LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG5cbiRfaDEtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDQtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcblxuXG4vLyBNaXhpbnMgZm9yIGVhY2ggaGVhZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gX3NldC1jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3ApIHtcblxuICBAaWYgKG1ldGEudHlwZS1vZigkY3JvcCkgPT0gJ21hcCcpIHtcblxuICAgICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG4gICAgJHRvcCAgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwidG9wXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwidG9wXCIpKSwgMCk7XG4gICAgJGJvdHRvbSAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwiYm90dG9tXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwiYm90dG9tXCIpKSwgMCk7XG5cbiAgICBAaW5jbHVkZSBmb250LmNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkdG9wLCAkYm90dG9tKTtcblxuICB9XG5cbn1cblxuQG1peGluIGgxKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgxLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgxLWZvbnQtc2l6ZS1taW4gYW5kICRoMS1mb250LXNpemUtbWluIDwgJGgxLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplLW1pbil9LCAjeyRoMS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDEtZm9udC1zaXplLCAkaDEtbGluZS1oZWlnaHQsICRfaDEtY3JvcC10b3AsICRfaDEtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMS1saW5lLWhlaWdodDsgXG4gICAgfVxuXG4gIH1cblxufVxuXG5AbWl4aW4gaDIoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDItZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDItZm9udC1zaXplLW1pbiBhbmQgJGgyLWZvbnQtc2l6ZS1taW4gPCAkaDItZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMi1mb250LXNpemUtbWluKX0sICN7JGgyLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMi1mb250LXNpemUsICRoMi1saW5lLWhlaWdodCwgJF9oMi1jcm9wLXRvcCwgJF9oMi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgyLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDMoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDMtZm9udC1zaXplLW1pbiBhbmQgJGgzLWZvbnQtc2l6ZS1taW4gPCAkaDMtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMy1mb250LXNpemUtbWluKX0sICN7JGgzLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMy1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMy1mb250LXNpemUsICRoMy1saW5lLWhlaWdodCwgJF9oMy1jcm9wLXRvcCwgJF9oMy1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgzLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDQoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDQtZm9udC1zaXplLW1pbiBhbmQgJGg0LWZvbnQtc2l6ZS1taW4gPCAkaDQtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNC1mb250LXNpemUtbWluKX0sICN7JGg0LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNC1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNC1mb250LXNpemUsICRoNC1saW5lLWhlaWdodCwgJF9oNC1jcm9wLXRvcCwgJF9oNC1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg0LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDUoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDUtZm9udC1zaXplLW1pbiBhbmQgJGg1LWZvbnQtc2l6ZS1taW4gPCAkaDUtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNS1mb250LXNpemUtbWluKX0sICN7JGg1LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNS1mb250LXNpemUsICRoNS1saW5lLWhlaWdodCwgJF9oNS1jcm9wLXRvcCwgJF9oNS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg1LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDYoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDYtZm9udC1zaXplLW1pbiBhbmQgJGg2LWZvbnQtc2l6ZS1taW4gPCAkaDYtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNi1mb250LXNpemUtbWluKX0sICN7JGg2LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wMigkaDYtZm9udC1zaXplLCAkaDYtbGluZS1oZWlnaHQsICRfaDYtY3JvcC10b3AsICRfaDYtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEZvbnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ2NvbG91cnMnIGFzICo7XG5cbiRjb2xvdXIgICAgICA6ICRncmV5MjtcbiRzaXplICAgICAgICA6IDEuNXJlbSAhZGVmYXVsdDtcbiRzaXplLW1pbiAgICA6IDEuNHJlbSAhZGVmYXVsdDsgXG4kc2l6ZS1tYXggICAgOiAxLjZyZW0gIWRlZmF1bHQ7IFxuJGxpbmUtaGVpZ2h0IDogMS42ICFkZWZhdWx0OyBcblxuJHNpemUtaDEgICAgIDogNi4xZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMS1taW4gOiA0ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMiAgICAgOiAzLjJlbSAhZGVmYXVsdDtcbiRzaXplLWgzICAgICA6IDIuNWVtICFkZWZhdWx0O1xuJHNpemUtaDQgICAgIDogMS43ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNSAgICAgOiAxLjdlbSAhZGVmYXVsdDtcbiRzaXplLWg2ICAgICA6IDEuN2VtICFkZWZhdWx0O1xuICBcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gTGF0byBGb250XG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoaXMgZm9udCBpdCBwcmltYXJpbHkgdXNlZCBmb3IgaGVhZGluZ3MgKDxoKj4gdGFncylcbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBmb250LWxhdG8oYm9sZClcblxuQG1peGluIGxhdG8oJHdlaWdodDpyZWd1bGFyKSB7XG5cbiAgZm9udC1mYW1pbHk6bGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG4gIEBpZiAoICR3ZWlnaHQgPT0gJ3JlZ3VsYXInKSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ3NlbWktYm9sZCcgb3IgJHdlaWdodCA9PSAnc2VtaWJvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2JvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxuXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gTW9udHNlcnJhdCBGb250XG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoaXMgaXMgdGhlIGJhc2UgZm9udCB1c2VkIGZvciBhbGwgc3RhbmRhcmQgY29weSB0aHJvdWdob3V0IHRoZSBzaXRlLlxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGZvbnQtbW9udHNlcnJhdCgpXG5cbkBtaXhpbiBtb250c2VycmF0KCR3ZWlnaHQ6cmVndWxhcikge1xuXG4gIGZvbnQtZmFtaWx5Om1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIFxuICBAaWYgKCAkd2VpZ2h0ID09ICdyZWd1bGFyJykge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9IEBlbHNlIGlmICggJHdlaWdodCA9PSAnaXRhbGljJykge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9IEBlbHNlIGlmICggJHdlaWdodCA9PSAnYm9sZCcpIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbn0iXX0= */