.search-teaser {
  overflow: hidden;
  padding-top: 2em;
  margin-bottom: 3%;
  position: relative;
  border-bottom: solid 1px #d4d4d5; }
  .search-teaser .search-image {
    float: left;
    width: 19%;
    padding-right: 3%;
    padding-bottom: 3%;
    margin-right: 3%;
    border-right: solid 1px #d4d4d5; }
    .search-teaser .search-image img {
      margin-top: -2em; }
  .search-teaser .summary {
    float: left;
    width: 75%;
    padding-bottom: 3%;
    margin-top: -2em; }
    .search-teaser .summary h2, .search-teaser .summary h4 {
      margin-top: 0;
      margin-bottom: 0.2em;
      font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
      font-weight: normal;
      text-transform: uppercase;
      line-height: 1.4em;
      font-size: 0.8em; }
    .search-teaser .summary p {
      font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
      font-size: 0.8em;
      margin-bottom: 0.2em; }
  .search-teaser span.category {
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 0.5em;
    font-size: 0.75em;
    display: block;
    line-height: 1.4em;
    color: #fff;
    background: #5a5e5d; }

@media only screen and (max-device-width: 480px) {
  .search-teaser {
    padding-top: 0;
    margin-bottom: 5%;
    border-bottom: solid 1px #d4d4d5; }
    .search-teaser .search-image {
      float: left;
      width: 35%;
      padding-right: 0;
      padding-bottom: 34px;
      margin-right: 3%;
      border-right: none; }
      .search-teaser .search-image img {
        margin-top: 0; }
    .search-teaser .summary {
      float: left;
      width: 60%;
      padding-bottom: 34px;
      margin-top: 0; }
      .search-teaser .summary h2 {
        text-align: left; }
      .search-teaser .summary p {
        display: none; }
  span.category {
    padding: 7px;
    line-height: 20px; } }

.showcontent,
.additional-content,
#myaccount-bar,
#bidnow-bar,
.filter-content.closed {
  display: none; }

.widget-img_frame {
  width: 100%;
  display: block;
  position: relative; }
  .widget-img_frame img {
    max-width: 100%; }

#scroller {
  z-index: 500; }
  #scroller .widget {
    max-width: 245px; }

.d1-d4 #scroller .widget {
  max-width: inherit;
  width: 326px; }

.widget-title {
  margin: 0 0 6px 0;
  font-size: 0.9em;
  font-family: "Cormorant Garamond", serif;
  padding: 0.5em 1em 0.55em;
  display: block;
  max-width: auto;
  text-align: center;
  color: #fff;
  background: #5a5e5d;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }

#block-views-fbde79c77db4e504432074fa557a2b39 .widget-title,
.region-bottom .widget-title {
  margin: 0 1.5% 0.5em;
  font-size: 3.375em;
  font-family: "Cormorant Garamond", serif;
  color: #231F20;
  padding-left: 0;
  padding-right: 0;
  margin: 0px 0px 6px;
  font-size: 3.375rem;
  padding: 0;
  text-align: left;
  background: none; }

.widget-ctas {
  overflow: hidden; }
  .widget-area .widget-ctas {
    overflow: visible !important; }
  .widget-ctas .button, .widget-ctas .block-apachesolr-sort .form-submit, .block-apachesolr-sort .widget-ctas .form-submit, .widget-ctas #block-mod-hookson-hookson-search .form-submit, #block-mod-hookson-hookson-search .widget-ctas .form-submit, .widget-ctas #user-login .form-submit, #user-login .widget-ctas .form-submit {
    font-size: 0.9em;
    display: block;
    padding: 0.7em 1em 0.7625em; }
    .widget-ctas .button i, .widget-ctas .block-apachesolr-sort .form-submit i, .block-apachesolr-sort .widget-ctas .form-submit i, .widget-ctas #block-mod-hookson-hookson-search .form-submit i, #block-mod-hookson-hookson-search .widget-ctas .form-submit i, .widget-ctas #user-login .form-submit i, #user-login .widget-ctas .form-submit i {
      top: 0.25em;
      left: 0.5em; }

.panel-title {
  margin: 0;
  font-size: 0.9em;
  line-height: 1.4em;
  padding: 0.5em;
  cursor: pointer;
  text-transform: uppercase;
  position: relative; }
  .panel-title.has-reveal:after {
    content: 'v';
    position: absolute;
    z-index: 300;
    top: 0.5em;
    right: 1em;
    color: #707172;
    display: block; }
  .panel-title.has-reveal.open:after {
    -webkit-transform: rotate(-180deg);
    -ms-transform: rotate(-180deg);
    transform: rotate(-180deg); }

.widget-filter {
  background: #fff;
  z-index: 500;
  margin-bottom: 1em;
  border-bottom: solid 1px #d4d4d5; }
  .widget-area .widget-filter {
    margin-left: 6%; }
  .widget-filter .filter-wrap {
    padding: 0;
    border: solid 1px #d4d4d5;
    margin-top: -1px; }
    .widget-filter .filter-wrap label {
      padding: 0.8em 0;
      text-indent: 10px;
      border-right: solid 1px #d4d4d5; }
    .widget-filter .filter-wrap textarea,
    .widget-filter .filter-wrap input,
    .widget-filter .filter-wrap select {
      height: 3em;
      padding: 0.5em; }
    .widget-filter .filter-wrap select {
      padding-left: 0.2em; }
  .widget-filter textarea,
  .widget-filter input[type="text"],
  .widget-filter input[type="password"],
  .widget-filter input[type="datetime"],
  .widget-filter input[type="datetime-local"],
  .widget-filter input[type="date"],
  .widget-filter input[type="month"],
  .widget-filter input[type="time"],
  .widget-filter input[type="week"],
  .widget-filter input[type="number"],
  .widget-filter input[type="email"],
  .widget-filter input[type="url"],
  .widget-filter input[type="search"],
  .widget-filter input[type="tel"],
  .widget-filter select,
  .widget-filter input[type="file"] {
    font-size: 0.8em;
    border: none; }
  .widget-filter .button, .widget-filter .block-apachesolr-sort .form-submit, .block-apachesolr-sort .widget-filter .form-submit, .widget-filter #block-mod-hookson-hookson-search .form-submit, #block-mod-hookson-hookson-search .widget-filter .form-submit, .widget-filter #user-login .form-submit, #user-login .widget-filter .form-submit {
    font-size: 0.9em;
    display: block;
    padding: 0.7em 1em 0.7625em; }
    .widget-filter .button i, .widget-filter .block-apachesolr-sort .form-submit i, .block-apachesolr-sort .widget-filter .form-submit i, .widget-filter #block-mod-hookson-hookson-search .form-submit i, #block-mod-hookson-hookson-search .widget-filter .form-submit i, .widget-filter #user-login .form-submit i, #user-login .widget-filter .form-submit i {
      top: 0.25em;
      left: 0.5em; }

.block-facetapi h4.widget-title,
#block-mod-hookson-saleno-search h4.widget-title {
  cursor: pointer;
  margin: 0 0 0 10px !important;
  padding: 0.8em 30px 0.8em 0; }

h3.filter-title {
  margin: 0 0 0 10px !important;
  font-size: 0.8em;
  line-height: 1;
  padding: 0.8em 0;
  cursor: pointer;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  position: relative; }
  h3.filter-title.has-reveal {
    padding-right: 30px;
    background: transparent url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-down-black.svg) no-repeat center right;
    background-size: 11px 11px;
    background-position: calc(100% - 10px) center; }
  h3.filter-title.has-reveal.open {
    background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-up-black.svg); }
  h3.filter-title.mobile.has-reveal {
    display: none; }

.filter-container {
  border-top: solid 1px #d4d4d5;
  border-right: solid 1px #d4d4d5;
  border-left: solid 1px #d4d4d5; }
  .filter-container .views-submit-button {
    padding-top: 0 !important; }

.filter-content {
  padding-bottom: 0.5em;
  border: solid 1px transparent; }

#fm_catfilter .filter-container,
.widget-summary .filter-container {
  margin-top: -1px;
  border: solid 1px #d4d4d5; }

.filter-result,
.filter-result-heading {
  font-size: 0.8em;
  line-height: 1em;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  margin: 0;
  padding: 0 0.5em 1em 0.5em; }
  .filter-result.heading,
  .filter-result-heading.heading {
    padding-bottom: 0;
    border-bottom: none; }

.filter-result-heading {
  padding: 0 0.5em; }

.widget-area .current-search-item-search-results {
  margin-left: 6%; }

.current-search-item-active-items ul {
  margin: -1px 0px 0px 6%;
  list-style: none;
  padding: 1em 0.5em;
  font-family: "Cormorant Garamond", serif; }
  .current-search-item-active-items ul li {
    display: inline-block;
    *display: inline;
    /*IE7*/
    *zoom: 1;
    /*IE7*/
    font-size: 0.8em;
    line-height: 1.4em;
    padding: 0.5em 0.5em 0.5em 2em;
    margin: 0 0 0.5em;
    color: #fff;
    position: relative;
    background: #5a5e5d; }
    .current-search-item-active-items ul li a {
      position: absolute;
      top: 0.5em;
      left: 0.5em;
      color: #fff;
      text-align: center;
      width: 1.2em;
      text-decoration: none; }
      .current-search-item-active-items ul li a:hover, .current-search-item-active-items ul li a:active, .current-search-item-active-items ul li a:focus {
        letter-spacing: -1px; }

.container-inline div.form-item-retain-filters {
  display: block;
  font-size: 0.8em;
  padding: 1em 1em 1em 3em;
  margin: 1em 0;
  position: relative;
  background: #edefef; }
  .container-inline div.form-item-retain-filters .form-checkbox {
    position: absolute;
    top: 1em;
    left: 1em; }

/*
<div style="display: block;" class="form-item form-type-checkbox form-item-retain-filters">
 <input id="edit-retain-filters" name="retain-filters" value="1" class="form-checkbox" type="checkbox">  <label class="option" for="edit-retain-filters">Retain current filters </label>

</div>*/
.form-item.form-type-bef-checkbox {
  position: relative;
  line-height: 1.4em;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  cursor: pointer;
  display: block;
  padding: 0.6em 1em 0.66em 3em;
  margin-bottom: 0;
  font-size: 0.8em; }
  .form-item.form-type-bef-checkbox:last-child {
    border-bottom: none; }
  .form-item.form-type-bef-checkbox label {
    font-size: 1em; }
  .form-item.form-type-bef-checkbox input {
    position: absolute;
    left: 1em;
    top: 0.8em; }

/*
    .checkbox-list {
      label {
        position: relative;
        font-size: 0.7em;
        line-height: 1.4em;
        font-family: $serif_fontfamily;
        cursor: pointer;
        display: block;
        padding: 0.6em 1em 0.66em 3em;
        margin-bottom: 0;

        &:last-child {
          border-bottom: none;
        }

        input {
          position: absolute;
          left: 1em;
          top: 0.8em;
        }
      }
    }*/
.dept-filter .dpt-filter {
  position: relative;
  font-size: 0.8em;
  line-height: 1.4em;
  cursor: pointer;
  display: block;
  padding: 0.6em 1em 0.66em 3em;
  margin-bottom: 0; }
  .dept-filter .dpt-filter input {
    position: absolute;
    left: 1em;
    top: 0.8em; }

.checkbox-list-ul ul, .block-facetapi .item-list ul,
#block-mod-hookson-saleno-search .item-list ul {
  margin: 0;
  padding: 0;
  list-style: none; }
  .checkbox-list-ul ul li, .block-facetapi .item-list ul li,
  #block-mod-hookson-saleno-search .item-list ul li {
    position: relative;
    font-size: 0.8em;
    line-height: 1.4em;
    font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
    cursor: pointer;
    display: block;
    padding: 0.6em 1em 0.66em 3em;
    margin: 0; }
    .checkbox-list-ul ul li:last-child, .block-facetapi .item-list ul li:last-child,
    #block-mod-hookson-saleno-search .item-list ul li:last-child {
      border-bottom: none; }
    .checkbox-list-ul ul li a, .block-facetapi .item-list ul li a,
    #block-mod-hookson-saleno-search .item-list ul li a {
      text-decoration: none; }
    .checkbox-list-ul ul li input, .block-facetapi .item-list ul li input,
    #block-mod-hookson-saleno-search .item-list ul li input {
      position: absolute;
      left: 1em;
      top: 0.8em; }

.checkbox-list-ul label, .block-facetapi .item-list label,
#block-mod-hookson-saleno-search .item-list label {
  /*position: relative;
        font-size: 0.7em;
        line-height: 1.4em;
        font-family: $serif_fontfamily;
        cursor: pointer;
        display: block;
        padding: 0.6em 1em 0.66em 3em;
        margin-bottom: 0;*/ }

.checkbox-list-ul ul.facetapi-date-range li, .block-facetapi .item-list ul.facetapi-date-range li,
#block-mod-hookson-saleno-search .item-list ul.facetapi-date-range li {
  padding: 0.6em 1em 0.66em 1em; }

.filter-content.text-box p {
  font-size: 0.75em;
  margin: 0 0 0.5em;
  padding: 0px 0.8em; }

.filter-content.buttons {
  padding-bottom: 0; }
  .filter-content.buttons ul {
    margin: 0 !important; }
  .filter-content.buttons a {
    color: #231F20;
    background-color: #e0e2e3;
    text-decoration: none;
    font-size: 0.8em;
    font-family: "Cormorant Garamond", serif;
    line-height: 1.4em;
    margin: 0;
    display: block;
    padding: 1em; }
    .filter-content.buttons a:hover, .filter-content.buttons a:focus, .filter-content.buttons a:active {
      text-decoration: underline; }

.filter-content {
  margin: 0; }

#views-exposed-form-departments-page-departments h3.filter-title.has-reveal.open {
  display: none !important; }

#views-exposed-form-departments-page-departments .views-submit-button.views-exposed-widget {
  padding: 0; }

@media only screen and (max-device-width: 768px), screen and (max-width: 1024px) {
  #views-exposed-form-departments-page-departments h3.filter-title.has-reveal.open {
    display: block !important; }
  #views-exposed-form-departments-page-departments .views-submit-button.views-exposed-widget {
    padding: 0; } }

.block-apachesolr-sort {
  margin-bottom: 2em;
  margin-left: 6%;
  background: #fff;
  z-index: 100; }
  .block-apachesolr-sort .widget-title {
    margin-left: 0;
    margin-top: 2em; }
  .block-apachesolr-sort hr.title-divider {
    margin-left: 0; }
  .block-apachesolr-sort label {
    overflow: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0; }
    .block-apachesolr-sort label.focusable:active, .block-apachesolr-sort label.focusable:focus {
      position: static;
      clip: auto;
      height: auto;
      width: auto;
      margin: 0;
      overflow: visible; }
  .block-apachesolr-sort select {
    float: left;
    width: 45%;
    margin-right: 5%;
    padding: 0.75em;
    height: 3em;
    font-size: 0.75em;
    border: 1px solid #E0E2E3; }
  .block-apachesolr-sort .form-wrapper {
    clear: both;
    overflow: hidden; }
  .block-apachesolr-sort form#apachesolr-sort-sort-form- {
    margin-left: 0.5em; }
  .block-apachesolr-sort .form-submit {
    color: #FFF !important;
    background-color: #5a5e5d !important;
    background-image: url("/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-right-white.svg") !important;
    display: block !important;
    text-indent: 0;
    margin: 0 !important;
    height: auto; }
    .block-apachesolr-sort .form-submit:hover, .block-apachesolr-sort .form-submit:focus, .block-apachesolr-sort .form-submit:active {
      background-color: #484b4a !important; }

#block-mod-hookson-hookson-search #search-block-form--2 .form-item-search-block-form {
  margin: 0 0.5em; }

#block-mod-hookson-hookson-search input[type="text"] {
  width: 93%; }

#block-mod-hookson-hookson-search .form-submit {
  color: #FFF !important;
  background-color: #5a5e5d !important;
  background-image: url("/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-right-white.svg") !important;
  display: block !important;
  text-indent: 0;
  margin: 0 0.5em !important;
  height: auto; }
  #block-mod-hookson-hookson-search .form-submit:hover, #block-mod-hookson-hookson-search .form-submit:focus, #block-mod-hookson-hookson-search .form-submit:active {
    background-color: #484b4a !important; }

.block-facetapi,
#block-mod-hookson-saleno-search {
  margin: -1px 0 0 0;
  background: #fff;
  z-index: 100;
  border: solid 1px #d4d4d5; }
  .widget-area .block-facetapi, .widget-area
  #block-mod-hookson-saleno-search {
    margin-left: 6%; }
  .block-facetapi h4.widget-title,
  #block-mod-hookson-saleno-search h4.widget-title {
    margin: 0 10px;
    font-size: 0.8em;
    line-height: 1;
    padding: 10px 0;
    font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
    font-weight: normal;
    text-align: left;
    position: relative;
    display: block;
    color: #231F20;
    background: #fff; }
  .block-facetapi hr.title-divider,
  #block-mod-hookson-saleno-search hr.title-divider {
    display: none; }
  .block-facetapi a.facetapi-limit-link,
  #block-mod-hookson-saleno-search a.facetapi-limit-link {
    margin: 0 10px;
    font-size: 0.7em;
    line-height: 1;
    padding: 10px 0;
    font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
    display: block;
    color: #231F20;
    padding-right: 30px;
    background-color: transparent;
    background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-down-black.svg);
    background-repeat: no-repeat;
    background-size: 11px 11px;
    background-position: calc(100% - 10px) center; }
    .block-facetapi a.facetapi-limit-link.open,
    #block-mod-hookson-saleno-search a.facetapi-limit-link.open {
      background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-up-black.svg); }
    .block-facetapi a.facetapi-limit-link:focus,
    #block-mod-hookson-saleno-search a.facetapi-limit-link:focus {
      outline: none; }

#block-mod-hookson-saleno-search {
  overflow: hidden; }
  #block-mod-hookson-saleno-search .form-item {
    float: left;
    max-width: 40%;
    margin-bottom: 0.2em; }
  #block-mod-hookson-saleno-search .form-submit {
    height: auto;
    margin: 0.25em 0px 0.5em; }

.widget-menu {
  margin-left: 6%;
  margin-bottom: 1em; }

.widget-news-meta .published {
  margin-bottom: 1em;
  margin-top: 2em;
  font-size: 0.75em;
  line-height: 1.5em;
  color: #5a5e5d; }

.widget-tags .tags-container {
  padding: 0.5em;
  border: solid 1px #d4d4d5; }

.widget-filter .widget-tags .tags-container {
  padding: 0 10px;
  border: none; }

.widget-tags ul.tags-list {
  margin-bottom: 0; }
  .widget-tags ul.tags-list li {
    display: inline-block;
    font-size: 0.75em;
    line-height: 1.5em;
    margin-right: 0.5em;
    margin-bottom: 0.5em; }
    .widget-filter .widget-tags ul.tags-list li {
      font-size: 0.7em; }
    .widget-tags ul.tags-list li a {
      display: inline-block;
      margin-right: 0.4em; }

.widget-alerts {
  padding: 1em;
  background: #e9e9e9; }
  .widget-alerts h5 {
    font-size: 0.9em;
    line-height: 1.4em;
    text-transform: uppercase;
    margin: 0;
    margin-bottom: 0.5em; }
  .widget-alerts ol {
    list-style-image: none;
    list-style-type: none;
    margin-left: 0;
    margin-bottom: 0;
    position: relative;
    white-space: nowrap; }
    .widget-alerts ol li {
      margin: 0; }
    .widget-alerts ol a {
      color: #231F20;
      text-decoration: none;
      font-size: 0.9em;
      line-height: 1.4em;
      text-transform: uppercase;
      margin: 0;
      display: block;
      padding: 1em 0.5em;
      border-bottom: dotted 1px #bababa; }
      .widget-alerts ol a:hover, .widget-alerts ol a:focus, .widget-alerts ol a:active {
        text-decoration: underline; }

.widget-area .widget-summary {
  margin-bottom: 0; }

.widget-summary h5 {
  margin: 0 0 0.97em 0;
  font-size: 0.9em;
  font-family: "Cormorant Garamond", serif;
  text-transform: uppercase;
  display: block;
  font-weight: 700;
  color: #231F20;
  font-style: normal;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }

.widget-summary p {
  font-size: 0.8em;
  margin-bottom: 0.3em;
  line-height: 1.5em; }

.widget-summary span.label {
  width: 4em; }

.widget-summary .summary-content {
  padding: 0 0.5em;
  margin-bottom: 1.5em; }

.widget-summary .profile-role {
  font-weight: 700;
  padding-top: 1.5em; }

.widget-summary .filter-content {
  padding: 0.5em; }

.widget-location {
  padding: 0.5em;
  border: solid 1px #d4d4d5; }
  .widget-location p, .widget-location .date-display-range {
    font-size: 0.8em;
    margin-bottom: 0.3em;
    line-height: 1.5em; }
  .widget-location .date-display-range {
    color: #86878a; }
    .widget-location .date-display-range span {
      color: #231F20; }

.widget-share {
  margin-top: 1em; }
  .widget-share li.label {
    color: #231F20;
    font-size: 0.7em;
    font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
    font-weight: bold; }

.widget-email-signup,
.block-dotmailer-signup,
#block-block-6 {
  margin-bottom: 2em; }
  .widget-email-signup .signup-title,
  .widget-email-signup .widget-title,
  .block-dotmailer-signup .signup-title,
  .block-dotmailer-signup .widget-title,
  #block-block-6 .signup-title,
  #block-block-6 .widget-title {
    margin: 0 0 1em 0;
    font-size: 1.185em;
    text-transform: none;
    color: #000;
    line-height: 1.2;
    font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
    padding: 0;
    text-align: left;
    background: #fff; }
  .widget-email-signup hr.title-divider,
  .block-dotmailer-signup hr.title-divider,
  #block-block-6 hr.title-divider {
    display: none; }
  .widget-email-signup form,
  .block-dotmailer-signup form,
  #block-block-6 form {
    overflow: hidden;
    border: solid 1px #6D6E70; }
  .widget-email-signup label,
  .block-dotmailer-signup label,
  #block-block-6 label {
    overflow: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0; }
    .widget-email-signup label.focusable:active, .widget-email-signup label.focusable:focus,
    .block-dotmailer-signup label.focusable:active,
    .block-dotmailer-signup label.focusable:focus,
    #block-block-6 label.focusable:active,
    #block-block-6 label.focusable:focus {
      position: static;
      clip: auto;
      height: auto;
      width: auto;
      margin: 0;
      overflow: visible; }
  .widget-email-signup input,
  .widget-email-signup input[type="text"],
  .block-dotmailer-signup input,
  .block-dotmailer-signup input[type="text"],
  #block-block-6 input,
  #block-block-6 input[type="text"] {
    float: left;
    max-width: 80%;
    height: 44px;
    margin: 0;
    border: none; }
  .widget-email-signup .submit,
  .widget-email-signup .form-submit,
  .block-dotmailer-signup .submit,
  .block-dotmailer-signup .form-submit,
  #block-block-6 .submit,
  #block-block-6 .form-submit {
    float: right;
    width: 44px;
    padding: 0; }
    .widget-email-signup .submit .icon,
    .widget-email-signup .form-submit .icon,
    .block-dotmailer-signup .submit .icon,
    .block-dotmailer-signup .form-submit .icon,
    #block-block-6 .submit .icon,
    #block-block-6 .form-submit .icon {
      position: absolute;
      top: 11px;
      right: 10px; }

.widget-sale {
  overflow: hidden;
  padding-bottom: 2em;
  margin: 2em;
  border-bottom: dotted 1px #e0e2e3;
  text-align: center; }
  .widget-sale h4 {
    margin-top: 0;
    min-height: 2.2em; }
  .widget-sale img {
    margin-bottom: 1em; }
  .widget-sale p {
    font-size: 0.825em;
    margin-bottom: 0.4em; }
    .widget-sale p .label {
      color: #c1c3c3; }
  .widget-sale .sale-date {
    font-size: 2em; }
  .widget-sale .sale-location {
    font-size: 1em; }
  .widget-sale .sale-host {
    margin-bottom: 0.8em; }
  .widget-sale .sale-link {
    font-size: 1em; }
  .widget-sale .button, .widget-sale .block-apachesolr-sort .form-submit, .block-apachesolr-sort .widget-sale .form-submit, .widget-sale #block-mod-hookson-hookson-search .form-submit, #block-mod-hookson-hookson-search .widget-sale .form-submit, .widget-sale #user-login .form-submit, #user-login .widget-sale .form-submit {
    font-size: 1em;
    display: block;
    padding: 0.7em 1em 0.7625em; }
    .widget-sale .button i, .widget-sale .block-apachesolr-sort .form-submit i, .block-apachesolr-sort .widget-sale .form-submit i, .widget-sale #block-mod-hookson-hookson-search .form-submit i, #block-mod-hookson-hookson-search .widget-sale .form-submit i, .widget-sale #user-login .form-submit i, #user-login .widget-sale .form-submit i {
      top: 0.25em;
      left: 0.5em; }
  .widget-sale p {
    margin: 0; }

/* Bid Live ----------------------------------------------
  .widget-bid-live {
    padding: 3em 1em;
    margin: 0 1em;
    height: 15em;
    text-align: center;
    background: $primary;
    color: #fff;

    .bid-live-title {
      margin-top: 0;
    }
    a {
      color: #fff;
    }
    p {
      color: #fff;
      margin: 0;
    }
  }

  // Account ----------------------------------------------
  .widget-account {
    padding: 3em 1em;
    margin: 0 1em;
    height: 15em;
    text-align: center;
    background: $light_grey;

    .account-title {
      margin-top: 0;
    }
    p {
      margin-bottom: 1em;
    }
  }*/
.widget-calendar {
  padding-bottom: 10px;
  border-bottom: solid 12px #5a5e5d; }

.date-nav-wrapper {
  position: relative;
  width: 100%;
  background: #fff; }

.date-nav {
  margin: 0;
  padding: 0;
  min-height: 30px;
  position: relative;
  margin-bottom: 10px; }

.date-heading {
  padding: 1em;
  position: relative;
  width: 100%;
  top: 0;
  text-align: center;
  z-index: 0; }
  .date-heading h3 {
    font-size: 0.9em !important;
    font-family: "Cormorant Garamond", serif;
    line-height: 1em !important;
    margin: 0;
    padding: 0.5em 1em !important;
    display: inline-block;
    color: #fff;
    background: #5a5e5d; }
  .date-heading a {
    color: #fff; }
    .date-heading a:hover, .date-heading a:focus, .date-heading a:active {
      color: #FFF; }

.widget-calendar ul.pager {
  margin: 0;
  padding: 0;
  list-style: none;
  display: block;
  height: auto;
  margin-left: 0;
  clear: none; }
  .widget-calendar ul.pager li {
    padding: 0 !important; }
  .widget-calendar ul.pager div {
    display: none; }

.date-prev, .date-next, ul.pager {
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff !important; }
  .date-prev div, .date-next div, ul.pager div {
    display: none; }

.date-prev, .date-next {
  position: absolute;
  text-align: right;
  top: 20px !important;
  z-index: 1;
  font-size: 1px !important;
  overflow: hidden;
  width: 30px;
  height: 20px; }
  .date-prev a, .date-next a {
    color: #fff !important;
    font-size: 1px !important;
    overflow: hidden;
    width: 30px;
    height: 20px;
    display: block !important;
    background-color: #fff;
    background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-left-black.svg);
    background-repeat: no-repeat;
    background-size: 11px 11px; }

.date-prev {
  left: 0.5em !important;
  right: auto; }
  .date-prev a {
    background-position: left center; }

.date-next {
  right: 0.5em !important;
  left: auto; }
  .date-next a {
    background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-right-black.svg);
    background-position: right center; }

.feed-icon {
  display: none; }

.widget-calendar .calendar-calendar {
  border: 1px solid #e9e9e9; }

.widget-calendar table {
  width: auto !important;
  margin: 5px !important; }

.widget-calendar th.days {
  background-color: transparent !important;
  color: #000 !important;
  border: 2px solid #fff !important;
  font-size: 0.75em !important;
  line-height: 1;
  padding: 0.9em; }

.widget-calendar td {
  border: 8px solid #fff !important;
  color: #000;
  width: auto;
  text-align: center !important;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 0.75em;
  padding: 0.9em !important;
  vertical-align: middle; }
  .widget-calendar td.has-events {
    padding: 0 !important; }
    .widget-calendar td.has-events a {
      padding: 0.9em !important;
      display: block;
      background: #5a5e5d;
      color: #fff; }
  .widget-calendar td a {
    color: #000; }

.widget-calendar .calendar-empty {
  display: none; }

.widget-calendar tr td.today, .widget-calendar tr.odd td.today, .widget-calendar tr.even td.today {
  color: #fff !important;
  background-color: #5a5e5d !important;
  font-weight: bold; }
  .widget-calendar tr td.today a, .widget-calendar tr.odd td.today a, .widget-calendar tr.even td.today a {
    color: #fff; }

/*.lt-ie8 {
    .page-events-calendar #block-system-main {
      .date-nav-wrapper {
        .date-nav {
          width: 90%;
        }
        .date-heading {
          padding: 0;
          h3 {
            padding: 0.5em 0;
            width: 100%;
          }
        }
      }
    }
  }
  .lt-ie8 {

    .view {

      .date-nav-wrapper {
        .date-nav {
          margin: 0;
          height: 30px;
        }
        .date-heading {
          h3 {
            width: 228px;
          }
        }
        .date-prev, .date-next {
          line-height: 30px;
          padding: 0;
          //background-color: darken($blue_twitter, 20%);

          div { display: none; } // avoid nasty jQuery glitch       
        }
      }
    }
    .calendar-calendar {
      width: 228px;
      th.days {

        padding: 2px 1px;
      }
      td {
        border: 1px solid $blue;
      }
      td.mini {
        padding: 2px 0;
      }
    }
  }*/
/*.widget-news {
    padding: 0 6%;

    .d1-d4 & { // 3 up
      padding: 0 5%;   
    }
    .d1-d3 & { // 4 up
      padding: 0 6%;   
    }
  }*/
@media only screen and (max-width: 1024px) {
  .widget-calendar .calendar-calendar {
    border: none; }
  .widget-calendar table {
    margin: 0; }
  .widget-calendar th.days {
    border: 4px solid #fff;
    font-size: 0.6em;
    line-height: 1;
    padding: 0.4em; }
  .widget-calendar td {
    border: 4px solid #fff;
    font-size: 0.75em;
    padding: 0.3em; }
    .widget-calendar td.has-events a {
      padding: 0.3em; } }

@media only screen and (max-device-width: 1024px) and (orientation: portrait) {
  .widget-calendar {
    display: none;
    margin-top: 0; } }

@media only screen and (max-device-width: 768px), screen and (max-width: 1024px) {
  .widget-title {
    margin: 0; }
    #block-views-fbde79c77db4e504432074fa557a2b39 .widget-title,
    .region-bottom .widget-title {
      font-size: 2.375em;
      margin-left: 0;
      margin-right: 0; }
  .widget-area .widget,
  .widget-area .block-facetapi,
  .widget-area #block-mod-hookson-saleno-search,
  .widget-area .block-apachesolr-sort,
  .current-search-item-active-items ul {
    margin-left: 0 !important; }
  .current-search-item-active-items ul {
    padding: 0 0 0.5em 0; }
  #scroller .widget {
    max-width: inherit; }
  .d1-d4 #scroller .widget {
    max-width: inherit;
    width: auto; } }

@media only screen and (max-device-width: 480px) {
  .widget-area .widget,
  .widget-area .widget-title,
  .widget-area hr.title-divider,
  .widget-area form,
  .widget-area .widget-title {
    margin-left: 0; }
  .filter-result {
    padding: 1em 10px; }
  .widget-area .current-search-item-search-results {
    margin-left: 0; }
  .filter-result-heading {
    padding-bottom: 1em; }
  ul.filter-query {
    padding: 1em 0; }
    ul.filter-query li {
      padding: 0.7em 0.7em 0.7em 3em; }
      ul.filter-query li a {
        top: 0.7em;
        left: 0.7em;
        width: 2em; } }

.widget-grid {
  padding: 0 6%;
  margin-top: 2em;
  margin-bottom: 2em;
  border-right: solid 1px #d4d4d5;
  border-bottom: solid 1px #d4d4d5;
  /*
    .multiple-row &,
    .grid-groups & { // disable first on single row and all on multiple rows 
      margin-bottom: 2em;  
    }
*/ }
  .front .widget-grid {
    margin-bottom: 0; }
  .d1-d4 .widget-grid {
    padding: 0 5%;
    padding-bottom: 2em; }
  .d1-d4:first-child .widget-grid {
    padding-left: 0;
    margin-left: 5%; }
  .widget-grid .group-content, .widget-grid .group-meta {
    margin-top: 1em; }
  .d1-d4:nth-child(3n+3) .widget-grid {
    border-right-color: transparent;
    padding-right: 0;
    margin-right: 5%; }
  .d1-d3:nth-child(4n+4) .widget-grid {
    border-right-color: transparent;
    padding-right: 0;
    margin-right: 5%; }
  .d1-d3 .widget-grid {
    padding: 0 6%;
    padding-bottom: 2em; }
  .d1-d3:first-child .widget-grid {
    padding-left: 0;
    margin-left: 6%; }
  .widget-grid.widget-profile {
    text-align: center; }
  .widget-grid.widget-publication img {
    max-width: 272px; }

@media only screen and (max-device-width: 768px), screen and (max-width: 1024px) {
  h3.filter-title.mobile.has-reveal {
    display: block; }
  .front .widget-grid {
    margin-bottom: 2em; }
  .d1-d4:nth-child(3n+3) .widget-grid {
    border-right-color: #d4d4d5;
    padding-right: 5%;
    margin-right: 0; }
  .d1-d3:nth-child(4n+4) .widget-grid {
    border-right-color: #d4d4d5;
    padding-right: 6%;
    margin-right: 0; }
  .d1-d4:nth-child(2n+2) .widget-grid,
  .d1-d3:nth-child(2n+2) .widget-grid {
    border-right-color: transparent;
    padding-right: 0;
    margin-right: 5%; }
  .d1-d4:nth-child(2n+1) .widget-grid,
  .d1-d3:nth-child(2n+1) .widget-grid {
    padding-left: 0;
    margin-left: 5%; }
  .widget-grid.widget-publication img {
    max-width: 100%; } }

@media only screen and (max-device-width: 480px) {
  .widget-grid {
    margin: 0 0 0.5em 0;
    padding: 0 !important;
    border-bottom: none !important;
    border-right: none !important; }
    .widget-grid img {
      margin-top: 0; }
    .d1-d4:nth-child(2n+2) .widget-grid,
    .d1-d3:nth-child(2n+2) .widget-grid,
    .d1-d4:nth-child(2n+1) .widget-grid,
    .d1-d3:nth-child(2n+1) .widget-grid,
    .d1-d4:nth-child(3n+3) .widget-grid,
    .d1-d3:nth-child(4n+4) .widget-grid,
    .d1-d4:first-child .widget-grid,
    .d1-d3:first-child .widget-grid {
      padding-left: 0;
      margin-left: 0;
      margin-right: 0; }
  .widget-area .widget-ctas {
    margin-top: 1em;
    margin-bottom: 0; }
  .front .widget-profile, .front .widget-news {
    display: none;
    height: auto !important; }
  .front .d1-d3:first-child .widget-profile {
    display: block; }
  .front .d1-d3:first-child .widget-news,
  .front .d1-d3:nth-child(2) .widget-news {
    display: block; } }

.nav-aside {
  border-bottom: solid 1px #d4d4d5; }
  .nav-aside h3.nav-aside-title {
    display: none; }
  .nav-aside ul {
    list-style-image: none;
    list-style-type: none;
    margin-left: 0;
    margin-bottom: 0;
    position: relative;
    background-color: #fff; }
    .nav-aside ul li {
      margin: 0;
      border-top: solid 1px #d4d4d5;
      border-left: solid 1px #d4d4d5;
      border-right: solid 1px #d4d4d5; }
    .nav-aside ul a {
      color: #231F20;
      background-color: #fff;
      text-decoration: none;
      font-size: 0.8em;
      line-height: 1.4em;
      margin: 0;
      display: block;
      padding: 1em; }
      .nav-aside ul a:hover, .nav-aside ul a:focus, .nav-aside ul a:active {
        text-decoration: underline; }
    .nav-aside ul li.current-menu-item a {
      font-weight: bold; }
    .nav-aside ul li li a {
      background-color: #e0e2e3; }
  .nav-aside h3.filter-title {
    font-size: 0.8em;
    line-height: 1.4em;
    padding: 1em 0 1em 1em;
    margin: 0 1em 0 0; }
  .nav-aside .filter-content {
    padding-bottom: 0; }
  .nav-aside .filter-container {
    border: none;
    margin-bottom: 0; }
    .nav-aside .filter-container li {
      border-top: solid 1px #d4d4d5;
      border-left: none;
      border-right: none; }

@media only screen and (max-device-width: 768px), screen and (max-width: 1024px) {
  .widget-area .nav-aside {
    background: #5a5e5d; }
    .widget-area .nav-aside h3.nav-aside-title {
      cursor: pointer;
      color: #fff;
      background: #5a5e5d;
      font-size: 0.8em;
      line-height: 1.4em;
      margin: 0 1em;
      display: block;
      padding: 1em 0;
      border-top: solid 1px #5a5e5d;
      border-left: solid 1px #5a5e5d;
      border-right: solid 1px #5a5e5d;
      padding-right: 30px;
      background-color: #5a5e5d;
      background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-down-white.svg);
      background-repeat: no-repeat;
      background-size: 11px 11px;
      background-position: calc(100% - 10px) center; }
      .widget-area .nav-aside h3.nav-aside-title.open {
        background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-up-white.svg); }
    .widget-area .nav-aside .nav-aside-content {
      display: none; }
    .widget-area .nav-aside ul {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      margin-bottom: 0;
      position: relative; }
      .widget-area .nav-aside ul a {
        color: #231F20;
        text-decoration: none;
        font-size: 0.8em;
        line-height: 1.4em;
        margin: 0;
        display: block;
        padding: 1em; }
        .widget-area .nav-aside ul a:hover, .widget-area .nav-aside ul a:focus, .widget-area .nav-aside ul a:active {
          text-decoration: underline; }
      .widget-area .nav-aside ul li.current-menu-item a {
        font-weight: bold; }
      .widget-area .nav-aside ul li li a {
        background-color: #e0e2e3; }
    .widget-area .nav-aside h3.filter-title {
      font-size: 0.8em;
      line-height: 1.4em;
      padding: 1em 0 1em 1em;
      margin: 0 1em 0 0; }
    .widget-area .nav-aside .filter-content {
      padding-bottom: 0; }
    .widget-area .nav-aside .filter-container {
      border: none;
      margin-bottom: 0; }
      .widget-area .nav-aside .filter-container li {
        border-top: solid 1px #d4d4d5;
        border-left: none;
        border-right: none; } }

ul.pager {
  display: block;
  margin-top: 1em;
  font-size: 0.8em;
  clear: both;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }
  ul.pager li {
    float: left;
    display: block;
    padding: 0 0.5em; }
    ul.pager li a {
      display: block;
      color: #555 !important;
      text-decoration: none; }
      ul.pager li a:hover {
        color: #000 !important; }
    ul.pager li.pager-current {
      font-weight: bold;
      cursor: default; }

/* Pagination : Basic ---------------------------------------------------------------------------------

.nav-post {
	
	.assistive-text { @include visuallyhidden(); }

	border-top: solid 1px $secondary;
	padding-top: 1em;
	font-size: 0.9em;
	clear: both;

	.alignleft {
		text-align: left;
		float: left;
	}
	.alignright {
		text-align: right;
		float: right;
	}
}
*/
.nav-breadcrumb {
  list-style: none;
  margin: 0;
  overflow: hidden;
  padding: 1em 1.25em;
  margin-top: -2em;
  margin-bottom: 0;
  background: #fff;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px; }
  .nav-breadcrumb li {
    float: left;
    font-size: 0.9em;
    margin-bottom: 0;
    color: #e9e9e9; }
    .nav-breadcrumb li a {
      color: #000;
      text-decoration: none;
      display: block;
      padding-right: 1em;
      margin-right: 1em;
      border-right: solid #e0e2e3 1px; }
      .nav-breadcrumb li a:hover, .nav-breadcrumb li a:focus, .nav-breadcrumb li a:active {
        text-decoration: underline; }

@media only screen and (max-device-width: 480px) {
  .nav-breadcrumb {
    margin-top: 0;
    padding: 1em 0; } }

.cycle-slideshow {
  min-width: 100%;
  overflow: hidden;
  position: relative; }
  .cycle-slideshow img {
    min-width: 100%;
    overflow: hidden; }
  .cycle-slideshow .frame {
    width: 100%;
    height: 480px; }

.cycle-slideshow .slide {
  display: none; }

.cycle-slideshow .slide.views-row-first {
  display: block; }

.cycle-slideshow.advanced {
  min-width: 100%;
  overflow: hidden;
  position: relative;
  height: 480px;
  margin-bottom: -30px; }
  .region-bottom .cycle-slideshow.advanced {
    margin-bottom: 0; }
  .cycle-slideshow.advanced .slide {
    min-width: 100%;
    overflow: hidden; }
  .cycle-slideshow.advanced a {
    text-decoration: none; }
  .cycle-slideshow.advanced img, .cycle-slideshow.advanced picture {
    position: absolute;
    max-width: inherit;
    width: 2000px;
    right: -1000px;
    margin-right: 50%;
    z-index: 1;
    top: 0; }

.slide-caption {
  position: absolute;
  top: 155px;
  right: 50%;
  margin-right: -520px;
  width: 420px;
  overflow: hidden;
  line-height: 1;
  z-index: 20;
  text-decoration: none;
  /* Fix repeating glitch */ }
  .slide-caption a {
    display: block;
    text-decoration: none;
    width: 100%; }
  .slide-caption.left, .slide-caption.right.left, .slide-caption.left.right.left, .slide-caption.right.right.left, .slide-caption.right.left.right.left {
    right: auto;
    left: 50%;
    margin-right: auto;
    margin-left: -520px; }
  .slide-caption.left.right, .slide-caption.left.right.right, .slide-caption.left.left.right {
    right: 50%;
    left: auto;
    margin-left: auto;
    margin-right: -520px; }

/*.views-row-even .slide-caption {
      right: auto; left: 50%;
      margin-right: auto;
      margin-left: -520px;
  }*/
.slide-meta {
  text-align: center;
  position: relative;
  height: 285px; }
  .slide-meta .button, .slide-meta .block-apachesolr-sort .form-submit, .block-apachesolr-sort .slide-meta .form-submit, .slide-meta #block-mod-hookson-hookson-search .form-submit, #block-mod-hookson-hookson-search .slide-meta .form-submit, .slide-meta #user-login .form-submit, #user-login .slide-meta .form-submit {
    font-size: 0.9em;
    font-family: "Cormorant Garamond", serif;
    background-color: rgba(255, 255, 255, 0.8);
    background-position: right 10px center; }
    .slide-meta .button.slide-button-bar, .slide-meta .block-apachesolr-sort .slide-button-bar.form-submit, .block-apachesolr-sort .slide-meta .slide-button-bar.form-submit, .slide-meta #block-mod-hookson-hookson-search .slide-button-bar.form-submit, #block-mod-hookson-hookson-search .slide-meta .slide-button-bar.form-submit, .slide-meta #user-login .slide-button-bar.form-submit, #user-login .slide-meta .slide-button-bar.form-submit {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      margin: 0;
      display: none;
      border: solid 1px #a0a1a3; }

a.group-caption .button.slide-button-bar, a.group-caption .block-apachesolr-sort .slide-button-bar.form-submit, .block-apachesolr-sort a.group-caption .slide-button-bar.form-submit, a.group-caption #block-mod-hookson-hookson-search .slide-button-bar.form-submit, #block-mod-hookson-hookson-search a.group-caption .slide-button-bar.form-submit, a.group-caption #user-login .slide-button-bar.form-submit, #user-login a.group-caption .slide-button-bar.form-submit {
  display: block; }

.slide-sub-headline {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0;
  color: #fff;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  text-align: center;
  font-size: 0.825em;
  line-height: 1.5;
  padding: 0.5em 1em 0.55em;
  text-transform: uppercase;
  border: solid 1px #5a5e5d;
  background: #5a5e5d; }

.slide-headline, .slide-caption .reveal-content {
  display: none; }

.cycle-controls {
  width: 100%;
  height: 3em;
  margin-top: 100px;
  margin-bottom: -100px;
  *zoom: 1;
  position: relative; }
  .cycle-controls:before, .cycle-controls:after {
    display: table;
    content: ""; }
  .cycle-controls:after {
    clear: both; }
  .region-bottom .cycle-controls {
    margin-top: 0;
    margin-bottom: 0; }
  .cycle-controls.transparent {
    background: transparent; }

@media only screen and (max-device-width: 768px), screen and (max-width: 1024px) {
  .cycle-controls {
    margin-top: 0;
    margin-bottom: 0; } }

@media only screen and (max-device-width: 480px) {
  .cycle-controls {
    margin-top: 0 !important;
    margin-bottom: 0 !important; } }

.cycle-pager {
  height: 1em;
  position: absolute;
  top: 1em;
  left: 0;
  right: 0;
  z-index: 150;
  text-align: center; }
  .cycle-pager span {
    display: inline-block;
    width: 0.5em;
    height: 0.5em;
    border-radius: 100%;
    margin-left: 0.7em;
    background: #b3b5b6;
    cursor: pointer;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden; }
    .cycle-pager span.cycle-pager-active {
      background: #000; }
  .node-type-department .cycle-pager {
    display: none; }

.cycle-prev, .cycle-next {
  top: 11px;
  position: absolute;
  z-index: 150;
  cursor: pointer;
  display: block;
  padding: 2px 0; }
  .node-type-department .cycle-prev, .node-type-department .cycle-next {
    display: none; }

.cycle-prev {
  left: 1.5%; }
  .cycle-prev icon {
    background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-left-black.svg); }

.cycle-next {
  right: 1.5%; }
  .cycle-next icon {
    background-image: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-right-black.svg); }

@media only screen and (max-device-width: 768px), screen and (max-width: 1024px) {
  .cycle-slideshow.advanced {
    height: 480px;
    margin-bottom: 0; }
    .cycle-slideshow.advanced img, .cycle-slideshow.advanced picture {
      width: 64em;
      max-width: 100%;
      right: 0;
      margin-right: 0; }
  .slide-sub-headline a {
    color: #fff;
    text-decoration: none; } }

@media only screen and (max-device-width: 1024px) and (orientation: landscape), screen and (max-width: 1024px) {
  .cycle-slideshow.advanced {
    height: 330px; }
    .cycle-slideshow.advanced .frame {
      height: 330px; }
    .cycle-slideshow.advanced img, .cycle-slideshow.advanced picture {
      width: 64em;
      right: 0;
      margin-top: -20px;
      margin-right: 0; }
  .slide-caption {
    position: absolute;
    width: 100%;
    height: auto;
    margin: 0 !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: 0 !important;
    background: #fff; }
  .views-row-even .slide-caption {
    right: auto;
    left: auto;
    margin: 0; }
  .slide-sub-headline {
    position: relative;
    bottom: auto;
    line-height: 25px; }
  .slide-meta {
    margin-bottom: 0;
    height: 75px;
    width: 100%; }
    .slide-meta .button.slide-button-bar, .slide-meta .block-apachesolr-sort .slide-button-bar.form-submit, .block-apachesolr-sort .slide-meta .slide-button-bar.form-submit, .slide-meta #block-mod-hookson-hookson-search .slide-button-bar.form-submit, #block-mod-hookson-hookson-search .slide-meta .slide-button-bar.form-submit, .slide-meta #user-login .slide-button-bar.form-submit, #user-login .slide-meta .slide-button-bar.form-submit {
      position: relative;
      top: auto; }
  p.slide-footer {
    margin: 0; } }

@media only screen and (max-device-width: 1024px) and (orientation: landscape) {
  .cycle-slideshow.advanced {
    height: 440px; }
    .cycle-slideshow.advanced .frame {
      height: 440px; } }

@media only screen and (max-device-width: 480px) {
  .cycle-slideshow.advanced {
    height: auto; }
    .cycle-slideshow.advanced .frame {
      height: auto; }
    .cycle-slideshow.advanced img, .cycle-slideshow.advanced picture {
      margin-top: 0;
      position: relative; }
  .slide-caption {
    height: auto;
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    bottom: auto; }
    .left .slide-caption {
      left: auto;
      margin: 0; }
    .slide-caption .reveal-content {
      display: block; }
  .slide-headline {
    display: block;
    font-size: 1em;
    font-family: "Cormorant Garamond", serif;
    font-weight: 700;
    padding: 0.5em 6%;
    line-height: 1.2;
    margin: 0;
    color: #6D6E70 !important;
    overflow: hidden;
    background: #fff;
    border-top: none;
    text-align: left; }
  .slide-sub-headline {
    position: relative;
    bottom: auto;
    left: auto;
    text-align: left;
    font-size: 0.9em;
    min-height: 2em;
    padding: 0.5em 6% 0.55em 6%; }
  .slide-meta {
    text-align: left;
    height: auto;
    margin-bottom: 4px; }
    .slide-meta .slide-copy {
      font-size: 0.8em;
      margin: 0;
      padding: 0.5em 6% 0.55em; }
    .slide-meta .button, .slide-meta .block-apachesolr-sort .form-submit, .block-apachesolr-sort .slide-meta .form-submit, .slide-meta #block-mod-hookson-hookson-search .form-submit, #block-mod-hookson-hookson-search .slide-meta .form-submit, .slide-meta #user-login .form-submit, #user-login .slide-meta .form-submit {
      background-position: right 10px center;
      text-transform: uppercase;
      display: block;
      text-align: left;
      padding-left: 6%;
      margin-bottom: 0; }
      .slide-meta .button.slide-button-bar, .slide-meta .block-apachesolr-sort .slide-button-bar.form-submit, .block-apachesolr-sort .slide-meta .slide-button-bar.form-submit, .slide-meta #block-mod-hookson-hookson-search .slide-button-bar.form-submit, #block-mod-hookson-hookson-search .slide-meta .slide-button-bar.form-submit, .slide-meta #user-login .slide-button-bar.form-submit, #user-login .slide-meta .slide-button-bar.form-submit {
        display: block;
        border: none; }
  .cycle-controls {
    display: none; } }

.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8;
  filter: alpha(opacity=80); }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }
  .mfp-preloader a {
    color: #CCC; }
    .mfp-preloader a:hover {
      color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close, button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none; }

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  filter: alpha(opacity=65);
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }
  .mfp-close:hover, .mfp-close:focus {
    opacity: 1;
    filter: alpha(opacity=100); }
  .mfp-close:active {
    top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  filter: alpha(opacity=65);
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent; }
  .mfp-arrow:active {
    margin-top: -54px; }
  .mfp-arrow:hover, .mfp-arrow:focus {
    opacity: 1;
    filter: alpha(opacity=100); }
  .mfp-arrow:before, .mfp-arrow:after,
  .mfp-arrow .mfp-b,
  .mfp-arrow .mfp-a {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    top: 0;
    margin-top: 35px;
    margin-left: 35px;
    border: medium inset transparent; }
  .mfp-arrow:after,
  .mfp-arrow .mfp-a {
    border-top-width: 13px;
    border-bottom-width: 13px;
    top: 8px; }
  .mfp-arrow:before,
  .mfp-arrow .mfp-b {
    border-top-width: 21px;
    border-bottom-width: 21px;
    opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }
  .mfp-arrow-left:after,
  .mfp-arrow-left .mfp-a {
    border-right: 17px solid #FFF;
    margin-left: 31px; }
  .mfp-arrow-left:before,
  .mfp-arrow-left .mfp-b {
    margin-left: 25px;
    border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }
  .mfp-arrow-right:after,
  .mfp-arrow-right .mfp-a {
    border-left: 17px solid #FFF;
    margin-left: 39px; }
  .mfp-arrow-right:before,
  .mfp-arrow-right .mfp-b {
    border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }
  .mfp-iframe-holder .mfp-content {
    line-height: 0;
    width: 100%;
    max-width: 900px; }
  .mfp-iframe-holder .mfp-close {
    top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }
  .mfp-iframe-scaler iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }
  .mfp-figure:after {
    content: '';
    position: absolute;
    left: 0;
    top: 40px;
    bottom: 40px;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #444; }
  .mfp-figure small {
    color: #BDBDBD;
    display: block;
    font-size: 12px;
    line-height: 14px; }
  .mfp-figure figure {
    margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
       * Remove all paddings around the image on small screen
       */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box; }
    .mfp-img-mobile .mfp-bottom-bar:empty {
      padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    -ms-transform: scale(0.75);
        transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    -ms-transform-origin: 0;
        transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    -ms-transform-origin: 100%;
        transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

.mfp-ie7 .mfp-img {
  padding: 0; }

.mfp-ie7 .mfp-bottom-bar {
  width: 600px;
  left: 50%;
  margin-left: -300px;
  margin-top: 5px;
  padding-bottom: 5px; }

.mfp-ie7 .mfp-container {
  padding: 0; }

.mfp-ie7 .mfp-content {
  padding-top: 44px; }

.mfp-ie7 .mfp-close {
  top: 0;
  right: 0;
  padding-top: 0; }

.d5-d12 .tabs-primary {
  margin-left: 0 !important; }

#user-login {
  padding: 1em;
  background: #e0e2e3; }
  #user-login .description {
    display: block;
    padding: 10px 0;
    font-size: 0.8em; }

.tabs-primary.tabs.primary {
  width: 100%;
  overflow: hidden;
  list-style: none;
  background-color: #e0e2e3; }

li.tabs-primary__tab {
  float: left;
  display: block;
  margin-bottom: 0; }
  li.tabs-primary__tab a {
    font-size: 0.8em;
    padding: 0.5em 1em;
    display: block;
    margin-bottom: 0 !important;
    border-right: solid 1px #e0e2e3;
    background: #aab0b3; }
  li.tabs-primary__tab a.active {
    color: #231F20;
    background: #e0e2e3; }

.messages--status {
  display: block;
  padding: 1em;
  margin-bottom: 1em; }
  .messages--status.status {
    color: #449839;
    background: #bde5b8; }

.messages--warning {
  display: none; }

ul.field-collection-view-links {
  list-style: none; }
  ul.field-collection-view-links li {
    font-size: 0.9em;
    display: inline-block;
    margin: 0.5em; }

#feeds-import-form legend {
  margin: 0 0 1.2em 0;
  font-size: 1.1em;
  font-family: "Cormorant Garamond", serif;
  text-transform: uppercase;
  display: block;
  font-weight: 700;
  color: #231F20;
  font-style: normal;
  letter-spacing: 1px; }

#feeds-import-form .feeds-source-status ul {
  margin-left: 1em; }
  #feeds-import-form .feeds-source-status ul li {
    font-size: 0.9em;
    margin: 0 0 0.5em 0; }

#feeds-import-form .form-submit {
  text-indent: 0;
  line-height: 44px;
  padding: 0.7em 40px 0.7625em 1em;
  border: medium none;
  width: auto;
  height: auto;
  display: block;
  overflow: hidden;
  position: relative;
  background-position: right center; }

#feeds-import-form .form-item-files-feeds {
  padding: 1em;
  margin: 1em 0;
  font-size: 0.9em;
  background: #e0e2e3; }

#feeds-import-form input[type="file"] {
  height: auto;
  border: 1px solid #aab0b3; }

/*<ul class="tabs-primary tabs primary"><li class="tabs-primary__tab is-active"><a href="/services/auction-estimate" class="tabs-primary__tab-link is-active active">View <span class="element-invisible">(active tab)</span></a></li>
<li class="tabs-primary__tab"><a href="/node/124/edit" class="tabs-primary__tab-link">Edit</a></li>
<li class="tabs-primary__tab"><a href="/node/124/display" class="tabs-primary__tab-link">Manage display</a></li>
<li class="tabs-primary__tab"><a href="/node/124/log" class="tabs-primary__tab-link">Log</a></li>
<li class="tabs-primary__tab"><a href="/node/124/devel" class="tabs-primary__tab-link">Devel</a></li>
</ul>*/
.views-slideshow-j360 {
  margin: 0 auto 2em;
  max-width: 600px;
  overflow: hidden;
  clear: both; }
  .views-slideshow-j360 .view-spinner {
    margin-left: -1px; }
  .views-slideshow-j360 .views-slideshow-j360-images,
  .views-slideshow-j360 .spritespin-stage {
    cursor: -webkit-grab;
    cursor: grab;
    max-width: 100%;
    width: 100% !important;
    height: 100% !important;
    padding-bottom: 75%;
    background-size: cover !important; }

.spritespin-preload {
  background: url("/National_Library/oe_/https://auctions.freemansauction.com/assets/img/loading.gif") no-repeat center center; }

@media only screen and (max-device-width: 480px) {
  .views_slideshow_j360_main {
    max-width: 100%; } }

.social-share .label {
  text-transform: uppercase;
  text-align: center;
  color: #b3b5b6;
  font-size: 0.8em;
  font-weight: 700; }

.social-share li {
  margin-bottom: 1em; }

#afIBContent li {
  color: #231F20 !important; }

#afIBContent .statusbutton.goldbutton {
  font-size: 12px !important;
  font-style: bold;
  text-decoration: none;
  position: relative;
  background-image: url("/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-right-white.svg");
  background-color: #484b4a;
  background-size: 11px 11px;
  background-repeat: no-repeat;
  background-position: calc(100% - 10px) center;
  padding: 0.75em 40px 0.75em 1em !important;
  color: #fff !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  border: none !important; }
  #afIBContent .statusbutton.goldbutton img {
    display: none; }

#afIBContent .af_bottomButton {
  margin-right: 0 !important; }

#afIBContent .afaf .af_sessionDetails_buttons a {
  background: url("/National_Library/oe_/https://auctions.freemansauction.com/assets/img/icons/arrow-right-white.svg");
  background-color: #5a5e5d;
  background-size: 11px 11px;
  background-repeat: no-repeat;
  background-position: calc(100% - 10px) center;
  font-size: 11.2px;
  padding: 1em 40px 1.0625em 1em;
  color: #fff !important; }

#afIBContent .afaf li {
  color: #231F20 !important; }

#afIBContent .afaf li.af_sessionDetails_title {
  margin: 0 0 0.1em 0;
  font-size: 17.6px;
  font-family: "Cormorant Garamond", serif;
  text-transform: uppercase;
  display: block;
  font-weight: 700;
  color: #000;
  font-style: normal;
  line-height: 1.4em; }

#afIBContent .afaf li.af_sessionDetails_date {
  font-size: 24px;
  line-height: 1.8em !important;
  font-family: "Cormorant Garamond", serif;
  margin: 0 0 1em 0 !important; }

#afIBContent .afaf li.af_sessionDetails_houseName {
  padding: 0;
  margin: 0; }

#afIBContent .afaf li.af_sessionDetails_location {
  font-size: 16px;
  line-height: 1.8em;
  font-family: "Cormorant Garamond", serif;
  font-weight: 700;
  margin: 0; }

#afIBContent .afaf li.af_sessionTimeRemainingText p {
  margin: 0 0 1em 0;
  font-size: 17.6px;
  font-family: "Cormorant Garamond", serif;
  text-transform: uppercase;
  display: block;
  font-weight: 700;
  color: #000;
  font-style: normal;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; }

/*#afIBContent .af_session_left {
    max-width: 32%;

    img {
      max-width: 235px;
      max-height: inherit;
    }
  }*/
#afIBContent .af_session_right {
  margin: 0; }
  #afIBContent .af_session_right .af_left {
    float: right !important;
    text-align: right; }

.ibnav {
  width: auto;
  color: #fff;
  font-size: 1em !important;
  padding-left: 1px;
  margin: 0 1.5%;
  overflow: hidden;
  letter-spacing: -100px; }
  .ibnav a {
    display: block;
    color: #231F20;
    text-decoration: none;
    font-size: 0.8em;
    font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
    line-height: 1.4em;
    margin: 0 0 0 -1px;
    padding: 1em;
    float: left;
    text-transform: capitalize;
    border: solid 1px #d4d4d5;
    letter-spacing: 0; }

#afIBContent {
  margin: 0 1.5% !important; }

@media only screen and (max-device-width: 480px) {
  .ibnav a {
    float: none; }
  #afIBContent .af_session_center {
    margin: 0 !important; }
  #afIBContent .afaf .af_left {
    float: none !important;
    margin-bottom: 0.5em; }
  #afIBContent .afaf .af_right {
    float: none !important; }
  #afIBContent .af_session_right {
    margin: 20px 0 !important;
    width: auto !important;
    font-size: 12px; } }

.front h1#page-title {
  color: #5a5e5d; }

.view-id-specialists hr.baseline {
  border-color: #5a5e5d; }

.page-collections h1, .page-collections h2.featured-title,
.section-collections h1,
.section-collections h2.featured-title,
.page-departments h1,
.page-departments h2.featured-title {
  color: #5a5e5d; }

.page-collections h1.featured-title,
.section-collections h1.featured-title,
.page-departments h1.featured-title {
  color: #5a5e5d; }

.page-collections h2.sub-title,
.section-collections h2.sub-title,
.page-departments h2.sub-title {
  color: #231F20; }

.page-collections .nav-aside,
.section-collections .nav-aside,
.page-departments .nav-aside {
  background-color: #5a5e5d; }
  .page-collections .nav-aside h3.nav-aside-title,
  .section-collections .nav-aside h3.nav-aside-title,
  .page-departments .nav-aside h3.nav-aside-title {
    background-color: #5a5e5d;
    border-color: #5a5e5d !important; }

.page-departments h2 {
  color: #5a5e5d; }

.page-specialists h1, .page-specialists .featured-title,
.node-type-person h1,
.node-type-person .featured-title,
.section-specialists h1,
.section-specialists .featured-title {
  color: #5a5e5d; }

.page-specialists h2,
.node-type-person h2,
.section-specialists h2 {
  color: #5a5e5d; }

.featured-specialists h2,
.featured-results h2,
.featured-collections h2 {
  color: #5a5e5d; }
  .featured-specialists h2.sub-title,
  .featured-results h2.sub-title,
  .featured-collections h2.sub-title {
    color: #231F20; }

.featured-specialists hr.baseline,
.featured-results hr.baseline,
.featured-collections hr.baseline {
  border-color: #5a5e5d; }

.featured-specialists .main p a,
.featured-results .main p a,
.featured-collections .main p a {
  color: #5a5e5d; }

.page-departments .sale-views span {
  color: #8d9190; }
  .page-departments .sale-views span.active {
    color: #5a5e5d; }

.page-departments h1 {
  color: #5a5e5d; }

.page-departments .sale-views span {
  color: #8d9190; }
  .page-departments .sale-views span.active {
    color: #5a5e5d; }

.page-search-site h1,
.category-information h1 {
  color: #5a5e5d; }

.page-search-site .main p a,
.category-information .main p a {
  color: #5a5e5d; }

.section-auction-glossary .main p a,
.section-terms-and-conditions-of-sale .main p a {
  color: #5a5e5d; }

.featured-results hr.baseline {
  border-color: #5a5e5d; }

#block-views-upcoming-block .widget-title {
  color: #5a5e5d; }

#block-views-upcoming-block hr.baseline {
  border-color: #5a5e5d; }

.page-auctions h1,
.page-catalogue-subscriptions h1,
.page-search-calendar h1,
.page-search-past h1,
.section-event h1,
#catalogue_lots h1,
.category-auctions h1 {
  color: #5a5e5d; }

.page-auctions .main p a,
.page-auctions .summary-content a,
.page-auctions ul.pager li a,
.page-catalogue-subscriptions .main p a,
.page-catalogue-subscriptions .summary-content a,
.page-catalogue-subscriptions ul.pager li a,
.page-search-calendar .main p a,
.page-search-calendar .summary-content a,
.page-search-calendar ul.pager li a,
.page-search-past .main p a,
.page-search-past .summary-content a,
.page-search-past ul.pager li a,
.section-event .main p a,
.section-event .summary-content a,
.section-event ul.pager li a,
#catalogue_lots .main p a,
#catalogue_lots .summary-content a,
#catalogue_lots ul.pager li a,
.category-auctions .main p a,
.category-auctions .summary-content a,
.category-auctions ul.pager li a {
  color: #5a5e5d; }

.page-auctions li.pager-current,
.page-catalogue-subscriptions li.pager-current,
.page-search-calendar li.pager-current,
.page-search-past li.pager-current,
.section-event li.pager-current,
#catalogue_lots li.pager-current,
.category-auctions li.pager-current {
  color: #282a29; }

#block-views-news-block-latest .widget-title,
#block-views-departments-block-features .widget-title {
  color: #5a5e5d; }

.section-news .main p a, .section-news .main li a,
.section-news-and-films .main p a,
.section-news-and-films .main li a,
.node-type-article .main p a,
.node-type-article .main li a,
.section-news-article .main p a,
.section-news-article .main li a,
.view-display-id-block_latest .main p a,
.view-display-id-block_latest .main li a,
.section-tags .main p a,
.section-tags .main li a,
.section-about-us .main p a,
.section-about-us .main li a,
.section-about .main p a,
.section-about .main li a,
.page-team .main p a,
.page-team .main li a,
.page-about-team .main p a,
.page-about-team .main li a,
.section-locations .main p a,
.section-locations .main li a,
.section-about .category-inside .main p a,
.section-about .category-inside .main li a,
.category-news-film .main p a,
.category-news-film .main li a {
  color: #5a5e5d; }

.section-news .main p a, .section-news .main li a,
.section-news-and-films .main p a,
.section-news-and-films .main li a,
.node-type-article .main p a,
.node-type-article .main li a,
.section-news-article .main p a,
.section-news-article .main li a,
.view-display-id-block_latest .main p a,
.view-display-id-block_latest .main li a,
.section-tags .main p a,
.section-tags .main li a,
.section-about-us .main p a,
.section-about-us .main li a,
.section-about .main p a,
.section-about .main li a,
.page-team .main p a,
.page-team .main li a,
.page-about-team .main p a,
.page-about-team .main li a,
.section-locations .main p a,
.section-locations .main li a,
.section-about .category-inside .main p a,
.section-about .category-inside .main li a,
.category-news-film .main p a,
.category-news-film .main li a {
  color: #5a5e5d; }

.section-news .main .nav-aside-content li a,
.section-news-and-films .main .nav-aside-content li a,
.node-type-article .main .nav-aside-content li a,
.section-news-article .main .nav-aside-content li a,
.view-display-id-block_latest .main .nav-aside-content li a,
.section-tags .main .nav-aside-content li a,
.section-about-us .main .nav-aside-content li a,
.section-about .main .nav-aside-content li a,
.page-team .main .nav-aside-content li a,
.page-about-team .main .nav-aside-content li a,
.section-locations .main .nav-aside-content li a,
.section-about .category-inside .main .nav-aside-content li a,
.category-news-film .main .nav-aside-content li a {
  color: #231F20; }

.section-news hr.baseline,
.section-news-and-films hr.baseline,
.node-type-article hr.baseline,
.section-news-article hr.baseline,
.view-display-id-block_latest hr.baseline,
.section-tags hr.baseline,
.section-about-us hr.baseline,
.section-about hr.baseline,
.page-team hr.baseline,
.page-about-team hr.baseline,
.section-locations hr.baseline,
.section-about .category-inside hr.baseline,
.category-news-film hr.baseline {
  border-color: #5a5e5d; }

.section-news .widget-area .nav-aside,
.section-news-and-films .widget-area .nav-aside,
.node-type-article .widget-area .nav-aside,
.section-news-article .widget-area .nav-aside,
.view-display-id-block_latest .widget-area .nav-aside,
.section-tags .widget-area .nav-aside,
.section-about-us .widget-area .nav-aside,
.section-about .widget-area .nav-aside,
.page-team .widget-area .nav-aside,
.page-about-team .widget-area .nav-aside,
.section-locations .widget-area .nav-aside,
.section-about .category-inside .widget-area .nav-aside,
.category-news-film .widget-area .nav-aside {
  background-color: #5a5e5d; }

.section-news .widget-area .nav-aside h3.nav-aside-title,
.section-news-and-films .widget-area .nav-aside h3.nav-aside-title,
.node-type-article .widget-area .nav-aside h3.nav-aside-title,
.section-news-article .widget-area .nav-aside h3.nav-aside-title,
.view-display-id-block_latest .widget-area .nav-aside h3.nav-aside-title,
.section-tags .widget-area .nav-aside h3.nav-aside-title,
.section-about-us .widget-area .nav-aside h3.nav-aside-title,
.section-about .widget-area .nav-aside h3.nav-aside-title,
.page-team .widget-area .nav-aside h3.nav-aside-title,
.page-about-team .widget-area .nav-aside h3.nav-aside-title,
.section-locations .widget-area .nav-aside h3.nav-aside-title,
.section-about .category-inside .widget-area .nav-aside h3.nav-aside-title,
.category-news-film .widget-area .nav-aside h3.nav-aside-title {
  border-color: #5a5e5d;
  background-color: #5a5e5d; }

.section-publications h1 {
  color: #5a5e5d; }

.section-publications hr.baseline {
  border-color: #5a5e5d; }

.featured-news h2 {
  color: #5a5e5d; }

.featured-news hr.baseline {
  border-color: #5a5e5d; }

.node-type-location h1,
.node-type-location .region-bottom .widget-title {
  color: #5a5e5d !important; }

.node-type-location .widget-contact .button, .node-type-location .widget-contact .block-apachesolr-sort .form-submit, .block-apachesolr-sort .node-type-location .widget-contact .form-submit, .node-type-location .widget-contact #block-mod-hookson-hookson-search .form-submit, #block-mod-hookson-hookson-search .node-type-location .widget-contact .form-submit, .node-type-location .widget-contact #user-login .form-submit, #user-login .node-type-location .widget-contact .form-submit {
  background-color: #5a5e5d; }

.section-selling-at-auction .main p a, .section-buying-at-auction .main p a,
.category-selling-buying .main p a, .node-type-buying-campaign .main p a, .node-type-selling-campaign .main p a, .node-type-antiques-roadshow .main p a,
.node-type-artist .main p a, .page-artist .main p a {
  color: #5a5e5d; }

.section-services .main p a,
.not-front.category-services .main p a {
  color: #282a29; }

span.category.Selling {
  background: #5a5e5d; }

span.category.sale, span.category.lots,
span.category.Sale, span.category.Lots {
  background: #5a5e5d; }

span.category.news,
span.category.News,
span.category.Inside,
span.category.Locations {
  background: #5a5e5d; }

span.category.page,
span.category.Basic,
span.category.Services {
  background: #282a29; }

span.category.Information {
  background: #5a5e5d; }

span.category.person, span.category.department, span.category.collection,
span.category.Person, span.category.Departments, span.category.Collections, span.category.Specialists {
  background: #5a5e5d; }

.nav-search {
  list-style: none;
  margin: 0;
  overflow: hidden;
  padding: 0 2em;
  margin-bottom: 2em;
  background: #fff;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  border-bottom: solid #e0e2e3 1px; }
  .nav-search li {
    float: left;
    font-size: 1em;
    margin: 4px 0 -5px -1px;
    padding: 0;
    color: #e9e9e9;
    width: 50%;
    text-align: center; }
    .nav-search li a {
      color: #90979a;
      text-decoration: none;
      display: block;
      padding: 1em;
      border: solid #e0e2e3 1px;
      background: #e0e2e3; }
      .nav-search li a:hover, .nav-search li a:focus, .nav-search li a:active {
        text-decoration: underline; }
    .nav-search li.active {
      margin: 0 0 -1px -1px; }
    .nav-search li.active a {
      color: #000;
      background: #fff; }
      .nav-search li.active a:hover, .nav-search li.active a:focus, .nav-search li.active a:active {
        text-decoration: underline; }

@media only screen and (max-device-width: 480px) {
  /*.page-search-site .wrap.main {
      padding-top: 100px;
    }

    .nav-search {
      position: fixed;
      top: 50px; left: -5%;
      width: 90%;
      padding: 0;
      margin: 0 5% 2em 5%;
    }*/ }

.page-search-lots #block-facetapi-4zh0ggjmbgeeybrlpjce8eml3a6ple0j,
#block-facetapi-bymng0uc0vqloadlr3aedlj9u2sq1juj {
  display: none; }

.section-zh .wrap.main,
.section-zht .wrap.main {
  padding-top: 93px; }

.section-zh.page-node-144061 .wrap.main,
.section-zht.page-node-144061 .wrap.main {
  padding-top: 125px; }

.section-zh .wrap.masthead .brand,
.section-zht .wrap.masthead .brand {
  width: auto; }

.section-zh .wrap.base .row,
.section-zh .site-links .conditions-of-sale,
.section-zht .wrap.base .row,
.section-zht .site-links .conditions-of-sale {
  display: none; }

.section-zh .cycle-pager,
.section-zh .cycle-prev,
.section-zh .cycle-next,
.section-zht .cycle-pager,
.section-zht .cycle-prev,
.section-zht .cycle-next {
  display: none !important; }

.section-zh .joint-brand-links.inline-list,
.section-zht .joint-brand-links.inline-list {
  margin: 30px 0;
  text-align: center; }
  .section-zh .joint-brand-links.inline-list li,
  .section-zht .joint-brand-links.inline-list li {
    font-size: 0.75em;
    margin-left: 25px;
    padding-right: 25px;
    margin-bottom: 0;
    color: #000;
    float: none;
    display: inline-block;
    vertical-align: middle;
    min-width: 30%;
    text-align: left; }
    .section-zh .joint-brand-links.inline-list li.last,
    .section-zht .joint-brand-links.inline-list li.last {
      margin-right: -32%; }
    .section-zh .joint-brand-links.inline-list li a,
    .section-zht .joint-brand-links.inline-list li a {
      color: #231F20 !important;
      display: block;
      height: 45px;
      line-height: 45px; }
  .section-zh .joint-brand-links.inline-list a.brand_link-freemans,
  .section-zh .joint-brand-links.inline-list a.brand_link-lyonandturnbull,
  .section-zht .joint-brand-links.inline-list a.brand_link-freemans,
  .section-zht .joint-brand-links.inline-list a.brand_link-lyonandturnbull {
    overflow: hidden;
    text-indent: -999px; }
  .section-zh .joint-brand-links.inline-list a.brand_link-freemans,
  .section-zht .joint-brand-links.inline-list a.brand_link-freemans {
    width: 100%;
    background: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/brand_freemans_gs.png) no-repeat center;
    background-size: 100%; }
  .section-zh .joint-brand-links.inline-list a.brand_link-lyonandturnbull,
  .section-zht .joint-brand-links.inline-list a.brand_link-lyonandturnbull {
    width: 100%;
    background: url(/National_Library/oe_/https://auctions.freemansauction.com/assets/img/brand_lyonandturnbull_gs.png) no-repeat center;
    background-size: 100%; }

@media only screen and (max-device-width: 768px), screen and (max-width: 1024px) {
  .section-zh .joint-brand-links.inline-list,
  .section-zht .joint-brand-links.inline-list {
    margin-top: 1em; }
    .section-zh .joint-brand-links.inline-list li,
    .section-zht .joint-brand-links.inline-list li {
      min-width: 40%;
      border: 0 !important;
      text-align: center; }
      .section-zh .joint-brand-links.inline-list li.last,
      .section-zht .joint-brand-links.inline-list li.last {
        margin-right: 0; } }

@media only screen and (max-device-width: 480px) {
  .section-zh .joint-brand-links.inline-list li,
  .section-zht .joint-brand-links.inline-list li {
    min-width: 0;
    width: 100%;
    margin: 0;
    padding: 0; } }

.section-zh .region-bottom .widget-title, .section-zh .page__title,
.section-zht .region-bottom .widget-title,
.section-zht .page__title {
  color: #5a5e5d !important; }

.section-zh .node-page p a,
.section-zht .node-page p a {
  color: #5a5e5d !important; }
  .section-zh .node-page p a:hover, .section-zh .node-page p a:focus, .section-zh .node-page p a:active,
  .section-zht .node-page p a:hover,
  .section-zht .node-page p a:focus,
  .section-zht .node-page p a:active {
    color: #363838 !important; }

.section-zh .node-page p a.button, .section-zh .node-page p .block-apachesolr-sort a.form-submit, .block-apachesolr-sort .section-zh .node-page p a.form-submit, .section-zh .node-page p #block-mod-hookson-hookson-search a.form-submit, #block-mod-hookson-hookson-search .section-zh .node-page p a.form-submit, .section-zh .node-page p #user-login a.form-submit, #user-login .section-zh .node-page p a.form-submit,
.section-zh a.backtotop.button,
.section-zh .block-apachesolr-sort a.backtotop.form-submit, .block-apachesolr-sort
.section-zh a.backtotop.form-submit,
.section-zh #block-mod-hookson-hookson-search a.backtotop.form-submit, #block-mod-hookson-hookson-search
.section-zh a.backtotop.form-submit,
.section-zh #user-login a.backtotop.form-submit, #user-login
.section-zh a.backtotop.form-submit,
.section-zht .node-page p a.button,
.section-zht .node-page p .block-apachesolr-sort a.form-submit, .block-apachesolr-sort
.section-zht .node-page p a.form-submit,
.section-zht .node-page p #block-mod-hookson-hookson-search a.form-submit, #block-mod-hookson-hookson-search
.section-zht .node-page p a.form-submit,
.section-zht .node-page p #user-login a.form-submit, #user-login
.section-zht .node-page p a.form-submit,
.section-zht a.backtotop.button,
.section-zht .block-apachesolr-sort a.backtotop.form-submit, .block-apachesolr-sort
.section-zht a.backtotop.form-submit,
.section-zht #block-mod-hookson-hookson-search a.backtotop.form-submit, #block-mod-hookson-hookson-search
.section-zht a.backtotop.form-submit,
.section-zht #user-login a.backtotop.form-submit, #user-login
.section-zht a.backtotop.form-submit {
  color: #fff !important;
  background-color: #5a5e5d !important; }
  .section-zh .node-page p a.button:hover, .section-zh .node-page p .block-apachesolr-sort a.form-submit:hover, .block-apachesolr-sort .section-zh .node-page p a.form-submit:hover, .section-zh .node-page p #block-mod-hookson-hookson-search a.form-submit:hover, #block-mod-hookson-hookson-search .section-zh .node-page p a.form-submit:hover, .section-zh .node-page p #user-login a.form-submit:hover, #user-login .section-zh .node-page p a.form-submit:hover, .section-zh .node-page p a.button:focus, .section-zh .node-page p .block-apachesolr-sort a.form-submit:focus, .block-apachesolr-sort .section-zh .node-page p a.form-submit:focus, .section-zh .node-page p #block-mod-hookson-hookson-search a.form-submit:focus, #block-mod-hookson-hookson-search .section-zh .node-page p a.form-submit:focus, .section-zh .node-page p #user-login a.form-submit:focus, #user-login .section-zh .node-page p a.form-submit:focus, .section-zh .node-page p a.button:active, .section-zh .node-page p .block-apachesolr-sort a.form-submit:active, .block-apachesolr-sort .section-zh .node-page p a.form-submit:active, .section-zh .node-page p #block-mod-hookson-hookson-search a.form-submit:active, #block-mod-hookson-hookson-search .section-zh .node-page p a.form-submit:active, .section-zh .node-page p #user-login a.form-submit:active, #user-login .section-zh .node-page p a.form-submit:active,
  .section-zh a.backtotop.button:hover,
  .section-zh .block-apachesolr-sort a.backtotop.form-submit:hover, .block-apachesolr-sort
  .section-zh a.backtotop.form-submit:hover,
  .section-zh #block-mod-hookson-hookson-search a.backtotop.form-submit:hover, #block-mod-hookson-hookson-search
  .section-zh a.backtotop.form-submit:hover,
  .section-zh #user-login a.backtotop.form-submit:hover, #user-login
  .section-zh a.backtotop.form-submit:hover,
  .section-zh a.backtotop.button:focus,
  .section-zh .block-apachesolr-sort a.backtotop.form-submit:focus, .block-apachesolr-sort
  .section-zh a.backtotop.form-submit:focus,
  .section-zh #block-mod-hookson-hookson-search a.backtotop.form-submit:focus, #block-mod-hookson-hookson-search
  .section-zh a.backtotop.form-submit:focus,
  .section-zh #user-login a.backtotop.form-submit:focus, #user-login
  .section-zh a.backtotop.form-submit:focus,
  .section-zh a.backtotop.button:active,
  .section-zh .block-apachesolr-sort a.backtotop.form-submit:active, .block-apachesolr-sort
  .section-zh a.backtotop.form-submit:active,
  .section-zh #block-mod-hookson-hookson-search a.backtotop.form-submit:active, #block-mod-hookson-hookson-search
  .section-zh a.backtotop.form-submit:active,
  .section-zh #user-login a.backtotop.form-submit:active, #user-login
  .section-zh a.backtotop.form-submit:active,
  .section-zht .node-page p a.button:hover,
  .section-zht .node-page p .block-apachesolr-sort a.form-submit:hover, .block-apachesolr-sort
  .section-zht .node-page p a.form-submit:hover,
  .section-zht .node-page p #block-mod-hookson-hookson-search a.form-submit:hover, #block-mod-hookson-hookson-search
  .section-zht .node-page p a.form-submit:hover,
  .section-zht .node-page p #user-login a.form-submit:hover, #user-login
  .section-zht .node-page p a.form-submit:hover,
  .section-zht .node-page p a.button:focus,
  .section-zht .node-page p .block-apachesolr-sort a.form-submit:focus, .block-apachesolr-sort
  .section-zht .node-page p a.form-submit:focus,
  .section-zht .node-page p #block-mod-hookson-hookson-search a.form-submit:focus, #block-mod-hookson-hookson-search
  .section-zht .node-page p a.form-submit:focus,
  .section-zht .node-page p #user-login a.form-submit:focus, #user-login
  .section-zht .node-page p a.form-submit:focus,
  .section-zht .node-page p a.button:active,
  .section-zht .node-page p .block-apachesolr-sort a.form-submit:active, .block-apachesolr-sort
  .section-zht .node-page p a.form-submit:active,
  .section-zht .node-page p #block-mod-hookson-hookson-search a.form-submit:active, #block-mod-hookson-hookson-search
  .section-zht .node-page p a.form-submit:active,
  .section-zht .node-page p #user-login a.form-submit:active, #user-login
  .section-zht .node-page p a.form-submit:active,
  .section-zht a.backtotop.button:hover,
  .section-zht .block-apachesolr-sort a.backtotop.form-submit:hover, .block-apachesolr-sort
  .section-zht a.backtotop.form-submit:hover,
  .section-zht #block-mod-hookson-hookson-search a.backtotop.form-submit:hover, #block-mod-hookson-hookson-search
  .section-zht a.backtotop.form-submit:hover,
  .section-zht #user-login a.backtotop.form-submit:hover, #user-login
  .section-zht a.backtotop.form-submit:hover,
  .section-zht a.backtotop.button:focus,
  .section-zht .block-apachesolr-sort a.backtotop.form-submit:focus, .block-apachesolr-sort
  .section-zht a.backtotop.form-submit:focus,
  .section-zht #block-mod-hookson-hookson-search a.backtotop.form-submit:focus, #block-mod-hookson-hookson-search
  .section-zht a.backtotop.form-submit:focus,
  .section-zht #user-login a.backtotop.form-submit:focus, #user-login
  .section-zht a.backtotop.form-submit:focus,
  .section-zht a.backtotop.button:active,
  .section-zht .block-apachesolr-sort a.backtotop.form-submit:active, .block-apachesolr-sort
  .section-zht a.backtotop.form-submit:active,
  .section-zht #block-mod-hookson-hookson-search a.backtotop.form-submit:active, #block-mod-hookson-hookson-search
  .section-zht a.backtotop.form-submit:active,
  .section-zht #user-login a.backtotop.form-submit:active, #user-login
  .section-zht a.backtotop.form-submit:active {
    color: #fff !important;
    background-color: #363838 !important; }

.section-zh .region-sidebar a,
.section-zht .region-sidebar a {
  color: #5a5e5d !important; }
  .section-zh .region-sidebar a:hover, .section-zh .region-sidebar a:focus, .section-zh .region-sidebar a:active,
  .section-zht .region-sidebar a:hover,
  .section-zht .region-sidebar a:focus,
  .section-zht .region-sidebar a:active {
    color: #363838 !important; }
  .section-zh .region-sidebar a.button, .section-zh .region-sidebar .block-apachesolr-sort a.form-submit, .block-apachesolr-sort .section-zh .region-sidebar a.form-submit, .section-zh .region-sidebar #block-mod-hookson-hookson-search a.form-submit, #block-mod-hookson-hookson-search .section-zh .region-sidebar a.form-submit, .section-zh .region-sidebar #user-login a.form-submit, #user-login .section-zh .region-sidebar a.form-submit,
  .section-zht .region-sidebar a.button,
  .section-zht .region-sidebar .block-apachesolr-sort a.form-submit, .block-apachesolr-sort
  .section-zht .region-sidebar a.form-submit,
  .section-zht .region-sidebar #block-mod-hookson-hookson-search a.form-submit, #block-mod-hookson-hookson-search
  .section-zht .region-sidebar a.form-submit,
  .section-zht .region-sidebar #user-login a.form-submit, #user-login
  .section-zht .region-sidebar a.form-submit {
    color: #fff !important;
    background-color: #5a5e5d !important; }
    .section-zh .region-sidebar a.button:hover, .section-zh .region-sidebar .block-apachesolr-sort a.form-submit:hover, .block-apachesolr-sort .section-zh .region-sidebar a.form-submit:hover, .section-zh .region-sidebar #block-mod-hookson-hookson-search a.form-submit:hover, #block-mod-hookson-hookson-search .section-zh .region-sidebar a.form-submit:hover, .section-zh .region-sidebar #user-login a.form-submit:hover, #user-login .section-zh .region-sidebar a.form-submit:hover, .section-zh .region-sidebar a.button:focus, .section-zh .region-sidebar .block-apachesolr-sort a.form-submit:focus, .block-apachesolr-sort .section-zh .region-sidebar a.form-submit:focus, .section-zh .region-sidebar #block-mod-hookson-hookson-search a.form-submit:focus, #block-mod-hookson-hookson-search .section-zh .region-sidebar a.form-submit:focus, .section-zh .region-sidebar #user-login a.form-submit:focus, #user-login .section-zh .region-sidebar a.form-submit:focus, .section-zh .region-sidebar a.button:active, .section-zh .region-sidebar .block-apachesolr-sort a.form-submit:active, .block-apachesolr-sort .section-zh .region-sidebar a.form-submit:active, .section-zh .region-sidebar #block-mod-hookson-hookson-search a.form-submit:active, #block-mod-hookson-hookson-search .section-zh .region-sidebar a.form-submit:active, .section-zh .region-sidebar #user-login a.form-submit:active, #user-login .section-zh .region-sidebar a.form-submit:active,
    .section-zht .region-sidebar a.button:hover,
    .section-zht .region-sidebar .block-apachesolr-sort a.form-submit:hover, .block-apachesolr-sort
    .section-zht .region-sidebar a.form-submit:hover,
    .section-zht .region-sidebar #block-mod-hookson-hookson-search a.form-submit:hover, #block-mod-hookson-hookson-search
    .section-zht .region-sidebar a.form-submit:hover,
    .section-zht .region-sidebar #user-login a.form-submit:hover, #user-login
    .section-zht .region-sidebar a.form-submit:hover,
    .section-zht .region-sidebar a.button:focus,
    .section-zht .region-sidebar .block-apachesolr-sort a.form-submit:focus, .block-apachesolr-sort
    .section-zht .region-sidebar a.form-submit:focus,
    .section-zht .region-sidebar #block-mod-hookson-hookson-search a.form-submit:focus, #block-mod-hookson-hookson-search
    .section-zht .region-sidebar a.form-submit:focus,
    .section-zht .region-sidebar #user-login a.form-submit:focus, #user-login
    .section-zht .region-sidebar a.form-submit:focus,
    .section-zht .region-sidebar a.button:active,
    .section-zht .region-sidebar .block-apachesolr-sort a.form-submit:active, .block-apachesolr-sort
    .section-zht .region-sidebar a.form-submit:active,
    .section-zht .region-sidebar #block-mod-hookson-hookson-search a.form-submit:active, #block-mod-hookson-hookson-search
    .section-zht .region-sidebar a.form-submit:active,
    .section-zht .region-sidebar #user-login a.form-submit:active, #user-login
    .section-zht .region-sidebar a.form-submit:active {
      color: #fff !important;
      background-color: #363838 !important; }

.section-zh .tabs-primary a,
.section-zht .tabs-primary a {
  color: #5a5e5d !important; }
  .section-zh .tabs-primary a:hover, .section-zh .tabs-primary a:focus, .section-zh .tabs-primary a:active,
  .section-zht .tabs-primary a:hover,
  .section-zht .tabs-primary a:focus,
  .section-zht .tabs-primary a:active {
    color: #363838 !important; }

.section-zh .nav-primary ul > li:hover,
.section-zht .nav-primary ul > li:hover {
  border-bottom-color: transparent; }

.app-tile {
  background-image: url("/National_Library/oe_/https://auctions.freemansauction.com/assets/images/snow.png");
  background-size: cover;
  position: relative;
  padding-bottom: 5rem;
  font-family: 'Cormorant Garamond', serif;
  overflow: hidden; }

.app-tile img {
  width: auto; }

.app-tile .tile-content {
  width: 80%;
  margin: 4rem auto 0; }

.app-tile .frame-right {
  position: absolute;
  right: 0;
  top: 0; }

.app-tile .frame-left {
  position: absolute;
  left: 0;
  top: 0; }

.app-tile .tile-image {
  width: 100%;
  text-align: center; }

.app-tile .tile-text {
  text-align: center; }

.app-tile .tile-heading {
  margin: 2rem 0 0;
  font-weight: normal;
  font-size: 1.2rem; }

.app-tile .tile-sub-heading {
  margin: 1rem 0 2rem;
  font-weight: normal;
  font-family: "Lato", "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  display: block;
  font-size: .9rem; }

.app-tile .tile-button {
  margin-bottom: 2rem;
  display: block; }

/* Media Queries */
@media screen and (min-width: 768px) {
  .app-tile .tile-image {
    float: left;
    width: 35%; }
  .app-tile .tile-text {
    float: left;
    width: 65%; }
  .app-tile .tile-button {
    margin-bottom: 2rem; }
  .app-tile .tile-heading {
    margin: 1rem 0 0; }
  .app-tile .tile-sub-heading {
    margin: 1rem 0 1rem; } }

@media screen and (min-width: 950px) {
  .app-tile .tile-heading {
    font-size: 1.8rem; }
  .app-tile .tile-sub-heading {
    font-size: 1rem;
    margin: 1rem 0 3rem; }
  .app-tile .tile-button {
    margin-bottom: 3rem; } }

@media screen and (min-width: 1024px) {
  .app-tile .tile-heading {
    margin: 3rem 0 0; } }

@media screen and (min-width: 1200px) {
  .app-tile .tile-heading {
    font-size: 2.6rem;
    margin: 2rem 0 0; }
  .app-tile .tile-sub-heading {
    font-size: 1.4rem; }
  .app-tile .tile-button {
    margin-bottom: 4rem; } }

/* Clearfix */
.cf:before,
.cf:after {
  content: " ";
  display: table; }

.cf:after {
  clear: both; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvbW9kdWxlcy9fYmxvY2tzLXNlYXJjaC5zY3NzIiwiY29tcG9uZW50cy9zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJjb21wb25lbnRzL3NldHRpbmdzL19ncmlkc2V0LnNjc3MiLCJjb21wb25lbnRzL21vZHVsZXMvX3dpZGdldHMuc2NzcyIsImNvbXBvbmVudHMvc2V0dGluZ3MvX3N0eWxlLW1peGlucy5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2Z1bmN0aW9ucy9fY29sb3JzLnNhc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fc2hhcmVkLnNhc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fdHJhbnNmb3JtLnNhc3MiLCJjb21wb25lbnRzL3NldHRpbmdzL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19idWxsZXRzLnNhc3MiLCJjb21wb25lbnRzL21vZHVsZXMvX25hdmlnYXRpb24tc2lkZWJhci5zY3NzIiwiY29tcG9uZW50cy9tb2R1bGVzL19uYXZpZ2F0aW9uLXBhZ2luYXRpb24uc2NzcyIsImNvbXBvbmVudHMvbW9kdWxlcy9fbmF2aWdhdGlvbi1icmVhZGNydW1iLnNjc3MiLCJjb21wb25lbnRzL21vZHVsZXMvX3VpLWNhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL21vZHVsZXMvX3VpLW1vZGFsLnNjc3MiLCJjb21wb25lbnRzL21vZHVsZXMvX3VpLWRydXBhbC5zY3NzIiwiY29tcG9uZW50cy9tb2R1bGVzL191aS0zNjAuc2NzcyIsImNvbXBvbmVudHMvbW9kdWxlcy9fc29jaWFsLXNoYXJlLnNjc3MiLCJjb21wb25lbnRzL2FkanVzdG1lbnRzL19jb2xvcnMuc2NzcyIsImNvbXBvbmVudHMvbW9kdWxlcy9fbmF2aWdhdGlvbi1zZWFyY2guc2NzcyIsImNvbXBvbmVudHMvbW9kdWxlcy9fbWljcm9zaXRlLWNoaW5lc2Uuc2NzcyIsImNvbXBvbmVudHMvbW9kdWxlcy9fYmxvY2tzLWFwcHRpbGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRRTtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixpQ0FBZ0MsRUE2Q2pDO0VBbEREO0lBUUksWUFBWTtJQUNaLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixnQ0FBK0IsRUFLaEM7SUFsQkg7TUFnQk0saUJBQWlCLEVBQ2xCO0VBakJMO0lBb0JJLFlBQVk7SUFDWixXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLGlCQUFpQixFQWdCbEI7SUF2Q0g7TUEwQk0sY0FBYztNQUNkLHFCQUFxQjtNQUNyQiw0RUNtQnNGO01EbEJ0RixvQkFBb0I7TUFDcEIsMEJBQTBCO01BQzFCLG1CQUFtQjtNQUNuQixpQkFBaUIsRUFDbEI7SUFqQ0w7TUFtQ00sNEVDWXNGO01EWHRGLGlCQUFpQjtNQUNqQixxQkFBcUIsRUFDdEI7RUF0Q0w7SUF5Q0ksbUJBQW1CO0lBQ25CLFVBQVU7SUFBRSxTQUFTO0lBQ3JCLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsZUFBYztJQUNkLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osb0JDcER3QixFRHFEekI7O0FFOEowQztFRnRKM0M7SUFDRSxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGlDQUFnQyxFQTJCakM7SUE5QkQ7TUFNSSxZQUFZO01BQ1osV0FBVztNQUNYLGlCQUFpQjtNQUNqQixxQkFBcUI7TUFDckIsaUJBQWlCO01BQ2pCLG1CQUFtQixFQUtwQjtNQWhCSDtRQWNNLGNBQWMsRUFDZjtJQWZMO01B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UztFQUNULE9BQU8sRUFDUjs7QUFFRDtFQUNFLG1CQUFtQjtFQUNuQixRQUFRO0VBQ1IsT0FBTyxFQUNSOztBQUVEO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQixFQUNwQjs7QUFFRDtFQUNFLG1CQUFtQixFQUNwQjs7QUFFRDtFQUNFLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsa0JBQWtCLEVBQ25COztBQUVEO0VBQ0Usb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQiw0RXBCRjRGO0VvQkc1RixlQUFlO0VBQ2YsaUJBQWlCLEVBQ2xCOztBQUVEO0VBQ0Usb0JBQW9CO0VBQ3BCLGVBQWUsRUFDaEI7O0FBR0QsbUJBQW1CO0FBRW5CO0VBQ0U7SUFDRSxZQUFZO0lBQ1osV0FBVyxFQUNaO0VBQ0Q7SUFDRSxZQUFZO0lBQ1osV0FBVyxFQUNaO0VBQ0Q7SUFDRSxvQkFBb0IsRUFDckI7RUFDRDtJQUNFLGlCQUFpQixFQUNsQjtFQUNEO0lBQ0Usb0JBQW9CLEVBQ3JCLEVBQUE7O0FBR0g7RUFDRTtJQUNFLGtCQUFrQixFQUVuQjtFQUNEO0lBQ0UsZ0JBQWdCO0lBQ2hCLG9CQUFvQixFQUNyQjtFQUNEO0lBQ0Usb0JBQW9CLEVBQ3JCLEVBQUE7O0FBR0g7RUFDRTtJQUNFLGlCQUFpQixFQUNsQixFQUFBOztBQUdIO0VBQ0U7SUFDRSxrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQ2xCO0VBQ0Q7SUFDRSxrQkFBa0IsRUFDbkI7RUFDRDtJQUNFLG9CQUFvQixFQUNyQixFQUFBOztBQUlILGNBQWM7QUFFZDs7RUFFSSxhQUFhO0VBQ2IsZUFBZSxFQUNsQjs7QUFFRDtFQUNJLFlBQVksRUFDZiIsImZpbGUiOiJtb2R1bGVzLTIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBNb2R1bGVzIC8gQmxvY2tzIC0gU2VhcmNoXHJcbi8vICBCbG9ja3Mgb2YgY29udGVudCBmb3Igc2VhcmNoIHBhZ2VzXHJcblxyXG4gIC8vIE1BSU4gUkVTVUxUUyBQQUdFIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLy8gVGVhc2VyIChTZWFyY2ggcmVzdWx0cykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5zZWFyY2gtdGVhc2VyIHsgXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgcGFkZGluZy10b3A6IDJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDMlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LDQwJSk7XHJcblxyXG4gICAgLnNlYXJjaC1pbWFnZSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB3aWR0aDogMTklO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzJTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDMlO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDMlO1xyXG4gICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG5cclxuICAgICAgaW1nIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc3VtbWFyeSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB3aWR0aDogNzUlO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMyU7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0yZW07XHJcbiAgICAgIFxyXG4gICAgICBoMiwgaDQge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRmYW1pbHk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICB9XHJcbiAgICAgIHAge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHNwYW4uY2F0ZWdvcnkge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDsgcmlnaHQ6IDA7XHJcbiAgICAgIHBhZGRpbmc6IDAuNWVtO1xyXG4gICAgICBmb250LXNpemU6IDAuNzVlbTtcclxuICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgYmFja2dyb3VuZDogJGRhcmtfZ3JleTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcclxuICAvLyBNZWRpYSBRdWVyaWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcblxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7XHJcblxyXG4gICAgLnNlYXJjaC10ZWFzZXIge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNSU7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG5cclxuICAgICAgLnNlYXJjaC1pbWFnZSB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgd2lkdGg6IDM1JTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzNHB4OyAvLyBjbGVhciBjYXRlZ29yeSBsYWJlbFxyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMyU7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLnN1bW1hcnkge1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHdpZHRoOiA2MCU7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDM0cHg7IC8vIGNsZWFyIGNhdGVnb3J5IGxhYmVsXHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBcclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBwIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzcGFuLmNhdGVnb3J5IHtcclxuICAgICAgcGFkZGluZzogN3B4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgIH1cclxuICB9IiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBTZXR0aW5ncyAvIFZhcmlhYmxlc1xyXG5cclxuJG5ld190aGVtZV9ncmF5X2NvbG9yOiAjNWE1ZTVkO1xyXG4kbmV3X3RoZW1lX2J1dHRvbl9pY29uX3Bvc2l0aW9uOiBjYWxjKDEwMCUgLSAxMHB4KSBjZW50ZXI7XHJcbiRuZXdfdGhlbWVfYnV0dG9uX2ljb25fcG9zaXRpb24tbGVmdDogMTBweCBjZW50ZXI7XHJcbiRuZXdfdGhlbWVfYnV0dG9uX2ljb25fc2l6ZTogMTFweCAxMXB4O1xyXG5cclxuLy9cclxuICAvLyBDb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICRwcmltYXJ5ICAgICAgICAgICAgICAgICAgICA6ICMwMDA7IC8vIChmb3JtZXJseSBibHVlKVxyXG4gICRzZWNvbmRhcnkgICAgICAgICAgICAgICAgICA6ICNlOWU5ZTk7IC8vIGxpZ2h0IGdyZXlcclxuICAkdGVydGlhcnkgICAgICAgICAgICAgICAgICAgOiBsaWdodGVuKCRwcmltYXJ5LDIwJSk7IC8vXHJcbiAgJGhlYWRpbmdfY29sb3IgICAgICAgICAgICAgIDogIzIyMjsgLy8gdiBkYXJrIGdyZXlcclxuICAkdGV4dF9jb2xvciAgICAgICAgICAgICAgICAgOiAjMjMxRjIwOyAvLyB2IGRhcmsgZ3JleVxyXG4gICRjb21wX2NvbG9yICAgICAgICAgICAgICAgICA6IGFkanVzdC1odWUoJHNlY29uZGFyeSwgNDUpO1xyXG5cclxuICAvLyBBZGRpdGlvbmFsIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgJGxpZ2h0X2dyZXkgICAgICAgICAgICAgICAgIDogI2UwZTJlMztcclxuICAkbWlkX2dyZXkgICAgICAgICAgICAgICAgICAgOiAjNkQ2RTcwOyAvLyBkaXZkZXIgbGluZXMsIGJ1dHRvbiBib3JkZXJzIGV0Y1xyXG4gICRkYXJrX2dyZXkgICAgICAgICAgICAgICAgICA6ICMxMjEyMTI7IC8vXHJcblxyXG4gICRwaW5rICAgICAgICAgICAgICAgICAgICAgICA6ICRuZXdfdGhlbWVfZ3JheV9jb2xvcjsgLy8gI2UwNWU1YTsgLy8gU3BlY2lhbGlzdHNcclxuICAkcHVycGxlICAgICAgICAgICAgICAgICAgICAgOiAkbmV3X3RoZW1lX2dyYXlfY29sb3I7IC8vICM1NDNhNjk7IC8vIEJ1eSAmIFNlbGxcclxuICAkaW5kaWdvICAgICAgICAgICAgICAgICAgICAgOiAkbmV3X3RoZW1lX2dyYXlfY29sb3I7IC8vICM4MzhmYjI7IC8vIEF1Y3Rpb25zXHJcbiAgJGRhcmtfZ3JleSAgICAgICAgICAgICAgICAgIDogJG5ld190aGVtZV9ncmF5X2NvbG9yOyAvLyAjNzQ3NDc0OyAvLyBVc2VyLCBDb250YWN0L0xvY2F0aW9ucywgU2VhcmNoXHJcbiAgJGxpZ2h0X2JsdWUgICAgICAgICAgICAgICAgIDogJG5ld190aGVtZV9ncmF5X2NvbG9yOyAvLyAjYTdkYmVhOyAvLyBTZXJ2aWNlc1xyXG4gICRncmVlbiAgICAgICAgICAgICAgICAgICAgICA6ICRuZXdfdGhlbWVfZ3JheV9jb2xvcjsgLy8gIzM4Yzg5MjsgLy8gTmV3c1xyXG5cclxuICAkc3VjY2VzcyAgICAgICAgICAgICAgICAgICAgOiAjNTZiYjQ5OyAvLyBncmVlblxyXG4gICR3YXJuaW5nICAgICAgICAgICAgICAgICAgICA6ICNlYzkzMTQ7IC8vIG9yYW5nZVxyXG4gICRlcnJvciAgICAgICAgICAgICAgICAgICAgICA6ICNlNTM5Mzk7IC8vIHJlZFxyXG4gIFxyXG4gIC8vIFJvb3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICRicm93c2VyX2RlZmF1bHRfZm9udHNpemUgICA6IDE2cHg7XHJcbiAgJGh0bWxfY29sb3IgICAgICAgICAgICAgICAgIDogI2ZmZjtcclxuICAkYm9keV9jb2xvciAgICAgICAgICAgICAgICAgOiAjZmZmO1xyXG4gICR0YXBfaGlnaGxpZ2h0X2NvbG9yICAgICAgICA6ICMwMGY7XHJcbiAgJHNlbGVjdGlvbl9jb2xvciAgICAgICAgICAgIDogI2ZmZjtcclxuICAkc2VsZWN0aW9uX2JhY2tncm91bmQgICAgICAgOiByZ2JhKCRjb21wX2NvbG9yLCAwLjc1KTtcclxuXHJcbiAgLy8gVHlwb2dyYXBoeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgJGJhc2VfZm9udHNpemUgICAgICAgICAgICAgIDogJGJyb3dzZXJfZGVmYXVsdF9mb250c2l6ZTsgLy8gU2V0cyB1cCB0aGUgQmFzZSAxMCBzdHVmZlxyXG4gICRiYXNlX2xpbmVoZWlnaHQgICAgICAgICAgICA6IDEuNTtcclxuICAkbGlnaHRfZm9udHdlaWdodCAgICAgICAgICAgOiAzMDA7XHJcbiAgJGJvb2tfZm9udHdlaWdodCAgICAgICAgICAgIDogNDAwO1xyXG4gICRtZWRpdW1fZm9udHdlaWdodCAgICAgICAgICA6IDUwMDtcclxuICAkYm9sZF9mb250d2VpZ2h0ICAgICAgICAgICAgOiA3MDA7XHJcbiAgJGV4Ym9sZF9mb250d2VpZ2h0ICAgICAgICAgIDogODAwO1xyXG5cclxuICAkYmFzZV9mb250d2VpZ2h0ICAgICAgICAgICAgOiBub3JtYWw7IFxyXG4gICRiYXNlX2ZvbnRzdHlsZSAgICAgICAgICAgICA6IG5vcm1hbDsgICBcclxuICAkYmFzZV9zdHJvbmdfZm9udHdlaWdodCAgICAgOiAkYm9sZF9mb250d2VpZ2h0O1xyXG4gIC8vJGJhc2VfZm9udGZhbWlseSAgICAgICAgICAgIDogJ2JhcmlvbF9yZWd1bGFyJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICAkYmFzZV9mb250ZmFtaWx5ICAgICAgICAgICAgOiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICAkaGVhZF9mb250ZmFtaWx5ICAgICAgICAgICAgOiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7XHJcbiAgJGhlYWR1cHBlcl9mb250ZmFtaWx5ICAgICAgIDogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmO1xyXG4gICRzZXJpZl9mb250ZmFtaWx5ICAgICAgICAgICA6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjtcclxuXHJcbiAgLy8gTGF5b3V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAkcm93X3dpZHRoICAgICAgICAgICAgICAgICAgOiA5NyU7IC8vIE1haW4gcGFnZSBjb250YWluZXJcclxuICAkcm93X21heF93aWR0aCAgICAgICAgICAgICAgOiA3Ny4zNzVlbTsgLy8gTGFwdG9wIGxpbWl0XHJcbiAgJHdpZGVfcm93X21heF93aWR0aCAgICAgICAgIDogODcuNWVtOyAvLyBXaWRlc2NyZWVuIGxpbWl0XHJcblxyXG4gICRnbG9iYWxfbWFyZ2luICAgICAgICAgICAgICA6IDEuNSU7IC8vIFRoZSBzaXRlLXdpZGUgc2lkZSBtYXJnaW5zIChmb3IgZmxleGlibGUvZnVsbC13aWR0aCBlbGVtZW50cylcclxuXHJcbiAgLy8gTWVkaWEgUXVlcnkgUmFuZ2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAkc21hbGwtcmFuZ2UgICAgICAgICAgICAgICAgOiAoMGVtLCA0MGVtKTtcclxuICAkbWVkaXVtLXJhbmdlICAgICAgICAgICAgICAgOiAoNDAuMDYzZW0sIDY0ZW0pO1xyXG4gICRsYXJnZS1yYW5nZSAgICAgICAgICAgICAgICA6ICg2NC4wNjNlbSwgOTBlbSk7XHJcbiAgJHh4bGFyZ2UtcmFuZ2UgICAgICAgICAgICAgIDogKDkwLjA2M2VtLCAxMjBlbSk7XHJcbiAgJHh4bGFyZ2UtcmFuZ2UgICAgICAgICAgICAgIDogKDEyMC4wNjNlbSk7XHJcblxyXG4gIC8vIFRlc3Qgc2V0dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICR3aWRlLXNsaWRlLWhlaWdodCAgICAgICAgICA6IDQ4MHB4O1xyXG4gICRkZWZhdWx0LXNsaWRlLWhlaWdodCAgICAgICA6IDQ4MHB4O1xyXG4gICR0YWJsZXQtc2xpZGUtaGVpZ2h0ICAgICAgICA6IDQ4MHB4O1xyXG4gICRtb2JpbGUtc2xpZGUtaGVpZ2h0ICAgICAgICA6IDI4MHB4O1xyXG5cclxuICAkeGxhcmdlLXNsaWRlLXdpZHRoICAgICAgICAgOiAyMDAwcHg7XHJcbiAgJGxhcmdlLXNsaWRlLXdpZHRoICAgICAgICAgIDogMTQwMHB4O1xyXG4gICRtZWRpdW0tc2xpZGUtd2lkdGggICAgICAgICA6IDY0ZW07IC8vMTAyNHB4XHJcbiAgJHNtYWxsLXNsaWRlLXdpZHRoICAgICAgICAgIDogNzY4cHg7XHJcblxyXG5cclxuXHJcblxyXG5cclxuICBcclxuXHJcblxyXG5cclxuIiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBTZXR0aW5ncyAvIEdyaWRzZXQgKG1peGlucyBmb3IgZ3JpZCkgLSBzZWUgR3JpZHNldGFwcFxyXG4vL1xyXG4vLyAgIEdyaWRzICsgU2FzcyBnZW5lcmF0ZWQgYnkgR3JpZHNldDogaHR0cHM6Ly9ncmlkc2V0YXBwLmNvbVxyXG4vL1xyXG4vLyAgIE5vdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vICogVGhlIEdyaWRzZXQgU2FzcyBvdXRwdXQgaXMgZGl2aWRlZCBpbnRvIHR3byB0eXBlczogZnVuY3Rpb25zIGFuZCBtaXhpbnMuIFxyXG4vLyAgIFxyXG4vLyAqIFByZWZpeCA9IHRoZSBncmlkIHByZWZpeCB5b3UgZGVmaW5lZCBpbiB5b3VyIHNldC5cclxuLy8gICBcclxuLy8gKiBDb250YWluZXJzIGFyZSBvcHRpb25hbC4gVXNlIHRoZXNlIHdoZW4gYSBzcGFuIGlzIG5lc3RlZCB3aXRoaW4gYW5vdGhlciBzcGFuLiBTbyBhbiBlbGVtZW50IHNwYW5uaW5nIGNvbHVtbnMgMi0zIGluc2lkZSBcclxuLy8gICBhbiBlbGVtZW50IHNwYW5uaW5nIDEtNSB3b3VsZCBiZTogZ3Mtc3Bhbih4LCAyLCAzLCAoMSwgNSkpXHJcbi8vICAgXHJcbi8vICogV2hlbiBwYXNzaW5nIGFyZ3VtZW50cywgdXNlIGZhbHNlIGZvciBudWxsIGFyZ3VtZW50cywgc28gYSBzcGFuIHdpdGggbm8gZW5kIHdvdWxkIGJlOiBncy1zcGFuKHgsIDIpLCBidXQgYSBzcGFuIFxyXG4vLyAgIHdpdGggbm8gZW5kIGFuZCBhIGNvbnRhaW5lciB3b3VsZCBiZTogZ3Mtc3Bhbih4LCAyLCBmYWxzZSwgKDEsIDUpKVxyXG4vLyAgIFxyXG4vLyAqIFVzZSBJRSBmbGFncyAoJGllKSB3aGVuIGJ1aWxkaW5nIHN0eWxlcyBmb3IgSW50ZXJuZXQgRXhwbG9yZXIgOCBhbmQgYmVsb3cuIFlvdSBjYW4gdXNlIGVpdGhlciAnaWUnIG9yICd0cnVlJy4gXHJcbi8vICAgQSBzcGFuIGluIElFIHdvdWxkIGJlOiBncy1zcGFuKHgsIDIsIDMsIGZhbHNlLCBpZSkgb3IgZ3Mtc3Bhbih4LCAyLCAzLCBmYWxzZSwgdHJ1ZSlcclxuLy9cclxuLy8gKiBTZXR0aW5nICpkaXNwbGF5IHVuaXQqIHRvIHRydWUgd2lsbCByZXR1cm4gdGhlIHVuaXQgd2l0aCB0aGUgbWVhc3VyZW1lbnQgKGV4OiAzMCUgb3IgMzAwcHgpLiBEZWZhdWx0IGlzIGZhbHNlLlxyXG4vLyAgIFxyXG4vLyAqIFlvdSB3aWxsIG5lZWQgdG8gd3JpdGUgeW91ciBvd24gbWVkaWEgcXVlcmllcyBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy4gWW91IGNhbiBnZW5lcmF0ZSB0aGVzZSBiYXNlZCBvbiB5b3VyIFxyXG4vLyAgIGdyaWQgd2lkdGhzIGJ5IHVzaW5nIHRoZSBncy1tZWRpYSBmdW5jdGlvbi4gVGhpcyB3aWxsIG9ubHkgd29yayBpbiBTYXNzIHZlcnNpb25zIDMuMiBhbmQgdXAuIEhlcmUgaXMgYW4gZXhhbXBsZTpcclxuLy8gICBcclxuLy8gICBAaW5jbHVkZSBncy1tZWRpYSh4KSB7XHJcbi8vICAgIFxyXG4vLyAgICAtLSBDU1MgZ29lcyBoZXJlIC0tXHJcbi8vICAgIFxyXG4vLyAgIH1cclxuLy8gICAgIFxyXG4vLyAgIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vICAgRnVuY3Rpb25zIHdpbGwgcmV0dXJuIGFuIGV4YWN0IG1lYXN1cmVtZW50IChmbG9hdCkgZm9yIHNwZWNpZmljIHByb3BlcnRpZXMuXHJcbi8vICAgXHJcbi8vICogZ3MtZ3JpZChwcmVmaXgpXHJcbi8vICAgUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGNvbHVtbiB3aWR0aHMgKGluIHBlcmNlbnRhZ2VzKSBpbiBhIGdyaWQuXHJcbi8vICAgXHJcbi8vICogZ3MtY29uc3RyYWludHMocHJlZml4KVxyXG4vLyAgIFJldHVybnMgYSBsaXN0IG9mIGFsbCBjb2x1bW4gd2lkdGhzIGluIGEgZ3JpZCB0aGF0IGFyZSBjb25zdHJhaW5lZCB0byBhIHdpZHRoLCBtaW4td2lkdGgsIG9yIG1heC13aWR0aC5cclxuLy9cclxuLy8gKiBncy1ndXR0ZXIocHJlZml4LCAoY29udGFpbmVyIHN0YXJ0LCBjb250YWluZXIgZW5kKSwgZGlzcGxheSB1bml0KVxyXG4vLyAgIFJldHVybnMgdGhlIGV4YWN0IGd1dHRlciBvZiBhIGdyaWQgYXMgYSBudW1lcmljIHZhbHVlLlxyXG4vLyAgIFxyXG4vLyAqIGdzLXdpZHRoKHByZWZpeCwgc3RhcnQsIGVuZCwgKGNvbnRhaW5lciBzdGFydCwgY29udGFpbmVyIGVuZCksIGRpc3BsYXkgdW5pdClcclxuLy8gICBSZXR1cm5zIHRoZSBleGFjdCB3aWR0aCBtZWFzdXJlbWVudCBvZiB0aGUgc3BhbiBvZiBjb2x1bW5zIGFzIGEgbnVtZXJpYyB2YWx1ZS5cclxuLy8gICBcclxuLy8gKiBncy1tYXJnaW5sZWZ0KHByZWZpeCwgc3RhcnQsIChjb250YWluZXIgc3RhcnQsIGNvbnRhaW5lciBlbmQpLCBkaXNwbGF5IHVuaXQpXHJcbi8vICAgUmV0dXJucyB0aGUgZXhhY3QgbGVmdCBvZmZzZXQgb2YgYSBzcGFuIGFzIGEgbnVtZXJpYyB2YWx1ZS5cclxuLy9cclxuLy8gKiBncy1hZGp1c3QocHJlZml4LCBtZWFzdXJlbWVudCwgKGNvbnRhaW5lciBzdGFydCwgY29udGFpbmVyIGVuZCksIGRpc3BsYXkgdW5pdClcclxuLy8gICBSZXR1cm5zIGEgbmVzdGVkIG1lYXN1cmVtZW50IGFkanVzdGVkIGZvciB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lci5cclxuLy9cclxuLy8gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcclxuXHJcbkBmdW5jdGlvbiBncy1ncmlkKCRwcmVmaXgpe1xyXG5cclxuICBAaWYgJHByZWZpeCA9PSBkICB7IEByZXR1cm4gKDguMzMzMzMzMzMsOC4zMzMzMzMzMyw4LjMzMzMzMzMzLDguMzMzMzMzMzMsOC4zMzMzMzMzMyw4LjMzMzMzMzMzLDguMzMzMzMzMzMsOC4zMzMzMzMzMyw4LjMzMzMzMzMzLDguMzMzMzMzMzMsOC4zMzMzMzMzMyw4LjMzMzMzMzMzKTsgfVxyXG4gIEBpZiAkcHJlZml4ID09IHRhIHsgQHJldHVybiAoMzMuMzMzMzMzMzMsMzMuMzMzMzMzMzMsMzMuMzMzMzMzMzMpOyB9XHJcbiAgQGlmICRwcmVmaXggPT0gdCAgeyBAcmV0dXJuICg1MCw1MCk7IH1cclxuICBAaWYgJHByZWZpeCA9PSBtICB7IEByZXR1cm4gKDEwMCk7IH1cclxuXHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncy1jb250cmFpbnRzKCRwcmVmaXgpe1xyXG4gIFxyXG4gIEBpZiAkcHJlZml4ID09IGQgIHsgQHJldHVybiAoZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UpOyB9XHJcbiAgQGlmICRwcmVmaXggPT0gdGEgeyBAcmV0dXJuIChmYWxzZSxmYWxzZSxmYWxzZSk7IH1cclxuICBAaWYgJHByZWZpeCA9PSB0ICB7IEByZXR1cm4gKGZhbHNlLGZhbHNlKTsgfVxyXG4gIEBpZiAkcHJlZml4ID09IG0gIHsgQHJldHVybiAoZmFsc2UpOyB9XHJcblxyXG59XHJcblxyXG5AZnVuY3Rpb24gZ3MtZ3V0dGVyKCRwcmVmaXgsICRjb250YWluZXI6IGZhbHNlLCAkdW5pdDpmYWxzZSl7XHJcbiAgXHJcbiAgJGd1dHRlcjogMDtcclxuXHJcbiAgQGlmICRwcmVmaXggPT0gZCAgeyAkZ3V0dGVyOiAwOyB9XHJcbiAgQGlmICRwcmVmaXggPT0gdGEgeyAkZ3V0dGVyOiAwOyB9XHJcbiAgQGlmICRwcmVmaXggPT0gdCAgeyAkZ3V0dGVyOiAwOyB9XHJcbiAgQGlmICRwcmVmaXggPT0gbSAgeyAkZ3V0dGVyOiAwOyB9XHJcblxyXG4gIEBpZiAkdW5pdCA9PSB0cnVlIHsgQHJldHVybiAje2dzLWFkanVzdCgkcHJlZml4LCAkZ3V0dGVyLCAkY29udGFpbmVyKSArICclJ307IH1cclxuICBAZWxzZSB7IEByZXR1cm4gZ3MtYWRqdXN0KCRwcmVmaXgsICRndXR0ZXIsICRjb250YWluZXIpOyB9XHJcbiAgXHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncy13aWR0aCgkZ3JpZCwgJHN0YXJ0LCAkZW5kOiBmYWxzZSwgJGNvbnRhaW5lcjogZmFsc2UsICR1bml0OiBmYWxzZSl7XHJcblxyXG4gICRjb2xzOiBncy1ncmlkKCRncmlkKTtcclxuICAkZ3V0dGVyOiBncy1ndXR0ZXIoJGdyaWQpO1xyXG4gICRtZWFzdXJlOiAwO1xyXG4gICRndXR0ZXJzOiAwO1xyXG4gICRpOiAkc3RhcnQ7XHJcblxyXG4gIEBpZiAkZW5kICE9IGZhbHNlIHtcclxuXHJcbiAgICBAaWYgKCRlbmQgLSAkc3RhcnQpID4gMCB7ICRndXR0ZXJzOiAoJGd1dHRlciAqICgkZW5kIC0gJHN0YXJ0KSk7IH1cclxuXHJcbiAgICBAd2hpbGUgJGkgPD0gJGVuZCB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAkbWVhc3VyZTogJG1lYXN1cmUgKyBudGgoJGNvbHMsJGkpO1xyXG4gICAgICAkaTogJGkgKyAxO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIFxyXG4gICAgJGNvbnNjb2xzOiBncy1jb250cmFpbnRzKCRncmlkKTtcclxuICAgICRjb25zY29sOiBudGgoJGNvbnNjb2xzLCRzdGFydCk7XHJcbiAgICBcclxuICAgIEBpZiAoJGNvbnNjb2wgIT0gZmFsc2UpIGFuZCAoJHVuaXQgPT0gdHJ1ZSkgeyBAcmV0dXJuICN7JGNvbnNjb2x9OyB9XHJcbiAgICBcclxuICAgICRtZWFzdXJlOiBudGgoJGNvbHMsJHN0YXJ0KTtcclxuXHJcbiAgfVxyXG4gIFxyXG4gIEBpZiAkdW5pdCA9PSB0cnVlIHsgQHJldHVybiAje2dzLWFkanVzdCgkZ3JpZCwgJG1lYXN1cmUgKyAkZ3V0dGVycywgJGNvbnRhaW5lcikgKyAnJSd9OyB9XHJcbiAgQGVsc2UgeyBAcmV0dXJuIGdzLWFkanVzdCgkZ3JpZCwgJG1lYXN1cmUgKyAkZ3V0dGVycywgJGNvbnRhaW5lcik7IH1cclxuXHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncy1tYXJnaW5sZWZ0KCRncmlkLCAkc3BhbnN0YXJ0LCAkY29udGFpbmVyOiBmYWxzZSwgJHVuaXQ6IGZhbHNlKXtcclxuXHJcbiAgQGlmICgkY29udGFpbmVyID09IGZhbHNlIGFuZCAkc3BhbnN0YXJ0ID4gMSkgb3IgKCRjb250YWluZXIgIT0gZmFsc2UgYW5kICRzcGFuc3RhcnQgPiBudGgoJGNvbnRhaW5lciwxKSkge1xyXG5cclxuICAgICRzdGFydDogMTtcclxuICAgICRlbmQ6ICRzcGFuc3RhcnQgLSAxO1xyXG4gICAgXHJcbiAgICBAaWYgJGNvbnRhaW5lciAhPSBmYWxzZSB7ICRzdGFydDogbnRoKCRjb250YWluZXIsMSk7IH1cclxuICAgIEBpZiAkZW5kID09ICRzdGFydCB7ICRlbmQ6IGZhbHNlOyB9XHJcbiAgICBcclxuICAgICRtYXJnaW46IGdzLXdpZHRoKCRncmlkLCAkc3RhcnQsICRlbmQpO1xyXG4gICAgJGd1dHRlcjogZ3MtZ3V0dGVyKCRncmlkKTtcclxuICAgIFxyXG4gICAgQGlmICR1bml0ID09IHRydWUgeyBAcmV0dXJuICN7Z3MtYWRqdXN0KCRncmlkLCAkbWFyZ2luICsgJGd1dHRlciwgJGNvbnRhaW5lcikgKyAnJSd9OyB9XHJcbiAgICBAZWxzZSB7IEByZXR1cm4gZ3MtYWRqdXN0KCRncmlkLCAkbWFyZ2luICsgJGd1dHRlciwgJGNvbnRhaW5lcik7IH1cclxuXHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuXHJcbiAgICBAcmV0dXJuIDA7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncy1hZGp1c3QoJGdyaWQsICRtZWFzdXJlLCAkY29udGFpbmVyOiBmYWxzZSwgJHVuaXQ6IGZhbHNlKXtcclxuICBcclxuICAkY29udGFpbmVyZW5kOiBmYWxzZTtcclxuICBAaWYgbGVuZ3RoKCRjb250YWluZXIpID09IDIgeyAkY29udGFpbmVyZW5kOiBudGgoJGNvbnRhaW5lciwyKTsgfVxyXG4gIFxyXG4gIEBpZiAkY29udGFpbmVyICE9IGZhbHNlIHtcclxuXHJcbiAgICAkYWRqdXN0ZWQ6ICRtZWFzdXJlIC8gZ3Mtd2lkdGgoJGdyaWQsIG50aCgkY29udGFpbmVyLDEpLCAkY29udGFpbmVyZW5kKTtcclxuICAgIFxyXG4gICAgQGlmICR1bml0ID09IHRydWUgeyBAcmV0dXJuICN7KCRhZGp1c3RlZCAqIDEwMCkgKyAnJSd9OyB9XHJcbiAgICBAZWxzZSB7IEByZXR1cm4gJGFkanVzdGVkICogMTAwOyB9XHJcblxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgXHJcbiAgICBAaWYgJHVuaXQgPT0gdHJ1ZSB7IEByZXR1cm4gI3skbWVhc3VyZSArICclJ307IH1cclxuICAgIEBlbHNlIHsgQHJldHVybiAkbWVhc3VyZTsgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG4vLyAgIE1peGlucyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vICAgVGhlIEdyaWRzZXQgbWl4aW5zIGluY2x1ZGUgZXZlcnkgcHJvcGVydHkgeW91IG5lZWQgdG8gcG9zaXRpb24gb3IgYWRkIHBhZGRpbmcgdG8gYW4gZWxlbWVudCwgdXNpbmcgdGhlIGZ1bmN0aW9uc1xyXG4vLyAgIHRvIGNhbGN1bGF0ZSB0aGVzZSBwcm9wZXJ0aWVzLlxyXG4vLyAgIFxyXG4vLyAqIGdzLXNwYW4ocHJlZml4LCBzdGFydCwgZW5kLCAoY29udGFpbmVyIHN0YXJ0LCBjb250YWluZXIgZW5kKSwgSUUgZmxhZylcclxuLy8gICBBbGwgb2YgdGhlIHByb3BlcnRpZXMgeW91IG5lZWQgdG8gcGxhY2UgeW91ciBlbGVtZW50IG9uIGdyaWQuIEVudGVyICphbGwqIGZvciAxMDAlIHdpZHRoIGl0ZW1zLiBcclxuLy8gICBBbiBJRSBmbGFnIG9mICppZSogb3IgKnRydWUqICh3aXRob3V0IHRoZSBhc3Rlcmlja3MpIHdpbGwgcmV0dXJuIHNwZWNpYWwgc3R5bGVzIGZvciBJbnRlcm5ldCBFeHBsb3JlciA4IGFuZCBiZWxvdy5cclxuLy8gICBcclxuLy8gKiBncy1wYWQocHJlZml4LCBwYWRkaW5nIHR5cGUsIChjb250YWluZXIgc3RhcnQsIGNvbnRhaW5lciBlbmQpKVxyXG4vLyAgIEFsbCBvZiB0aGUgcHJvcGVydGllcyB5b3UgbmVlZCB0byBhZGQgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBwYWRkaW5nIHRvIGFuIGVsZW1lbnQuIFxyXG4vLyAgIFZhbGlkIHR5cGVzOiBwYWQsIHBhZGZ1bGwsIHBhZGluLCBwYWRpbmZ1bGxcclxuLy8gICBFeHBsYW5hdGlvbiBvZiBwYWRkaW5nIHR5cGVzIGhlcmU6IGh0dHBzOi8vZ3JpZHNldGFwcC5jb20vZG9jdW1lbnRhdGlvbi9jbGFzc2VzL1xyXG4vLyAgIFxyXG4vLyAqIGdzLWZsb2F0KHByZWZpeCwgZGlyZWN0aW9uLCAoY29udGFpbmVyIHN0YXJ0LCBjb250YWluZXIgZW5kKSlcclxuLy8gICBBbGwgb2YgdGhlIHByb3BlcnRpZXMgeW91IG5lZWQgdG8gZmxvYXQgYW4gZWxlbWVudCBpbiBvbmUgZGlyZWN0aW9uIGFuZCBnaXZlIGl0IHRoZSBwcm9wZXIgYW1vdW50IG9mIG1hcmdpbiBcclxuLy8gICBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLiBEaXJlY3Rpb24gPSBsZWZ0IG9yIHJpZ2h0LlxyXG4vLyAgIFxyXG4vLyAqIGdzLW1lZGlhKHByZWZpeCwgdHlwZSlcclxuLy8gICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGFwcHJvcHJpYXRlIG1lZGlhIHF1ZXJ5IGZvciBhIHBhcnRpY3VsYXIgZ3JpZCBiYXNlZCBvbiB0aGUgcmFuZ2UgbWluIG9yIG1heCBmb3IgZWFjaCBncmlkLlxyXG4vLyAgIElmIHRoZSB0eXBlIGlzIGludmFsaWQsIHRoZSBzdHlsZXMgd2lsbCBiZSBnZW5lcmF0ZWQgd2l0aG91dCBhIG1lZGlhIHF1ZXJ5LiAoU2FzcyB2ZXJzaW9ucyAzLjIrIG9ubHkpXHJcbi8vICAgVmFsaWQgdHlwZXM6IG1pbiwgbWF4LCBtaW4tbWF4XHJcbi8vICAgKm1pbiogd2lsbCBvdXRwdXQgYSBtZWRpYSBxdWVyeSBmb3IgdGhlIHJhbmdlIG1pbiwgKm1heCogd2lsbCBvdXRwdXQgYSBtZWRpYSBxdWVyeSBmb3IgdGhlIFxyXG4vLyAgIHJhbmdlIG1heCwgYW5kICptaW4tbWF4KiB3aWxsIHVzZSBib3RoIChib29rZW5kaW5nIHRoZSBxdWVyeSkuXHJcbi8vICAgXHJcbi8vICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcblxyXG5AbWl4aW4gZ3MtbWVkaWEoJHByZWZpeCwgJHR5cGU6IGZhbHNlKXtcclxuXHJcbiAgQGlmICRwcmVmaXggPT0gZCB7XHJcbiAgICBAaWYgKCR0eXBlID09IG1pbikgb3IgKCR0eXBlID09IG1pbi1tYXgpIHsgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkgeyBAY29udGVudDsgfSB9XHJcbiAgICBAZWxzZSB7IEBjb250ZW50OyB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwcmVmaXggPT0gdGEge1xyXG4gICAgQGlmICR0eXBlID09IG1pbiB7IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDQ4MXB4KSB7IEBjb250ZW50OyB9IH1cclxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSBtYXgpIHsgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNzY4cHgpIHsgQGNvbnRlbnQ7IH0gfVxyXG4gICAgQGVsc2UgaWYgKCR0eXBlID09IG1pbi1tYXgpIHsgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogNDgxcHgpIGFuZCAobWF4LWRldmljZS13aWR0aDogNzY4cHgpIHsgQGNvbnRlbnQ7IH0gfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkcHJlZml4ID09IHQge1xyXG4gICAgQGlmICR0eXBlID09IG1pbiB7IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDQ4MXB4KSB7IEBjb250ZW50OyB9IH1cclxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSBtYXgpIHsgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNzY4cHgpLCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkgeyBAY29udGVudDsgfSB9XHJcbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gbWluLW1heCkgeyBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXdpZHRoOiA0ODFweCkgYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA3NjhweCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHsgQGNvbnRlbnQ7IH0gfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkcHJlZml4ID09IG0ge1xyXG4gICAgQGlmICgkdHlwZSA9PSBtYXgpIG9yICgkdHlwZSA9PSBtaW4tbWF4KSB7IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDQ4MHB4KSB7IEBjb250ZW50OyB9IH1cclxuICAgIEBlbHNlIHsgQGNvbnRlbnQ7IH1cclxuICB9XHJcblxyXG59XHJcblxyXG5AbWl4aW4gZ3Mtc3BhbigkZ3JpZCwgJHN0YXJ0LCAkZW5kOiBmYWxzZSwgJGNvbnRhaW5lcjogZmFsc2UsICRpZTogZmFsc2Upe1xyXG4gIFxyXG4gIEBpZiAkc3RhcnQgPT0gYWxsIHtcclxuICBcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gIFxyXG4gICAgJG1hcmdpbnJpZ2h0OiAtMTAwJTtcclxuICAgIEBpZiAoJGllID09IGllKSBvciAoJGllID09IHRydWUpIHsgJG1hcmdpbnJpZ2h0OiAtOTkuOSU7IH1cclxuICBcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW4tbGVmdDogZ3MtbWFyZ2lubGVmdCgkZ3JpZCwgJHN0YXJ0LCAkY29udGFpbmVyLCB0cnVlKTsgIFxyXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2lucmlnaHQ7XHJcbiAgICB3aWR0aDogZ3Mtd2lkdGgoJGdyaWQsICRzdGFydCwgJGVuZCwgJGNvbnRhaW5lciwgdHJ1ZSk7XHJcbiAgICBcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWl4aW4gZ3MtcGFkKCRncmlkLCAkdHlwZTogcGFkLCAkY29udGFpbmVyOiBmYWxzZSl7XHJcblxyXG4gICRwYWQ6IDA7XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBwYWQgb3IgJHR5cGUgPT0gcGFkaW4ge1xyXG5cclxuICAgICRwYWQ6IChncy1ndXR0ZXIoJGdyaWQpIC8gMik7XHJcblxyXG4gIH1cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBwYWRmdWxsIG9yICR0eXBlID09IHBhZGluZnVsbCB7XHJcblxyXG4gICAgJHBhZDogZ3MtZ3V0dGVyKCRncmlkKTtcclxuXHJcbiAgfVxyXG5cclxuICBAaWYgJGNvbnRhaW5lciAhPSBmYWxzZSB7ICRwYWQ6IGdzLWFkanVzdCgkZ3JpZCwgJHBhZCwgJGNvbnRhaW5lcik7IH1cclxuXHJcbiAgQGlmICR0eXBlID09IHBhZCBvciAkdHlwZSA9PSBwYWRmdWxsIHtcclxuXHJcbiAgICBsZWZ0OiAjeyctJyArICRwYWQgKyAnJSd9O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICB9XHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGFkaW4gb3IgJHR5cGUgPT0gcGFkaW5mdWxsIHtcclxuXHJcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICB9XHJcblxyXG4gIHBhZGRpbmctbGVmdDogI3skcGFkICsgJyUnfTtcclxuICBwYWRkaW5nLXJpZ2h0OiAjeyRwYWQgKyAnJSd9O1xyXG5cclxufVxyXG5cclxuQG1peGluIGdzLWZsb2F0KCRncmlkLCAkZGlyZWN0aW9uLCAkY29udGFpbmVyOiBmYWxzZSl7XHJcbiAgXHJcbiAgJG1hcmdpbjogZ3MtZ3V0dGVyKCRncmlkKTtcclxuICBAaWYgJGNvbnRhaW5lciAhPSBmYWxzZSB7ICRtYXJnaW46IGdzLWFkanVzdCgkZ3JpZCwgJG1hcmdpbiwgJGNvbnRhaW5lcik7IH1cclxuICBcclxuICBjbGVhcjogbm9uZTtcclxuICBmbG9hdDogJGRpcmVjdGlvbjtcclxuICBcclxuICBAaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcclxuICBcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAjeyRtYXJnaW4gKyAnJSd9O1xyXG4gICAgXHJcbiAgfVxyXG4gIEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xyXG4gIFxyXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6ICN7JG1hcmdpbiArICclJ307XHJcbiAgICBcclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbi8vICAgVmFyaWFibGVzICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy9cclxuLy8gICBJbmZvcm1hdGlvbiBhYm91dCB5b3VyIGdyaWRzIGFuZCBtZWFzdXJlbWVudHMgdG8gdXNlIGluIHlvdXIgb3duIFNhc3MgZnVuY3Rpb25zLlxyXG4vLyAgIFxyXG4vLyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxyXG5cclxuJGdzLXByZWZpeGVzOiBkLCB0YSwgdCwgbTsiLCIvL1xyXG4vLyAgSEtTTiBGcmFtZXdvcmtcclxuLy8gIE1vZHVsZXMgLyBXaWRnZXRzIChzZWUgX2Jsb2Nrcy17Y29udGVudCB0eXBlfSBmb3IgY29udGVudC1zcGVjaWZpYyB3aWRnZXQgc3R5bGVzKVxyXG4vLyAgQmxvY2tzIG9mIGNvbnRlbnQgKGZvcm1zLCBjYWxscy10by1hY3Rpb24sIGZlZWRzIGV0YylcclxuLy9cclxuLy8gIDEuIFNpZGViYXJcclxuLy8gIDIuIEZvb3RlclxyXG4vLyAgMy4gSW4tcGFnZSAoZ3JpZC9saXN0LCBob21lcGFnZSBldGMpXHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBIaWRlIGVsZW1lbnRzIC0gdGVtcCBmaXggdG8gYXZvaWQgZmxhc2ggYXMgRE9NIGxvYWRzXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5zaG93Y29udGVudCxcclxuICAuYWRkaXRpb25hbC1jb250ZW50LFxyXG4gICNteWFjY291bnQtYmFyLFxyXG4gICNiaWRub3ctYmFyLFxyXG4gIC5maWx0ZXItY29udGVudC5jbG9zZWRcclxuICB7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcblxyXG4gIC8vIFNJREVCQVIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEFsbCBzaWRlYmFyIHdpZGdldHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAud2lkZ2V0LWltZ19mcmFtZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgI3Njcm9sbGVyIHtcclxuICAgIHotaW5kZXg6IDUwMDtcclxuICAgIC53aWRnZXQge1xyXG4gICAgICBtYXgtd2lkdGg6IDI0NXB4OyAvLyBBdm9pZCBicmVha2luZyBvdXQgb24gcG9zaXRpb246IGZpeGVkOyAoaXMgdGhlcmUgYSBiZXR0ZXIgc29sdXRpb24/KVxyXG4gICAgfVxyXG4gIH1cclxuICAuZDEtZDQgI3Njcm9sbGVyIHtcclxuICAgIC53aWRnZXQge1xyXG4gICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7IC8vIEF2b2lkIGJyZWFraW5nIG91dCBvbiBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIHdpZHRoOiAzMjZweDsgLy8gQXZvaWQgYnJlYWtpbmcgb3V0IG9uIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIH0gICAgICBcclxuICB9XHJcblxyXG4gIC53aWRnZXQtdGl0bGUgeyAvLyBEZWZhdWx0XHJcbiAgICAmIHsgLy8gLCAmLmJsb2NrX190aXRsZVxyXG4gICAgICBAaW5jbHVkZSBibG9jay10aXRsZSgwLjllbSwgMCAwIDZweCAwICk7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgfVxyXG5cclxuICAgIC8vLmNvbnRlbnQgJixcclxuICAgICNibG9jay12aWV3cy1mYmRlNzljNzdkYjRlNTA0NDMyMDc0ZmE1NTdhMmIzOSAmLCAvLyBGZWF0dXJlZCBjb2xsZWN0aW9uc1xyXG4gICAgLnJlZ2lvbi1ib3R0b20gJiB7XHJcbiAgICAgIEBpbmNsdWRlIG1haW4tdGl0bGUoMy4zNzVlbSwgMCAkZ2xvYmFsX21hcmdpbiAwLjVlbSwgJHRleHRfY29sb3IgKTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW46IDBweCAwcHggNnB4O1xyXG4gICAgICBmb250LXNpemU6IDMuMzc1cmVtO1xyXG4gICAgICAvLyBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAvL2Rpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAvL2NvbG9yOiAjRkZGO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQnV0dG9uIGxpc3QgKGN0YXMgZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLndpZGdldC1jdGFzIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgLndpZGdldC1hcmVhICYge1xyXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZSFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5jdGFzLXRpdGxlIHsgfVxyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICBmb250LXNpemU6IDAuOWVtO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcGFkZGluZzogMC43ZW0gMWVtIDAuNzYyNWVtO1xyXG5cclxuICAgICAgJi53aXRoLWljb24geyBcclxuICAgICAgICAvL3BhZGRpbmctbGVmdDogMi41ZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGkgeyAvLyB2YXJ5IHNpZGVzP1xyXG4gICAgICAgIHRvcDogMC4yNWVtO1xyXG4gICAgICAgIGxlZnQ6IDAuNWVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBEcm9wLWRvd24vUmV2ZWFsIGxpc3QgKG91dC13aXRoIGZpbHRlciBldGMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICAucGFuZWwtdGl0bGUge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgcGFkZGluZzogMC41ZW07XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgJi5oYXMtcmV2ZWFsOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAndic7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHotaW5kZXg6IDMwMDtcclxuICAgICAgICB0b3A6IDAuNWVtO1xyXG4gICAgICAgIHJpZ2h0OiAxZW07XHJcbiAgICAgICAgY29sb3I6IHNoYWRlKCRsaWdodF9ncmV5LDUwJSk7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaGFzLXJldmVhbC5vcGVuOmFmdGVyIHtcclxuICAgICAgICAvL2NvbnRlbnQ6ICdeJztcclxuICAgICAgICAvLy13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XHJcbiAgICAgICAgQGluY2x1ZGUgcm90YXRlKCAtMTgwZGVnICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgLy8gVXNlciBmaWx0ZXIgKGF1Y3Rpb24gc2lkZWJhcnMgZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLndpZGdldC1maWx0ZXIgeyAvLyBDaGVjayBub24tUkZDIHVzZSFcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICB6LWluZGV4OiA1MDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuXHJcbiAgICAud2lkZ2V0LWFyZWEgJiB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAkZ2xvYmFsLW1hcmdpbio0O1xyXG4gICAgfVxyXG5cclxuICAgIC5maWx0ZXItd3JhcCB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIGJvcmRlcjogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LDQwJSk7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcblxyXG4gICAgICBsYWJlbCB7XHJcbiAgICAgICAgLy93aWR0aDogNDglO1xyXG4gICAgICAgIC8vbGluZS1oZWlnaHQ6IDIuNGVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuOGVtIDA7XHJcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDEwcHg7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuICAgICAgfVxyXG4gICAgICB0ZXh0YXJlYSxcclxuICAgICAgaW5wdXQsXHJcbiAgICAgIHNlbGVjdCB7XHJcbiAgICAgICAgLy9mbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgLy9mb250LXNpemU6IDAuOGVtO1xyXG4gICAgICAgIC8vZm9udC1mYW1pbHk6ICRzZXJpZl9mb250ZmFtaWx5O1xyXG4gICAgICAgIGhlaWdodDogM2VtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xyXG4gICAgICAgIC8vd2lkdGg6IDUwJTtcclxuICAgICAgICAvL21hcmdpbjogMDtcclxuICAgICAgfVxyXG4gICAgICBzZWxlY3Qge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMC4yZW07IC8vIGxpbmUgdXAgd2l0aCBpbnB1dFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0ZXh0YXJlYSxcclxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwidGltZVwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuICAgIHNlbGVjdCxcclxuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHsgLy8gQWxsIG5lZWRlZD9cclxuICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfSBcclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6IDAuN2VtIDFlbSAwLjc2MjVlbTtcclxuXHJcbiAgICAgICYud2l0aC1pY29uIHsgXHJcbiAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDIuNWVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpIHsgLy8gdmFyeSBzaWRlcz9cclxuICAgICAgICB0b3A6IDAuMjVlbTtcclxuICAgICAgICBsZWZ0OiAwLjVlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8vIE5FVyAtIEZBQ0VUIEZJTFRFUiBTVFlMRVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJTUFHRSBJTiBCVVRUT05TLlNDU1MgLSBURU1QOiBNT1ZFPz9cclxuXHJcbiAgLmJsb2NrLWZhY2V0YXBpIGg0LndpZGdldC10aXRsZSxcclxuICAjYmxvY2stbW9kLWhvb2tzb24tc2FsZW5vLXNlYXJjaCBoNC53aWRnZXQtdGl0bGUge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbWFyZ2luOiAwIDAgMCAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAwLjhlbSAzMHB4IDAuOGVtIDA7ICBcclxuICB9XHJcblxyXG4vLyBFTkQgTkVXIC0gRkFDRVQgRklMVEVSIFNUWUxFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRFTVA6IE1PVkU/P1xyXG5cclxuICAgIGgzLmZpbHRlci10aXRsZSB7XHJcbiAgICAgIG1hcmdpbjogMCAwIDAgMTBweCAhaW1wb3J0YW50O1xyXG4gICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgcGFkZGluZzogMC44ZW0gMDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBmb250LWZhbWlseTogJGJhc2VfZm9udGZhbWlseTtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgLy90ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAmLmhhcy1yZXZlYWwgeyBcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyAgICAgICBcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1nL2ljb25zL2Fycm93LWRvd24tYmxhY2suc3ZnKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogJG5ld190aGVtZV9idXR0b25faWNvbl9zaXplO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRuZXdfdGhlbWVfYnV0dG9uX2ljb25fcG9zaXRpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuaGFzLXJldmVhbC5vcGVuIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb25zL2Fycm93LXVwLWJsYWNrLnN2Zyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYubW9iaWxlLmhhcy1yZXZlYWwge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5maWx0ZXItY29udGFpbmVyIHtcclxuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LDQwJSk7XHJcbiAgICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LDQwJSk7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuXHJcbiAgICAgIC52aWV3cy1zdWJtaXQtYnV0dG9uIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMCFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICAgLmZpbHRlci1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XHJcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAjZm1fY2F0ZmlsdGVyIC5maWx0ZXItY29udGFpbmVyLFxyXG4gICAgLndpZGdldC1zdW1tYXJ5IC5maWx0ZXItY29udGFpbmVyLCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgIGJvcmRlcjogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LDQwJSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZpbHRlci1yZXN1bHQsXHJcbiAgICAuZmlsdGVyLXJlc3VsdC1oZWFkaW5nIHtcclxuICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcclxuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRmYW1pbHk7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMCAwLjVlbSAxZW0gMC41ZW07XHJcblxyXG4gICAgICAmLmhlYWRpbmcge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmlsdGVyLXJlc3VsdC1oZWFkaW5nIHtcclxuICAgICAgcGFkZGluZzogMCAwLjVlbTtcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWFyZWEgLmN1cnJlbnQtc2VhcmNoLWl0ZW0tc2VhcmNoLXJlc3VsdHMge1xyXG4gICAgICBtYXJnaW4tbGVmdDogNiU7XHJcbiAgICB9XHJcblxyXG4vLyBTZWFyY2ggcGFnZTogdGVybSB0YWdzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcclxuICAgIC5jdXJyZW50LXNlYXJjaC1pdGVtLWFjdGl2ZS1pdGVtcyB1bCB7XHJcbiAgICAgIG1hcmdpbjogLTFweCAwcHggMHB4IDYlO1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAxZW0gMC41ZW07XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkc2VyaWZfZm9udGZhbWlseTtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcclxuICAgICAgICAqZGlzcGxheTppbmxpbmU7IC8qSUU3Ki9cclxuICAgICAgICAqem9vbToxOyAvKklFNyovXHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMC41ZW0gMC41ZW0gMmVtO1xyXG4gICAgICAgIG1hcmdpbjogMCAwIDAuNWVtO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFya19ncmV5O1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogMC41ZW07IGxlZnQ6IDAuNWVtO1xyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICB3aWR0aDogMS4yZW07XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciwgJjphY3RpdmUsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbi8vIFNlYXJjaCBwYWdlOiBOZXcgc2VhcmNoIC0ga2VlcCB0ZXJtc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcbiAgLmNvbnRhaW5lci1pbmxpbmUgZGl2LmZvcm0taXRlbS1yZXRhaW4tZmlsdGVycyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICBwYWRkaW5nOiAxZW0gMWVtIDFlbSAzZW07XHJcbiAgICBtYXJnaW46IDFlbSAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZDogbGlnaHRlbigkbGlnaHRfZ3JleSw1JSk7XHJcblxyXG4gICAgLmZvcm0tY2hlY2tib3gge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMWVtO1xyXG4gICAgICBsZWZ0OiAxZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbi8qXHJcbjxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIiBjbGFzcz1cImZvcm0taXRlbSBmb3JtLXR5cGUtY2hlY2tib3ggZm9ybS1pdGVtLXJldGFpbi1maWx0ZXJzXCI+XHJcbiA8aW5wdXQgaWQ9XCJlZGl0LXJldGFpbi1maWx0ZXJzXCIgbmFtZT1cInJldGFpbi1maWx0ZXJzXCIgdmFsdWU9XCIxXCIgY2xhc3M9XCJmb3JtLWNoZWNrYm94XCIgdHlwZT1cImNoZWNrYm94XCI+ICA8bGFiZWwgY2xhc3M9XCJvcHRpb25cIiBmb3I9XCJlZGl0LXJldGFpbi1maWx0ZXJzXCI+UmV0YWluIGN1cnJlbnQgZmlsdGVycyA8L2xhYmVsPlxyXG5cclxuPC9kaXY+Ki9cclxuXHJcbi8vIFNlYXJjaCBwYWdlOiB0ZXJtIHRhZ3MgKEJFRiBDaGVja2JveCBjb2RlKVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcblxyXG4gICAgLmZvcm0taXRlbS5mb3JtLXR5cGUtYmVmLWNoZWNrYm94IHsgLy8gXHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICBmb250LWZhbWlseTogJGJhc2VfZm9udGZhbWlseTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMC42ZW0gMWVtIDAuNjZlbSAzZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgbGVmdDogMWVtO1xyXG4gICAgICAgICAgdG9wOiAwLjhlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLypcclxuICAgIC5jaGVja2JveC1saXN0IHtcclxuICAgICAgbGFiZWwge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmb250LXNpemU6IDAuN2VtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICBmb250LWZhbWlseTogJHNlcmlmX2ZvbnRmYW1pbHk7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNmVtIDFlbSAwLjY2ZW0gM2VtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgbGVmdDogMWVtO1xyXG4gICAgICAgICAgdG9wOiAwLjhlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0qL1xyXG5cclxuICAgIC8vIFJGQyBmaWx0ZXIgbGlzdFxyXG4gICAgLmRlcHQtZmlsdGVyIHtcclxuICAgICAgLmRwdC1maWx0ZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMC42ZW0gMWVtIDAuNjZlbSAzZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgbGVmdDogMWVtO1xyXG4gICAgICAgICAgdG9wOiAwLjhlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmNoZWNrYm94LWxpc3QtdWwgeyAvLyBEcnVwYWwgYWRkcyBsaXN0IHdyYXBwZXIgLSBjYW4gdGhpcyBiZSBhcHBsaWVkIHRvIGFsbCBjaGVja2JveCBsaXN0cz9cclxuICAgICAgdWwge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwLjZlbSAxZW0gMC42NmVtIDNlbTtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDFlbTtcclxuICAgICAgICAgICAgdG9wOiAwLjhlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbGFiZWwge1xyXG4gICAgICAgIC8qcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC43ZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2VyaWZfZm9udGZhbWlseTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMC42ZW0gMWVtIDAuNjZlbSAzZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsqL1xyXG4gICAgICB9XHJcbiAgICAgIHVsLmZhY2V0YXBpLWRhdGUtcmFuZ2UgbGkge1xyXG4gICAgICAgICAgcGFkZGluZzogMC42ZW0gMWVtIDAuNjZlbSAxZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmlsdGVyLWNvbnRlbnQudGV4dC1ib3gge1xyXG4gICAgICBwIHtcclxuICAgICAgICBmb250LXNpemU6IDAuNzVlbTtcclxuICAgICAgICBtYXJnaW46IDAgMCAwLjVlbTtcclxuICAgICAgICBwYWRkaW5nOiAwcHggMC44ZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5maWx0ZXItY29udGVudC5idXR0b25zIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgIHVsIHtcclxuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgICAgICBcclxuICAgICAgfVxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjogJHRleHRfY29sb3I7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0X2dyZXk7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzZXJpZl9mb250ZmFtaWx5O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMWVtO1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJjphY3RpdmUgeyBcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5maWx0ZXItY29udGVudCB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgLy9kaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAvLyBGaWx0ZXJpbmcgc29ydCAtIERlcGFydG1lbnRzIChzaWRlYmFyIG5hdmlnYXRpb24gZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgXHJcbiAgI3ZpZXdzLWV4cG9zZWQtZm9ybS1kZXBhcnRtZW50cy1wYWdlLWRlcGFydG1lbnRzIHtcclxuXHJcbiAgICBoMy5maWx0ZXItdGl0bGUuaGFzLXJldmVhbC5vcGVuIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuICAjdmlld3MtZXhwb3NlZC1mb3JtLWRlcGFydG1lbnRzLXBhZ2UtZGVwYXJ0bWVudHMgLnZpZXdzLXN1Ym1pdC1idXR0b24udmlld3MtZXhwb3NlZC13aWRnZXQge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIC8vIFRhYmxldCAmIGJlbG93IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKHQsbWF4KSB7IFxyXG4gICAgI3ZpZXdzLWV4cG9zZWQtZm9ybS1kZXBhcnRtZW50cy1wYWdlLWRlcGFydG1lbnRzIHtcclxuXHJcbiAgICAgIGgzLmZpbHRlci10aXRsZS5oYXMtcmV2ZWFsLm9wZW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICN2aWV3cy1leHBvc2VkLWZvcm0tZGVwYXJ0bWVudHMtcGFnZS1kZXBhcnRtZW50cyAudmlld3Mtc3VibWl0LWJ1dHRvbi52aWV3cy1leHBvc2VkLXdpZGdldCB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIEZpbHRlcmluZyBzb3J0IChzaWRlYmFyIG5hdmlnYXRpb24gZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLmJsb2NrLWFwYWNoZXNvbHItc29ydCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XHJcbiAgICBtYXJnaW4tbGVmdDogJGdsb2JhbC1tYXJnaW4qNDtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcblxyXG4gICAgLndpZGdldC10aXRsZSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICBtYXJnaW4tdG9wOiAyZW07XHJcbiAgICB9XHJcbiAgICBoci50aXRsZS1kaXZpZGVyIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgbGFiZWwge1xyXG4gICAgICBAaW5jbHVkZSB2aXN1YWxseWhpZGRlbigpO1xyXG4gICAgfVxyXG4gICAgc2VsZWN0IHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIHdpZHRoOiA0NSU7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogNSU7XHJcbiAgICAgIHBhZGRpbmc6IDAuNzVlbTtcclxuICAgICAgaGVpZ2h0OiAzZW07XHJcbiAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjRTBFMkUzO1xyXG4gICAgfVxyXG4gICAgLmZvcm0td3JhcHBlciB7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG4gICAgZm9ybSNhcGFjaGVzb2xyLXNvcnQtc29ydC1mb3JtLSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcclxuICAgIH1cclxuXHJcbiAgICAgIC5mb3JtLXN1Ym1pdCB7XHJcbiAgICAgICAgQGV4dGVuZCAuYnV0dG9uO1xyXG4gICAgICAgIGNvbG9yOiAjRkZGICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtfZ3JleSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2ljb25zL2Fycm93LXJpZ2h0LXdoaXRlLnN2ZycpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICB0ZXh0LWluZGVudDogMDtcclxuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyxcclxuICAgICAgICAmOmFjdGl2ZSB7IFxyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoJGRhcmtfZ3JleSwgMjAlKSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgICB9XHJcbiAgfVxyXG4gIC8vIE5ldyBTZWFyY2ggKHNpZGViYXIgc2VhcmNoKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgI2Jsb2NrLW1vZC1ob29rc29uLWhvb2tzb24tc2VhcmNoIHtcclxuXHJcbiAgICAjc2VhcmNoLWJsb2NrLWZvcm0tLTIgLmZvcm0taXRlbS1zZWFyY2gtYmxvY2stZm9ybSwge1xyXG4gICAgICBtYXJnaW46IDAgMC41ZW07XHJcbiAgICB9XHJcbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XHJcbiAgICAgIHdpZHRoOiA5MyU7XHJcbiAgICB9XHJcblxyXG4gICAgICAuZm9ybS1zdWJtaXQge1xyXG4gICAgICAgIEBleHRlbmQgLmJ1dHRvbjtcclxuICAgICAgICBjb2xvcjogI0ZGRiAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrX2dyZXkgIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9pY29ucy9hcnJvdy1yaWdodC13aGl0ZS5zdmcnKSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAuNWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJjphY3RpdmUgeyBcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCRkYXJrX2dyZXksIDIwJSkgIWltcG9ydGFudDtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvLyBGaWx0ZXJpbmcgc29ydCAoc2lkZWJhciBuYXZpZ2F0aW9uIGV0YykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5ibG9jay1mYWNldGFwaSxcclxuICAjYmxvY2stbW9kLWhvb2tzb24tc2FsZW5vLXNlYXJjaCB7XHJcbiAgICBtYXJnaW46IC0xcHggMCAwIDA7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgei1pbmRleDogMTAwO1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuXHJcbiAgICAud2lkZ2V0LWFyZWEgJiB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiA2JTtcclxuICAgIH1cclxuXHJcbiAgICBoNC53aWRnZXQtdGl0bGUge1xyXG4gICAgICBtYXJnaW46IDAgMTBweDtcclxuICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgLy9jdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBjb2xvcjogJHRleHRfY29sb3I7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICB9XHJcbiAgICBoci50aXRsZS1kaXZpZGVyIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIC5pdGVtLWxpc3Qge1xyXG4gICAgICBAZXh0ZW5kIC5jaGVja2JveC1saXN0LXVsO1xyXG4gICAgfVxyXG4gICAgYS5mYWNldGFwaS1saW1pdC1saW5rIHtcclxuICAgICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC43ZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgY29sb3I6ICR0ZXh0X2NvbG9yO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyAgICAgICBcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICB1cmwoLi4vaW1nL2ljb25zL2Fycm93LWRvd24tYmxhY2suc3ZnKTtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiAkbmV3X3RoZW1lX2J1dHRvbl9pY29uX3NpemU7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRuZXdfdGhlbWVfYnV0dG9uX2ljb25fcG9zaXRpb247XHJcblxyXG4gICAgICAmLm9wZW4ge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvaWNvbnMvYXJyb3ctdXAtYmxhY2suc3ZnKTtcclxuICAgICAgfVxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICBvdXRsaW5lOiBub25lXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLy8gRmlsdGVyaW5nIHNvcnQgKHNpZGViYXIgbmF2aWdhdGlvbiBldGMpIC0gU0FMRSBOTyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgI2Jsb2NrLW1vZC1ob29rc29uLXNhbGVuby1zZWFyY2gge1xyXG5cclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgLmZvcm0taXRlbSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBtYXgtd2lkdGg6IDQwJTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XHJcbiAgICB9XHJcbiAgICAuZm9ybS1zdWJtaXQge1xyXG4gICAgICBoZWlnaHQ6IGF1dG87IFxyXG4gICAgICAvL3BhZGRpbmctbGVmdDogMDtcclxuICAgICAgbWFyZ2luOiAwLjI1ZW0gMHB4IDAuNWVtO1xyXG4gICAgICAvL2JhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE1lbnUgKHNpZGViYXIgbmF2aWdhdGlvbiBldGMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAud2lkZ2V0LW1lbnUgeyAvLyByZXN0IGluIF9uYXZpZ2F0aW9uLXNpZGViYXJcclxuICAgIG1hcmdpbi1sZWZ0OiAkZ2xvYmFsLW1hcmdpbio0O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gIH1cclxuXHJcbiAgLy8gTmV3cyBtZXRhIChuZXdzIGRhdGUgZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC53aWRnZXQtbmV3cy1tZXRhIHtcclxuXHJcbiAgICAucHVibGlzaGVkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICBtYXJnaW4tdG9wOiAyZW07XHJcbiAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XHJcbiAgICAgIC8vIGZvbnQtZmFtaWx5OiAkc2VyaWZfZm9udGZhbWlseTtcclxuICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUYWdzIChuZXdzIHRhZ3MgZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC53aWRnZXQtdGFncyB7XHJcblxyXG4gICAgLnRhZ3MtY29udGFpbmVyIHtcclxuICAgICAgcGFkZGluZzogMC41ZW07XHJcbiAgICAgIGJvcmRlcjogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LDQwJSk7XHJcbiAgICB9XHJcbiAgICAud2lkZ2V0LWZpbHRlciAmIC50YWdzLWNvbnRhaW5lciB7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB1bC50YWdzLWxpc3Qge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAvLyBmb250LWZhbWlseTogJHNlcmlmX2ZvbnRmYW1pbHk7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XHJcblxyXG4gICAgICAgIC53aWRnZXQtZmlsdGVyICYge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAwLjdlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNGVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU3VtbWFyeSAoYXVjdGlvbiBpbmZvLCBjb250YWN0IGluZm8gZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLndpZGdldC1hbGVydHMgeyAgXHJcbiAgICBwYWRkaW5nOiAxZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xyXG5cclxuICAgIGg1IHtcclxuICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xyXG4gICAgfVxyXG4gICAgb2wge1xyXG4gICAgICBAaW5jbHVkZSBuby1idWxsZXQ7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkdGV4dF9jb2xvcjtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMWVtIDAuNWVtO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggc2hhZGUoJHNlY29uZGFyeSwyMCUpO1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJjphY3RpdmUgeyBcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU3VtbWFyeSAoYXVjdGlvbiBpbmZvLCBjb250YWN0IGluZm8gZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gQ0hFQ0sgVVNFIE9OIERSVVBBTCBQQUdFUyEhIVxyXG4gIC53aWRnZXQtc3VtbWFyeSB7XHJcbiAgICAud2lkZ2V0LWFyZWEgJiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaDUge1xyXG4gICAgICBAaW5jbHVkZSB1cHBlci10aXRsZSgwLjllbSwgMCAwIDAuOTdlbSAwLCAkdGV4dF9jb2xvciApO1xyXG4gICAgICBmb250LWZhbWlseTogJGJhc2VfZm9udGZhbWlseTtcclxuICAgIH1cclxuICAgIHAge1xyXG4gICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4gICAgfVxyXG4gICAgc3Bhbi5sYWJlbCB7XHJcbiAgICAgIHdpZHRoOiA0ZW07XHJcbiAgICB9XHJcbiAgICAuc3VtbWFyeS1jb250ZW50IHtcclxuICAgICAgcGFkZGluZzogMCAwLjVlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XHJcbiAgICB9XHJcbiAgICAucHJvZmlsZS1yb2xlIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgcGFkZGluZy10b3A6IDEuNWVtO1xyXG4gICAgfVxyXG4gICAgLmZpbHRlci1jb250ZW50IHtcclxuICAgICAgcGFkZGluZzogMC41ZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBFdmVudHMgKGV2ZW50IGFkZHJlc3MgaW5mbykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC53aWRnZXQtbG9jYXRpb24geyAvLyBVc2VkIGZvciBkYXRlIHRvbyBjdXJyZW50bHlcclxuICAgIHBhZGRpbmc6IDAuNWVtO1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuXHJcbiAgICBwLCAuZGF0ZS1kaXNwbGF5LXJhbmdlIHtcclxuICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcclxuICAgIH1cclxuICAgIC5kYXRlLWRpc3BsYXktcmFuZ2Uge1xyXG4gICAgICBjb2xvcjogbGlnaHRlbigkbWlkX2dyZXksMTAlKTtcclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGNvbG9yOiAkdGV4dF9jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU29jaWFsIHNoYXJlIChzcGVjaWFsaXN0IGV0YykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC53aWRnZXQtc2hhcmUge1xyXG4gICAgbWFyZ2luLXRvcDogMWVtO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgXHJcbiAgICAgICYubGFiZWwge1xyXG4gICAgICAgIGNvbG9yOiAkdGV4dF9jb2xvcjtcclxuICAgICAgICBmb250LXNpemU6IDAuN2VtO1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBGT09URVIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEVtYWlsIFNpZ251cCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gVXNlIGluIGZvb3RlclxyXG5cclxuICAud2lkZ2V0LWVtYWlsLXNpZ251cCxcclxuICAuYmxvY2stZG90bWFpbGVyLXNpZ251cCxcclxuICAjYmxvY2stYmxvY2stNiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XHJcblxyXG4gICAgLnNpZ251cC10aXRsZSxcclxuICAgIC53aWRnZXQtdGl0bGUge1xyXG4gICAgICBtYXJnaW46IDAgMCAxZW0gMDtcclxuICAgICAgZm9udC1zaXplOiAxLjE4NWVtO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgY29sb3I6ICMwMDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cclxuICAgIH1cclxuICAgIGhyLnRpdGxlLWRpdmlkZXIge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm0ge1xyXG4gICAgICAvL2JhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIGJvcmRlcjogc29saWQgMXB4ICRtaWRfZ3JleTtcclxuICAgIH1cclxuICAgIGxhYmVsIHtcclxuICAgICAgQGluY2x1ZGUgdmlzdWFsbHloaWRkZW4oKTtcclxuICAgIH1cclxuICAgIGlucHV0LCBcclxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIG1heC13aWR0aDogODAlO1xyXG4gICAgICBoZWlnaHQ6IDQ0cHg7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG4gICAgLnN1Ym1pdCxcclxuICAgIC5mb3JtLXN1Ym1pdCB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgd2lkdGg6IDQ0cHg7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMTFweDtcclxuICAgICAgICByaWdodDogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSU4tUEFHRSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblxyXG4gIC8vIEF1Y3Rpb24vU2FsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLndpZGdldC1zYWxlIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMmVtO1xyXG4gICAgbWFyZ2luOiAyZW07XHJcbiAgICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRsaWdodF9ncmV5O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIGg0IHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgbWluLWhlaWdodDogMi4yZW07XHJcbiAgICB9XHJcbiAgICBpbWcge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICB9XHJcbiAgICBwIHtcclxuICAgICAgZm9udC1zaXplOiAwLjgyNWVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjRlbTtcclxuXHJcbiAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGRhcmtfZ3JleSw0MCUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2FsZS1tZXRhIHsgXHJcbiAgICB9XHJcbiAgICAgIC5zYWxlLWRhdGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xyXG4gICAgICB9XHJcbiAgICAgIC5zYWxlLWxvY2F0aW9uIHtcclxuICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgfVxyXG4gICAgICAuc2FsZS1ob3N0IHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhlbTtcclxuICAgICAgfVxyXG4gICAgICAuc2FsZS1saW5rIHtcclxuICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcGFkZGluZzogMC43ZW0gMWVtIDAuNzYyNWVtO1xyXG5cclxuICAgICAgJi53aXRoLWljb24geyBcclxuICAgICAgICAvL3BhZGRpbmctbGVmdDogMi41ZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGkgeyAvLyB2YXJ5IHNpZGVzP1xyXG4gICAgICAgIHRvcDogMC4yNWVtO1xyXG4gICAgICAgIGxlZnQ6IDAuNWVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLyogQmlkIExpdmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC53aWRnZXQtYmlkLWxpdmUge1xyXG4gICAgcGFkZGluZzogM2VtIDFlbTtcclxuICAgIG1hcmdpbjogMCAxZW07XHJcbiAgICBoZWlnaHQ6IDE1ZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG5cclxuICAgIC5iaWQtbGl2ZS10aXRsZSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcbiAgICBwIHtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFjY291bnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC53aWRnZXQtYWNjb3VudCB7XHJcbiAgICBwYWRkaW5nOiAzZW0gMWVtO1xyXG4gICAgbWFyZ2luOiAwIDFlbTtcclxuICAgIGhlaWdodDogMTVlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6ICRsaWdodF9ncmV5O1xyXG5cclxuICAgIC5hY2NvdW50LXRpdGxlIHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxuICAgIHAge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICB9XHJcbiAgfSovXHJcblxyXG4gIC8vIEV2ZW50IENhbGVuZGFyIExpc3QgKE1vbnRoIGFuZCBEYXkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAud2lkZ2V0LWNhbGVuZGFyIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgLy9tYXJnaW4tdG9wOiA3ZW07XHJcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxMnB4ICRpbmRpZ287IFxyXG4gIH1cclxuICAuZGF0ZS1uYXYtd3JhcHBlciB7XHJcbiAgICAvL2Rpc3BsYXk6IG5vbmU7Ly90ZW1wXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgfSBcclxuICAgIC5kYXRlLW5hdiB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbWluLWhlaWdodDogMzBweDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgfVxyXG4gICAgLmRhdGUtaGVhZGluZyB7XHJcbiAgICAgIHBhZGRpbmc6IDFlbTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHotaW5kZXg6IDA7XHJcblxyXG4gICAgICBoMyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2VyaWZfZm9udGZhbWlseTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkaW5kaWdvO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xyXG4gICAgICAgICAgY29sb3I6ICNGRkY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAud2lkZ2V0LWNhbGVuZGFyIHVsLnBhZ2VyIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgY2xlYXI6IG5vbmU7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICAgIGRpdiB7IGRpc3BsYXk6IG5vbmU7IH0gLy8gYXZvaWQgbmFzdHkgalF1ZXJ5IGdsaXRjaCAgICAgXHJcbiAgICB9XHJcbiAgICAuZGF0ZS1wcmV2LCAuZGF0ZS1uZXh0LCB1bC5wYWdlciB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgZGl2IHsgZGlzcGxheTogbm9uZTsgfSAvLyBhdm9pZCBuYXN0eSBqUXVlcnkgZ2xpdGNoICAgIFxyXG5cclxuICAgIH1cclxuICAgICAgLmRhdGUtcHJldiwgLmRhdGUtbmV4dCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgIHRvcDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxcHggIWltcG9ydGFudDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgIGhlaWdodDogMjBweDtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxcHggIWltcG9ydGFudDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICB3aWR0aDogMzBweDtcclxuICAgICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9pY29ucy9hcnJvdy1sZWZ0LWJsYWNrLnN2Zyk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkbmV3X3RoZW1lX2J1dHRvbl9pY29uX3NpemU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC5kYXRlLXByZXYge1xyXG4gICAgICAgIGxlZnQ6IDAuNWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLmRhdGUtbmV4dCB7XHJcbiAgICAgICAgcmlnaHQ6IDAuNWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbGVmdDogYXV0bztcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb25zL2Fycm93LXJpZ2h0LWJsYWNrLnN2Zyk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgLmZlZWQtaWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gIC53aWRnZXQtY2FsZW5kYXIge1xyXG5cclxuICAgIC5jYWxlbmRhci1jYWxlbmRhciB7ICAgIFxyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2Vjb25kYXJ5O1xyXG4gICAgfVxyXG5cclxuICAgIHRhYmxlIHtcclxuICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgbWFyZ2luOiA1cHggIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICB0aC5kYXlzIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xyXG4gICAgICBjb2xvcjogIzAwMCFpbXBvcnRhbnQ7XHJcbiAgICAgIC8vZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmYhaW1wb3J0YW50O1xyXG4gICAgICBmb250LXNpemU6IDAuNzVlbSFpbXBvcnRhbnQ7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICBwYWRkaW5nOiAwLjllbTtcclxuICAgIH1cclxuICAgIHRkIHtcclxuICAgICAgYm9yZGVyOiA4cHggc29saWQgI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlciFpbXBvcnRhbnQ7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICBmb250LXNpemU6IDAuNzVlbTtcclxuICAgICAgcGFkZGluZzogMC45ZW0gIWltcG9ydGFudDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgICYuaGFzLWV2ZW50cyB7XHJcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgcGFkZGluZzogMC45ZW0gIWltcG9ydGFudDtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJGluZGlnbztcclxuICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgLy90ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiBsaWdodGVuKCRkYXJrX2dyZXksMjAlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgICB9XHJcbiAgICB9ICAgXHJcbiAgICB0ciB7XHJcbiAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcclxuICAgIH1cclxuICAgIHRkLm1pbmkge1xyXG4gICAgfVxyXG4gICAgdGFibGUubWluaSB0ZC5lbXB0eSB7XHJcbiAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcclxuICAgIH1cclxuICAgIC5jYWxlbmRhci1lbXB0eSB7IC8vRHJ1cGFsIGdsaXRjaHkgZGl2XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICB0ciB0ZC50b2RheSwgdHIub2RkIHRkLnRvZGF5LCB0ci5ldmVuIHRkLnRvZGF5IHsgICAgICBcclxuICAgICAgY29sb3I6ICNmZmYhaW1wb3J0YW50O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5kaWdvIWltcG9ydGFudDtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC8vIElFNyBmaXhlc1xyXG4gIC8qLmx0LWllOCB7XHJcbiAgICAucGFnZS1ldmVudHMtY2FsZW5kYXIgI2Jsb2NrLXN5c3RlbS1tYWluIHtcclxuICAgICAgLmRhdGUtbmF2LXdyYXBwZXIge1xyXG4gICAgICAgIC5kYXRlLW5hdiB7XHJcbiAgICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZGF0ZS1oZWFkaW5nIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNWVtIDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAubHQtaWU4IHtcclxuXHJcbiAgICAudmlldyB7XHJcblxyXG4gICAgICAuZGF0ZS1uYXYtd3JhcHBlciB7XHJcbiAgICAgICAgLmRhdGUtbmF2IHtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmRhdGUtaGVhZGluZyB7XHJcbiAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyMjhweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmRhdGUtcHJldiwgLmRhdGUtbmV4dCB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmx1ZV90d2l0dGVyLCAyMCUpO1xyXG5cclxuICAgICAgICAgIGRpdiB7IGRpc3BsYXk6IG5vbmU7IH0gLy8gYXZvaWQgbmFzdHkgalF1ZXJ5IGdsaXRjaCAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5jYWxlbmRhci1jYWxlbmRhciB7XHJcbiAgICAgIHdpZHRoOiAyMjhweDtcclxuICAgICAgdGguZGF5cyB7XHJcblxyXG4gICAgICAgIHBhZGRpbmc6IDJweCAxcHg7XHJcbiAgICAgIH1cclxuICAgICAgdGQge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRkLm1pbmkge1xyXG4gICAgICAgIHBhZGRpbmc6IDJweCAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSovXHJcblxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcbiAgLy8gR3JpZCBzaXppbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcclxuICAvKi53aWRnZXQtbmV3cyB7XHJcbiAgICBwYWRkaW5nOiAwIDYlO1xyXG5cclxuICAgIC5kMS1kNCAmIHsgLy8gMyB1cFxyXG4gICAgICBwYWRkaW5nOiAwIDUlOyAgIFxyXG4gICAgfVxyXG4gICAgLmQxLWQzICYgeyAvLyA0IHVwXHJcbiAgICAgIHBhZGRpbmc6IDAgNiU7ICAgXHJcbiAgICB9XHJcbiAgfSovXHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcclxuICAvLyBNZWRpYSBRdWVyaWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcblxyXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XHJcbiAgICAud2lkZ2V0LWNhbGVuZGFyIHtcclxuXHJcbiAgICAgIC5jYWxlbmRhci1jYWxlbmRhciB7ICAgIFxyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgICB0YWJsZSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aC5kYXlzIHtcclxuICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC42ZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgcGFkZGluZzogMC40ZW07XHJcbiAgICAgIH1cclxuICAgICAgdGQge1xyXG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07XHJcbiAgICAgICAgcGFkZGluZzogMC4zZW07XHJcblxyXG4gICAgICAgICYuaGFzLWV2ZW50cyB7XHJcbiAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMC4zZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGhrc24tbWVkaWEodGFibGV0LHApeyBcclxuICAgIC53aWRnZXQtY2FsZW5kYXIge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgZ3MtbWVkaWEodCxtYXgpIHsgIFxyXG4gICAgLndpZGdldC10aXRsZSB7IC8vIERlZmF1bHRcclxuICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgLy8uY29udGVudCAmLFxyXG4gICAgICAjYmxvY2stdmlld3MtZmJkZTc5Yzc3ZGI0ZTUwNDQzMjA3NGZhNTU3YTJiMzkgJiwgLy8gRmVhdHVyZWQgY29sbGVjdGlvbnNcclxuICAgICAgLnJlZ2lvbi1ib3R0b20gJiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjM3NWVtO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndpZGdldC1hcmVhIC53aWRnZXQsXHJcbiAgICAud2lkZ2V0LWFyZWEgLmJsb2NrLWZhY2V0YXBpLFxyXG4gICAgLndpZGdldC1hcmVhICNibG9jay1tb2QtaG9va3Nvbi1zYWxlbm8tc2VhcmNoLFxyXG4gICAgLndpZGdldC1hcmVhIC5ibG9jay1hcGFjaGVzb2xyLXNvcnQsXHJcbiAgICAuY3VycmVudC1zZWFyY2gtaXRlbS1hY3RpdmUtaXRlbXMgdWwge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLmN1cnJlbnQtc2VhcmNoLWl0ZW0tYWN0aXZlLWl0ZW1zIHVsIHtcclxuICAgICAgcGFkZGluZzogMCAwIDAuNWVtIDA7XHJcbiAgICB9XHJcbiAgICAjc2Nyb2xsZXIge1xyXG4gICAgICAud2lkZ2V0IHtcclxuICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5kMS1kNCAjc2Nyb2xsZXIge1xyXG4gICAgICAud2lkZ2V0IHtcclxuICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7ICAgXHJcblxyXG4gICAgLndpZGdldC1hcmVhIHtcclxuXHJcbiAgICAgIC53aWRnZXQsIFxyXG4gICAgICAud2lkZ2V0LXRpdGxlLFxyXG4gICAgICBoci50aXRsZS1kaXZpZGVyLFxyXG4gICAgICBmb3JtLFxyXG4gICAgICAud2lkZ2V0LXRpdGxlIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC5maWx0ZXItcmVzdWx0IHtcclxuICAgICAgcGFkZGluZzogMWVtIDEwcHg7IC8vIE1hdGNoIGZpbHRlciBkcm9wIGRvd24gc3BhY2luZ1xyXG4gICAgfSAgIFxyXG4gICAgLndpZGdldC1hcmVhIC5jdXJyZW50LXNlYXJjaC1pdGVtLXNlYXJjaC1yZXN1bHRzIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9IFxyXG5cclxuICAgIC5maWx0ZXItcmVzdWx0LWhlYWRpbmcge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xyXG4gICAgfVxyXG4gICAgdWwuZmlsdGVyLXF1ZXJ5IHtcclxuICAgICAgcGFkZGluZzogMWVtIDA7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgcGFkZGluZzogMC43ZW0gMC43ZW0gMC43ZW0gM2VtO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIHRvcDogMC43ZW07IGxlZnQ6IDAuN2VtO1xyXG4gICAgICAgICAgd2lkdGg6IDJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gT1ZFUlJJREVTXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1PVkUgVVAgT05DRSBPVEhFUlMgQ0xFQVJFRFxyXG5cclxuLy8gR3JpZCBXaWRnZXRzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC53aWRnZXQtZ3JpZCB7XHJcbiAgICBwYWRkaW5nOiAwIDYlO1xyXG4gICAgbWFyZ2luLXRvcDogMmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMmVtOyAgXHJcbiAgICAvL3BhZGRpbmctYm90dG9tOiAyZW07XHJcbiAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LDQwJSk7XHJcbi8qXHJcbiAgICAubXVsdGlwbGUtcm93ICYsXHJcbiAgICAuZ3JpZC1ncm91cHMgJiB7IC8vIGRpc2FibGUgZmlyc3Qgb24gc2luZ2xlIHJvdyBhbmQgYWxsIG9uIG11bHRpcGxlIHJvd3MgXHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDJlbTsgIFxyXG4gICAgfVxyXG4qL1xyXG4gICAgLmZyb250ICYge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5kMS1kNCAmIHtcclxuICAgICAgcGFkZGluZzogMCA1JTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDJlbTtcclxuICAgIH1cclxuICAgIC5kMS1kNDpmaXJzdC1jaGlsZCAmIHtcclxuICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgIG1hcmdpbi1sZWZ0OiA1JTsgICBcclxuICAgIH1cclxuXHJcbiAgICAuZ3JvdXAtY29udGVudCwgLmdyb3VwLW1ldGEge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxZW07XHJcbiAgICB9XHJcbiAgICAudmlld3Mtcm93LWxhc3QuZDEtZDQgJixcclxuICAgIC5kMS1kNCAmLnJvdy1lbmQge1xyXG4gICAgICAgLy9ib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgLy9wYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgLy9tYXJnaW4tcmlnaHQ6IDUlOyAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNlbGVjdCAzcmQgaW4gcm93IGZvciBkMS1kNFxyXG4gICAgLmQxLWQ0Om50aC1jaGlsZCgzbiszKSAmIHsgIFxyXG4gICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICBtYXJnaW4tcmlnaHQ6IDUlOyAgXHJcbiAgICB9XHJcbiAgICAvLyBTZWxlY3QgNHRoIGluIHJvdyBmb3IgZDEtZDNcclxuICAgIC5kMS1kMzpudGgtY2hpbGQoNG4rNCkgJiB7ICBcclxuICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgbWFyZ2luLXJpZ2h0OiA1JTsgIFxyXG4gICAgfVxyXG5cclxuICAgIC5kMS1kMyAmIHtcclxuICAgICAgcGFkZGluZzogMCA2JTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDJlbTtcclxuICAgIH1cclxuICAgIC5kMS1kMzpmaXJzdC1jaGlsZCAmIHtcclxuICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgIG1hcmdpbi1sZWZ0OiA2JTsgICBcclxuICAgIH1cclxuICAgIC52aWV3cy1yb3ctbGFzdC5kMS1kMyAmLFxyXG4gICAgLmQxLWQzICYucm93LWVuZCB7XHJcbiAgICAgICAvL2JvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAvL3BhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAvL21hcmdpbi1yaWdodDogNiU7ICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy8gU3BlY2lmaWMgd2lkZ2V0IHByb3BlcnRpZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgICYud2lkZ2V0LXByb2ZpbGUge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAmLndpZGdldC1wdWJsaWNhdGlvbiB7IC8vIENIRUNLIE9USEVSUy4uLlxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIG1heC13aWR0aDogMjcycHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBMYW5kc2NhcGUgdGFibGV0XHJcblxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKHQsbWF4KSB7XHJcblxyXG4gICAgLy8gTW9iaWxlIG9ubHkgcmV2ZWFsIGJsb2Nrc1xyXG4gICAgaDMuZmlsdGVyLXRpdGxlIHtcclxuICAgICAgJi5tb2JpbGUuaGFzLXJldmVhbCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5yZXZlYWwtY29udGVudC5tb2JpbGUge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LWdyaWQge1xyXG5cclxuICAgICAgLmZyb250ICYge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUmVpbnN0YXRlIGJvcmRlciArIHBhZGRpbmcgb24gM3JkIGluIHJvdyBmb3IgZDEtZDRcclxuICAgICAgLmQxLWQ0Om50aC1jaGlsZCgzbiszKSAmIHsgIFxyXG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1JTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7ICBcclxuICAgICAgfVxyXG4gICAgICAvLyBSZWluc3RhdGUgYm9yZGVyICsgcGFkZGluZyBvbiA0dGggaW4gcm93IGZvciBkMS1kM1xyXG4gICAgICAuZDEtZDM6bnRoLWNoaWxkKDRuKzQpICYgeyAgXHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDYlO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgIFxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBTZWxlY3QgMm5kIGluIHJvdyBmb3IgZDEtZDQgQU5EIGQxLWQzXHJcbiAgICAgIC5kMS1kNDpudGgtY2hpbGQoMm4rMikgJixcclxuICAgICAgLmQxLWQzOm50aC1jaGlsZCgybisyKSAmIHsgIFxyXG4gICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICBtYXJnaW4tcmlnaHQ6IDUlOyAgXHJcbiAgICAgIH1cclxuICAgICAgLmQxLWQ0Om50aC1jaGlsZCgybisxKSAmLFxyXG4gICAgICAuZDEtZDM6bnRoLWNoaWxkKDJuKzEpICYgIHtcclxuICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICBtYXJnaW4tbGVmdDogNSU7ICAgXHJcbiAgICAgIH1cclxuICAgICAgJi53aWRnZXQtcHVibGljYXRpb24geyAvLyBDSEVDSyBPVEhFUlMuLi5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIC8vIE1vYmlsZVxyXG5cclxuICBAaW5jbHVkZSBncy1tZWRpYShtLG1heCkgeyAgXHJcblxyXG4gICAgLndpZGdldC1ncmlkIHtcclxuICAgICAgbWFyZ2luOiAwIDAgMC41ZW0gMDtcclxuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OyBcclxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmUgIWltcG9ydGFudDsgXHJcblxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5kMS1kNDpudGgtY2hpbGQoMm4rMikgJixcclxuICAgICAgLmQxLWQzOm50aC1jaGlsZCgybisyKSAmLFxyXG4gICAgICAuZDEtZDQ6bnRoLWNoaWxkKDJuKzEpICYsXHJcbiAgICAgIC5kMS1kMzpudGgtY2hpbGQoMm4rMSkgJixcclxuICAgICAgLmQxLWQ0Om50aC1jaGlsZCgzbiszKSAmLFxyXG4gICAgICAuZDEtZDM6bnRoLWNoaWxkKDRuKzQpICYsXHJcbiAgICAgIC5kMS1kNDpmaXJzdC1jaGlsZCAmLFxyXG4gICAgICAuZDEtZDM6Zmlyc3QtY2hpbGQgJiB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgIFxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIEJ1dHRvbiBsaXN0IChjdGFzIGV0YykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLndpZGdldC1hcmVhIC53aWRnZXQtY3RhcyB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDFlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBIb21lcGFnZTogbGltaXQgdmlzaWJsZSB3aWRnZXRzIFxyXG4gICAgLmZyb250IC53aWRnZXQtcHJvZmlsZSwgLmZyb250IC53aWRnZXQtbmV3cyB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyAvLyBPdmVycmlkZSBKUyBNYXRjaEhlaWdodFxyXG4gICAgfVxyXG4gICAgICAuZnJvbnQgLmQxLWQzOmZpcnN0LWNoaWxkIC53aWRnZXQtcHJvZmlsZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgICAgLmZyb250IC5kMS1kMzpmaXJzdC1jaGlsZCAud2lkZ2V0LW5ld3MsXHJcbiAgICAgIC5mcm9udCAuZDEtZDM6bnRoLWNoaWxkKDIpIC53aWRnZXQtbmV3cyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICB9IiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBTZXR0aW5ncyAvIE1peGluc1xyXG4vL1xyXG5cclxuICAvLyBCbG9jayB0aXRsZSAoQmxhY2sgYmxvY2sgdGl0bGUgdXNlZCBvbiB3aWRnZXRzIGV0YylcclxuICBAbWl4aW4gYmxvY2stdGl0bGUoJGZvbnRzaXplOiAwLjllbSwgJG1hcmdpbjogMCAwIDZweCAwLCAkbWF4d2lkdGg6IGF1dG8gKSB7XHJcbiAgICAgIG1hcmdpbjogJG1hcmdpbjtcclxuICAgICAgZm9udC1zaXplOiAkZm9udHNpemU7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZHVwcGVyX2ZvbnRmYW1pbHk7XHJcbiAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbSAwLjU1ZW07XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXgtd2lkdGg6ICRtYXh3aWR0aDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgYmFja2dyb3VuZDogJGRhcmtfZ3JleTtcclxuICB9XHJcblxyXG4gIC8vIE1haW4gdGl0bGUgKEl0YWxpY2lzZWQgU2VyaWYpXHJcbiAgQG1peGluIG1haW4tdGl0bGUoJGZvbnRzaXplOiAwLjllbSwgJG1hcmdpbjogMCAwIDFlbSAwLCAkY29sb3I6ICMwMDAgKSB7XHJcbiAgICAgIG1hcmdpbjogJG1hcmdpbjtcclxuICAgICAgZm9udC1zaXplOiAkZm9udHNpemU7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZF9mb250ZmFtaWx5O1xyXG4gICAgICAvLyBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG5cclxuICAvLyBVcHBlcmNhc2UgdGl0bGUgKE1haW5seSB1c2VkIG9uIDxoMj4pXHJcbiAgQG1peGluIHVwcGVyLXRpdGxlKCRmb250c2l6ZTogMC45ZW0sICRtYXJnaW46IDAgMCAxZW0gMCwgJGNvbG9yOiAjMDAwICkge1xyXG4gICAgICBtYXJnaW46ICRtYXJnaW47XHJcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnRzaXplO1xyXG4gICAgICBmb250LWZhbWlseTogJHNlcmlmX2ZvbnRmYW1pbHk7IC8vJGJhc2VfZm9udGZhbWlseTtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICB9XHJcbiAgLy8gU21hbGxlciBib2R5IGNvcHkgKE1haW5seSB1c2VkIG9uIHdpZGdldHMgZXRjKVxyXG4gIEBtaXhpbiBzbWFsbC1ib2R5KCRtYXJnaW46IDAgMCAxZW0gMCApIHtcclxuICAgICAgbWFyZ2luOiAkbWFyZ2luO1xyXG4gICAgICBmb250LXNpemU6IDAuNzVlbTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4gICAgICBmb250LWZhbWlseTogJGJhc2VfZm9udGZhbWlseTtcclxuICB9XHJcblxyXG5cclxuICAvLyBTbWFsbCB0ZXh0IGJ1dHRvbnMgKHRleHQgKyBhcnJvdylcclxuICBAbWl4aW4gdGV4dC1idXR0b24gKCRjb2xvcjogIzAwMCkge1xyXG4gICAgICBmb250LXNpemU6IDAuNzVlbTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgICAgcGFkZGluZzogMWVtIDM1cHggMS4wNjI1ZW0gMDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcclxuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRmYW1pbHk7XHJcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgIC8vYmFja2dyb3VuZC1zaXplOiAyMHB4IDEzcHg7XHJcbiAgICAgIC8vYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gQmxvY2sgY2FwdGlvbiB0aXRsZSAoRnVsbCB3aWR0aCBkYXJrIGJsb2NrIC0gbGlrZSBDYXJvdXNlbCBiYXIpXHJcbiAgQG1peGluIGNhcHRpb24tdGl0bGUoJGZvbnRzaXplOiAwLjgyNWVtLCAkbWFyZ2luOiAwIDAgMWVtIDAsICRwYWRkaW5nOiAwLjVlbSAxZW0gMC41NWVtLCAkYmFja2dyb3VuZDogIzAwMCApIHtcclxuICAgICAgbWFyZ2luOiAkbWFyZ2luO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6ICRmb250c2l6ZTsgXHJcbiAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbSAwLjVlbSoxLjE7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gQnV0dG9uIChNYWluIGN0YSBidXR0b25zIHdoaXRlIG9uIGNvbG91ciAtIHBhcnRzIHRoYXQgdmFyeTogY29sb3VycywgcGFkZGluZyBhbmQgbWFyZ2lucylcclxuICBAbWl4aW4gYnV0dG9uKCR0ZXh0X2NvbG9yOiAjZmZmLCAkYmFja2dyb3VuZDogIzAwMCwgJGZvbnRzaXplOiAwLjdlbSwgJG1hcmdpbjogMCAwIDFlbSAwLCAkcGFkZGluZzogMWVtIDQwcHggMS4wNjI1ZW0gMWVtICkge1xyXG4gICAgICBtYXJnaW46ICRtYXJnaW47XHJcbiAgICAgIGNvbG9yOiAkdGV4dF9jb2xvcjtcclxuICAgICAgZm9udC1zaXplOiAkZm9udHNpemU7IFxyXG4gICAgICAvLyBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgZm9udC1zaXplOiAkZm9udHNpemU7XHJcbiAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gICAgICBtYXJnaW46ICRtYXJnaW47ICAgICAgXHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmYgdXJsKC4uL2ltZy9pY29ucy9hcnJvdy1yaWdodC1ibGFjay5zdmcpIG5vLXJlcGVhdCByaWdodCBjZW50ZXI7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogJG5ld190aGVtZV9idXR0b25faWNvbl9zaXplO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkbmV3X3RoZW1lX2J1dHRvbl9pY29uX3Bvc2l0aW9uO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xyXG4gIH0iLCIvL1xuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNvbG9ycyBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9jb3JlL2xpYi9jb21wYXNzL2NvcmUvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9jb2xvcnMucmJcbi8vXG5cbi8vIGEgZ2VuZXJpY2l6ZWQgdmVyc2lvbiBvZiBsaWdodGVuL2RhcmtlbiBzbyB0aGF0IG5lZ2F0aXZlIHZhbHVlcyBjYW4gYmUgdXNlZC5cbkBmdW5jdGlvbiBhZGp1c3QtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICBAcmV0dXJuIGFkanVzdC1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRhbW91bnQpOyB9XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3MgbGlnaHRuZXNzIGJ5IHNvbWUgcGVyY2VudGFnZS5cbi8vIElmIHRoZSBhbW91bnQgaXMgbmVnYXRpdmUsIHRoZSBjb2xvciBpcyBzY2FsZWQgZGFya2VyLCBpZiBwb3NpdGl2ZSwgaXQgaXMgc2NhbGVkIGxpZ2h0ZXIuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBsaWdodCBvciBkYXJrIGNvbG9yIHVubGVzcyB0aGUgYW1vdW50IGlzIDEwMCUuXG5AZnVuY3Rpb24gc2NhbGUtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGFtb3VudCk7IH1cblxuLy8gYSBnZW5lcmljaXplZCB2ZXJzaW9uIG9mIHNhdHVyYXRlL2Rlc2F0dXJhdGUgc28gdGhhdCBuZWdhdGl2ZSB2YWx1ZXMgY2FuIGJlIHVzZWQuXG5AZnVuY3Rpb24gYWRqdXN0LXNhdHVyYXRpb24oJGNvbG9yLCAkYW1vdW50KSB7XG4gIEByZXR1cm4gYWRqdXN0LWNvbG9yKCRjb2xvciwgJHNhdHVyYXRpb246ICRhbW91bnQpOyB9XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3Mgc2F0dXJhdGlvbiBieSBzb21lIHBlcmNlbnRhZ2UuXG4vLyBJZiB0aGUgYW1vdW50IGlzIG5lZ2F0aXZlLCB0aGUgY29sb3IgaXMgZGVzYXR1cmF0ZWQsIGlmIHBvc2l0aXZlLCBpdCBpcyBzYXR1cmF0ZWQuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBzYXR1cmF0ZWQgb3IgZGVzYXR1cmF0ZWQgY29sb3IgdW5sZXNzIHRoZSBhbW91bnQgaXMgMTAwJS5cbkBmdW5jdGlvbiBzY2FsZS1zYXR1cmF0aW9uKCRjb2xvciwgJGFtb3VudCkge1xuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJHNhdHVyYXRpb246ICRhbW91bnQpOyB9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50YWdlKSB7XG4gIEByZXR1cm4gbWl4KCMwMDAwMDAsICRjb2xvciwgJHBlcmNlbnRhZ2UpOyB9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnRhZ2UpIHtcbiAgQHJldHVybiBtaXgoI2ZmZmZmZiwgJGNvbG9yLCAkcGVyY2VudGFnZSk7IH1cbiIsIkBpbXBvcnQgXCIuLi9zdXBwb3J0XCI7XG5cbi8vIFRoaXMgbWl4aW4gcHJvdmlkZXMgYmFzaWMgc3VwcG9ydCBmb3IgQ1NTMyBwcm9wZXJ0aWVzIGFuZFxuLy8gdGhlaXIgY29ycmVzcG9uZGluZyBleHBlcmltZW50YWwgQ1NTMiBwcm9wZXJ0aWVzIHdoZW5cbi8vIHRoZSBpbXBsZW1lbnRhdGlvbnMgYXJlIGlkZW50aWNhbCBleGNlcHQgZm9yIHRoZSBwcm9wZXJ0eVxuLy8gcHJlZml4LlxuQG1peGluIGV4cGVyaW1lbnRhbCgkcHJvcGVydHksICR2YWx1ZSwgJG1vejogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhLCAkd2Via2l0OiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCwgJG86ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsICRtczogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQsICRraHRtbDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCwgJG9mZmljaWFsOiB0cnVlKSB7XG4gIEBpZiAkd2Via2l0IGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCB7XG4gICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTsgfVxuICBAaWYgJGtodG1sIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sIHtcbiAgICAta2h0bWwtI3skcHJvcGVydHl9OiAkdmFsdWU7IH1cbiAgQGlmICRtb3ogYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSB7XG4gICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTsgfVxuICBAaWYgJG1zIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7XG4gICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlOyB9XG4gIEBpZiAkbyBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSB7XG4gICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7IH1cbiAgQGlmICRvZmZpY2lhbCB7XG4gICAgI3skcHJvcGVydHl9OiAkdmFsdWU7IH0gfVxuXG4vLyBTYW1lIGFzIGV4cGVyaW1lbnRhbCgpLCBidXQgZm9yIGNhc2VzIHdoZW4gdGhlIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFuZCB0aGUgdmFsdWUgaXMgdmVuZG9yaXplZFxuQG1peGluIGV4cGVyaW1lbnRhbC12YWx1ZSgkcHJvcGVydHksICR2YWx1ZSwgJG1vejogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhLCAkd2Via2l0OiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCwgJG86ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsICRtczogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQsICRraHRtbDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCwgJG9mZmljaWFsOiB0cnVlKSB7XG4gIEBpZiAkd2Via2l0IGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCB7XG4gICAgI3skcHJvcGVydHl9OiAtd2Via2l0LSN7JHZhbHVlfTsgfVxuICBAaWYgJGtodG1sIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sIHtcbiAgICAjeyRwcm9wZXJ0eX06IC1raHRtbC0jeyR2YWx1ZX07IH1cbiAgQGlmICRtb3ogYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSB7XG4gICAgI3skcHJvcGVydHl9OiAtbW96LSN7JHZhbHVlfTsgfVxuICBAaWYgJG1zIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7XG4gICAgI3skcHJvcGVydHl9OiAtbXMtI3skdmFsdWV9OyB9XG4gIEBpZiAkbyBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSB7XG4gICAgI3skcHJvcGVydHl9OiAtby0jeyR2YWx1ZX07IH1cbiAgQGlmICRvZmZpY2lhbCB7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX07IH0gfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBAZG9jIG9mZlxuLy8gTm90ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTYWZhcmksIENocm9tZSwgYW5kIEZpcmVmb3ggYWxsIHN1cHBvcnQgM0QgdHJhbnNmb3Jtcy4gSG93ZXZlcixcbi8vIG9ubHkgaW4gdGhlIG1vc3QgcmVjZW50IGJ1aWxkcy4gWW91IHNob3VsZCBhbHNvIHByb3ZpZGUgZmFsbGJhY2sgMmQgc3VwcG9ydCBmb3Jcbi8vIE9wZXJhIGFuZCBJRS4gSUUxMCBpcyBzbGF0ZWQgdG8gaGF2ZSAzZCBlbmFibGVkLCBidXQgaXMgY3VycmVudGx5IHVucmVsZWFzZWQuXG4vLyBUbyBtYWtlIHRoYXQgZWFzeSwgYWxsIDJEIHRyYW5zZm9ybXMgaW5jbHVkZSBhbiBicm93c2VyLXRhcmdldGluZyB0b2dnbGUgKCRvbmx5M2QpXG4vLyB0byBzd2l0Y2ggYmV0d2VlbiB0aGUgdHdvIHN1cHBvcnQgbGlzdHMuIFRoZSB0b2dnbGUgZGVmYXVsdHMgdG8gJ2ZhbHNlJyAoMkQpLFxuLy8gYW5kIGFsc28gYWNjZXB0cyAndHJ1ZScgKDNEKS4gQ3VycmVudGx5IHRoZSBsaXN0cyBhcmUgYXMgZm9sbG93czpcbi8vIDJEOiBNb3ppbGxhLCBXZWJraXQsIE9wZXJhLCBPZmZpY2lhbFxuLy8gM0Q6IFdlYmtpdCwgRmlyZWZveC5cblxuLy8gQXZhaWxhYmxlIFRyYW5zZm9ybXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFNjYWxlICgyZCBhbmQgM2QpXG4vLyAtIFJvdGF0ZSAoMmQgYW5kIDNkKVxuLy8gLSBUcmFuc2xhdGUgKDJkIGFuZCAzZClcbi8vIC0gU2tldyAoMmQgb25seSlcblxuLy8gVHJhbnNmb3JtIFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFRyYW5zZm9ybSBPcmlnaW4gKDJkIGFuZCAzZClcbi8vIC0gUGVyc3BlY3RpdmUgKDNkKVxuLy8gLSBQZXJzcGVjdGl2ZSBPcmlnaW4gKDNkKVxuLy8gLSBUcmFuc2Zvcm0gU3R5bGUgKDNkKVxuLy8gLSBCYWNrZmFjZSBWaXNpYmlsaXR5ICgzZClcblxuLy8gTWl4aW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB0cmFuc2Zvcm0tb3JpZ2luXG4vLyAgLSBzaG9ydGN1dHM6ICB0cmFuc2Zvcm0tb3JpZ2luMmQsIHRyYW5zZm9ybS1vcmlnaW4zZFxuLy8gIC0gaGVscGVyczogICAgYXBwbHktb3JpZ2luXG4vLyB0cmFuc2Zvcm1cbi8vICAtIHNob3J0Y3V0czogIHRyYW5zZm9ybTJkLCB0cmFuc2Zvcm0zZFxuLy8gIC0gaGVscGVyczogICAgc2ltcGxlLXRyYW5zZm9ybSwgY3JlYXRlLXRyYW5zZm9ybVxuLy8gcGVyc3BlY3RpdmVcbi8vICAtIGhlbHBlcnM6ICAgIHBlcnNwZWN0aXZlLW9yaWdpblxuLy8gdHJhbnNmb3JtLXN0eWxlXG4vLyBiYWNrZmFjZS12aXNpYmlsaXR5XG4vLyBzY2FsZVxuLy8gIC0gc2hvcnRjdXRzOiAgc2NhbGVYLCBzY2FsZVksIHNjYWxlWiwgc2NhbGUzZFxuLy8gcm90YXRlXG4vLyAgLSBzaG9ydGN1dHM6ICByb3RhdGVYLCByb3RhdGVZLCByb3RhdGUzZFxuLy8gdHJhbnNsYXRlXG4vLyAgLSBzaG9ydGN1dHM6ICB0cmFuc2xhdGVYLCB0cmFuc2xhdGVZLCB0cmFuc2xhdGVaLCB0cmFuc2xhdGUzZFxuLy8gc2tld1xuLy8gIC0gc2hvcnRjdXRzOiAgc2tld1gsIHNrZXdZXG5cbi8vIERlZmF1bHRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBUaGUgZGVmYXVsdCB4LW9yaWdpbiBmb3IgdHJhbnNmb3Jtc1xuJGRlZmF1bHQtb3JpZ2luLXg6IDUwJSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgeS1vcmlnaW4gZm9yIHRyYW5zZm9ybXNcbiRkZWZhdWx0LW9yaWdpbi15OiA1MCUgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHotb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4tejogNTAlICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB4LW11bHRpcGxpZXIgZm9yIHNjYWxpbmdcbiRkZWZhdWx0LXNjYWxlLXg6IDEuMjUgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHktbXVsdGlwbGllciBmb3Igc2NhbGluZ1xuJGRlZmF1bHQtc2NhbGUteTogJGRlZmF1bHQtc2NhbGUteCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgei1tdWx0aXBsaWVyIGZvciBzY2FsaW5nXG4kZGVmYXVsdC1zY2FsZS16OiAkZGVmYXVsdC1zY2FsZS14ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBhbmdsZSBmb3Igcm90YXRpb25zXG4kZGVmYXVsdC1yb3RhdGU6IDQ1ZGVnICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB4LXZlY3RvciBmb3IgdGhlIGF4aXMgb2YgM2Qgcm90YXRpb25zXG4kZGVmYXVsdC12ZWN0b3IteDogMSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgeS12ZWN0b3IgZm9yIHRoZSBheGlzIG9mIDNkIHJvdGF0aW9uc1xuJGRlZmF1bHQtdmVjdG9yLXk6IDEgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHotdmVjdG9yIGZvciB0aGUgYXhpcyBvZiAzZCByb3RhdGlvbnNcbiRkZWZhdWx0LXZlY3Rvci16OiAxICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB4LWxlbmd0aCBmb3IgdHJhbnNsYXRpb25zXG4kZGVmYXVsdC10cmFuc2xhdGUteDogMWVtICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB5LWxlbmd0aCBmb3IgdHJhbnNsYXRpb25zXG4kZGVmYXVsdC10cmFuc2xhdGUteTogJGRlZmF1bHQtdHJhbnNsYXRlLXggIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHotbGVuZ3RoIGZvciB0cmFuc2xhdGlvbnNcbiRkZWZhdWx0LXRyYW5zbGF0ZS16OiAkZGVmYXVsdC10cmFuc2xhdGUteCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgeC1hbmdsZSBmb3Igc2tld2luZ1xuJGRlZmF1bHQtc2tldy14OiA1ZGVnICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB5LWFuZ2xlIGZvciBza2V3aW5nXG4kZGVmYXVsdC1za2V3LXk6IDVkZWcgIWRlZmF1bHQ7XG5cbi8vICoqVHJhbnNmb3JtLW9yaWdpbioqXG4vLyBUcmFuc2Zvcm0tb3JpZ2luIHNlbnQgYXMgYSBjb21wbGV0ZSBzdHJpbmdcbi8vXG4vLyAgICAgQGluY2x1ZGUgYXBwbHktb3JpZ2luKCBvcmlnaW4gWywgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSAnb3JpZ2luJyBpcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IGNvbnRhaW5pbmcgMS0zICh4L3kveikgY29vcmRpbmF0ZXNcbi8vIGluIHBlcmNlbnRhZ2VzLCBhYnNvbHV0ZSAocHgsIGNtLCBpbiwgZW0gZXRjLi4pIG9yIHJlbGF0aXZlXG4vLyAobGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBjZW50ZXIpIHVuaXRzXG4vL1xuLy8gQHBhcmFtIG9ubHkzZCBTZXQgdGhpcyB0byB0cnVlIHRvIG9ubHkgYXBwbHkgdGhpc1xuLy8gbWl4aW4gd2hlcmUgYnJvd3NlcnMgaGF2ZSAzRCBzdXBwb3J0LlxuQG1peGluIGFwcGx5LW9yaWdpbigkb3JpZ2luLCAkb25seTNkKSB7XG4gICRvbmx5M2Q6ICRvbmx5M2Qgb3IgLWNvbXBhc3MtbGlzdC1zaXplKC1jb21wYXNzLWxpc3QoJG9yaWdpbikpID4gMjtcbiAgQGlmICRvbmx5M2Qge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0tb3JpZ2luLCAkb3JpZ2luLCAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0tb3JpZ2luLCAkb3JpZ2luLCAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH0gfVxuXG4vLyBUcmFuc2Zvcm0tb3JpZ2luIHNlbnQgYXMgaW5kaXZpZHVhbCBhcmd1bWVudHM6XG4vL1xuLy8gICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oIFsgb3JpZ2luLXgsIG9yaWdpbi15LCBvcmlnaW4teiwgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSB0aGUgMyAnb3JpZ2luLScgYXJndW1lbnRzIHJlcHJlc2VudCB4L3kveiBjb29yZGluYXRlcy5cbi8vXG4vLyAqKk5PVEU6Kiogc2V0dGluZyB6IGNvb3JkaW5hdGVzIHRyaWdnZXJzIDNEIHN1cHBvcnQgbGlzdCwgbGVhdmUgZmFsc2UgZm9yIDJEIHN1cHBvcnRcbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRvcmlnaW4teDogJGRlZmF1bHQtb3JpZ2luLXgsICRvcmlnaW4teTogJGRlZmF1bHQtb3JpZ2luLXksICRvcmlnaW4tejogZmFsc2UsICRvbmx5M2Q6IGlmKCRvcmlnaW4teiwgdHJ1ZSwgZmFsc2UpKSB7XG4gICRvcmlnaW46IHVucXVvdGUoXCJcIik7XG4gIEBpZiAkb3JpZ2luLXggb3IgJG9yaWdpbi15IG9yICRvcmlnaW4teiB7XG4gICAgQGlmICRvcmlnaW4teCB7XG4gICAgICAkb3JpZ2luOiAkb3JpZ2luLXg7IH1cbiAgICBAZWxzZSB7XG4gICAgICAkb3JpZ2luOiA1MCU7IH1cbiAgICBAaWYgJG9yaWdpbi15IHtcbiAgICAgICRvcmlnaW46ICRvcmlnaW4gJG9yaWdpbi15OyB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRvcmlnaW4teiB7XG4gICAgICAgICRvcmlnaW46ICRvcmlnaW4gNTAlOyB9IH1cbiAgICBAaWYgJG9yaWdpbi16IHtcbiAgICAgICRvcmlnaW46ICRvcmlnaW4gJG9yaWdpbi16OyB9XG4gICAgQGluY2x1ZGUgYXBwbHktb3JpZ2luKCRvcmlnaW4sICRvbmx5M2QpOyB9IH1cblxuLy8gVHJhbnNmb3JtIHNlbnQgYXMgYSBjb21wbGV0ZSBzdHJpbmc6XG4vL1xuLy8gICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNmb3JtcyBbLCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlICd0cmFuc2Zvcm1zJyBpcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mIGFsbCB0aGUgdHJhbnNmb3JtcyB0byBiZSBhcHBsaWVkLlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3JtLCAkb25seTNkOiBmYWxzZSkge1xuICBAaWYgJG9ubHkzZCB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybSwgJHRyYW5zZm9ybSwgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNmb3JtLCAkdHJhbnNmb3JtLCAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH0gfVxuXG4vLyBTaG9ydGN1dCB0byB0YXJnZXQgYWxsIGJyb3dzZXJzIHdpdGggMkQgdHJhbnNmb3JtIHN1cHBvcnRcbkBtaXhpbiB0cmFuc2Zvcm0yZCgkdHJhbnMpIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgZmFsc2UpOyB9XG5cbi8vIFNob3J0Y3V0IHRvIHRhcmdldCBvbmx5IGJyb3dzZXJzIHdpdGggM0QgdHJhbnNmb3JtIHN1cHBvcnRcbkBtaXhpbiB0cmFuc2Zvcm0zZCgkdHJhbnMpIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgdHJ1ZSk7IH1cblxuLy8gQGRvYyBvZmZcbi8vIDNEIFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBTZXQgdGhlIHBlcnNwZWN0aXZlIG9mIDNEIHRyYW5zZm9ybXMgb24gdGhlIGNoaWxkcmVuIG9mIGFuIGVsZW1lbnQ6XG4vL1xuLy8gICAgICBAaW5jbHVkZSBwZXJzcGVjdGl2ZSggcGVyc3BlY3RpdmUgKVxuLy9cbi8vIHdoZXJlICdwZXJzcGVjdGl2ZScgaXMgYSB1bml0bGVzcyBudW1iZXIgcmVwcmVzZW50aW5nIHRoZSBkZXB0aCBvZiB0aGVcbi8vIHotYXhpcy4gVGhlIGhpZ2hlciB0aGUgcGVyc3BlY3RpdmUsIHRoZSBtb3JlIGV4YWdnZXJhdGVkIHRoZSBmb3Jlc2hvcnRlbmluZy5cbi8vIHZhbHVlcyBmcm9tIDUwMCB0byAxMDAwIGFyZSBtb3JlLW9yLWxlc3MgXCJub3JtYWxcIiAtIGEgZ29vZCBzdGFydGluZy1wb2ludC5cbkBtaXhpbiBwZXJzcGVjdGl2ZSgkcCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwocGVyc3BlY3RpdmUsICRwLCAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gU2V0IHRoZSBvcmlnaW4gcG9zaXRpb24gZm9yIHRoZSBwZXJzcGVjdGl2ZVxuLy9cbi8vICAgICAgQGluY2x1ZGUgcGVyc3BlY3RpdmUtb3JpZ2luKG9yaWdpbi14IFtvcmlnaW4teV0pXG4vL1xuLy8gd2hlcmUgdGhlIHR3byBhcmd1bWVudHMgcmVwcmVzZW50IHgveSBjb29yZGluYXRlc1xuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkb3JpZ2luOiA1MCUpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHBlcnNwZWN0aXZlLW9yaWdpbiwgJG9yaWdpbiwgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIERldGVybWluZSB3aGV0aGVyIGEgM0Qgb2JqZWN0cyBjaGlsZHJlbiBhbHNvIGxpdmUgaW4gdGhlIGdpdmVuIDNEIHNwYWNlXG4vL1xuLy8gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUoIFsgc3R5bGUgXSApXG4vL1xuLy8gd2hlcmUgYHN0eWxlYCBjYW4gYmUgZWl0aGVyIGBmbGF0YCBvciBgcHJlc2VydmUtM2RgLlxuLy8gQnJvd3NlcnMgZGVmYXVsdCB0byBgZmxhdGAsIG1peGluIGRlZmF1bHRzIHRvIGBwcmVzZXJ2ZS0zZGAuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogcHJlc2VydmUtM2QpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gRGV0ZXJtaW5lIHRoZSB2aXNpYmlsaXR5IG9mIGFuIGVsZW1lbnQgd2hlbiBpdCdzIGJhY2sgaXMgdHVybmVkXG4vL1xuLy8gICAgIEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHkoIFsgdmlzaWJpbGl0eSBdIClcbi8vXG4vLyB3aGVyZSBgdmlzaWJpbGl0eWAgY2FuIGJlIGVpdGhlciBgdmlzaWJsZWAgb3IgYGhpZGRlbmAuXG4vLyBCcm93c2VycyBkZWZhdWx0IHRvIHZpc2libGUsIG1peGluIGRlZmF1bHRzIHRvIGhpZGRlblxuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHk6IGhpZGRlbikge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBAZG9jIG9mZlxuLy8gVHJhbnNmb3JtIFBhcnRpYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGVzZSB3b3JrIHdlbGwgb24gdGhlaXIgb3duLCBidXQgdGhleSBkb24ndCBhZGQgdG8gZWFjaCBvdGhlciwgdGhleSBvdmVycmlkZS5cbi8vIFVzZSBhbG9uZyB3aXRoIHRyYW5zZm9ybSBwYXJhbWV0ZXIgbWl4aW5zIHRvIGFkanVzdCBvcmlnaW4sIHBlcnNwZWN0aXZlIGFuZCBzdHlsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFNjYWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBTY2FsZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYW5kIHkgYXhpczpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHNjYWxlKCBbIHNjYWxlLXgsIHNjYWxlLXksIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAnc2NhbGUtJyBhcmd1bWVudHMgYXJlIHVuaXRsZXNzIG11bHRpcGxpZXJzIG9mIHRoZSB4IGFuZCB5IGRpbWVuc2lvbnNcbi8vIGFuZCBwZXJzcGVjdGl2ZSwgd2hpY2ggd29ya3MgdGhlIHNhbWUgYXMgdGhlIHN0YW5kLWFsb25lIHBlcnNwZWN0aXZlIHByb3BlcnR5L21peGluXG4vLyBidXQgYXBwbGllcyB0byB0aGUgaW5kaXZpZHVhbCBlbGVtZW50IChtdWx0aXBsaWVkIHdpdGggYW55IHBhcmVudCBwZXJzcGVjdGl2ZSlcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGUoJHNjYWxlLXg6ICRkZWZhdWx0LXNjYWxlLXgsICRzY2FsZS15OiAkc2NhbGUteCwgJHBlcnNwZWN0aXZlOiBmYWxzZSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiBzY2FsZSgkc2NhbGUteCwgJHNjYWxlLXkpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpOyB9XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVgoIFsgc2NhbGUteCwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWCgkc2NhbGU6ICRkZWZhdWx0LXNjYWxlLXgsICRwZXJzcGVjdGl2ZTogZmFsc2UsICRvbmx5M2Q6IGZhbHNlKSB7XG4gICR0cmFuczogc2NhbGVYKCRzY2FsZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gU2NhbGUgYW4gb2JqZWN0IGFsb25nIHRoZSB5IGF4aXNcbi8vIEBpbmNsdWRlIHNjYWxlWSggWyBzY2FsZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGVZKCRzY2FsZTogJGRlZmF1bHQtc2NhbGUteSwgJHBlcnNwZWN0aXZlOiBmYWxzZSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiBzY2FsZVkoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBTY2FsZSBhbiBvYmplY3QgYWxvbmcgdGhlIHogYXhpc1xuLy8gQGluY2x1ZGUgc2NhbGVaKCBbIHNjYWxlLXosIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiBzY2FsZVooJHNjYWxlOiAkZGVmYXVsdC1zY2FsZS16LCAkcGVyc3BlY3RpdmU6IGZhbHNlKSB7XG4gICR0cmFuczogc2NhbGVaKCRzY2FsZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTsgfVxuXG4vLyBTY2FsZSBhbmQgb2JqZWN0IGFsb25nIGFsbCB0aHJlZSBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZTNkKCBbIHNjYWxlLXgsIHNjYWxlLXksIHNjYWxlLXosIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiBzY2FsZTNkKCRzY2FsZS14OiAkZGVmYXVsdC1zY2FsZS14LCAkc2NhbGUteTogJGRlZmF1bHQtc2NhbGUteSwgJHNjYWxlLXo6ICRkZWZhdWx0LXNjYWxlLXosICRwZXJzcGVjdGl2ZTogZmFsc2UpIHtcbiAgJHRyYW5zOiBzY2FsZTNkKCRzY2FsZS14LCAkc2NhbGUteSwgJHNjYWxlLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybTNkKCR0cmFucyk7IH1cblxuLy8gQGRvYyBvZmZcbi8vIFJvdGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeiBheGlzICAoMkQpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy8gd2hlcmUgJ3JvdGF0aW9uJyBpcyBhbiBhbmdsZSBzZXQgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHNcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlKCRyb3RhdGU6ICRkZWZhdWx0LXJvdGF0ZSwgJHBlcnNwZWN0aXZlOiBmYWxzZSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiByb3RhdGUoJHJvdGF0ZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gQSBsb25nY3V0IGZvciAncm90YXRlJyBpbiBjYXNlIHlvdSBmb3JnZXQgdGhhdCAneicgaXMgaW1wbGllZFxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVaKCRyb3RhdGU6ICRkZWZhdWx0LXJvdGF0ZSwgJHBlcnNwZWN0aXZlOiBmYWxzZSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgcm90YXRlKCRyb3RhdGUsICRwZXJzcGVjdGl2ZSwgJG9ubHkzZCk7IH1cblxuLy8gUm90YXRlIGFuIG9iamVjdCBhcm91bmQgdGhlIHggYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSByb3RhdGVYKCBbIHJvdGF0aW9uLCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlWCgkcm90YXRlOiAkZGVmYXVsdC1yb3RhdGUsICRwZXJzcGVjdGl2ZTogZmFsc2UpIHtcbiAgJHRyYW5zOiByb3RhdGVYKCRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybTNkKCR0cmFucyk7IH1cblxuLy8gUm90YXRlIGFuIG9iamVjdCBhcm91bmQgdGhlIHkgYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVZKCRyb3RhdGU6ICRkZWZhdWx0LXJvdGF0ZSwgJHBlcnNwZWN0aXZlOiBmYWxzZSkge1xuICAkdHJhbnM6IHJvdGF0ZVkoJHJvdGF0ZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTsgfVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCBhbiBhcmJpdHJhcnkgYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgdmVjdG9yLXgsIHZlY3Rvci15LCB2ZWN0b3Iteiwgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy8gd2hlcmUgdGhlICd2ZWN0b3ItJyBhcmd1bWVudHMgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMuXG4vLyBUaGVzZSBudW1iZXJzIGFyZSBub3QgaW1wb3J0YW50IG9uIHRoZWlyIG93biwgYnV0IGluIHJlbGF0aW9uIHRvIG9uZSBhbm90aGVyXG4vLyBjcmVhdGluZyBhbiBheGlzIGZyb20geW91ciB0cmFuc2Zvcm0tb3JpZ2luLCBhbG9uZyB0aGUgYXhpcyBvZiBYeCA9IFl5ID0gWnouXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHJvdGF0ZTNkKCR2ZWN0b3IteDogJGRlZmF1bHQtdmVjdG9yLXgsICR2ZWN0b3IteTogJGRlZmF1bHQtdmVjdG9yLXksICR2ZWN0b3ItejogJGRlZmF1bHQtdmVjdG9yLXosICRyb3RhdGU6ICRkZWZhdWx0LXJvdGF0ZSwgJHBlcnNwZWN0aXZlOiBmYWxzZSkge1xuICAkdHJhbnM6IHJvdGF0ZTNkKCR2ZWN0b3IteCwgJHZlY3Rvci15LCAkdmVjdG9yLXosICRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybTNkKCR0cmFucyk7IH1cblxuLy8gQGRvYyBvZmZcbi8vIFRyYW5zbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCBvciB5IGF4aXMgKDJEKVxuLy8gQGluY2x1ZGUgdHJhbnNsYXRlKCBbIHRyYW5zbGF0ZS14LCB0cmFuc2xhdGUteSwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vLyB3aGVyZSB0aGUgJ3RyYW5zbGF0ZS0nIGFyZ3VtZW50cyBhY2NlcHQgYW55IGRpc3RhbmNlIGluIHBlcmNlbnRhZ2VzIG9yIGFic29sdXRlIChweCwgY20sIGluLCBlbSBldGMuLikgdW5pdHMuXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHRyYW5zbGF0ZSgkdHJhbnNsYXRlLXg6ICRkZWZhdWx0LXRyYW5zbGF0ZS14LCAkdHJhbnNsYXRlLXk6ICRkZWZhdWx0LXRyYW5zbGF0ZS15LCAkcGVyc3BlY3RpdmU6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHRyYW5zbGF0ZSgkdHJhbnNsYXRlLXgsICR0cmFuc2xhdGUteSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gTW92ZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiB0cmFuc2xhdGVYKCR0cmFucy14OiAkZGVmYXVsdC10cmFuc2xhdGUteCwgJHBlcnNwZWN0aXZlOiBmYWxzZSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGVYKCR0cmFucy14KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeSBheGlzICgyRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteSwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHRyYW5zbGF0ZVkoJHRyYW5zLXk6ICRkZWZhdWx0LXRyYW5zbGF0ZS15LCAkcGVyc3BlY3RpdmU6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHRyYW5zbGF0ZVkoJHRyYW5zLXkpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpOyB9XG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB6IGF4aXMgKDNEKVxuLy8gQGluY2x1ZGUgdHJhbnNsYXRlKCBbIHRyYW5zbGF0ZS16LCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlWigkdHJhbnMtejogJGRlZmF1bHQtdHJhbnNsYXRlLXosICRwZXJzcGVjdGl2ZTogZmFsc2UpIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGVaKCR0cmFucy16KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpOyB9XG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB4LCB5IGFuZCB6IGF4aXMgKDNEKVxuLy8gQGluY2x1ZGUgdHJhbnNsYXRlKCBbIHRyYW5zbGF0ZS14LCB0cmFuc2xhdGUteSwgdHJhbnNsYXRlLXosIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiB0cmFuc2xhdGUzZCgkdHJhbnNsYXRlLXg6ICRkZWZhdWx0LXRyYW5zbGF0ZS14LCAkdHJhbnNsYXRlLXk6ICRkZWZhdWx0LXRyYW5zbGF0ZS15LCAkdHJhbnNsYXRlLXo6ICRkZWZhdWx0LXRyYW5zbGF0ZS16LCAkcGVyc3BlY3RpdmU6IGZhbHNlKSB7XG4gICR0cmFuczogdHJhbnNsYXRlM2QoJHRyYW5zbGF0ZS14LCAkdHJhbnNsYXRlLXksICR0cmFuc2xhdGUteik7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTsgfVxuXG4vLyBAZG9jIG9mZlxuLy8gU2tldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNrZXcgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgQGluY2x1ZGUgc2tldyggWyBza2V3LXgsIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSB0aGUgJ3NrZXctJyBhcmd1bWVudHMgYWNjZXB0IGNzcyBhbmdsZXMgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHMuXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNrZXcoJHNrZXcteDogJGRlZmF1bHQtc2tldy14LCAkc2tldy15OiAkZGVmYXVsdC1za2V3LXksICRvbmx5M2Q6IGZhbHNlKSB7XG4gICR0cmFuczogc2tldygkc2tldy14LCAkc2tldy15KTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gU2tldyBhbiBlbGVtZW50IGFsb25nIHRoZSB4IGF4aXpcbi8vXG4vLyAgICAgQGluY2x1ZGUgc2tldyggWyBza2V3LXgsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNrZXdYKCRza2V3LXg6ICRkZWZhdWx0LXNrZXcteCwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiBza2V3WCgkc2tldy14KTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gU2tldyBhbiBlbGVtZW50IGFsb25nIHRoZSB5IGF4aXNcbi8vXG4vLyAgICAgQGluY2x1ZGUgc2tldyggWyBza2V3LXksIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNrZXdZKCRza2V3LXk6ICRkZWZhdWx0LXNrZXcteSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiBza2V3WSgkc2tldy15KTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gRnVsbCB0cmFuc2Zvcm0gbWl4aW5zXG4vLyBGb3Igc2V0dGluZ3MgYW55IGNvbWJpbmF0aW9uIG9mIHRyYW5zZm9ybXMgYXMgYXJndW1lbnRzXG4vLyBUaGVzZSBhcmUgY29tcGxleCBhbmQgbm90IGhpZ2hseSByZWNvbW1lbmRlZCBmb3IgZGFpbHkgdXNlLiBUaGV5IGFyZSBtYWlubHlcbi8vIGhlcmUgZm9yIGJhY2t3YXJkLWNvbXBhdGliaWxpdHkgcHVycG9zZXMuXG4vL1xuLy8gKiB0aGV5IGluY2x1ZGUgb3JpZ2luIGFkanVzdG1lbnRzXG4vLyAqIHNjYWxlIHRha2VzIGEgbXVsdGlwbGllciAodW5pdGxlc3MpLCByb3RhdGUgYW5kIHNrZXcgdGFrZSBkZWdyZWVzIChkZWcpXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIGNyZWF0ZS10cmFuc2Zvcm0oJHBlcnNwZWN0aXZlOiBmYWxzZSwgJHNjYWxlLXg6IGZhbHNlLCAkc2NhbGUteTogZmFsc2UsICRzY2FsZS16OiBmYWxzZSwgJHJvdGF0ZS14OiBmYWxzZSwgJHJvdGF0ZS15OiBmYWxzZSwgJHJvdGF0ZS16OiBmYWxzZSwgJHJvdGF0ZTNkOiBmYWxzZSwgJHRyYW5zLXg6IGZhbHNlLCAkdHJhbnMteTogZmFsc2UsICR0cmFucy16OiBmYWxzZSwgJHNrZXcteDogZmFsc2UsICRza2V3LXk6IGZhbHNlLCAkb3JpZ2luLXg6IGZhbHNlLCAkb3JpZ2luLXk6IGZhbHNlLCAkb3JpZ2luLXo6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHVucXVvdGUoXCJcIik7XG4gIC8vIHBlcnNwZWN0aXZlXG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKTsgfVxuICAvLyBzY2FsZVxuICBAaWYgJHNjYWxlLXggYW5kICRzY2FsZS15IHtcbiAgICBAaWYgJHNjYWxlLXoge1xuICAgICAgJHRyYW5zOiAkdHJhbnMgc2NhbGUzZCgkc2NhbGUteCwgJHNjYWxlLXksICRzY2FsZS16KTsgfVxuICAgIEBlbHNlIHtcbiAgICAgICR0cmFuczogJHRyYW5zIHNjYWxlKCRzY2FsZS14LCAkc2NhbGUteSk7IH0gfVxuICBAZWxzZSB7XG4gICAgQGlmICRzY2FsZS14IHtcbiAgICAgICR0cmFuczogJHRyYW5zIHNjYWxlWCgkc2NhbGUteCk7IH1cbiAgICBAaWYgJHNjYWxlLXkge1xuICAgICAgJHRyYW5zOiAkdHJhbnMgc2NhbGVZKCRzY2FsZS15KTsgfVxuICAgIEBpZiAkc2NhbGUteiB7XG4gICAgICAkdHJhbnM6ICR0cmFucyBzY2FsZVooJHNjYWxlLXopOyB9IH1cbiAgLy8gcm90YXRlXG4gIEBpZiAkcm90YXRlLXgge1xuICAgICR0cmFuczogJHRyYW5zIHJvdGF0ZVgoJHJvdGF0ZS14KTsgfVxuICBAaWYgJHJvdGF0ZS15IHtcbiAgICAkdHJhbnM6ICR0cmFucyByb3RhdGVZKCRyb3RhdGUteSk7IH1cbiAgQGlmICRyb3RhdGUteiB7XG4gICAgJHRyYW5zOiAkdHJhbnMgcm90YXRlWigkcm90YXRlLXopOyB9XG4gIEBpZiAkcm90YXRlM2Qge1xuICAgICR0cmFuczogJHRyYW5zIHJvdGF0ZTNkKCRyb3RhdGUzZCk7IH1cbiAgLy8gdHJhbnNsYXRlXG4gIEBpZiAkdHJhbnMteCBhbmQgJHRyYW5zLXkge1xuICAgIEBpZiAkdHJhbnMteiB7XG4gICAgICAkdHJhbnM6ICR0cmFucyB0cmFuc2xhdGUzZCgkdHJhbnMteCwgJHRyYW5zLXksICR0cmFucy16KTsgfVxuICAgIEBlbHNlIHtcbiAgICAgICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZSgkdHJhbnMteCwgJHRyYW5zLXkpOyB9IH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkdHJhbnMteCB7XG4gICAgICAkdHJhbnM6ICR0cmFucyB0cmFuc2xhdGVYKCR0cmFucy14KTsgfVxuICAgIEBpZiAkdHJhbnMteSB7XG4gICAgICAkdHJhbnM6ICR0cmFucyB0cmFuc2xhdGVZKCR0cmFucy15KTsgfVxuICAgIEBpZiAkdHJhbnMteiB7XG4gICAgICAkdHJhbnM6ICR0cmFucyB0cmFuc2xhdGVaKCR0cmFucy16KTsgfSB9XG4gIC8vIHNrZXdcbiAgQGlmICRza2V3LXggYW5kICRza2V3LXkge1xuICAgICR0cmFuczogJHRyYW5zIHNrZXcoJHNrZXcteCwgJHNrZXcteSk7IH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkc2tldy14IHtcbiAgICAgICR0cmFuczogJHRyYW5zIHNrZXdYKCRza2V3LXgpOyB9XG4gICAgQGlmICRza2V3LXkge1xuICAgICAgJHRyYW5zOiAkdHJhbnMgc2tld1koJHNrZXcteSk7IH0gfVxuICAvLyBhcHBseSBpdCFcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oJG9yaWdpbi14LCAkb3JpZ2luLXksICRvcmlnaW4teiwgJG9ubHkzZCk7IH1cblxuLy8gQSBzaW1wbGlmaWVkIHNldCBvZiBvcHRpb25zXG4vLyBiYWNrd2FyZHMtY29tcGF0aWJsZSB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSAndHJhbnNmb3JtJyBtaXhpblxuQG1peGluIHNpbXBsZS10cmFuc2Zvcm0oJHNjYWxlOiBmYWxzZSwgJHJvdGF0ZTogZmFsc2UsICR0cmFucy14OiBmYWxzZSwgJHRyYW5zLXk6IGZhbHNlLCAkc2tldy14OiBmYWxzZSwgJHNrZXcteTogZmFsc2UsICRvcmlnaW4teDogZmFsc2UsICRvcmlnaW4teTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgY3JlYXRlLXRyYW5zZm9ybShmYWxzZSwgJHNjYWxlLCAkc2NhbGUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsICRyb3RhdGUsIGZhbHNlLCAkdHJhbnMteCwgJHRyYW5zLXksIGZhbHNlLCAkc2tldy14LCAkc2tldy15LCAkb3JpZ2luLXgsICRvcmlnaW4teSwgZmFsc2UsIGZhbHNlKTsgfVxuIiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBTZXR0aW5ncyAvIE1peGluc1xyXG4vL1xyXG5cclxuICAvLyBNUXNcclxuICBAbWl4aW4gaGtzbi1tZWRpYSgkZGV2aWNlLCAkb3JpZW50YXRpb246IHApe1xyXG5cclxuICAgIEBpZiAkZGV2aWNlID09IHRhYmxldCB7IFxyXG4gICAgICBcclxuICAgICAgICBAaWYgKCRvcmllbnRhdGlvbiA9PSBwKSB7IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDEwMjRweCkgYW5kIChvcmllbnRhdGlvbiA6IHBvcnRyYWl0KSB7IEBjb250ZW50OyB9IH1cclxuICAgICAgICBAZWxzZWlmICgkb3JpZW50YXRpb24gPT0gbCkgeyBcclxuICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDEwMjRweCkgYW5kIChvcmllbnRhdGlvbiA6IGxhbmRzY2FwZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweClcclxuICAgICAgICAgICAgeyBAY29udGVudDsgfSBcclxuICAgICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7IEBjb250ZW50OyB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICAvLyBCbHVlcHJpbnQgZm9ybXNcclxuICBAbWl4aW4gYmx1ZXByaW50LWZvcm0ge1xyXG4gICAgQGluY2x1ZGUgYmx1ZXByaW50LWZvcm0tbGF5b3V0O1xyXG4gICAgQGluY2x1ZGUgYmx1ZXByaW50LWZvcm0tYm9yZGVycztcclxuICAgIEBpbmNsdWRlIGJsdWVwcmludC1mb3JtLXNpemVzO1xyXG4gIH1cclxuXHJcbiAgLy8gUkVNL1BYIE91dHB1dFxyXG4gIEBtaXhpbiB4LXJlbSAoJHByb3BlcnR5LCAkdmFsdWUpIHtcclxuICAgICN7JHByb3BlcnR5fTogJHZhbHVlICogJGJhc2VfZm9udHNpemU7XHJcbiAgICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfXJlbTtcclxuICB9XHJcblxyXG4gIC8vIFBYIHRvIEVNIE91dHB1dFxyXG4gIEBmdW5jdGlvbiBlbSgkcGl4ZWxzLCAkY29udGV4dDogMTYgKSB7XHJcbiAgICBAcmV0dXJuICN7JHBpeGVscy8kY29udGV4dH1lbVxyXG4gIH1cclxuXHJcbiAgLy8gUkFOR0VTXHJcbiAgLy8gV2UgdXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBkZWZpbmUgcmFuZ2VzIGZvciB2YXJpb3VzIHRoaW5ncywgbGlrZSBtZWRpYSBxdWVyaWVzLiBcclxuICBAZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKXtcclxuICAgIEBpZiBsZW5ndGgoJHJhbmdlKSA8PSAwIHtcclxuICAgICAgQHJldHVybiAwO1xyXG4gICAgfVxyXG4gICAgQHJldHVybiBudGgoJHJhbmdlLDEpO1xyXG4gIH1cclxuXHJcbiAgQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xyXG4gICAgQGlmIGxlbmd0aCgkcmFuZ2UpIDwgMiB7XHJcbiAgICAgIEByZXR1cm4gOTk5OTk5OTk5OTk5O1xyXG4gICAgfVxyXG4gICAgQHJldHVybiBudGgoJHJhbmdlLCAyKTtcclxuICB9XHJcblxyXG5cclxuICBAbWl4aW4gdGV4dC1vdmVyZmxvdygpIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IFxyXG4gIH1cclxuXHJcbiAgQG1peGluIGJsYW5rLWxpc3QoKSB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIC8vIENsZWFyZml4IGZvciBmbG9hdHNcclxuICBAbWl4aW4gZ3JvdXBlZCB7XHJcbiAgICAqem9vbTogMTsgLy8gSUU2Lzcgc3VwcG9ydFxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7IFxyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSW1hZ2UgcmVwbGFjZW1lbnRcclxuICBAbWl4aW4gaGlkZS10ZXh0KCkge1xyXG4gICAgdGV4dC1pbmRlbnQ6IDEwMCU7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbiAgLy8gSW1hZ2UgcmVwbGFjZW1lbnQgZm9yIElFIFxyXG4gIEBtaXhpbiBoaWRlLXRleHQtaWUoKXtcclxuICAgIHRleHQtaW5kZW50OiAtOTk5cHg7IHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gIC8vIEhpZGRlbiBidXQgYXZhaWxhYmxlIHRvIHNwZWFraW5nIGJyb3dzZXJzXHJcbiAgQG1peGluIHZpc3VhbGx5aGlkZGVuKClcclxuICB7XHJcbiAgICBvdmVyZmxvdyA6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uIDogYWJzb2x1dGU7XHJcbiAgICBjbGlwIDogcmVjdCgwIDAgMCAwKTtcclxuICAgIGhlaWdodCA6IDFweDtcclxuICAgIHdpZHRoIDogMXB4O1xyXG4gICAgbWFyZ2luIDogLTFweDtcclxuICAgIHBhZGRpbmcgOiAwO1xyXG4gICAgYm9yZGVyIDogMDtcclxuXHJcbiAgICAvLyBNYWtlIHZpc3VhbGx5aGlkZGVuIGZvY3VzYWJsZSB3aXRoIGEga2V5Ym9hcmRcclxuICAgICYuZm9jdXNhYmxlIHtcclxuICAgICAgJjphY3RpdmUsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgICAgY2xpcDogYXV0bztcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyBcclxuICAgICAgfSBcclxuICAgIH0gXHJcbiAgfVxyXG4gIC8vIEJyZWFrIGxvbmcgd29yZHMgKGUuZy4gdXJscykgd2l0aGluIHRoZWlyIGNvbnRhaW5lciAoSUU4Kywgbm90IE9wZXJhKVxyXG4gIEBtaXhpbiBicmVha3dvcmQoKVxyXG4gIHtcclxuICAgICAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICBcclxuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgXHJcbiAgICAgIC13ZWJraXQtaHlwaGVuczogYXV0bztcclxuICAgICAgLW1vei1oeXBoZW5zOiBhdXRvO1xyXG4gICAgICBoeXBoZW5zOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLy8gR3JhZGllbnRzXHJcbiAgQG1peGluIGhvcml6b250YWwoJHN0YXJ0X2NvbG9yIDogd2hpdGUsICRlbmRfY29sb3IgOiBibGFjaylcclxuICB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJHN0YXJ0X2NvbG9yLCAkZW5kX2NvbG9yKTtcclxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UobGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydF9jb2xvciwgJGVuZF9jb2xvcikpO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQgOiByZXBlYXQteDtcclxuICB9XHJcblxyXG4gIEBtaXhpbiB2ZXJ0aWNhbCgkc3RhcnRfY29sb3I6IHdoaXRlLCAkZW5kX2NvbG9yOiBibGFjaylcclxuICB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICA6IG1peCgkc3RhcnRfY29sb3IsICRlbmRfY29sb3IpO1xyXG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShsaW5lYXItZ3JhZGllbnQoJHN0YXJ0X2NvbG9yLCAkZW5kX2NvbG9yKSk7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdCA6IHJlcGVhdC14O1xyXG4gIH1cclxuXHJcbiAgQG1peGluIHZlcnRpY2FsLXBlcmMoJHN0YXJ0X2NvbG9yOiB3aGl0ZSwgJGVuZF9jb2xvcjogYmxhY2ssICRzdGFydF9wZXJjOiAwJSwgJGVuZF9wZXJjOiAxMDAlKVxyXG4gIHtcclxuICAgIGJhY2tncm91bmQtY29sb3IgIDogbWl4KCRzdGFydF9jb2xvciwgJGVuZF9jb2xvcik7XHJcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGxpbmVhci1ncmFkaWVudCh0b3AsICRzdGFydF9jb2xvciAkc3RhcnRfcGVyYywgJGVuZF9jb2xvciAkZW5kX3BlcmMpKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0IDogcmVwZWF0LXg7XHJcbiAgfVxyXG5cclxuICBAbWl4aW4gcmFkaWFsLWVsbGlwc2UoJHN0YXJ0X2NvbG9yOiB3aGl0ZSwgJGVuZF9jb2xvcjogYmxhY2ssICRzdGFydF9wZXJjOiA1MCUsICRlbmRfcGVyYzogMTAwJSlcclxuICB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICA6IG1peCgkc3RhcnRfY29sb3IsICRlbmRfY29sb3IpO1xyXG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShyYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAkc3RhcnRfY29sb3IgJHN0YXJ0X3BlcmMsICRlbmRfY29sb3IgJGVuZF9wZXJjLCAkZW5kX2NvbG9yICkpO1xyXG4gIH1cclxuXHJcbiAgQG1peGluIGRpcmVjdGlvbmFsKCRzdGFydF9jb2xvciA6ICR3aGl0ZSwgJGVuZF9jb2xvciA6ICRsaWdodGVyZ3JleSwgJGRlZyA6IDQ1ZGVnKVxyXG4gIHtcclxuICAgIGJhY2tncm91bmQtY29sb3IgIDogbWl4KCRzdGFydF9jb2xvciwgJGVuZF9jb2xvcik7XHJcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnRfY29sb3IsICRlbmRfY29sb3IpKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0IDogcmVwZWF0LXg7XHJcbiAgfVxyXG5cclxuIiwiLy8gVHVybiBvZmYgdGhlIGJ1bGxldCBmb3IgYW4gZWxlbWVudCBvZiBhIGxpc3RcbkBtaXhpbiBuby1idWxsZXQge1xuICBsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi8vIHR1cm5zIG9mZiB0aGUgYnVsbGV0cyBmb3IgYW4gZW50aXJlIGxpc3RcbkBtaXhpbiBuby1idWxsZXRzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGkge1xuICAgIEBpbmNsdWRlIG5vLWJ1bGxldDsgfSB9XG5cbi8vIE1ha2UgYSBsaXN0KHVsL29sKSBoYXZlIGFuIGltYWdlIGJ1bGxldC5cbi8vXG4vLyBUaGUgbWl4aW4gc2hvdWxkIGJlIHVzZWQgbGlrZSB0aGlzIGZvciBhbiBpY29uIHRoYXQgaXMgNXg3OlxuLy9cbi8vICAgICB1bC5wcmV0dHlcbi8vICAgICAgICtwcmV0dHktYnVsbGV0cyhcIm15LWljb24ucG5nXCIsIDVweCwgN3B4KVxuLy9cbi8vIEFkZGl0aW9uYWxseSwgaWYgdGhlIGltYWdlIGRpbWVuc2lvbnMgYXJlIG5vdCBwcm92aWRlZCxcbi8vIFRoZSBpbWFnZSBkaW1lbnNpb25zIHdpbGwgYmUgZXh0cmFjdGVkIGZyb20gdGhlIGltYWdlIGl0c2VsZi5cbi8vXG4vLyAgICAgdWwucHJldHR5XG4vLyAgICAgICArcHJldHR5LWJ1bGxldHMoXCJteS1pY29uLnBuZ1wiKVxuLy9cbkBtaXhpbiBwcmV0dHktYnVsbGV0cygkYnVsbGV0LWljb24sICR3aWR0aDogaW1hZ2Utd2lkdGgoJGJ1bGxldC1pY29uKSwgJGhlaWdodDogaW1hZ2UtaGVpZ2h0KCRidWxsZXQtaWNvbiksICRsaW5lLWhlaWdodDogMThweCwgJHBhZGRpbmc6IDE0cHgpIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkYnVsbGV0LWljb24pIG5vLXJlcGVhdCAoKCRwYWRkaW5nIC0gJHdpZHRoKSAvIDIpICgoJGxpbmUtaGVpZ2h0IC0gJGhlaWdodCkgLyAyKTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH0gfVxuIiwiXHJcbi8vXHJcbi8vICBIS1NOIEZyYW1ld29ya1xyXG4vLyAgTW9kdWxlcyAvIFNpZGUgQmFyIE5hdmlnYXRpb25cclxuLy8gXHJcbi8vICBUaGUgcGFnZS1zcGVjaWZpYyBuYXZpZ2F0aW9uIG1lbnVzIGZvciB0aGUgc2l0ZSAodmVydGljYWwpXHJcblxyXG4vLyBTaWRlIE5hdiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5uYXYtYXNpZGUge1xyXG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG5cclxuICBoMy5uYXYtYXNpZGUtdGl0bGUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIEBpbmNsdWRlIG5vLWJ1bGxldDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvL3doaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG4gICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICR0ZXh0X2NvbG9yO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICAgIC8vIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6IDFlbTtcclxuXHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMsXHJcbiAgICAgICY6YWN0aXZlIHsgXHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxpLmN1cnJlbnQtbWVudS1pdGVtIGEge1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICAgIGxpIGxpIGEge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRfZ3JleTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGgzLmZpbHRlci10aXRsZSB7ICBcclxuICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICBwYWRkaW5nOiAxZW0gMCAxZW0gMWVtO1xyXG4gICAgbWFyZ2luOiAwIDFlbSAwIDA7XHJcbiAgfVxyXG4gIC5maWx0ZXItY29udGVudCB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICB9XHJcbiAgLmZpbHRlci1jb250YWluZXIge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8vIE1vYmlsZSAoaW5jLiBwb3J0cmFpdCB0YWJsZXQpIE5hdiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy9AaW5jbHVkZSBoa3NuLW1lZGlhKHRhYmxldCwgbCl7XHJcbiAgQGluY2x1ZGUgZ3MtbWVkaWEodCxtYXgpIHsgXHJcblxyXG4gIC53aWRnZXQtYXJlYSAubmF2LWFzaWRlIHtcclxuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZTsgXHJcblxyXG4gICAgaDMubmF2LWFzaWRlLXRpdGxlIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZTtcclxuICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgLy8gZm9udC1mYW1pbHk6ICRzZXJpZl9mb250ZmFtaWx5O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICAgIG1hcmdpbjogMCAxZW07XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAxZW0gMDtcclxuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICRwdXJwbGU7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJHB1cnBsZTtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggJHB1cnBsZTtcclxuXHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7ICAgICAgIFxyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlO1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb25zL2Fycm93LWRvd24td2hpdGUuc3ZnKTtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiAkbmV3X3RoZW1lX2J1dHRvbl9pY29uX3NpemU7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRuZXdfdGhlbWVfYnV0dG9uX2ljb25fcG9zaXRpb247XHJcblxyXG4gICAgICAmLm9wZW4ge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvaWNvbnMvYXJyb3ctdXAtd2hpdGUuc3ZnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm5hdi1hc2lkZS1jb250ZW50IHsgIFxyXG4gICAgICBkaXNwbGF5OiBub25lOyAgIFxyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgQGluY2x1ZGUgbm8tYnVsbGV0O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIC8vd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkdGV4dF9jb2xvcjtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgICAvLyBmb250LWZhbWlseTogJHNlcmlmX2ZvbnRmYW1pbHk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwYWRkaW5nOiAxZW07XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyxcclxuICAgICAgICAmOmFjdGl2ZSB7IFxyXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxpLmN1cnJlbnQtbWVudS1pdGVtIGEge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICB9XHJcbiAgICAgIGxpIGxpIGEge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodF9ncmV5O1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgaDMuZmlsdGVyLXRpdGxlIHsgIFxyXG4gICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICAgIHBhZGRpbmc6IDFlbSAwIDFlbSAxZW07XHJcbiAgICAgIG1hcmdpbjogMCAxZW0gMCAwO1xyXG4gICAgfVxyXG4gICAgLmZpbHRlci1jb250ZW50IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggbGlnaHRlbigkbWlkX2dyZXksNDAlKTtcclxuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufSAvLyBlbmQgQGluY2x1ZGUgZ3MtbWVkaWEobSxtaW4tbWF4KSIsIi8vXHJcbi8vICBIS1NOIEZyYW1ld29ya1xyXG4vLyAgTW9kdWxlcyAvIFBhZ2luYXRpb25cclxuLy9cclxuXHJcbnVsLnBhZ2VyIHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRtYXJnaW4tdG9wOiAxZW07XHJcblx0Zm9udC1zaXplOiAwLjhlbTtcclxuXHQvL2hlaWdodDogMjRweDtcclxuXHQvL21hcmdpbi1sZWZ0OiAtNXB4O1xyXG5cdGNsZWFyOiBib3RoO1xyXG5cdGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG5cdC8vZm9udC1zdHlsZTogaXRhbGljO1xyXG5cclxuXHRsaSB7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0Ly9oZWlnaHQ6IDI0cHg7XHJcblx0XHQvL2NvbG9yOiAjOTk5O1xyXG5cdFx0cGFkZGluZzogMCAwLjVlbTtcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdC8vcGFkZGluZzogMXB4IDdweCAxcHg7XHJcblx0XHRcdGNvbG9yOiAjNTU1IWltcG9ydGFudDtcclxuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Y29sb3I6ICMwMDAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5wYWdlci1jdXJyZW50IHtcclxuXHRcdFx0Ly9iYWNrZ3JvdW5kOiAjMmJhNmNiO1xyXG5cdFx0XHQvL2NvbG9yOiB3aGl0ZTtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8qIFBhZ2luYXRpb24gOiBCYXNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5uYXYtcG9zdCB7XHJcblx0XHJcblx0LmFzc2lzdGl2ZS10ZXh0IHsgQGluY2x1ZGUgdmlzdWFsbHloaWRkZW4oKTsgfVxyXG5cclxuXHRib3JkZXItdG9wOiBzb2xpZCAxcHggJHNlY29uZGFyeTtcclxuXHRwYWRkaW5nLXRvcDogMWVtO1xyXG5cdGZvbnQtc2l6ZTogMC45ZW07XHJcblx0Y2xlYXI6IGJvdGg7XHJcblxyXG5cdC5hbGlnbmxlZnQge1xyXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdH1cclxuXHQuYWxpZ25yaWdodCB7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHR9XHJcbn1cclxuKi8iLCIvL1xyXG4vLyAgSEtTTiBGcmFtZXdvcmtcclxuLy8gIE1vZHVsZXMgLyBCcmVhZGNydW1iXHJcbi8vXHJcblxyXG4gIC8vIEJyZWFkY3J1bWIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAubmF2LWJyZWFkY3J1bWIge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nOiAxZW0gMS4yNWVtO1xyXG4gICAgbWFyZ2luLXRvcDogLTJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyg0cHgpO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMoNHB4KTtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBmb250LXNpemU6IDAuOWVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBjb2xvcjogJHNlY29uZGFyeTtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogc29saWQgJGxpZ2h0X2dyZXkgMXB4O1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJjphY3RpdmUgeyBcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH0gICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE1vYmlsZVxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7XHJcbiAgICAubmF2LWJyZWFkY3J1bWIge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICBwYWRkaW5nOiAxZW0gMDtcclxuICAgIH1cclxuICB9IiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBNb2R1bGVzIC8gQ2Fyb3VzZWxcclxuLy8gIEN1cnJlbnRseSB1c2luZyBjeWNsZTIgKC5jeWNsZS1zbGlkZXNob3cpXHJcblxyXG4gIC8vIERlZmF1bHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5jeWNsZS1zbGlkZXNob3cge1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIC8vZGlzcGxheTogbm9uZTsgLy8gVG8gYXZvaWQgZmxhc2ggb2YgaW1hZ2VzXHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAvL2Rpc3BsYXk6IGJsb2NrOyAvLyBTaG93IGZpcnN0IHNsaWRlIHdpdGhvdXQgbmVlZGluZyBKU1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuZnJhbWUge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAkZGVmYXVsdC1zbGlkZS1oZWlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBIaWRlIGFsbCBidXQgZmlyc3Qgc2xpZGUgb24gbG9hZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLmN5Y2xlLXNsaWRlc2hvdyAuc2xpZGUgeyBkaXNwbGF5OiBub25lIH1cclxuICAuY3ljbGUtc2xpZGVzaG93IC5zbGlkZS52aWV3cy1yb3ctZmlyc3QgeyBkaXNwbGF5OiBibG9jayB9XHJcblxyXG4gIC8vIEFkdmFuY2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAuY3ljbGUtc2xpZGVzaG93LmFkdmFuY2VkIHtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6ICRkZWZhdWx0LXNsaWRlLWhlaWdodDtcclxuICAgIG1hcmdpbi1ib3R0b206IC0zMHB4OyAvLyAtMTAwcHg7XHJcblxyXG4gICAgLnJlZ2lvbi1ib3R0b20gJiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWRlIHtcclxuICAgICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAvL2Rpc3BsYXk6IG5vbmU7IC8vIFRvIGF2b2lkIGZsYXNoIG9mIGltYWdlc1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgLy9kaXNwbGF5OiBibG9jazsgLy8gU2hvdyBmaXJzdCBzbGlkZSB3aXRob3V0IG5lZWRpbmcgSlNcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGltZywgcGljdHVyZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbWF4LXdpZHRoOiBpbmhlcml0O1xyXG4gICAgICB3aWR0aDogJHhsYXJnZS1zbGlkZS13aWR0aDtcclxuICAgICAgcmlnaHQ6IC0keGxhcmdlLXNsaWRlLXdpZHRoLzI7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogNTAlO1xyXG4gICAgICB6LWluZGV4OiAxO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBDb250ZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAuc2xpZGUtY2FwdGlvbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDE1NXB4OyByaWdodDogNTAlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtNTIwcHg7XHJcbiAgICB3aWR0aDogNDIwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICB6LWluZGV4OiAyMDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICBhIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLyogRml4IHJlcGVhdGluZyBnbGl0Y2ggKi9cclxuICAgICYubGVmdCwgXHJcbiAgICAmLnJpZ2h0LmxlZnQsIFxyXG4gICAgJi5sZWZ0LnJpZ2h0LmxlZnQsIFxyXG4gICAgJi5yaWdodC5yaWdodC5sZWZ0LFxyXG4gICAgJi5yaWdodC5sZWZ0LnJpZ2h0LmxlZnQge1xyXG4gICAgICByaWdodDogYXV0bzsgbGVmdDogNTAlO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNTIwcHg7XHJcbiAgICB9XHJcbiAgICAmLmxlZnQucmlnaHQsIFxyXG4gICAgJi5sZWZ0LnJpZ2h0LnJpZ2h0LCBcclxuICAgICYubGVmdC5sZWZ0LnJpZ2h0IHtcclxuICAgICAgcmlnaHQ6IDUwJTsgbGVmdDogYXV0bztcclxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLTUyMHB4O1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgLyoudmlld3Mtcm93LWV2ZW4gLnNsaWRlLWNhcHRpb24ge1xyXG4gICAgICByaWdodDogYXV0bzsgbGVmdDogNTAlO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNTIwcHg7XHJcbiAgfSovXHJcblxyXG4gIC8vIE1ldGEgKGRhdGUsIHRpbWUgZXRjKVxyXG4gIC5zbGlkZS1tZXRhIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGhlaWdodDogMjg1cHg7XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW07IFxyXG4gICAgICBmb250LWZhbWlseTogJHNlcmlmX2ZvbnRmYW1pbHk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2ZmZiwwLjgpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMHB4IGNlbnRlcjtcclxuXHJcbiAgICAgICYuc2xpZGUtYnV0dG9uLWJhciB7IC8vIERlc2t0b3AvVGFibGV0IGJ1dHRvbiBiYXJcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwOyBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IGxpZ2h0ZW4oJG1pZF9ncmV5LCAyMCUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBhLmdyb3VwLWNhcHRpb24ge1xyXG4gICAgLmJ1dHRvbi5zbGlkZS1idXR0b24tYmFyIHsgLy8gU2hvdyBpZiBhIGxpbmsgaXMgcHJlc2VudFxyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU3ViLWhlYWRsaW5lIChjb2xsZWN0aW9uLCBkZXBhcnRtZW50IGV0YylcclxuICAuc2xpZGUtc3ViLWhlYWRsaW5lIHsgICAgXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7IGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRmYW1pbHk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDAuODI1ZW07IFxyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIHBhZGRpbmc6IDAuNWVtIDFlbSAwLjVlbSoxLjE7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGRhcmtfZ3JleTtcclxuICAgIGJhY2tncm91bmQ6ICRkYXJrX2dyZXk7XHJcbiAgfVxyXG5cclxuICAvLyBIZWFkbGluZSAocHJvbW90aW9uYWwgaGVhZGxpbmUgYW5kIHN1cHBvcnRpbmcgdGV4dCBldGMpIFVzZWQgaW4gbW9iaWxlIG9ubHlcclxuICAuc2xpZGUtaGVhZGxpbmUsIC5zbGlkZS1jYXB0aW9uIC5yZXZlYWwtY29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29udHJvbHMgOiBDb250YWluZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5jeWNsZS1jb250cm9scyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogM2VtO1xyXG4gICAgbWFyZ2luLXRvcDogMTAwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMTAwcHg7XHJcbiAgICBAaW5jbHVkZSBncm91cGVkO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIC5yZWdpb24tYm90dG9tICYge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuICAgICYudHJhbnNwYXJlbnQge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgZ3MtbWVkaWEodCxtYXgpIHtcclxuICAgIC5jeWNsZS1jb250cm9scyB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7XHJcbiAgICAuY3ljbGUtY29udHJvbHMge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvbnRyb2xzIDogUGFnZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5jeWNsZS1wYWdlciB7XHJcbiAgICBoZWlnaHQ6IDFlbTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMWVtOyAgICAgXHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB6LWluZGV4OiAxNTA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDAuNWVtOyBoZWlnaHQ6IDAuNWVtO1xyXG4gICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDEwMCUpO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMC43ZW07XHJcbiAgICAgIGJhY2tncm91bmQ6IHNoYWRlKCRsaWdodF9ncmV5LDIwJSk7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgQGluY2x1ZGUgaGlkZS10ZXh0KCk7XHJcblxyXG4gICAgICAmLmN5Y2xlLXBhZ2VyLWFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5ub2RlLXR5cGUtZGVwYXJ0bWVudCAmIHtcclxuICAgICAgZGlzcGxheTogbm9uZTsgLy8gVEVNUCBGSVggOiBKU1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ29udHJvbHMgOiBQcmV2aW91cyBhbmQgTmV4dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLmN5Y2xlLXByZXYsIC5jeWNsZS1uZXh0IHtcclxuICAgIHRvcDogMTFweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IDE1MDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogMnB4IDA7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmFjdGl2ZSB7XHJcblxyXG4gICAgfVxyXG4gICAgLm5vZGUtdHlwZS1kZXBhcnRtZW50ICYge1xyXG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBURU1QIEZJWCA6IEpTXHJcbiAgICB9XHJcbiAgfVxyXG4gIC5jeWNsZS1wcmV2IHtcclxuICAgIGxlZnQ6ICRnbG9iYWxfbWFyZ2luO1xyXG5cclxuICAgIGljb24ge1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb25zL2Fycm93LWxlZnQtYmxhY2suc3ZnKTtcclxuICAgIH1cclxuICB9XHJcbiAgLmN5Y2xlLW5leHQge1xyXG4gICAgcmlnaHQ6ICRnbG9iYWxfbWFyZ2luO1xyXG5cclxuICAgIGljb24ge1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb25zL2Fycm93LXJpZ2h0LWJsYWNrLnN2Zyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcbiAgLy8gTWVkaWEgUXVlcmllcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxyXG5cclxuICBAaW5jbHVkZSBncy1tZWRpYSh0LG1heCkge1xyXG4gICAgLmN5Y2xlLXNsaWRlc2hvdy5hZHZhbmNlZCB7XHJcbiAgICAgIGhlaWdodDogJHRhYmxldC1zbGlkZS1oZWlnaHQ7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG4gICAgICBpbWcsIHBpY3R1cmUge1xyXG4gICAgICAgIHdpZHRoOiAkbWVkaXVtLXNsaWRlLXdpZHRoO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5zbGlkZS1zdWItaGVhZGxpbmUge1xyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gbGFuZHNjYXBlIHRhYmxldFxyXG4gIEBpbmNsdWRlIGhrc24tbWVkaWEodGFibGV0LCBsKXtcclxuICAgIC5jeWNsZS1zbGlkZXNob3cuYWR2YW5jZWQge1xyXG4gICAgICBoZWlnaHQ6IDMzMHB4O1xyXG5cclxuICAgICAgLmZyYW1lIHtcclxuICAgICAgICBoZWlnaHQ6IDMzMHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbWcsIHBpY3R1cmUge1xyXG4gICAgICAgIHdpZHRoOiAkbWVkaXVtLXNsaWRlLXdpZHRoO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNsaWRlLWNhcHRpb24geyAgIFxyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgICB0b3A6IGF1dG8gIWltcG9ydGFudDsgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgbGVmdDogYXV0byAhaW1wb3J0YW50OyBib3R0b206IDAgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIH1cclxuICAgIC52aWV3cy1yb3ctZXZlbiAuc2xpZGUtY2FwdGlvbiB7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87IGxlZnQ6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG4gICAgLnNsaWRlLXN1Yi1oZWFkbGluZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcclxuICAgIH1cclxuICAgIC8vIE1ldGEgKGRhdGUsIHRpbWUgZXRjKVxyXG4gICAgLnNsaWRlLW1ldGEge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBoZWlnaHQ6IDc1cHg7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgLmJ1dHRvbi5zbGlkZS1idXR0b24tYmFyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBwLnNsaWRlLWZvb3RlciB7ICBcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogMTAyNHB4KSBhbmQgKG9yaWVudGF0aW9uIDogbGFuZHNjYXBlKSB7XHJcbiAgICAuY3ljbGUtc2xpZGVzaG93LmFkdmFuY2VkIHtcclxuICAgICAgaGVpZ2h0OiA0NDBweDtcclxuXHJcbiAgICAgIC5mcmFtZSB7XHJcbiAgICAgICAgaGVpZ2h0OiA0NDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxyXG4gIC8vIE1vYmlsZSBWaWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcblxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7XHJcblxyXG4gICAgLmN5Y2xlLXNsaWRlc2hvdy5hZHZhbmNlZCB7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgLmZyYW1lIHtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGltZywgcGljdHVyZSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5zbGlkZS1jYXB0aW9uIHsgIFxyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgdG9wOiBhdXRvOyByaWdodDogYXV0bzsgbGVmdDogYXV0bzsgYm90dG9tOiBhdXRvO1xyXG5cclxuICAgICAgLmxlZnQgJiB7XHJcbiAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuICAgICAgLnJldmVhbC1jb250ZW50IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC8vIE1ldGEgKGRhdGUsIHRpbWUgZXRjKVxyXG4gICAgLnNsaWRlLWhlYWRsaW5lIHsgXHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBmb250LXNpemU6IDFlbTsgXHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkc2VyaWZfZm9udGZhbWlseTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBwYWRkaW5nOiAwLjVlbSAkZ2xvYmFsLW1hcmdpbio0O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGNvbG9yOiAkbWlkX2dyZXkgIWltcG9ydGFudDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgIFxyXG4gICAgfVxyXG4gICAgLy8gU3ViLWhlYWRsaW5lIChjb2xsZWN0aW9uLCBkZXBhcnRtZW50IGV0YylcclxuICAgIC5zbGlkZS1zdWItaGVhZGxpbmUgeyAgICBcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBib3R0b206IGF1dG87IGxlZnQ6IGF1dG87XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW07IFxyXG4gICAgICBtaW4taGVpZ2h0OiAyZW07XHJcbiAgICAgIC8vcGFkZGluZzogMC41ZW0gJGdsb2JhbC1tYXJnaW4qMTIgMC41ZW0qMS4xICRnbG9iYWwtbWFyZ2luKjQ7XHJcbiAgICAgIHBhZGRpbmc6IDAuNWVtICRnbG9iYWwtbWFyZ2luKjQgMC41ZW0qMS4xICRnbG9iYWwtbWFyZ2luKjQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWV0YSAoZGF0ZSwgdGltZSBldGMpXHJcbiAgICAuc2xpZGUtbWV0YSB7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgLy8gYm9yZGVyLWJvdHRvbTogc29saWQgNHB4ICRkYXJrX2dyZXk7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuXHJcbiAgICAgIC5zbGlkZS1jb3B5IHtcclxuICAgICAgICBmb250LXNpemU6IDAuOGVtOyBcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMC41ZW0gJGdsb2JhbC1tYXJnaW4qNCAwLjVlbSoxLjE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5idXR0b24ge1xyXG4gICAgICAgIC8vZm9udC1zaXplOiAwLjllbTsgXHJcbiAgICAgICAgLy9mb250LWZhbWlseTogJHNlcmlmX2ZvbnRmYW1pbHk7XHJcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCNmZmYsMC44KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMHB4IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZ2xvYmFsLW1hcmdpbio0O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG4gICAgICAgICYuc2xpZGUtYnV0dG9uLWJhciB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBQYWdlclxyXG4gICAgLmN5Y2xlLWNvbnRyb2xzIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9IiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBNb2R1bGVzIC8gTW9kYWwgcG9wLXVwXHJcbi8vICBDdXJyZW50bHkgdXNpbmcgTWFnbmlmaWMgUG9wdXAgQ1NTXHJcblxyXG4vL0BpbXBvcnQgXCJzZXR0aW5nc1wiO1xyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vXHJcbi8vIENvbnRlbnRzOlxyXG4vL1xyXG4vLyAxLiBEZWZhdWx0IFNldHRpbmdzXHJcbi8vIDIuIEdlbmVyYWwgc3R5bGVzXHJcbi8vICAgIC0gVHJhbnNsdXNjZW50IG92ZXJsYXlcclxuLy8gICAgLSBDb250YWluZXJzLCB3cmFwcGVyc1xyXG4vLyAgICAtIEN1cnNvcnNcclxuLy8gICAgLSBIZWxwZXIgY2xhc3Nlc1xyXG4vLyAzLiBBcHBlYXJhbmNlXHJcbi8vICAgIC0gUHJlbG9hZGVyICYgdGV4dCB0aGF0IGRpc3BsYXlzIGVycm9yIG1lc3NhZ2VzXHJcbi8vICAgIC0gQ1NTIHJlc2V0IGZvciBidXR0b25zXHJcbi8vICAgIC0gQ2xvc2UgaWNvblxyXG4vLyAgICAtIFwiMSBvZiBYXCIgY291bnRlclxyXG4vLyAgICAtIE5hdmlnYXRpb24gKGxlZnQvcmlnaHQpIGFycm93c1xyXG4vLyAgICAtIElmcmFtZSBjb250ZW50IHR5cGUgc3R5bGVzXHJcbi8vICAgIC0gSW1hZ2UgY29udGVudCB0eXBlIHN0eWxlc1xyXG4vLyAgICAtIE1lZGlhIHF1ZXJ5IHdoZXJlIHNpemUgb2YgYXJyb3dzIGlzIHJlZHVjZWRcclxuLy8gICAgLSBJRTcgc3VwcG9ydFxyXG4vL1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIDEuIERlZmF1bHQgU2V0dGluZ3NcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4kbWZwLW92ZXJsYXktY29sb3I6ICAgICAgICAgICAgICAgICAgICMwYjBiMGIgIWRlZmF1bHQ7XHJcbiRtZnAtb3ZlcmxheS1vcGFjaXR5OiAgICAgICAgICAgICAgICAgMC44ICFkZWZhdWx0O1xyXG4kbWZwLXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgIDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpICFkZWZhdWx0OyAvLyBzaGFkb3cgb24gaW1hZ2Ugb3IgaWZyYW1lXHJcbiRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgOHB4ICFkZWZhdWx0OyAvLyBQYWRkaW5nIGZyb20gbGVmdCBhbmQgZnJvbSByaWdodCBzaWRlXHJcbiRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0LW1vYmlsZTogICAgICAgNnB4ICFkZWZhdWx0OyAvLyBTYW1lIGFzIGFib3ZlLCBidXQgaXMgYXBwbGllZCB3aGVuIHdpZHRoIG9mIHdpbmRvdyBpcyBsZXNzIHRoYW4gODAwcHhcclxuXHJcbiRtZnAtei1pbmRleC1iYXNlOiAgICAgICAgICAgICAgICAgICAgMTA0MCAhZGVmYXVsdDsgLy8gQmFzZSB6LWluZGV4IG9mIHBvcHVwXHJcbiRtZnAtaW5jbHVkZS1hcnJvd3M6ICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDsgLy8gaW5jbHVkZSBzdHlsZXMgZm9yIG5hdiBhcnJvd3NcclxuJG1mcC1jb250cm9scy1vcGFjaXR5OiAgICAgICAgICAgICAgICAwLjY1ICFkZWZhdWx0O1xyXG4kbWZwLWNvbnRyb2xzLWNvbG9yOiAgICAgICAgICAgICAgICAgICNGRkYgIWRlZmF1bHQ7XHJcbiRtZnAtY29udHJvbHMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgIzNGM0YzRiAhZGVmYXVsdDtcclxuJG1mcC1pbm5lci1jbG9zZS1pY29uLWNvbG9yOiAgICAgICAgICAjMzMzICFkZWZhdWx0O1xyXG4kbWZwLWNvbnRyb2xzLXRleHQtY29sb3I6ICAgICAgICAgICAgICNDQ0MgIWRlZmF1bHQ7IC8vIENvbG9yIG9mIHByZWxvYWRlciBhbmQgXCIxIG9mIFhcIiBpbmRpY2F0b3JcclxuJG1mcC1jb250cm9scy10ZXh0LWNvbG9yLWhvdmVyOiAgICAgICAjRkZGICFkZWZhdWx0O1xyXG4kbWZwLUlFN3N1cHBvcnQ6ICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7IC8vIFZlcnkgYmFzaWMgSUU3IHN1cHBvcnRcclxuXHJcbi8vIElmcmFtZS10eXBlIG9wdGlvbnNcclxuJG1mcC1pbmNsdWRlLWlmcmFtZS10eXBlOiAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xyXG4kbWZwLWlmcmFtZS1wYWRkaW5nLXRvcDogICAgICAgICAgICAgIDQwcHggIWRlZmF1bHQ7XHJcbiRtZnAtaWZyYW1lLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcclxuJG1mcC1pZnJhbWUtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICA5MDBweCAhZGVmYXVsdDtcclxuJG1mcC1pZnJhbWUtcmF0aW86ICAgICAgICAgICAgICAgICAgICA5LzE2ICFkZWZhdWx0O1xyXG5cclxuLy8gSW1hZ2UtdHlwZSBvcHRpb25zXHJcbiRtZnAtaW5jbHVkZS1pbWFnZS10eXBlOiAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuJG1mcC1pbWFnZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAjNDQ0ICFkZWZhdWx0O1xyXG4kbWZwLWltYWdlLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgIDQwcHggIWRlZmF1bHQ7XHJcbiRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgNDBweCAhZGVmYXVsdDtcclxuJG1mcC1pbmNsdWRlLW1vYmlsZS1sYXlvdXQtZm9yLWltYWdlOiB0cnVlICFkZWZhdWx0OyAvLyBSZW1vdmVzIHBhZGRpbmdzIGZyb20gdG9wIGFuZCBib3R0b21cclxuXHJcbi8vIEltYWdlIGNhcHRpb24gb3B0aW9uc1xyXG4kbWZwLWNhcHRpb24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICNGM0YzRjMgIWRlZmF1bHQ7XHJcbiRtZnAtY2FwdGlvbi1zdWJ0aXRsZS1jb2xvcjogICAgICAgICAgI0JEQkRCRCAhZGVmYXVsdDtcclxuXHJcbi8vIEExMXlcclxuJG1mcC11c2UtdmlzdWFsbHloaWRkZW46ICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDsgLy8gSGlkZSBjb250ZW50IGZyb20gYnJvd3NlcnMsIGJ1dCBtYWtlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnMgXHJcblxyXG5cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyAyLiBHZW5lcmFsIHN0eWxlc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbi8vIFRyYW5zbHVzY2VudCBvdmVybGF5XHJcbi5tZnAtYmcge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDI7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcblxyXG4gIGJhY2tncm91bmQ6ICRtZnAtb3ZlcmxheS1jb2xvcjtcclxuICBvcGFjaXR5OiAkbWZwLW92ZXJsYXktb3BhY2l0eTtcclxuICBAaWYgJG1mcC1JRTdzdXBwb3J0IHtcclxuICAgIGZpbHRlcjogdW5xdW90ZShcImFscGhhKG9wYWNpdHk9I3skbWZwLW92ZXJsYXktb3BhY2l0eSoxMDB9KVwiKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFdyYXBwZXIgZm9yIHBvcHVwXHJcbi5tZnAtd3JhcCB7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHotaW5kZXg6ICRtZnAtei1pbmRleC1iYXNlICsgMztcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyAvLyBmaXhlcyB3ZWJraXQgYnVnIHRoYXQgY2FuIGNhdXNlIFwiZmFsc2VcIiBzY3JvbGxiYXJcclxufVxyXG5cclxuLy8gUm9vdCBjb250YWluZXJcclxuLm1mcC1jb250YWluZXIge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHBhZGRpbmc6IDAgJG1mcC1wb3B1cC1wYWRkaW5nLWxlZnQ7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4vLyBWZXJ0aWNhbCBjZW50ZXJlciBoZWxwZXJcclxuLm1mcC1jb250YWluZXIge1xyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFJlbW92ZSB2ZXJ0aWNhbCBjZW50ZXJpbmcgd2hlbiBwb3B1cCBoYXMgY2xhc3MgYG1mcC1hbGlnbi10b3BgXHJcbi5tZnAtYWxpZ24tdG9wIHtcclxuICAubWZwLWNvbnRhaW5lciB7IFxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gUG9wdXAgY29udGVudCBob2xkZXJcclxuLm1mcC1jb250ZW50IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDU7XHJcbn1cclxuLm1mcC1pbmxpbmUtaG9sZGVyLFxyXG4ubWZwLWFqYXgtaG9sZGVyIHtcclxuICAubWZwLWNvbnRlbnQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBjdXJzb3I6IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG4vLyBDdXJzb3JzXHJcbi5tZnAtYWpheC1jdXIge1xyXG4gIGN1cnNvcjogcHJvZ3Jlc3M7XHJcbn1cclxuLm1mcC16b29tLW91dC1jdXIge1xyXG4gICYsIC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2Uge1xyXG4gICAgY3Vyc29yOiAtbW96LXpvb20tb3V0O1xyXG4gICAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xyXG4gICAgY3Vyc29yOiB6b29tLW91dDtcclxuICB9XHJcbn1cclxuLm1mcC16b29tIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20taW47XHJcbiAgY3Vyc29yOiAtbW96LXpvb20taW47XHJcbiAgY3Vyc29yOiB6b29tLWluO1xyXG59XHJcbi5tZnAtYXV0by1jdXJzb3Ige1xyXG4gIC5tZnAtY29udGVudCB7XHJcbiAgICBjdXJzb3I6IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG4ubWZwLWNsb3NlLFxyXG4ubWZwLWFycm93LFxyXG4ubWZwLXByZWxvYWRlcixcclxuLm1mcC1jb3VudGVyIHtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxufVxyXG5cclxuLy8gSGlkZSB0aGUgaW1hZ2UgZHVyaW5nIHRoZSBsb2FkaW5nXHJcbi5tZnAtbG9hZGluZyB7XHJcbiAgJi5tZnAtZmlndXJlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBIZWxwZXIgY2xhc3MgdGhhdCBoaWRlcyBzdHVmZlxyXG5AaWYgJG1mcC11c2UtdmlzdWFsbHloaWRkZW4ge1xyXG4gIC8vIEZyb20gSFRNTDUgQm9pbGVycGxhdGUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi92NC4yLjAvZG9jL2Nzcy5tZCN2aXN1YWxseWhpZGRlblxyXG4gIC5tZnAtaGlkZSB7XHJcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcclxuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xyXG4gIH1cclxufSBAZWxzZSB7XHJcbiAgLm1mcC1oaWRlIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gMy4gQXBwZWFyYW5jZVxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbi8vIFByZWxvYWRlciBhbmQgdGV4dCB0aGF0IGRpc3BsYXlzIGVycm9yIG1lc3NhZ2VzXHJcbi5tZnAtcHJlbG9hZGVyIHtcclxuICBjb2xvcjogJG1mcC1jb250cm9scy10ZXh0LWNvbG9yO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICB3aWR0aDogYXV0bztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luLXRvcDogLTAuOGVtO1xyXG4gIGxlZnQ6IDhweDtcclxuICByaWdodDogOHB4O1xyXG4gIHotaW5kZXg6ICRtZnAtei1pbmRleC1iYXNlICsgNDtcclxuICBhIHtcclxuICAgIGNvbG9yOiAkbWZwLWNvbnRyb2xzLXRleHQtY29sb3I7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvci1ob3ZlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEhpZGUgcHJlbG9hZGVyIHdoZW4gY29udGVudCBzdWNjZXNzZnVsbHkgbG9hZGVkXHJcbi5tZnAtcy1yZWFkeSB7XHJcbiAgLm1mcC1wcmVsb2FkZXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEhpZGUgY29udGVudCB3aGVuIGl0IHdhcyBub3QgbG9hZGVkXHJcbi5tZnAtcy1lcnJvciB7XHJcbiAgLm1mcC1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBDU1MtcmVzZXQgZm9yIGJ1dHRvbnNcclxuYnV0dG9uIHtcclxuICAmLm1mcC1jbG9zZSxcclxuICAmLm1mcC1hcnJvdyB7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHotaW5kZXg6ICRtZnAtei1pbmRleC1iYXNlICsgNjtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG4gICY6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBib3JkZXI6IDBcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBDbG9zZSBpY29uXHJcbi5tZnAtY2xvc2Uge1xyXG4gIHdpZHRoOiA0NHB4O1xyXG4gIGhlaWdodDogNDRweDtcclxuICBsaW5lLWhlaWdodDogNDRweDtcclxuXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG9wYWNpdHk6ICRtZnAtY29udHJvbHMtb3BhY2l0eTtcclxuICBAaWYgJG1mcC1JRTdzdXBwb3J0IHtcclxuICAgIGZpbHRlcjogdW5xdW90ZShcImFscGhhKG9wYWNpdHk9I3skbWZwLWNvbnRyb2xzLW9wYWNpdHkqMTAwfSlcIik7XHJcbiAgfVxyXG4gIHBhZGRpbmc6IDAgMCAxOHB4IDEwcHg7XHJcbiAgY29sb3I6ICRtZnAtY29udHJvbHMtY29sb3I7XHJcblxyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXNpemU6IDI4cHg7XHJcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlO1xyXG5cclxuICAmOmhvdmVyLFxyXG4gICY6Zm9jdXMge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIEBpZiAkbWZwLUlFN3N1cHBvcnQge1xyXG4gICAgICBmaWx0ZXI6IHVucXVvdGUoXCJhbHBoYShvcGFjaXR5PSN7MSoxMDB9KVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICY6YWN0aXZlIHtcclxuICAgIHRvcDogMXB4O1xyXG4gIH1cclxufVxyXG4ubWZwLWNsb3NlLWJ0bi1pbiB7XHJcbiAgLm1mcC1jbG9zZSB7XHJcbiAgICBjb2xvcjogJG1mcC1pbm5lci1jbG9zZS1pY29uLWNvbG9yO1xyXG4gIH1cclxufVxyXG4ubWZwLWltYWdlLWhvbGRlcixcclxuLm1mcC1pZnJhbWUtaG9sZGVyIHtcclxuICAubWZwLWNsb3NlIHtcclxuICAgIGNvbG9yOiAkbWZwLWNvbnRyb2xzLWNvbG9yO1xyXG4gICAgcmlnaHQ6IC02cHg7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gXCIxIG9mIFhcIiBjb3VudGVyXHJcbi5tZnAtY291bnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBjb2xvcjogJG1mcC1jb250cm9scy10ZXh0LWNvbG9yO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBsaW5lLWhlaWdodDogMThweDtcclxufVxyXG5cclxuLy8gTmF2aWdhdGlvbiBhcnJvd3NcclxuQGlmICRtZnAtaW5jbHVkZS1hcnJvd3Mge1xyXG4gIC5tZnAtYXJyb3cge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgb3BhY2l0eTogJG1mcC1jb250cm9scy1vcGFjaXR5O1xyXG4gICAgQGlmICRtZnAtSUU3c3VwcG9ydCB7XHJcbiAgICAgIGZpbHRlcjogdW5xdW90ZShcImFscGhhKG9wYWNpdHk9I3skbWZwLWNvbnRyb2xzLW9wYWNpdHkqMTAwfSlcIik7XHJcbiAgICB9XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIG1hcmdpbi10b3A6IC01NXB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiA5MHB4O1xyXG4gICAgaGVpZ2h0OiAxMTBweDtcclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgbWFyZ2luLXRvcDogLTU0cHg7XHJcbiAgICB9XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIEBpZiAkbWZwLUlFN3N1cHBvcnQge1xyXG4gICAgICAgIGZpbHRlcjogdW5xdW90ZShcImFscGhhKG9wYWNpdHk9I3sxKjEwMH0pXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIsXHJcbiAgICAubWZwLWIsXHJcbiAgICAubWZwLWEge1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAwO1xyXG4gICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBtYXJnaW4tdG9wOiAzNXB4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogMzVweDtcclxuICAgICAgYm9yZGVyOiBtZWRpdW0gaW5zZXQgdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlcixcclxuICAgIC5tZnAtYSB7XHJcblxyXG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAxM3B4O1xyXG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxM3B4O1xyXG4gICAgICB0b3A6OHB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6YmVmb3JlLFxyXG4gICAgLm1mcC1iIHtcclxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcclxuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjFweDtcclxuICAgICAgb3BhY2l0eTogMC43O1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC5tZnAtYXJyb3ctbGVmdCB7XHJcbiAgICBsZWZ0OiAwO1xyXG5cclxuICAgICY6YWZ0ZXIsXHJcbiAgICAubWZwLWEge1xyXG4gICAgICBib3JkZXItcmlnaHQ6IDE3cHggc29saWQgJG1mcC1jb250cm9scy1jb2xvcjtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDMxcHg7XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSxcclxuICAgIC5tZnAtYiB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xyXG4gICAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgJG1mcC1jb250cm9scy1ib3JkZXItY29sb3I7IFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1mcC1hcnJvdy1yaWdodCB7XHJcbiAgICByaWdodDogMDtcclxuICAgICY6YWZ0ZXIsXHJcbiAgICAubWZwLWEge1xyXG4gICAgICBib3JkZXItbGVmdDogMTdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWNvbG9yO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMzlweFxyXG4gICAgfVxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAubWZwLWIge1xyXG4gICAgICBib3JkZXItbGVmdDogMjdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLy8gSWZyYW1lIGNvbnRlbnQgdHlwZVxyXG5AaWYgJG1mcC1pbmNsdWRlLWlmcmFtZS10eXBlIHtcclxuICAubWZwLWlmcmFtZS1ob2xkZXIge1xyXG4gICAgcGFkZGluZy10b3A6ICRtZnAtaWZyYW1lLXBhZGRpbmctdG9wO1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRtZnAtaWZyYW1lLXBhZGRpbmctdG9wO1xyXG4gICAgLm1mcC1jb250ZW50IHtcclxuICAgICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6ICRtZnAtaWZyYW1lLW1heC13aWR0aDtcclxuICAgIH1cclxuICAgIC5tZnAtY2xvc2Uge1xyXG4gICAgICB0b3A6IC00MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAubWZwLWlmcmFtZS1zY2FsZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgcGFkZGluZy10b3A6ICRtZnAtaWZyYW1lLXJhdGlvICogMTAwJTtcclxuICAgIGlmcmFtZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgYm94LXNoYWRvdzogJG1mcC1zaGFkb3c7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRtZnAtaWZyYW1lLWJhY2tncm91bmQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8vIEltYWdlIGNvbnRlbnQgdHlwZVxyXG5AaWYgJG1mcC1pbmNsdWRlLWltYWdlLXR5cGUge1xyXG5cclxuICAvKiBNYWluIGltYWdlIGluIHBvcHVwICovXHJcbiAgaW1nIHtcclxuICAgICYubWZwLWltZyB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgcGFkZGluZzogJG1mcC1pbWFnZS1wYWRkaW5nLXRvcCAwICRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b207XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogVGhlIHNoYWRvdyBiZWhpbmQgdGhlIGltYWdlICovXHJcbiAgLm1mcC1maWd1cmUge1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgdG9wOiAkbWZwLWltYWdlLXBhZGRpbmctdG9wO1xyXG4gICAgICBib3R0b206ICRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b207XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgIGJveC1zaGFkb3c6ICRtZnAtc2hhZG93O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkbWZwLWltYWdlLWJhY2tncm91bmQ7XHJcbiAgICB9XHJcbiAgICBzbWFsbCB7XHJcbiAgICAgIGNvbG9yOiAkbWZwLWNhcHRpb24tc3VidGl0bGUtY29sb3I7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gICAgfVxyXG4gICAgZmlndXJlIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAubWZwLWJvdHRvbS1iYXIge1xyXG4gICAgbWFyZ2luLXRvcDogLSRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b20gKyA0O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxMDAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgY3Vyc29yOiBhdXRvO1xyXG4gIH1cclxuICAubWZwLXRpdGxlIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgIGNvbG9yOiAkbWZwLWNhcHRpb24tdGl0bGUtY29sb3I7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4OyAvLyBsZWF2ZSBzb21lIHNwYWNlIGZvciBjb3VudGVyIGF0IHJpZ2h0IHNpZGVcclxuICB9XHJcblxyXG4gIC5tZnAtaW1hZ2UtaG9sZGVyIHtcclxuICAgIC5tZnAtY29udGVudCB7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZnAtZ2FsbGVyeSB7XHJcbiAgICAubWZwLWltYWdlLWhvbGRlciB7XHJcbiAgICAgIC5tZnAtZmlndXJlIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBAaWYgJG1mcC1pbmNsdWRlLW1vYmlsZS1sYXlvdXQtZm9yLWltYWdlIHtcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXHJcbiAgICAgICAqL1xyXG4gICAgICAubWZwLWltZy1tb2JpbGUge1xyXG4gICAgICAgIC5tZnAtaW1hZ2UtaG9sZGVyIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAmLm1mcC1pbWcge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWZwLWZpZ3VyZSB7XHJcbiAgICAgICAgICAvLyBUaGUgc2hhZG93IGJlaGluZCB0aGUgaW1hZ2VcclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHNtYWxsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWZwLWJvdHRvbS1iYXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjYpO1xyXG4gICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweDtcclxuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAmOmVtcHR5IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm1mcC1jb3VudGVyIHtcclxuICAgICAgICAgIHJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICB0b3A6IDNweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm1mcC1jbG9zZSB7XHJcbiAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4vLyBTY2FsZSBuYXZpZ2F0aW9uIGFycm93cyBhbmQgcmVkdWNlIHBhZGRpbmcgZnJvbSBzaWRlc1xyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xyXG4gIC5tZnAtYXJyb3cge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcclxuICB9XHJcbiAgLm1mcC1hcnJvdy1sZWZ0IHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDA7XHJcbiAgfVxyXG4gIC5tZnAtYXJyb3ctcmlnaHQge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcclxuICB9XHJcbiAgLm1mcC1jb250YWluZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkbWZwLXBvcHVwLXBhZGRpbmctbGVmdC1tb2JpbGU7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAkbWZwLXBvcHVwLXBhZGRpbmctbGVmdC1tb2JpbGU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8vIElFNyBzdXBwb3J0XHJcbi8vIFN0eWxlcyB0aGF0IG1ha2UgcG9wdXAgbG9vayBuaWNpZXIgaW4gb2xkIElFXHJcbkBpZiAkbWZwLUlFN3N1cHBvcnQge1xyXG4gIC5tZnAtaWU3IHtcclxuICAgIC5tZnAtaW1nIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICAgIC5tZnAtYm90dG9tLWJhciB7XHJcbiAgICAgIHdpZHRoOiA2MDBweDtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTMwMHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICB9XHJcbiAgICAubWZwLWNvbnRhaW5lciB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgICAubWZwLWNvbnRlbnQge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNDRweDtcclxuICAgIH1cclxuICAgIC5tZnAtY2xvc2Uge1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuICB9XHJcbn0iLCJcclxuLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBNb2R1bGVzIC8gRHJ1cGFsXHJcbi8vICBEcnVwYWwgQWRtaW4gZWxlbWVudHNcclxuXHJcbiAgLy8gQWRtaW4gaW4tcGFnZSBtZW51IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAudGFicy1wcmltYXJ5IHtcclxuXHJcbiAgICAuZDUtZDEyICYge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvLyBBZG1pbiBMb2dpbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxyXG4gICN1c2VyLWxvZ2luIHtcclxuICAgIHBhZGRpbmc6IDFlbTtcclxuICAgIGJhY2tncm91bmQ6ICRsaWdodF9ncmV5O1xyXG5cclxuICAgIC5kZXNjcmlwdGlvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICB9XHJcbiAgICAuZm9ybS1zdWJtaXQge1xyXG4gICAgICBAZXh0ZW5kIC5idXR0b247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBZG1pbiBUYWJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcbiAgLnRhYnMtcHJpbWFyeS50YWJzLnByaW1hcnkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodF9ncmV5O1xyXG4gIH1cclxuICAgIGxpLnRhYnMtcHJpbWFyeV9fdGFiIHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcclxuICAgICAgICBwYWRkaW5nOiAwLjVlbSAxZW07XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRsaWdodF9ncmV5O1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkbGlnaHRfZ3JleSwyMCUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhLmFjdGl2ZSB7XHJcbiAgICAgICAgY29sb3I6ICR0ZXh0X2NvbG9yO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRsaWdodF9ncmV5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIC8vIEFkbWluIE1lc3NhZ2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXHJcbiAgICAubWVzc2FnZXMtLXN0YXR1cyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAxZW07XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgICAgXHJcbiAgICAgICYuc3RhdHVzIHtcclxuICAgICAgICBjb2xvcjogZGFya2VuKCRzdWNjZXNzLDEwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkc3VjY2VzcywzMCUpO1xyXG4gICAgICB9IFxyXG5cclxuICAgIH1cclxuICAgIC5tZXNzYWdlcy0td2FybmluZyB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gIC8vIEZpZWxkIGNvbGxlY3Rpb24gbGlua3MgKGUuZy4gTG90IFJlc3VsdHMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICB1bC5maWVsZC1jb2xsZWN0aW9uLXZpZXctbGlua3Mge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGxpIHtcclxuICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW46IDAuNWVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSW1wb3J0IEZvcm0gKFhNTCBldGMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAjZmVlZHMtaW1wb3J0LWZvcm0ge1xyXG5cclxuICAgIGxlZ2VuZCB7XHJcbiAgICAgIEBpbmNsdWRlIHVwcGVyLXRpdGxlKDEuMWVtLCAwIDAgMS4yZW0gMCwgJHRleHRfY29sb3IgKTtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgIH1cclxuXHJcbiAgICAuZmVlZHMtc291cmNlLXN0YXR1cyB1bCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgICBtYXJnaW46IDAgMCAwLjVlbSAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tc3VibWl0IHtcclxuICAgICAgdGV4dC1pbmRlbnQ6IDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xyXG4gICAgICBwYWRkaW5nOiAwLjdlbSA0MHB4IDAuNzYyNWVtIDFlbTtcclxuICAgICAgYm9yZGVyOiBtZWRpdW0gbm9uZTtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xyXG4gICAgfVxyXG4gICAgLmZvcm0taXRlbS1maWxlcy1mZWVkcyB7XHJcbiAgICAgIHBhZGRpbmc6IDFlbTtcclxuICAgICAgbWFyZ2luOiAxZW0gMDtcclxuICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0X2dyZXk7XHJcbiAgICB9XHJcbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRsaWdodF9ncmV5LDIwJSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLyo8dWwgY2xhc3M9XCJ0YWJzLXByaW1hcnkgdGFicyBwcmltYXJ5XCI+PGxpIGNsYXNzPVwidGFicy1wcmltYXJ5X190YWIgaXMtYWN0aXZlXCI+PGEgaHJlZj1cIi9zZXJ2aWNlcy9hdWN0aW9uLWVzdGltYXRlXCIgY2xhc3M9XCJ0YWJzLXByaW1hcnlfX3RhYi1saW5rIGlzLWFjdGl2ZSBhY3RpdmVcIj5WaWV3IDxzcGFuIGNsYXNzPVwiZWxlbWVudC1pbnZpc2libGVcIj4oYWN0aXZlIHRhYik8L3NwYW4+PC9hPjwvbGk+XHJcbjxsaSBjbGFzcz1cInRhYnMtcHJpbWFyeV9fdGFiXCI+PGEgaHJlZj1cIi9ub2RlLzEyNC9lZGl0XCIgY2xhc3M9XCJ0YWJzLXByaW1hcnlfX3RhYi1saW5rXCI+RWRpdDwvYT48L2xpPlxyXG48bGkgY2xhc3M9XCJ0YWJzLXByaW1hcnlfX3RhYlwiPjxhIGhyZWY9XCIvbm9kZS8xMjQvZGlzcGxheVwiIGNsYXNzPVwidGFicy1wcmltYXJ5X190YWItbGlua1wiPk1hbmFnZSBkaXNwbGF5PC9hPjwvbGk+XHJcbjxsaSBjbGFzcz1cInRhYnMtcHJpbWFyeV9fdGFiXCI+PGEgaHJlZj1cIi9ub2RlLzEyNC9sb2dcIiBjbGFzcz1cInRhYnMtcHJpbWFyeV9fdGFiLWxpbmtcIj5Mb2c8L2E+PC9saT5cclxuPGxpIGNsYXNzPVwidGFicy1wcmltYXJ5X190YWJcIj48YSBocmVmPVwiL25vZGUvMTI0L2RldmVsXCIgY2xhc3M9XCJ0YWJzLXByaW1hcnlfX3RhYi1saW5rXCI+RGV2ZWw8L2E+PC9saT5cclxuPC91bD4qLyIsIi8vXHJcbi8vICBIS1NOIEZyYW1ld29ya1xyXG4vLyAgTW9kdWxlcyAvIDM2MCBTcGlubmVyXHJcbi8vICBDdXJyZW50bHkgdXNpbmcgMzYwalxyXG5cclxuICAvLyBEZWZhdWx0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAudmlld3Nfc2xpZGVzaG93X2ozNjBfbWFpbiB7XHJcblxyXG4gIH1cclxuXHJcbiAgLnZpZXdzLXNsaWRlc2hvdy1qMzYwIHtcclxuICAgIG1hcmdpbjogMCBhdXRvIDJlbTtcclxuICAgIG1heC13aWR0aDogNjAwcHg7XHJcbiAgICAvL2JvcmRlcjogc29saWQgMXB4ICRsaWdodF9ncmV5O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGNsZWFyOiBib3RoO1xyXG5cclxuICAgIC52aWV3LXNwaW5uZXIge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTFweDsgLy8gQ2xpcCBibGFjayBsaW5lIG9uIGltYWdlc1xyXG4gICAgfVxyXG5cclxuICAgIC52aWV3cy1zbGlkZXNob3ctajM2MC1pbWFnZXMsXHJcbiAgICAuc3ByaXRlc3Bpbi1zdGFnZSB7XHJcbiAgICAgIGN1cnNvcjogZ3JhYjtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDc1JTtcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNwcml0ZXNwaW4tcHJlbG9hZCB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9sb2FkaW5nLmdpZlwiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7XHJcblxyXG4gICAgLnZpZXdzX3NsaWRlc2hvd19qMzYwX21haW4ge1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gIH0iLCIvL1xyXG4vLyAgSEtTTiBGcmFtZXdvcmtcclxuLy8gIFNvY2lhbCAvIHNoYXJlXHJcbi8vICBTb2NpYWwgbmV0d29yayBzaGFyaW5nXHJcbi8vXHJcbi8vICBTZWUgX2J1dHRvbnMuc2NzcyBmb3IgaWNvbiBzdHlsZXMgJiBfYmxvY2tzLWZvb3RlciAmIF93aWRnZXRzLnNjc3NcclxuXHJcbiAgLy8gU2hhcmUgc29jaWFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAuc29jaWFsLXNoYXJlIHtcclxuXHJcbiAgICAubGFiZWwge1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGNvbG9yOiBzaGFkZSgkbGlnaHRfZ3JleSwyMCUpO1xyXG4gICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICBmb250LXdlaWdodDogJGJhc2Vfc3Ryb25nX2ZvbnR3ZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBsaSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICB9XHJcbiIsIi8vXHJcbi8vICBIS1NOIEZyYW1ld29ya1xyXG4vLyAgQWRqdXN0bWVudHMgLyBDb2xvdXJzXHJcbi8vICBDb2xvdXIgY2hhbmdlcy9vdmVycmlkZXNcclxuLy9cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIExpdmUgQmlkZGluZyAtIG1vdmUgbm9uLWNvbG91ciB0byBuZXcgc2hlZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgI2FmSUJDb250ZW50IHtcclxuICAgIGxpIHtcclxuICAgICAgY29sb3I6ICR0ZXh0X2NvbG9yICFpbXBvcnRhbnQ7IFxyXG4gICAgfVxyXG4gICAgLnN0YXR1c2J1dHRvbi5nb2xkYnV0dG9uIHtcclxuXHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIGZvbnQtc3R5bGU6IGJvbGQ7XHJcbiAgICAgICAgLy8gZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogIHVybCgnLi4vaW1nL2ljb25zL2Fycm93LXJpZ2h0LXdoaXRlLnN2ZycpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCRpbmRpZ28sIDIwJSk7XHJcbiAgICAgICAgLy8gYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkbmV3X3RoZW1lX2J1dHRvbl9pY29uX3NpemU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkbmV3X3RoZW1lX2J1dHRvbl9pY29uX3Bvc2l0aW9uO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNzVlbSA0MHB4IDAuNzVlbSAxZW0gIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICAuYWZfYm90dG9tQnV0dG9uIHsgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cclxuICB9XHJcbiAgI2FmSUJDb250ZW50IC5hZmFmIHtcclxuICAgIC5hZl9zZXNzaW9uRGV0YWlsc19idXR0b25zIGEge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9pY29ucy9hcnJvdy1yaWdodC13aGl0ZS5zdmcnKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGluZGlnbztcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiAkbmV3X3RoZW1lX2J1dHRvbl9pY29uX3NpemU7XHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRuZXdfdGhlbWVfYnV0dG9uX2ljb25fcG9zaXRpb247XHJcbiAgICAgIGZvbnQtc2l6ZTogMTEuMnB4O1xyXG4gICAgICAvLyBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmICFpbXBvcnRhbnQ7XHJcbiAgICAgIHBhZGRpbmc6IDFlbSA0MHB4IDEuMDYyNWVtIDFlbTtcclxuICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIGxpIHtcclxuICAgICAgY29sb3I6ICR0ZXh0X2NvbG9yICFpbXBvcnRhbnQ7IFxyXG4gICAgfVxyXG5cclxuICAgIGxpLmFmX3Nlc3Npb25EZXRhaWxzX3RpdGxlIHtcclxuICAgICAgQGluY2x1ZGUgdXBwZXItdGl0bGUoMTcuNnB4LCAwIDAgMC4xZW0gMCwgIzAwMCApO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICB9XHJcbiAgICBsaS5hZl9zZXNzaW9uRGV0YWlsc19kYXRlIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS44ZW0gIWltcG9ydGFudDtcclxuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkX2ZvbnRmYW1pbHk7XHJcbiAgICAgIG1hcmdpbjogMCAwIDFlbSAwICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBsaS5hZl9zZXNzaW9uRGV0YWlsc19ob3VzZU5hbWUge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgICBsaS5hZl9zZXNzaW9uRGV0YWlsc19sb2NhdGlvbiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuOGVtO1xyXG4gICAgICBmb250LWZhbWlseTogJHNlcmlmX2ZvbnRmYW1pbHk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICAgIGxpLmFmX3Nlc3Npb25UaW1lUmVtYWluaW5nVGV4dCBwIHtcclxuICAgICAgQGluY2x1ZGUgdXBwZXItdGl0bGUoMTcuNnB4LCAwIDAgMWVtIDAsICMwMDAgKTtcclxuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRmYW1pbHk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qI2FmSUJDb250ZW50IC5hZl9zZXNzaW9uX2xlZnQge1xyXG4gICAgbWF4LXdpZHRoOiAzMiU7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgbWF4LXdpZHRoOiAyMzVweDtcclxuICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcclxuICAgIH1cclxuICB9Ki9cclxuICAjYWZJQkNvbnRlbnQgLmFmX3Nlc3Npb25fcmlnaHQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgIC5hZl9sZWZ0IHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlibmF2IHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxcHg7XHJcbiAgICBtYXJnaW46IDAgJGdsb2JhbF9tYXJnaW47XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xMDBweDtcclxuXHJcbiAgICBhIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGNvbG9yOiAkdGV4dF9jb2xvcjtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICBmb250LWZhbWlseTogJGJhc2VfZm9udGZhbWlseTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xyXG4gICAgICBtYXJnaW46IDAgMCAwIC0xcHg7XHJcbiAgICAgIHBhZGRpbmc6IDFlbTtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICBib3JkZXI6IHNvbGlkIDFweCBsaWdodGVuKCRtaWRfZ3JleSw0MCUpO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcclxuICAgIH1cclxuICB9XHJcbiAgI2FmSUJDb250ZW50IHtcclxuICAgIG1hcmdpbjogMCAkZ2xvYmFsX21hcmdpbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBAaW5jbHVkZSBncy1tZWRpYShtLG1heCkge1xyXG5cclxuICAgIC5pYm5hdiB7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI2FmSUJDb250ZW50IC5hZl9zZXNzaW9uX2NlbnRlciB7XHJcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAjYWZJQkNvbnRlbnQgLmFmYWYgLmFmX2xlZnQge1xyXG4gICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XHJcbiAgICB9XHJcbiAgICAjYWZJQkNvbnRlbnQgLmFmYWYgLmFmX3JpZ2h0IHtcclxuICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgI2FmSUJDb250ZW50IC5hZl9zZXNzaW9uX3JpZ2h0IHtcclxuICAgICAgICBtYXJnaW46IDIwcHggMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIFNwZWNpYWxpc3RzIHBhZ2VzICgkcGluaykgSW5jbHVkZXMgZGVwYXJ0bWVudHMsIGxhbmRpbmcgcGFnZXNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLmZyb250IHtcclxuICAgIGgxI3BhZ2UtdGl0bGUge1xyXG4gICAgICBjb2xvcjogJHBpbms7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vICNibG9jay12aWV3cy1uZXdzLWJsb2NrLXNwZWNpYWxpc3QtbmV3cyxcclxuICAvLyAjYmxvY2stdmlld3Mtc3BlY2lhbGlzdHMtYmxvY2stZmVhdHVyZXMsXHJcbiAgLy8gI2Jsb2NrLXZpZXdzLWRlcGFydG1lbnRzLWJsb2NrLXJlc3VsdHMsXHJcbiAgLy8gI2Jsb2NrLXZpZXdzLWNlNmQxZDUyYTJjMzMzZGU2YWFiMjdjNDUzNGQ4MmMxLFxyXG4gIC8vICNibG9jay12aWV3cy1mYmRlNzljNzdkYjRlNTA0NDMyMDc0ZmE1NTdhMmIzOSB7XHJcbiAgLy8gICAud2lkZ2V0LXRpdGxlIHtcclxuICAvLyAgICAgY29sb3I6ICRwaW5rO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgLnZpZXctaWQtc3BlY2lhbGlzdHMge1xyXG4gICAgaHIuYmFzZWxpbmUge1xyXG4gICAgICBib3JkZXItY29sb3I6ICRwaW5rO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnBhZ2UtY29sbGVjdGlvbnMsIFxyXG4gIC5zZWN0aW9uLWNvbGxlY3Rpb25zLCBcclxuICAucGFnZS1kZXBhcnRtZW50cyB7XHJcbiAgICBoMSwgaDIuZmVhdHVyZWQtdGl0bGUge1xyXG4gICAgICBjb2xvcjogJHBpbms7XHJcbiAgICB9XHJcbiAgICBoMS5mZWF0dXJlZC10aXRsZSB7IC8vIE1lc3N5ISBPcmdhbmlzZSBiZXR0ZXJcclxuICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XHJcbiAgICB9XHJcbiAgICBoMi5zdWItdGl0bGUge1xyXG4gICAgICBjb2xvcjogJHRleHRfY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi1hc2lkZSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaW5rOyBcclxuXHJcbiAgICAgIGgzLm5hdi1hc2lkZS10aXRsZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbms7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcGluayAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5wYWdlLWRlcGFydG1lbnRzIHtcclxuICAgIGgyIHtcclxuICAgICAgY29sb3I6ICRwaW5rO1xyXG4gICAgfVxyXG4gIH1cclxuICAucGFnZS1zcGVjaWFsaXN0cywgXHJcbiAgLm5vZGUtdHlwZS1wZXJzb24sIFxyXG4gIC5zZWN0aW9uLXNwZWNpYWxpc3RzIHtcclxuXHJcbiAgICBoMSwgLmZlYXR1cmVkLXRpdGxlIHtcclxuICAgICAgY29sb3I6ICRwaW5rO1xyXG4gICAgfVxyXG4gICAgaDIge1xyXG4gICAgICBjb2xvcjogJHBpbms7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5mZWF0dXJlZC1zcGVjaWFsaXN0cywgXHJcbiAgLmZlYXR1cmVkLXJlc3VsdHMsIFxyXG4gIC5mZWF0dXJlZC1jb2xsZWN0aW9ucyB7XHJcbiAgICBoMiB7XHJcbiAgICAgIGNvbG9yOiAkcGluaztcclxuXHJcbiAgICAgICYuc3ViLXRpdGxlIHtcclxuICAgICAgICBjb2xvcjogJHRleHRfY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGhyLmJhc2VsaW5lIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkcGluaztcclxuICAgIH1cclxuICAgIC5tYWluIHAgYSB7XHJcbiAgICAgIGNvbG9yOiAkcGluaztcclxuICAgIH1cclxuICB9XHJcbiAgLnBhZ2UtZGVwYXJ0bWVudHMge1xyXG5cclxuICAgIC5zYWxlLXZpZXdzIHNwYW4ge1xyXG4gICAgICBjb2xvcjogbGlnaHRlbigkcGluaywyMCUpO1xyXG5cclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGNvbG9yOiAkcGluaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnBhZ2UtZGVwYXJ0bWVudHMge1xyXG4gICAgaDEge1xyXG4gICAgICBjb2xvcjogJHBpbms7XHJcbiAgICB9XHJcbiAgICAuc2FsZS12aWV3cyBzcGFuIHtcclxuICAgICAgY29sb3I6IGxpZ2h0ZW4oJHBpbmssMjAlKTtcclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGNvbG9yOiAkcGluaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBORVc6IFRPIFJFUExBQ0UgQUxMIEFCT1ZFIEFGVEVSIFRFU1RJTkdcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gUEFHRSBUSVRMRSAoSDEpXHJcbiAgLy8gTElOS1NcclxuICAvLyBCQVNFTElORVNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gU2VhcmNoIHBhZ2UgKCRkYXJrX2dyZXkpXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5wYWdlLXNlYXJjaC1zaXRlLFxyXG4gIC5jYXRlZ29yeS1pbmZvcm1hdGlvbiB7XHJcbiAgICBoMSB7XHJcbiAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xyXG4gICAgfVxyXG4gICAgLm1haW4gcCBhIHsgY29sb3I6ICRkYXJrX2dyZXk7IH1cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEF1Y3Rpb25zICgkaW5kaWdvKVxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLnNlY3Rpb24tYXVjdGlvbi1nbG9zc2FyeSxcclxuICAuc2VjdGlvbi10ZXJtcy1hbmQtY29uZGl0aW9ucy1vZi1zYWxlIHtcclxuICAgIC8vIGgxIHtcclxuICAgIC8vICAgY29sb3I6ICRpbmRpZ287XHJcbiAgICAvLyB9XHJcbiAgICAubWFpbiBwIGEgeyBjb2xvcjogJGluZGlnbzsgfVxyXG4gIH1cclxuXHJcbiAgLmZlYXR1cmVkLXJlc3VsdHMge1xyXG4gICAgLy8gaDIge1xyXG4gICAgLy8gICBjb2xvcjogJGluZGlnbztcclxuICAgIC8vIH1cclxuICAgIGhyLmJhc2VsaW5lIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkaW5kaWdvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2Jsb2NrLXZpZXdzLXVwY29taW5nLWJsb2NrIHtcclxuICAgIC53aWRnZXQtdGl0bGUge1xyXG4gICAgICBjb2xvcjogJGluZGlnbztcclxuICAgIH1cclxuICAgIGhyLmJhc2VsaW5lIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkaW5kaWdvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnBhZ2UtYXVjdGlvbnMsIFxyXG4gIC5wYWdlLWNhdGFsb2d1ZS1zdWJzY3JpcHRpb25zLCBcclxuICAucGFnZS1zZWFyY2gtY2FsZW5kYXIsXHJcbiAgLnBhZ2Utc2VhcmNoLXBhc3QsXHJcbiAgLnNlY3Rpb24tZXZlbnQsXHJcbiAgI2NhdGFsb2d1ZV9sb3RzLFxyXG4gIC5jYXRlZ29yeS1hdWN0aW9ucyAvLyBSRkMgQXVjdGlvbiBMYW5kaW5nXHJcbiAge1xyXG5cclxuICAgIGgxIHtcclxuICAgICAgY29sb3I6ICRpbmRpZ287XHJcbiAgICB9XHJcbiAgICAubWFpbiBwIGEsXHJcbiAgICAuc3VtbWFyeS1jb250ZW50IGEsXHJcbiAgICB1bC5wYWdlciBsaSBhIHtcclxuICAgICAgY29sb3I6ICRpbmRpZ287XHJcbiAgICB9XHJcbiAgICBsaS5wYWdlci1jdXJyZW50IHtcclxuICAgICAgY29sb3I6IGRhcmtlbigkaW5kaWdvLDIwJSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBJbnNpZGUgcGFnZXMgKCRncmVlbilcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgI2Jsb2NrLXZpZXdzLW5ld3MtYmxvY2stbGF0ZXN0LFxyXG4gICNibG9jay12aWV3cy1kZXBhcnRtZW50cy1ibG9jay1mZWF0dXJlcyB7XHJcbiAgICAud2lkZ2V0LXRpdGxlIHtcclxuICAgICAgY29sb3I6ICRncmVlbjtcclxuICAgIH1cclxuICB9XHJcbiAgLnNlY3Rpb24tbmV3cywgXHJcbiAgLnNlY3Rpb24tbmV3cy1hbmQtZmlsbXMsIFxyXG4gIC5ub2RlLXR5cGUtYXJ0aWNsZSwgXHJcbiAgLnNlY3Rpb24tbmV3cy1hcnRpY2xlLCBcclxuICAudmlldy1kaXNwbGF5LWlkLWJsb2NrX2xhdGVzdCxcclxuICAuc2VjdGlvbi10YWdzLFxyXG4gIC5zZWN0aW9uLWFib3V0LXVzLCBcclxuICAuc2VjdGlvbi1hYm91dCwgXHJcbiAgLnBhZ2UtdGVhbSwgXHJcbiAgLnBhZ2UtYWJvdXQtdGVhbSxcclxuICAuc2VjdGlvbi1sb2NhdGlvbnMsIFxyXG4gIC5zZWN0aW9uLWFib3V0XHJcbiAgLmNhdGVnb3J5LWluc2lkZSwgXHJcbiAgLmNhdGVnb3J5LW5ld3MtZmlsbSB7XHJcbiAgICAvLyBoMSB7XHJcbiAgICAvLyAgIGNvbG9yOiAkZ3JlZW47XHJcbiAgICAvLyB9XHJcbiAgICAubWFpbiBwIGEsIC5tYWluIGxpIGEgeyBjb2xvcjogJGdyZWVuOyB9XHJcbiAgICAubWFpbiBwIGEsIC5tYWluIGxpIGEgeyBjb2xvcjogJGdyZWVuOyB9XHJcbiAgICAubWFpbiAubmF2LWFzaWRlLWNvbnRlbnQgbGkgYSB7IGNvbG9yOiAkdGV4dF9jb2xvcjsgfVxyXG5cclxuICAgIGhyLmJhc2VsaW5lIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JlZW47XHJcbiAgICB9XHJcbiAgICAud2lkZ2V0LWFyZWEgLm5hdi1hc2lkZSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcclxuICAgIH1cclxuICAgIC53aWRnZXQtYXJlYSAubmF2LWFzaWRlIGgzLm5hdi1hc2lkZS10aXRsZSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogJGdyZWVuO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2VjdGlvbi1wdWJsaWNhdGlvbnMge1xyXG4gICAgaDEge1xyXG4gICAgICBjb2xvcjogJGdyZWVuO1xyXG4gICAgfVxyXG4gICAgaHIuYmFzZWxpbmUge1xyXG4gICAgICBib3JkZXItY29sb3I6ICRncmVlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mZWF0dXJlZC1uZXdzIHtcclxuICAgIGgyIHtcclxuICAgICAgY29sb3I6ICRncmVlbjtcclxuICAgIH1cclxuICAgIGhyLmJhc2VsaW5lIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JlZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubm9kZS10eXBlLWxvY2F0aW9uIHtcclxuICAgIGgxLFxyXG4gICAgLnJlZ2lvbi1ib3R0b20gLndpZGdldC10aXRsZSB7XHJcbiAgICAgIGNvbG9yOiAkZ3JlZW4gIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC53aWRnZXQtY29udGFjdCAuYnV0dG9uIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuOyAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBCdXkvU2VsbCBwYWdlcyAoJHB1cnBsZSlcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC5zZWN0aW9uLXNlbGxpbmctYXQtYXVjdGlvbiwgLnNlY3Rpb24tYnV5aW5nLWF0LWF1Y3Rpb24sXHJcbiAgLmNhdGVnb3J5LXNlbGxpbmctYnV5aW5nLCAubm9kZS10eXBlLWJ1eWluZy1jYW1wYWlnbiwgLm5vZGUtdHlwZS1zZWxsaW5nLWNhbXBhaWduLCAubm9kZS10eXBlLWFudGlxdWVzLXJvYWRzaG93LFxyXG4gIC5ub2RlLXR5cGUtYXJ0aXN0LCAucGFnZS1hcnRpc3Qge1xyXG4gICAgLy8gaDEge1xyXG4gICAgLy8gICBjb2xvcjogJHB1cnBsZTtcclxuICAgIC8vIH1cclxuICAgIC5tYWluIHAgYSB7IGNvbG9yOiAkcHVycGxlOyB9XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gU2VydmljZXMgcGFnZXMgKCRsaWdodF9ibHVlKVxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLnNlY3Rpb24tc2VydmljZXMsXHJcbiAgLm5vdC1mcm9udC5jYXRlZ29yeS1zZXJ2aWNlcyB7XHJcbiAgICAvLyBoMSB7XHJcbiAgICAvLyAgIGNvbG9yOiBkYXJrZW4oJGxpZ2h0X2JsdWUsMjAlKTtcclxuICAgIC8vIH1cclxuICAgIC5tYWluIHAgYSB7IGNvbG9yOiBkYXJrZW4oJGxpZ2h0X2JsdWUsMjAlKTsgfVxyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIFNlYXJjaCB0YWIgY29sb3JzXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICBzcGFuLmNhdGVnb3J5LlNlbGxpbmcge1xyXG4gICAgYmFja2dyb3VuZDogJHB1cnBsZTtcclxuICB9XHJcbiAgc3Bhbi5jYXRlZ29yeS5zYWxlLCBzcGFuLmNhdGVnb3J5LmxvdHMsXHJcbiAgc3Bhbi5jYXRlZ29yeS5TYWxlLCBzcGFuLmNhdGVnb3J5LkxvdHMge1xyXG4gICAgYmFja2dyb3VuZDogJGluZGlnbztcclxuICB9XHJcbiAgc3Bhbi5jYXRlZ29yeS5uZXdzLFxyXG4gIHNwYW4uY2F0ZWdvcnkuTmV3cyxcclxuICBzcGFuLmNhdGVnb3J5Lkluc2lkZSxcclxuICBzcGFuLmNhdGVnb3J5LkxvY2F0aW9ucyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XHJcbiAgfVxyXG4gIHNwYW4uY2F0ZWdvcnkucGFnZSxcclxuICBzcGFuLmNhdGVnb3J5LkJhc2ljLFxyXG4gIHNwYW4uY2F0ZWdvcnkuU2VydmljZXMge1xyXG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRsaWdodF9ibHVlLDIwJSk7XHJcbiAgfVxyXG4gIHNwYW4uY2F0ZWdvcnkuSW5mb3JtYXRpb24ge1xyXG4gICAgYmFja2dyb3VuZDogJGRhcmtfZ3JleTtcclxuICB9XHJcbiAgc3Bhbi5jYXRlZ29yeS5wZXJzb24sIHNwYW4uY2F0ZWdvcnkuZGVwYXJ0bWVudCwgc3Bhbi5jYXRlZ29yeS5jb2xsZWN0aW9uLCAgXHJcbiAgc3Bhbi5jYXRlZ29yeS5QZXJzb24sIHNwYW4uY2F0ZWdvcnkuRGVwYXJ0bWVudHMsIHNwYW4uY2F0ZWdvcnkuQ29sbGVjdGlvbnMsIHNwYW4uY2F0ZWdvcnkuU3BlY2lhbGlzdHMge1xyXG4gICAgYmFja2dyb3VuZDogJHBpbms7XHJcbiAgfVxyXG5cclxuIiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBNb2R1bGVzIC8gU2VhcmNoIG1lbnVcclxuLy9cclxuXHJcbiAgLy8gU2VhcmNoICh0YWJzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC5uYXYtc2VhcmNoIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgcGFkZGluZzogMCAyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgZm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRmYW1pbHk7IC8vICRzZXJpZl9mb250ZmFtaWx5O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgJGxpZ2h0X2dyZXkgMXB4O1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICBtYXJnaW46IDRweCAwIC01cHggLTFweDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiBkYXJrZW4oJGxpZ2h0X2dyZXksMzAlKTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMWVtO1xyXG4gICAgICAgIGJvcmRlcjogc29saWQgJGxpZ2h0X2dyZXkgMXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRsaWdodF9ncmV5O1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJjphY3RpdmUgeyBcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH0gICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAtMXB4IC0xcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlIGEge1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgJjphY3RpdmUgeyBcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH0gXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE1vYmlsZVxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7XHJcblxyXG4gICAgLyoucGFnZS1zZWFyY2gtc2l0ZSAud3JhcC5tYWluIHtcclxuICAgICAgcGFkZGluZy10b3A6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXYtc2VhcmNoIHtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB0b3A6IDUwcHg7IGxlZnQ6IC01JTtcclxuICAgICAgd2lkdGg6IDkwJTtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbWFyZ2luOiAwIDUlIDJlbSA1JTtcclxuICAgIH0qL1xyXG4gIH1cclxuXHJcbiAgLy8gRmFjZXRzIChoaWRlIGNhdGVnb3J5IG9uIGxvdCBzZWFyY2gpXHJcbiAgLnBhZ2Utc2VhcmNoLWxvdHMgI2Jsb2NrLWZhY2V0YXBpLTR6aDBnZ2ptYmdlZXlicmxwamNlOGVtbDNhNnBsZTBqLFxyXG4gICNibG9jay1mYWNldGFwaS1ieW1uZzB1YzB2cWxvYWRscjNhZWRsajl1MnNxMWp1aiB7IGRpc3BsYXk6IG5vbmU7IH0iLCIvL1xyXG4vLyAgSEtTTiBGcmFtZXdvcmtcclxuLy8gIE1vZHVsZXMgLSBDaGluZXNlIE1pY3Jvc2l0ZVxyXG4vLyAgU3R5bGVzIGZvciBDaGluZXNlIG1pY3Jvc2l0ZSAoL3poLylcclxuXHJcbiAgLy8gSG9vayAoYm9keSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC5zZWN0aW9uLXpoLFxyXG4gIC5zZWN0aW9uLXpodCB7IC8vIFxyXG5cclxuXHJcbiAgICAuYnJhbmQgaW1nIHtcclxuICAgICAgLy9kaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC53cmFwLm1haW4ge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA5M3B4O1xyXG4gICAgfVxyXG4gICAgJi5wYWdlLW5vZGUtMTQ0MDYxIC53cmFwLm1haW4ge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxMjVweDtcclxuICAgIH1cclxuICAgIC53cmFwLm1hc3RoZWFkIHtcclxuICAgICAgLy9oZWlnaHQ6IDgwcHg7XHJcblxyXG4gICAgICAuYnJhbmQge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIC8vYmFja2dyb3VuZDogdXJsKC4uL2ltZy9icmFuZF9ib3RoLnBuZykgbm8tcmVwZWF0O1xyXG4gICAgICAgIC8vYmFja2dyb3VuZC1zaXplOiA0NjNweCA0NXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXAuYmFzZSAucm93LFxyXG4gICAgLnNpdGUtbGlua3MgLmNvbmRpdGlvbnMtb2Ytc2FsZSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmN5Y2xlLXBhZ2VyLFxyXG4gICAgLmN5Y2xlLXByZXYsXHJcbiAgICAuY3ljbGUtbmV4dCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgLy8gQnJhbmQgTGlua3MgKFNpdGUgbGlua3MgZXRjKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLmpvaW50LWJyYW5kLWxpbmtzLmlubGluZS1saXN0IHtcclxuICAgIG1hcmdpbjogMzBweCAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgZm9udC1zaXplOiAwLjc1ZW07XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgbWluLXdpZHRoOiAzMCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAmLmxhc3Qge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTMyJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICR0ZXh0X2NvbG9yICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiA0NXB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhLmJyYW5kX2xpbmstZnJlZW1hbnMsXHJcbiAgICBhLmJyYW5kX2xpbmstbHlvbmFuZHR1cm5idWxsIHtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgdGV4dC1pbmRlbnQ6IC05OTlweDtcclxuICAgIH1cclxuICAgIGEuYnJhbmRfbGluay1mcmVlbWFucyB7XHJcbiAgICAgIHdpZHRoOiAxMDAlOyAvLyAyMDhweDtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9icmFuZF9mcmVlbWFuc19ncy5wbmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgIH0gICAgXHJcbiAgICBhLmJyYW5kX2xpbmstbHlvbmFuZHR1cm5idWxsIHtcclxuICAgICAgd2lkdGg6IDEwMCU7IC8vIDI1NXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2JyYW5kX2x5b25hbmR0dXJuYnVsbF9ncy5wbmcpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKHQsbWF4KSB7XHJcbiAgICAuam9pbnQtYnJhbmQtbGlua3MuaW5saW5lLWxpc3Qge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxZW07XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgbWluLXdpZHRoOiA0MCU7XHJcbiAgICAgICAgYm9yZGVyOiAwIWltcG9ydGFudDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgJi5sYXN0IHtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGdzLW1lZGlhKG0sbWF4KSB7XHJcbiAgICAuam9pbnQtYnJhbmQtbGlua3MuaW5saW5lLWxpc3Qge1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAgIC8vIExpbmtzXHJcbiAgICAvLy5ub2RlLXR5cGUtc2VsbGluZy1jYW1wYWlnbiAjYmxvY2stdmlld3MtZGVwYXJ0bWVudHMtYmxvY2stZmVhdHVyZXMgXHJcbiAgICAucmVnaW9uLWJvdHRvbSAud2lkZ2V0LXRpdGxlLCAucGFnZV9fdGl0bGUge1xyXG4gICAgICBjb2xvcjogJHBpbmsgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAubm9kZS1wYWdlIHAgYSB7XHJcbiAgICAgIGNvbG9yOiAkcGluayAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xyXG4gICAgICAgIGNvbG9yOiBzaGFkZSgkcGluayw0MCUpICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEJ1dHRvbnNcclxuICAgIC5ub2RlLXBhZ2UgcCBhLFxyXG4gICAgYS5iYWNrdG90b3Age1xyXG5cclxuICAgICAgJi5idXR0b24ge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbmsgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xyXG4gICAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCRwaW5rLDQwJSkgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBTaWRlYmFyIGxpbmtzIGFuZCBidXR0b25zXHJcbiAgICAucmVnaW9uLXNpZGViYXIgYSB7XHJcbiAgICAgIGNvbG9yOiAkcGluayAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xyXG4gICAgICAgIGNvbG9yOiBzaGFkZSgkcGluayw0MCUpICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYnV0dG9uIHtcclxuICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaW5rICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcclxuICAgICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkcGluayw0MCUpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYnMtcHJpbWFyeSBhIHtcclxuICAgICAgY29sb3I6ICRwaW5rICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XHJcbiAgICAgICAgY29sb3I6IHNoYWRlKCRwaW5rLDQwJSkgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXYtcHJpbWFyeSB1bCA+IGxpOmhvdmVyIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuIiwiLy9cclxuLy8gIEhLU04gRnJhbWV3b3JrXHJcbi8vICBNb2R1bGVzIC8gQmxvY2tzIC0gUHJvbW8gVGlsZVxyXG4vLyAgQmxvY2sgZm9yIEFwcCBhZHZlcnRcclxuXHJcbiAgLy8gR3JvdXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4uYXBwLXRpbGUge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3Nub3cucG5nJyk7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1ib3R0b206IDVyZW07XHJcbiAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uYXBwLXRpbGUgaW1nIHtcclxuICB3aWR0aDogYXV0bztcclxufVxyXG5cclxuLmFwcC10aWxlIC50aWxlLWFyZWEge1xyXG59XHJcblxyXG4uYXBwLXRpbGUgLnRpbGUtY29udGVudCB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IDRyZW0gYXV0byAwO1xyXG59XHJcblxyXG4uYXBwLXRpbGUgLmZyYW1lLXJpZ2h0IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAwO1xyXG59XHJcblxyXG4uYXBwLXRpbGUgLmZyYW1lLWxlZnQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxufVxyXG5cclxuLmFwcC10aWxlIC50aWxlLWltYWdlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5hcHAtdGlsZSAudGlsZS10ZXh0IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5hcHAtdGlsZSAudGlsZS1oZWFkaW5nIHtcclxuICBtYXJnaW46IDJyZW0gMCAwO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zaXplOiAxLjJyZW07XHJcbn1cclxuXHJcbi5hcHAtdGlsZSAudGlsZS1zdWItaGVhZGluZyB7XHJcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkYmFzZV9mb250ZmFtaWx5O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogLjlyZW07XHJcbn1cclxuXHJcbi5hcHAtdGlsZSAudGlsZS1idXR0b24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcblxyXG4vKiBNZWRpYSBRdWVyaWVzICovXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gIC5hcHAtdGlsZSAudGlsZS1pbWFnZSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiAzNSU7XHJcbiAgfVxyXG4gIC5hcHAtdGlsZSAudGlsZS10ZXh0IHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDY1JTtcclxuICB9XHJcbiAgLmFwcC10aWxlIC50aWxlLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gIH1cclxuICAuYXBwLXRpbGUgLnRpbGUtaGVhZGluZyB7XHJcbiAgICBtYXJnaW46IDFyZW0gMCAwO1xyXG4gIH1cclxuICAuYXBwLXRpbGUgLnRpbGUtc3ViLWhlYWRpbmcge1xyXG4gICAgbWFyZ2luOiAxcmVtIDAgMXJlbTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk1MHB4KSB7XHJcbiAgLmFwcC10aWxlIC50aWxlLWhlYWRpbmcge1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcblxyXG4gIH1cclxuICAuYXBwLXRpbGUgLnRpbGUtc3ViLWhlYWRpbmcge1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgbWFyZ2luOiAxcmVtIDAgM3JlbTtcclxuICB9XHJcbiAgLmFwcC10aWxlIC50aWxlLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XHJcbiAgLmFwcC10aWxlIC50aWxlLWhlYWRpbmcge1xyXG4gICAgbWFyZ2luOiAzcmVtIDAgMDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gIC5hcHAtdGlsZSAudGlsZS1oZWFkaW5nIHtcclxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xyXG4gICAgbWFyZ2luOiAycmVtIDAgMDtcclxuICB9XHJcbiAgLmFwcC10aWxlIC50aWxlLXN1Yi1oZWFkaW5nIHtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIH1cclxuICAuYXBwLXRpbGUgLnRpbGUtYnV0dG9uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDRyZW07XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyogQ2xlYXJmaXggKi9cclxuXHJcbi5jZjpiZWZvcmUsXHJcbi5jZjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIiBcIjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG59XHJcblxyXG4uY2Y6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbn1cclxuIl19 */
